rviz里查看nav_msgs/Path

有一次需要写一个简单的Publisher程序,发布一段路径,不过是没有在机器人程序的环境下。消息的类型是nav_msgs/Path

1
2
std_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之类错误,可以这样解决:

  1. 把global fixed frame设成topic所在的坐标系,按照上图的显示,应该改为my_frame
  2. 发布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里会报错:
frame[] does not exists.png

经过以上设置,就可以在rviz查看nav_msgs/Path了

参考:
RVIZ中的fixed frame选项
rviz无法显示的问题