[ROS] 发布nav_msgs::Path类型的消息,RVIZ成功订阅却不显示的问题

最近想要发布一个path类型的消息,在RVIZ上一直显示不出来,也没有报错.在详细查看了rostopic echo出来的数据以后发现了问题.

问题描述:

发布nav_msgs::Path类型的一条path,已正确赋值.在启动后能够通过rostopic echo出来正确的数据.在RVIZ中也能够正确订阅到这个话题,RVIZ显示的状态也是OK,frame_id也正确.但是,在画面上没有显示.

问题解决:

通过rostopic echo一个能够正常显示的path话题,和当前的话题进行比较.

发现当前话题是一个header,一个poses(poses下再有一个header和一个pose);然后循环这个结构(有多个header/poses);

而正常显示的topic的显示是一个header,一个poses(下有好多pose);

于是发现了这两个topic所包含的数据的类型不太一致.于是想到是不是定义nav_msgs::Path类型的path的位置不正确.

一开始是定义在函数调用处的,这样就导致了每次给这个path赋值,都是一个新的path,也就出现了很多poses,而每个poses只有一个pose.

最终,将path定义在外部,也就是和publisher定义在一起,问题就得到了解决.

你可能感兴趣的:(ROS,problem)