立即咨询

电话咨询

微信咨询

立即试用
商务合作

使用Kinetic和Melodic的同学请注意!

2022-11-21

 

不知道各位使用Kinetic和Melodic的小伙伴最近有木有遇到这样的一个问题:之前好端端的一套代码,在重装了Ubuntu和ROS之后,突然运行报错了:

是的,你没看错,确实是黑底红字的error。到底咋回事,下面看看官方的说明。

一、官方说明

关于这个问题的最早消息,是在github上ROS源码项目的Pull requests里,原文网址:

https://github.com/ros/joint_state_publisher/pull/31

大致意思就是,原来的joint_state_publisher功能包将会分裂成两个不同的包:

其中一个,名字还是joint_state_publisher,只是不带GUI界面。

另一个,名字变成joint_state_publisher_gui,带有GUI界面。

这是什么意思呢?这就要从joint_state_publisher的用法讲起:

我们知道,在ROS里描述机器人模型,使用的是urdf文件。在运行程序的launch文件中,我们会将这个urdf文件名赋值到到环境变量robot_description。然后再启动joint_state_publisher包里的joint_state_publisher节点,它会自动解析robot_description里的关节(joint)名称和角度,发送到主题sensor_msgs/JointState里。这样我们就能在Rviz里看到机器人的关节处于一个初始的弯曲角度。

在很多的ROS教程的urdf的章节,会特别提到use_gui这个bool类型变量。use_gui的默认值是false,这时候运行的Rviz,只会显示机器人的模型和关节初始角度。当use_gui被赋值为true的时候,除了Rviz会显示机器人的模型和关节初始角度,还会额外弹出一个小窗口,里面有一系列调节数值的滑杆,每个滑杆都和urdf里的关节角度值有所对应,这样就能通过拖动这个窗口里的滑杆,控制Rviz里的机器人模型的关节角度。这个功能在标定一些传感器参数(比如Kinect立体相机)和构建机器人urdf模型的时候常常会用到。

按照官方的说法,将会去除使用use_gui来决定joint_state_publisher运行状态的机制,直接将joint_state_publisher分拆成带滑杆窗口和不带滑杆窗口的两个不同功能包。这么做的理由是可以保持joint_state_publisher处于一个依赖比较少的轻松状态(毕竟QtGUI依赖库确实太大了)。

二、具体的影响

1. 如果只是使用joint_state_publisher发布机器人关节的默认角度,那么恭喜你,这次的分裂对你没有影响。

2. 如果在使用joint_state_publisher的同时,还将use_gui赋值为true,那么在新的版本里,会得到如下error提示:

程序报错退出,Rviz无法启动。

3. 在我们的测试当中,发现似乎只有在2020年1月之后新安装的ROS系统才会受到这个影响。在2020年1月之前安装的ROS系统,无论Kinetic还是Melodic,都不会出现上述问题,但是1月份之后重装系统,就会出现这个问题。说明这里面还存在版本同步的问题,具备一定的隐蔽性。

三、解决方法

1. 如果现在已安装的ROS版本没有出现上述问题,可以暂不理会。如果已经遇到关于joint_state_publisher的运行error,请按照如下步骤进行调整。

2. 首先是安装新的joint_state_publisher_gui功能包。

如果是Kinetic版本,运行如下指令:

sudo apt update

sudo apt install ros-kinetic-joint-state-publisher-gui

如果是Melodic版本,运行如下指令:

sudo apt update

sudo apt install ros-melodic-joint-state-publisher-gui

3. 修改launch文件,将里面的joint_state_publisher修改为joint_state_publisher_gui。

4. 重新编译和运行新程序。

 

 

更多产品了解

欢迎扫码加入云巴巴企业数字化交流服务群

产品交流、问题咨询、专业测评

都在这里!

 

热门数字化产品

微加云学院企业培训平台微加云学院企业培训平台,多种培训模式,满足不同需求,培训更灵活,实时掌握学习进度,自动生成学习数据,帮管理者提升培训效果。提供高质量的培训课程,解决企业内部讲师少、课程研发能力弱的问题,将反复型培训流程化,提高效率,高性价比工具,降低培训成本。
腾讯云微搭低代码WeDa腾讯云微搭低代码是高效、高性能的低代码开发平台。腾讯云微搭低代码以云开发作为底层支撑,通过行业化模板、拖拽式组件和可视化配置快速构建多端应用(小程序、H5 、PC Web 应用等),免去了代码编写工作,让您能够完全专注于业务场景。
Tita OKRs-E企业目标管理平台拥抱人员管理新时代,人与组织融为一体,管理的内核是激活人心,实现企业的可持续发展。⼀个完整的⽬标管理框架,包含⽬标制定、⽬标达成检验,以及达成关键结果的具体执⾏计划。
北森coreHR人力资源管理系统北森coreHR人力资源管理系统通过创新的一体化HR SaaS及人才管理平台 —— iTalentX,北森为中国企业提供人力资源管理场景中所有技术和产品,包括HR软件、人才管理技术、员工服务生态、低代码平台的端到端整体解决方案。帮助企业实现覆盖员工招募、入职、管理到离职的全生命周期的数字化管理,快速提升人力资源管理效率、人才管理能力、帮助员工成长,实现智慧决策。
快书编标系统快书编标系统强大易用的专业编标工具,让零基础的人也可以快速上手,轻松完成标书制作。专属企业的编标机器人,企业内部资源共享,有序管理,形成私有且易于管理的企业资源库。快书编标帮助个人提升工作效率,帮助企业实现业绩持续增长,为社会创造更多价值。
为你推荐
直播间在线人数卡在500上不去?天志互联抽盒系统从互动率破局

抖音算法推流核心指标是互动率而非GMV。天志互联直播抽盒系统从订单秒级上屏、一键拆盒、氛围引爆三个维度拉高互动率,驱动算法推流的正循环。

2026-06-26
品牌联名越做越亏?天志互联用游戏化体验共创重新定义IP营销

从"换皮联名"到"游戏化体验共创"——拆解彩棠敦煌联名案例的壁画修复小游戏设计逻辑、奶茶品牌联名翻车教训和中小品牌三条低成本高ROI的IP联名路径。

2026-06-26
一个人也能搭游戏化运营体系?低代码时代品牌运营的乐高式搭建指南

低代码时代品牌游戏化运营体系的"乐高式"搭建指南——从选模板、搭积分闭环、数据迭代到多活动并行管理和团队交接的全流程实操方法。

2026-06-26
私域社群打开率跌破3%以后:一个快消品牌的游戏化自救实验

一个快消品牌用游戏化方法三个月救活240个死群的完整复盘——从签到排行榜、互动任务、习惯养成到赛季制防疲劳的六周运营节奏拆解。

2026-06-26
品牌私域裂变怎么设计才不被骂?游戏化社交裂变的三个底线原则

游戏化社交裂变的三个底线原则深度拆解——让转发不像广告、让奖品有炫耀价值、给用户不转发的自由,加3%超级用户识别策略和三个常见翻车点避坑指南。

2026-06-26
查看更多