gazebo仿真的joint运动控制及避雷

附上教程链接:传送带

主要是想说一下我踩的坑……以及解决办法

因为不熟悉代码意思,一味的改程序,改了很多不用改的地方:

例如

<gazebo>
      <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
         <robotNamespace>/swivel</robotNamespace>
        <controlPeriod>0.01</controlPeriod>
        <robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType>
      </plugin>
    </gazebo>

第三行的robotnamespace,我给改成了自己的包的名字,但是由于我配置yaml文件时候一直用的他的这个swivel的名字,所以导致后面运行launch的步骤报错,找不到控制器……仔细琢磨尝试才发现可能是这里出了一些问题

如果直接按照教程上的gazebo加入会在运行launch时候报一个错(没有截图啦),虽然不影响使用但是万一呢,所以要加上true这一行代码,如下:

 <gazebo>
      <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
         <robotNamespace>/swivel</robotNamespace>
        <controlPeriod>0.01</controlPeriod>
        <robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType>
        <legacyModeNS>true</legacyModeNS>
      </plugin>

然后配置yaml文件,空间一定要和robotnamespace对应!!!!

launch文件主要注意的是,地址问题!

即使是gazebo的空世界,也要改成你自己的文件地址,加载控制器的时候一定要写对名字!!

然后运行launch文件,会发现有warn很多,,其中一个是Controller Spawner couldn’t find the expected controller_manager ROS interface.
说明缺东西:

执行sudo apt-get install ros-kinetic-gazebo-ros-control

然后如果还不行,估计还是缺东西:

分别执行

rospack find effort_controllers

rospack find joint_state_controller

这两个命令,大概率是找不到目标文件,然后下载一下

 sudo apt-get install ros-kinetic-effort-controllers

sudo apt-get install ros-kinetic-joint-state-controller

然后能控制啦!

其他的运行效果不好可能就是xacro文件里的参数问题啦

发布了29 篇原创文章 · 获赞 0 · 访问量 482

猜你喜欢

转载自blog.csdn.net/qq_43771959/article/details/104610576