D435利用depthimage_to_laserscan将深度转为为激光图像

1.安装depthimage_to_laserscan包(下载源码到自己的工作空间catkinmake编译)  

  cd ~/catkin_ws/src  (将源码复制到这个目录下)
  cd ..
  catkin_make
2.

运行D435相应的launch文件,发布一系列话题,可以通过rostopic type命令用来查看所发布话题的消息类型

roslaunch realsense2_camera rs_rgbd.launch
3.

运行 depthimage_to_laserscan  (订阅话题image (sensor_msgs/Image)和camera_info (sensor_msgs/CameraInfo)发布                 scan (sensor_msgs/LaserScan)话题)

rosrun depthimage_to_laserscan  depthimage_to_laserscan image:=/camera/depth/image_rect_raw

4 运行rviz,添加LaserScan话题(rviz的设置可以看图)


可以自己编写launch文件,来运行D435节点和depthimage_to_laserscan(有些参数未设置)

<launch>
    <!-- start sensor-->      
         
   <include file="$(find realsense2_camera)/launch/rs_rgbd1.launch"></include>  

  <!-- Run the depthimage_to_laserscan node -->
  <node pkg="depthimage_to_laserscan" type="depthimage_to_laserscan" name="depthimage_to_laserscan" output="screen">
    <!--输入图像-->
     <remap from="image" to="/camera/depth/image_rect_raw"/>
    <!--输出激光数据的话题-->
    <remap from="scan" to="/scan" /> 
    <!--用于生成激光扫描的像素行数。对于每一列,扫描将返回在图像中垂直居中的那些像素的最小值。-->
    <param name="scan_height" value="10"/>
    <!--扫描之间的时间(秒)。 通常情况下,1.0 / frame_rate。 这个值不容易从连续的消息中计算出来,因此留给用户正确设置。   -->
    <param name="scan_time" value="0.03"/>
    <!--返回的最小范围(以米为单位)。小于该范围的输出将作为-Inf输出。-->
    <param name="range_min" value="0.45"/>
    <!--返回的最大范围(以米为单位)。大于此范围将输出为+ Inf。-->
    <param name="range_max" value="8.00"/>
  </node>
</launch>

参考:

https://blog.csdn.net/zqxf123456789/article/details/52484239

https://www.ncnynl.com/archives/201703/1420.html

http://wiki.ros.org/depthimage_to_laserscan

猜你喜欢

转载自blog.csdn.net/u012926144/article/details/80777734
今日推荐