code-iai / iai_kinect2

Tools for using the Kinect One (Kinect v2) in ROS
Apache License 2.0
872 stars 517 forks source link

kinect2_bridge.launch did not publish point cloud #572

Open lianghongzhuo opened 3 years ago

lianghongzhuo commented 3 years ago

Please see https://github.com/ros-perception/image_pipeline/issues/668 for detail. I finally digger out that the issue is related to the launch file here. the depth to point cloud node should in another launch file and include here. Don't know why, it just works!

lianghongzhuo commented 3 years ago

More details: In the new launch file, I deleted the machine parameter. the whole launch file is like this (I only put qhd point, but other point types should be the same):

<launch>
    <arg name="base_name"         default="kinect2"/>
    <arg name="base_name_tf"      default="$(arg base_name)"/>
    <arg name="queue_size"        default="5"/>
    <arg name="nodelet_manager"   default="$(arg base_name)"/>
    <arg name="respawn"           default="true"/>
    <arg name="use_nodelet"       default="true"/>

    <!-- qhd point cloud (960 x 540) -->
    <node pkg="nodelet" type="nodelet" name="$(arg base_name)_points_xyzrgb_qhd" output="screen"
          args="load depth_image_proc/point_cloud_xyzrgb $(arg nodelet_manager)" respawn="$(arg respawn)">
        <remap from="rgb/camera_info"             to="$(arg base_name)/qhd/camera_info"/>
        <remap from="rgb/image_rect_color"        to="$(arg base_name)/qhd/image_color_rect"/>
        <remap from="depth_registered/image_rect" to="$(arg base_name)/qhd/image_depth_rect"/>
        <remap from="depth_registered/points"     to="$(arg base_name)/qhd/points"/>
        <param name="queue_size" type="int" value="$(arg queue_size)"/>
    </node>
</launch>