laserscan数据格式

来源:互联网 发布:父母的神逻辑知乎 编辑:程序博客网 时间:2024/06/03 21:03

本文介绍了LaserScan消息的格式以及各个参数的意义,并且在文章的最后编写了一个subscriber用来读取激光数据.

LaserScan是ROS定义的激光数据格式,消息定义在sensor_msgs/LaserScan.msg文件中,路径为:/opt/ros/indigo/share/sensor_msgs/msg.

LaserScan消息的示例如下:

header:   seq: 101732  stamp:     secs: 1487324446    nsecs: 379890600  frame_id: laserangle_min: -3.12413907051angle_max: 3.14159274101angle_increment: 0.0174532923847time_increment: 1.55012827463e-07scan_time: 5.56496015633e-05range_min: 0.15000000596range_max: 8.0ranges: [inf, inf, 5.64900016784668, 2.875999927520752, inf, 5.743000030517578, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, 5.946000099182129, inf, inf, inf, 5.938000202178955, 5.849999904632568, inf, 5.8470001220703125, inf, inf, inf, inf, inf, inf, 6.646999835968018, inf, inf, inf, inf, inf, inf, 0.2150000035762787, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, 5.465000152587891, inf, 3.8970000743865967, inf, 0.16300000250339508, inf, inf, inf, inf, inf, inf, inf, inf, 0.8199999928474426, inf, 0.7910000085830688, 0.7450000047683716, inf, 0.7210000157356262, 0.7120000123977661, inf, 0.7160000205039978, inf, 0.7260000109672546, 0.7480000257492065, inf, 0.7749999761581421, inf, 0.7950000166893005, inf, 0.8240000009536743, 0.8500000238418579, inf, 0.8830000162124634, inf, 0.8759999871253967, 0.8539999723434448, inf, 0.8349999785423279, 0.8199999928474426, inf, 0.8059999942779541, inf, 0.7940000295639038, 0.781000018119812, inf, 0.7699999809265137, 0.7599999904632568, inf, 0.7519999742507935, inf, 0.7419999837875366, 0.7360000014305115, inf, 0.7300000190734863, 0.7239999771118164, inf, 0.7179999947547913, inf, 0.7149999737739563, 0.7120000123977661, inf, 0.7099999785423279, inf, 0.7110000252723694, 0.7120000123977661, inf, 0.7120000123977661, 0.7149999737739563, inf, inf, 0.9509999752044678, 0.9440000057220459, inf, 0.9459999799728394, 0.9459999799728394, inf, 0.9490000009536743, inf, 0.953000009059906, 0.9589999914169312, inf, 0.9639999866485596, inf, 0.968999981880188, 0.9769999980926514, inf, 0.9850000143051147, inf, 0.9940000176429749, 1.0049999952316284, inf, 1.0149999856948853, inf, 1.0269999504089355, 1.0410000085830688, inf, 1.4049999713897705, inf, 1.3600000143051147, inf, 1.468000054359436, 1.402999997138977, inf, 1.343999981880188, 1.2929999828338623, inf, 1.246000051498413, inf, 1.2039999961853027, 1.1670000553131104, inf, 1.1299999952316284, 1.100000023841858, inf, 1.0720000267028809, 1.0429999828338623, inf, 1.0190000534057617, inf, 0.996999979019165, 0.9729999899864197, inf, 0.9520000219345093, inf, 0.9340000152587891, 0.9240000247955322, inf, 0.9160000085830688, inf, inf, 0.859000027179718, inf, 0.8600000143051147, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, 0.7789999842643738, inf, 0.7879999876022339, inf, inf, inf, inf, 0.17100000381469727, inf, 0.17100000381469727, 0.1720000058412552, inf, 0.17299999296665192, inf, 0.17399999499320984, inf, inf, inf, inf, inf, inf, 0.8230000138282776, inf, 0.8320000171661377, inf, 0.8410000205039978, 0.8519999980926514, inf, inf, inf, inf, inf, inf, 0.9110000133514404, inf, 0.9240000247955322, 0.9419999718666077, inf, 0.9620000123977661, 0.9810000061988831, inf, 1.0069999694824219, inf, 1.0299999713897705, inf, 1.0579999685287476, 1.0850000381469727, inf, 1.1180000305175781, inf, 1.149999976158142, 1.187999963760376, inf, 1.225000023841858, inf, 1.2710000276565552, 1.3279999494552612, inf, 0.6050000190734863, inf, 0.5920000076293945, 0.5960000157356262, inf, inf, inf, 0.6000000238418579, 0.5929999947547913, inf, 0.5910000205039978, inf, 0.597000002861023, inf, 1.2589999437332153, inf, 1.2430000305175781, inf, 1.25, inf, inf, 1.184000015258789, inf, 1.2059999704360962, 0.1679999977350235, inf, 0.16599999368190765, inf, 1.597000002861023, inf, inf, inf, inf, inf, inf, inf, inf, inf, 0.5709999799728394, inf, inf, 0.21699999272823334, inf, inf, inf, inf, inf, inf, inf, 1.777999997138977, inf, inf, inf, 5.8379998207092285, inf, 5.841000080108643, 5.8470001220703125, inf, 6.051000118255615, inf, 6.051000118255615, 6.1570000648498535, inf, inf, inf, 7.072000026702881, 6.934999942779541, inf, inf, 7.072000026702881, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, 2.7119998931884766, inf]intensities: [0.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 47.0, 0.0, 0.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 47.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 47.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 47.0, 0.0, 47.0, 0.0, 47.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 47.0, 0.0, 0.0, 47.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 0.0, 47.0, 0.0, 47.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 47.0, 0.0, 47.0, 0.0, 0.0, 0.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 0.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 0.0, 47.0, 0.0, 47.0, 0.0, 47.0, 0.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 47.0, 0.0, 0.0, 47.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 47.0, 0.0, 0.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 47.0, 0.0, 47.0, 47.0, 0.0, 0.0, 0.0, 47.0, 47.0, 0.0, 0.0, 47.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 47.0, 0.0]

上面的例子可以看出LaserScan的格式如下:

std_msgs/Header headerfloat32 angle_minfloat32 angle_maxfloat32 angle_incrementfloat32 time_incrementfloat32 scan_timefloat32 range_minfloat32 range_maxfloat32[] rangesfloat32[] intensities

下面对其中的参数进行逐个解释:

Header header            # Header也是一个结构体,包含了seq,stamp,frame_id,其中seq指的是扫描顺序增加的id,stamp包含了开始扫描的时间和与开始扫描的时间差,frame_id是扫描的参考系名称.注意扫描是逆时针从正前方开始扫描的.float32 angle_min        # 开始扫描的角度(角度)float32 angle_max        # 结束扫描的角度(角度)float32 angle_increment  # 每一次扫描增加的角度(角度)float32 time_increment   # 测量的时间间隔(s)float32 scan_time        # 扫描的时间间隔(s)float32 range_min        # 距离最小值(m)float32 range_max        # 距离最大值(m)float32[] ranges         # 距离数组(长度360)float32[] intensities    # 与设备有关,强度数组(长度360)

了解了LaserScan的数据格式,下面将编写一个订阅器用来接收LaserScan消息(假设roscore和laser都已经启动):

#!/usr/bin/env pythonimport rospyfrom sensor_msgs.msg import LaserScan##代码存放路径 your/workspace/src/packagename/scripts/listener.pydef callback(scan):    #LaserScan的数据结构    #std_msgs/Header header    #float32 angle_min    #float32 angle_max    #float32 angle_increment    #float32 time_increment    #float32 scan_time    #float32 range_min    #float32 range_max    #float32[] ranges    #float32[] intensities    rospy.loginfo('header: {0}'.format(scan))def listener():    rospy.init_node('lasr_listener', anonymous=False)    rospy.Subscriber('scan', LaserScan,callback)    rospy.spin()if __name__ == '__main__':    listener()

之后编译运行rosrun yourpackagename listener.py就可以看到本文开头时候给出LaserScan示例一样的数据了.

原创粉丝点击