ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Ok, I figured that out. As Ivan suggested, I needed to revise my tf-tree. A working csm launchfile here:

<launch>
  <node pkg="canonical_scan_matcher" type="csm_node" name="csm_node" output="screen" />
  <node pkg="tf" type="static_transform_publisher" name="base_link_to_openni" args="0.0 0.0 0.0 0 0 0.0 /base_link /openni_camera 100" />
  <node pkg="rviz" type="rviz" name="rviz"/>
</launch>

The static transform from /base_link to /openni_camera needs to be published as none of the preceding launchfiles defines a /base_link tf, and csm requires it. Maybe it is somehow possible to remap /base_link to /openni_camera in csm, this would be cleaner for this robot configuration, ie. when there is no robot, just a Kinect sensor. But for more complex robot configs, the /base_link will be needed anyway, I guess.

I suggest selecting /world as Fixed Frame in rviz. The odometry estimation works. Naturally, when carrying Kinect around in a room, because it's not possible to hold Kinect ideally parallel to the ground, Kinect's narrow fov and probably some more reasons the estimated odometry drifts in time. I'll probably try this approach with an IMU in the future, when I get one.

Ok, I figured that out. As Ivan suggested, I needed to revise my tf-tree. A working csm launchfile here:

<launch>
  <node pkg="canonical_scan_matcher" type="csm_node" name="csm_node" output="screen" />
  <node pkg="tf" type="static_transform_publisher" name="base_link_to_openni" args="0.0 0.0 0.0 0 0 0.0 /base_link /openni_camera 100" />
  <node pkg="rviz" type="rviz" name="rviz"/>
</launch>

The static transform from /base_link to /openni_camera needs to be published as none of the preceding launchfiles defines a /base_link tf, and csm requires it. Maybe it is somehow possible to remap /base_link to /openni_camera in csm, this would be cleaner for this robot configuration, ie. when there is no robot, just a Kinect sensor. But for more complex robot configs, the /base_link will be needed anyway, I guess.

I suggest selecting /world as Fixed Frame in rviz. The odometry estimation works. Naturally, when carrying Kinect around in a room, because it's not possible to hold Kinect ideally parallel to the ground, Kinect's narrow fov and probably some more reasons the estimated odometry drifts in time. I'll probably try this approach with an IMU in the future, when I get one.