ROS关节报错

问题来源

最近在跟着古月居的ROS教学视频学习,在做机器人仿真运行launch文件的时候出现了如下报错

ERROR: cannot launch node of type [robot_state_publisher/state_publisher]: Cannot locate node of type [state_publisher] in package [robot_state_publisher]. Make sure file exists in package path and permission is set to executable (chmod +x)

问题分析

大概的意思是说没有在依赖的包里面找到[state_publisher] 这个类型的节点,于是找到launch文件下的相关语句

1 <!-- 运行robot_state_publisher节点,发布tf  -->
2 <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />

 

将state_publisher改成robot_state_publisher运行成功。

再次发现问题

我发现我运行的rviz没有弹出joint_state_publisher的小插件,没有像他视频里一样有一个小框框弹出来。

问题分析

 查询到ROS WIKI【http://wiki.ros.org/joint_state_publisher】当中有这样一段描述:

截至 2020 年初,GUI 功能已从主要的Joint_state_publisher包中拆分为自己的包Joint_state_publisher_gui。老use_gui参数joint_state_publisher依然兑现,但推出joint_state_publisher_gui如果已安装并可用。对于在此更改之前转换的包,应将joint_state_publisher_gui作为<exec_depend>添加到 package.xml 并且应更新启动文件以启动joint_state_publisher_gui而不是使用带有use_gui参数的joint_state_publisher

解决问题

将package.xml文件下的语句更改为:

1   <exec_depend>urdf</exec_depend>
2   <exec_depend>xacro</exec_depend>
3   <exec_depend>joint_state_publisher_gui</exec_depend>

将launch文件下的语句更改为:

1 <!-- 运行joint_state_publisher节点,发布机器人的关节状态  -->
2 <node name="joint_state_publisher" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" />

 

上一篇:windows操作系统下配置定时任务执行jmeter脚本的完整流程


下一篇:2021-10-27 JS 正则表达式的使用