ROS主题velodyne_msgs / VelodynePacket消息中包含什么数据?

时间:2019-07-16 21:52:17

标签: ros robotics lidar

我正在做一个重量轻的程序,以监视接收到的激光雷达光束。最好,由于重量轻,我不想缓存整个UDP数据包或点云数据。

问题是ROS消息velodyne_msgs / VelodynePacket中包含的数据是什么。此消息包含较小的数据,但我不知道它是否相关。

通过阅读有关该主题的Ros Wiki,但是velodynepackt的链接未提供有关内容的有用信息。

1 个答案:

答案 0 :(得分:0)

检查消息定义,以查看消息包含哪些字段及其类型。消息文件通常将具有说明性的字段名称,或具有描述字段的注释(## text)。您可以在线或本地查看消息定义。要在本地查看它们,请使用roscd进入包目录roscd <package_name>/msg,然后使用cat查看消息文件的内容。您的情况是:

roscd velodyne_msgs/msg cat VelodynePacket.msg cat VelodyneScan.msg

相关消息文件可从您链接到的页面在线获得: http://docs.ros.org/api/velodyne_msgs/html/msg/VelodyneScan.html http://docs.ros.org/api/velodyne_msgs/html/msg/VelodynePacket.html

关于创建轻量级应用程序的特定问题,您有几种选择。

  1. 使用提供的ROS消息并进行订阅。在大多数情况下,如果您没有大量的大数据传输,那么您会没事的,并且能够跟上实时数据。与ROS相关的大部分时间通常来自网络传输,因此,如果出现问题,则无需通过ROS传递数据。
  2. 将您的代码放入ROS Nodelet中。这为您提供了ROS数据抽象的优点,同时消除了节点之间发生的网络数据传输。这类似于使用指向数据字段的指针。
  3. 如果您确实不想要所有扫描数据,但仍想使用ROS,则可以编写自己的驱动程序节点。这将从LIDAR中读取您想要的数据,并丢弃您不需要的数据。您可以在该节点中进行原始数据处理(不需要ROS消息),也可以发布您关心的数据并在另一个节点中进行处理。