解决[WARN] : Controller Spawner couldn‘t find the expected controller_manager ROS interface.思路

rrbot例程ros_control配置问题的解决思路

本人刚入门ROS机器人开发,在学习rrbot例程出现了control_manager无法启动的bug。
在启动rrbot_control.launch的时候,出现下列warning:

[WARN] [1594362016.372059]: Controller Spawner couldn't find the
expected controller_manager ROS interface.

之后再按教程的步骤
rosservice call /rrbot/controller_manager/load_controller "name: 'joint1_position_controll

会提示joint1_position_controll 并不可用,用rqt_graph可以发现并没有control_manager 节点,
教程后续的rqt_gui发指令的操作就别想了。

教程链接:rrbot例程

如果你也是按照上面教程做而出现的bug可以直接跳到第二步检查自己的gazebo版本。

解决思路

1.首先肯定是直接复制错误信息去问度娘了
然后在优快云里面看到了简单粗暴的答案:
用命令:sudo apt-get install ros-kinetic-gazebo-ros-control直接解决,如果是按照上面的例程做的应该不是没有安装ros_control插件的问题。

然后在ros社区里面看到有歪果仁发布了和我一模一样的问题;
在这里插入图片描述问题链接

凭着百度翻译将这些帖子看完,发现没有一个发帖人说自己的问题得到解决了,再一看发帖时间,最近都是三年前的,当时心态都崩了。
看到有的人提到controller manager和.yaml文件设置的参数必须在同一个命名空间里面链接,按照里面的方法检查发现命名空间没有问题。

2.检查自己的gazebo版本

当时在看ros_control配置的时候无意中看到如下代码:

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

当时我就想lib文件夹里面到底有没有libgazebo_ros_control.so这个文件呢?
结果通过文件管理器发现并!没!有!
然后问同学发现应该是要有该文件的,我的gazebo是单独按照网上的配置教程安装的,后来我发现gazebo9好像不支持一代ROS?

将自己的gazebo重装为gazebo8加gazebo8_ros_control,再去跑上面的例程,可以实现最终机械臂的控制。

至于为什么不用gazebo7,是因为安装gazebo7的时候又遇上了新的bug,按照网上的解除硬件加速的方法也解决不了,看到有ros+gazebo8的搭配就直接按照教程安装了。

安装教程

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值