我有一个2D激光扫描数据,这意味着我有旋转激光传感器,它给我每个角度的物体距离(e.i. 60°2.5m),我需要在OpenCV中处理这些数据。在论坛上我发现我必须遵循这条路径: sensor_msgs :: LaserScan 转换为 sensor_msgs :: Image 而不是 OpenCV图像。 当我使用this命令将sensor_msgs :: LaserScan转换为ros图像格式时:
projector.transformLaserScanToPointCloud("/robot1/base_link",*msg_laser,cloud,listener);
我得到了包含数据向量的结构,这些数据向量充满了奇怪的值,如 [0] 101'e'或 [1] 163'£' ...... 当我尝试将此ros图像转换为OpenCV图像时,我收到错误:
[ERROR] [1461933013.832914106, 990.212000000]: Error in converting cloud to image message: No rgb field!!
这是有道理的,因为传感器只给出了没有颜色的强度值。但是我应该用错误的pointcloud2格式做什么?
感谢您的每一个建议, 马丁