有一次需要写一个简单的Publisher程序,发布一段路径,不过是没有在机器人程序的环境下。消息的类型是nav_msgs/Path
:1
2std_msgs/Header header
geometry_msgs/PoseStamped[] poses
注意poses是个带header的vector,也就是说消息里有两个相同的header,这是不太好的地方。
rviz里的global frame是map
,如果fixed frame
选项设置不正确,那么就会无法显示显示相应的数据信息,并提示一下错误: For frame [XX]: Fixed Frame [map] does not exist
如果rviz显示不了topic,报frame 、transform之类错误,可以这样解决:
- 把global fixed frame设成topic所在的坐标系,按照上图的显示,应该改为my_frame
- 发布global fixed frame到topic所在坐标系的tf关系,比如使用static_transform_publisher
1 | <node args="-5 -5 0 0 0 0 1 map my_frame 10" pkg="tf" name="map_to_my_frame" type="static_transform_publisher"/> |
如果上面的nav_msgs/Path少设置了header,rviz里会报错:
经过以上设置,就可以在rviz查看nav_msgs/Path了