Moveit报错:Unable to identify any set of controllers that can actuate the specified joints

今天依照古月老师的教程视频,运行他的launch文件来控制Gazebo中的机械臂,结果运行下述语句时一直报错

roslaunch marm_gazebo arm_bringup_moveit.launch

错误如下
在这里插入图片描述
上网查了一堆相关的问题,都没有解决。最后终于找到问题根源了,估计我的问题不太可能有普遍性

我本人是没学明白ros,不敢有啥骚操作,之前的操作都是依照老师的视频来的。回想一下,应该是哪一步出了点问题,导致我在marm_moveit_config功能包下面的arm_moveit_controller_manager.launch文件变成了这个样子,但具体是啥时候整的这么一出我也想不起来,本来ros我就没学明白,又照着视频稀里糊涂地搞了一堆,脑子一片空白。。。

<launch>

  <!-- loads moveit_controller_manager on the parameter server which is taken as argument 
    if no argument is passed, moveit_simple_controller_manager will be set -->
  <arg name="moveit_controller_manager" default="moveit_simple_controller_manager/MoveItSimpleControllerManager" />
  <param name="moveit_controller_manager" value="$(arg moveit_controller_manager)"/>

  <!-- loads ros_controllers to the param server -->
  <rosparam file="$(find marm_moveit_config)/config/ros_controllers.yaml"/>

</launch>

有博客提到了一种可能,链接如下
相关博客

里头提到不要注释掉controllers_gazeno那一行,但我的这个launch文件却压根没有这一行

然后我在古月老师的书里对照代码去看,发现书里写了controllers_gazebo,照着弄了一份,然后在arm_moveit_controller_manager.launch里补上了那行代码

<rosparam file="$(find marm_moveit_config)/config/controllers_gazebo.yaml"/>

但还是报错

最后仔细对照代码,发现自己的launch文件多了一行代码,就和之前写的一样,我压根不知道啥时候整得这么一句进去。。。

正确的arm_moveit_controller_manager.launch文件如下

<launch>

  <!-- loads moveit_controller_manager on the parameter server which is taken as argument 
    if no argument is passed, moveit_simple_controller_manager will be set -->
  <arg name="moveit_controller_manager" default="moveit_simple_controller_manager/MoveItSimpleControllerManager" />
  <param name="moveit_controller_manager" value="$(arg moveit_controller_manager)"/>

  <!-- load controller manager --> 	
  <rosparam file="$(find marm_moveit_config)/config/controllers_gazebo.yaml"/>

</launch>

发现这个错误后,我才发现课件上也是正确的,压根没有带ros_launcher那行代码,自己也是实力眼瞎。。。

总结一下,自己对ros狗屁不通,然后又实力眼瞎,结果卡了自己好几个小时,从中午卡到现在。。。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值