0
$\begingroup$

Rosanswers logo

Hi!

I am using the ROS Navigation stack to navigate through known space. The robot is equipped with a 2D Laserscanner and a Kinect.

I want to use the kinect for obstacles that are too low or too high for the laser to detect. So for the costmap I created a voxel_grid with 3 voxels. The bottom and the top layer for the kinect and the middle layer for the Laserscan. I am converting the kinects pointcloud into two laserscans before using them with costmap.

Everything works fine except for one problem: when I approach an obstacle that only the kinect can detect (e.g. a small box on the floor) it works fine until I'm too close for the kinect to detect it (I'm in the deadzone of the kinect). What happens is that the obstacle gets raytraced out and the obstacle is erased from the costmap.

I tried different approaches, such as setting the kinects "clearing" parameter to false, but then dynamic obstacles (e.g. people) are stuck in the costmap.

Is there a straightforward way to prevent costmap to raytrace out obstacles that are too close?

The robot/kinect setup looks like this:

image description

Thanks for your help!


Originally posted by nyquist09 on ROS Answers with karma: 191 on 2015-10-20

Post score: 6

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

I could fix the issue.

I am using the pointcloud_to_laserscan node and tell the node to transform the pointcloud to a frame where the pointcloud actually begins (at the border of the deadzone). The next step is to tell the costmap that my newly created sensor sits at the border of the deadzone. What happens is that the raytracing starts from the origin of this newly created laser. That way obstacles in the deadzone don't get raytraced away, because the fake laser is in front of the deadzone.

image description


Originally posted by nyquist09 with karma: 191 on 2015-10-21

This answer was ACCEPTED on the original site

Post score: 1

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.