PointCloud2 exists, but NO Octomap in /move_group/monitored_planning_scene!!!!
I'm using ubuntu 16.04 on a Huawei Matebook-x, with kernel 4.15.0-91-generic. ROS distro: kinetic and version 1.12.14. Gazebo 7.
My issue is exactly the same as this one from 5 years ago, but that question is never answered.
I added 3D perception to MoveIt following Perception Pipeline Tutorial.
Content of niryo_one_moveit_config/config/sensors_3d.yaml
:
sensors:
- filtered_cloud_topic: filtered_cloud
max_range: 5.0
max_update_rate: 1.0
padding_offset: 0.1
padding_scale: 1.0
point_cloud_topic: /camera/depth/points
point_subsample: 1
sensor_plugin: occupancy_map_monitor/PointCloudOctomapUpdater
Content of niryo_one_moveit_config/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 niryo_one_moveit_config)/config/sensors_3d.yaml" />
<!-- Params for the octomap monitor -->
<!-- <param name="octomap_frame" type="string" value="some frame in which the robot moves" /> -->
<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="niryo_one" />
<include file="$(find niryo_one_moveit_config)/launch/$(arg moveit_sensor_manager)_moveit_sensor_manager.launch.xml" />
</launch>
It works for me, as shown in the following figure (I used RealSense plugin to simulate the camera).
And in /move_group/monitored_planning_scene
, I had actual content in octomap
:
name: "(noname)+"
robot_state:
joint_state:
header:
seq: 0
stamp:
secs: 428
nsecs: 194000000
frame_id: "/world"
name: [joint_1, joint_2, joint_3, joint_4, joint_5, joint_6, gripper_joint, left_clamp_joint,
left_rod_joint, right_gear_joint, right_clamp_joint, right_rod_joint]
position: [0.0002741740361669187, -0.005544641035825748, -0.0047824728172924935, -0.004096483894079128, -0.009302052764738278, -0.0036276511038133563, 2.7370436193052683e-06, -4.863704734958674e-06, 3.8067452639012345e-06, 3.5276141945317363e-06, -4.115511588409504e-06, -4.813747795928691e-06]
velocity: []
effort: []
multi_dof_joint_state:
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: "/world"
joint_names: []
transforms: []
twist: []
wrench: []
attached_collision_objects: []
is_diff: False
robot_model_name: "niryo_one"
fixed_frame_transforms:
-
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: "/world"
child_frame_id: "/world"
transform:
translation:
x: 0.0
y: 0.0
z: 0.0
rotation:
x: 0.0
y: 0.0
z: 0.0
w: 1.0
allowed_collision_matrix:
entry_names: []
entry_values: []
default_entry_names: []
default_entry_values: []
link_padding: []
link_scale: []
object_colors: []
world:
collision_objects: []
octomap:
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: "/world"
origin:
position:
x: 0.0
y: 0.0
z: 0.0
orientation:
x: 0.0
y: 0.0
z: 0.0
w: 1.0
octomap:
header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: ''
binary: False
id: "OcTree"
resolution: 0.025
data: [-70, -76, 96, 64, -86, -70, -76, 96, 64, 64, -70, -76, 96, 64, 64, -70, -76, 96, 64, 64, -70, -76, 96, 64, 64, -70, -76, 96, 64, 64, -70, -76, 96, 64, 64, -70, -76, 96, 64, 64, -70, -76, 96, 64, -32, 117, 0, 0, -64, -128, 117, 0, 0, -64, 64, 117, 0, 0, -64, 64, 117, 0, 0, -64, -64, 117, 0, 0, -64, -128, 117, 0, 0, -64, -32, ...]
is_diff: True
However, when tested on hardware, the octomap is not shown. The only difference is the point cloud topic. On hardware, the topic name is ...