一些常见的ROS消息存储的格式,后期在使用之前需要进行转换。MATLAB能够帮助你转换常见的ROS消息格式,有利于简化应用。在本例,你可以探索激光扫描仪的消息类型,有关解压和压缩图片以及点云方面的处理工作。 预备知识:基本ROS消息的使用。
载入消息实例
首先,载入本例将使用的消息样例,这些消息来自多种机器人传感器。调用“exampleHelperROSLoadMessages”载入消息: exampleHelperROSLoadMessages
激光扫描仪消息
在机器人学领域,激光扫描仪是常见的传感器,通过创建合适类型的空消息,你可以看到ROS中激光扫描仪的标准消息格式。 使用“rosmessage”创建消息: emptyscan = rosmessage(rostype.sensor_msgs_LaserScan) emptyscan =
ROS LaserScan message with properties:
MessageType: 'sensor_msgs/LaserScan'
Header: [1x1 Header]
AngleMin: 0
AngleMax: 0
AngleIncrement: 0
TimeIncrement: 0
ScanTime: 0
RangeMin: 0
RangeMax: 0
Ranges: [0x1 single]
Intensities: [0x1 single]
由于你创建的是空消息,因此“emptyscan”没有包含任何有意义的数据。方便起见,“exampleHelperROSLoadMessages”函数载入了激光扫描仪的消息,该消息已经填充好数据并存储在“scan”变量中。检测“scan”变量,消息中最主要的数据时“Ranges”字段,“Ranges”中的数据时一个640*1的以很小的角度增量存储障碍距离阵列。 scan scan =
ROS LaserScan message with properties:
MessageType: 'sensor_msgs/LaserScan'
Header: [1x1 Header]
AngleMin: -0.5467
AngleMax: 0.5467
AngleIncrement: 0.0017
TimeIncrement: 0
ScanTime: 0.0330
RangeMin: 0.4500
RangeMax: 10
Ranges: [640x1 single]
Intensities: [0x1 single]
使用“readCartesian”函数,使用者可以获得笛卡尔坐标系下的测量点。 xy = readCartesian(scan) xy =
0.7886 -0.3803
0.7887 -0.3786
0.7907 -0.3780
0.7908 -0.3763
0.7909 -0.3747
0.7929 -0.3740
0.7924 -0.3721
0