depthimage_to_laserscan
功能
depthimage_to_laserscan 使一张深度图像 生成一个2D的激光雷达扫描图像
这个功能包使用的是 lazy 订阅,就是说只有有订阅者订阅 /scan的时候才订阅/image或者/camera_info
订阅的信息
1、/camera/depth/image_raw
sensor_msgs/Image 官网定义
这个功能包可以处理的图片的 图片像素变量类型是 float 和uint16
uint16应该会更快
/camera/depth/image_raw 里的data 是uint8
2、camera_info
通常不需要remampped camera_info这个变量 , 默认为 和image一个namespace
发布的消息
scan
sensor_msgs/LaserScan 官网定义
github网址
depthimage_to_laserscan github网址
这个版本里没有kinetic
这个软件的wiki上kinetic 的指示说下 indigo-devel版本 ,不知道会有什么问题
代码下载
git clone -b indigo-devel https://github.com/ros-perception/depthimage_to_laserscan.git
再在工作空间编译 没问题就可以了
我没有遇到依赖项什么的问题
简单运行
首先把depth carema 的link名称 改为camera_depth_frame 功能包默认是这个值 可以修改功能包也 ,简单的话改自己的link名称
执行
rosrun depthimage_to_laserscan depthimage_to_laserscan image:=/camera/depth/image_raw
结果
原本没有激光数据的就直接有了
在rviz中看 激光还是一条线 ,和面阵激光有差距
功能包里有
这个参数 ,应该可以设置希望输出的 激光的行数 ,即面阵激光
更改后在rivz中显示没有变化。
怀疑的原因是rviz中的激光显示,不会区分 是 几乘几的 激光数据 ,都是一个向量。
待完成内容
- [ ] 是否真正转化为了面阵激光,需要 研究它的源码 用mark 显示在rviz中 再看