问题描述:
一个假期没用husky跑导航,想重新试一下导航的功能,构建的过程还是难免遇到一些问题,在机器人上运行导航功能之后,远程运行RVIZ,但是这个时候有警告:
No tf data. Actual error: Fixed Frame [map] does not exist
这个警告导致无法在RVIZ中加载地图等信息,于是踏上了解决问题之路。
原因分析:
首先第一步当然是百度:
No tf data. Actual error: Fixed Frame [map] does not exist
因为不知道是什么原因造成的,这里看到一个还挺有用的帖子:
链接: link.
于是我用激光来测试了一下,想在RVIZ中看激光的数据的时候也出现了上述问题,所以新开了一个终端运行:
rosrun tf static_transform_publisher 0.0 0.0 0.0 0.0 0.0 0.0 map laser 100
这个时候激光的问题解决了,但是当用同样的方法去解决上述问题时,发现依旧不好使,这条解决方法就算行不通了,但是有一个启发是:因为缺少了map到别的坐标系的tf变换才出现了这个错误,于是打开了另一个仿真平台,用rqt_tf_tftree工具查看仿真和实物平台的tf差别,发现实物和仿真运行的tftree也是一样没问题的,这里有一个问题就是在机器人的主机运行
rosrun tf tf_monitor
与仿真平台相同,但是在远程机上运行就会发现看不到结果,于是这里就可以得出结论,是ROS多机通讯出了问题,于是仔细研究了一下,发现我的远程机和机器人的主机名字居然是一样的,这里就猜测是因为名字一样,导师ROS无法识别master是谁。
在尝试远程使用RVIZ时遇到了'Fixed Frame [map] does not exist'的警告,导致无法加载地图。问题源于ROS多机通讯中的命名冲突,由于远程机和机器人主机名相同,造成ROS无法正确识别master。解决方案是更改远程机的主机名,确保各节点间通讯正常。
4765





