介绍
利用octomap这个技术可以将深度i相机捕捉到的深度信息利用起来,在Rviz里面构建起机械臂的障碍物环境。
下载链接
ros终端理解敲下面几行命令就可以了,这里采用包的形式进行安装,如果感兴趣的还可以自己使用二进制安装研究。
sudo apt-get install ros-noetic-octomap-ros
sudo apt-get install ros-noetic-octomap-msgs
sudo apt-get install ros-noetic-octomap-server
sudo apt-get install ros-noetic-octomap-rviz-plugins
效果演示
运行深度相机,这里我采用的是仿真相机,其实实际的相机应该也有这个节点。rostopic list看一下就可以,这里我的深度相机节点是
/d435_link/points
修改地方处
在***_moveit_config下有两个文件夹
在config文件夹下修改sensors_3d.ymal文件,没有的话就自己创建一个。
# The name of this file shouldn't be changed, or else the Setup Assistant won't detect it
sensors:
- sensor_plugin: occupancy_map_monitor/PointCloudOctomapUpdater
point_cloud_topic: /d435_link/points
max_range: 5.0
point_subsample: 1
padding_offset: 0.1
padding_scale: 1.0
max_update_rate: 1.0
filtered_cloud_topic: filtered_cloud
在launch文件夹下修改sensor_manager.launch.xml文件
<launch>
<!-- This file makes it easy to include the settings for sensor managers -->
<!-- Params for 3D sensors config -->
<rosparam command="load" file="$(find ur5_moveit_config)/config/sensors_3d.yaml" />
<!-- Params for the octomap monitor -->
<param name="octomap_frame" type="string" value="world" />
<param name="octomap_resolution" type="double" value="0.025" />
<param name="max_range" type="double" value="5.0" />
<!-- Load the robot specific sensor manager; this sets the moveit_sensor_manager ROS parameter -->
<arg name="moveit_sensor_manager" default="ur5" />
<include file="$(find ur5_moveit_config)/launch/$(arg moveit_sensor_manager)_moveit_sensor_manager.launch.xml" />
</launch>
其次修改***_moveit_sensor_manager.launch.xml文件
<launch>
<!--//这个参数是octomap所在坐标系,可以自己指定-->
<param name="octomap_frame" type="string" value="odom_combined" />
<!--//octomap的分辨率,越小分辨率越高,越消耗系统资源。-->
<param name="octomap_resolution" type="double" value="0.02" />
<param name="max_range" type="double" value="5.0" />
<!--//将yaml文件里的参数传到ros参数服务器-->
<rosparam command="load" file="$(find ur5_moveit_config)/config/sensors_3d.yaml" />
</launch>