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

Revision history [back]

I've come one step closer to the root of the problem. This seems to be a bug in laser_filters. I tried reproducing this in Gazebo to rule out hardware problems, and this is what I get when visualizing the /tilt_scan_shadow_filtered topic:

transformed point cloud

The blue points on the side have an average height of 0.003 m, the red ones in the middle have an average height of -0.018 m. In Gazebo, all points are still removed by sac_ground_removal, but on the real PR2 I've been working with only the red/yellow/green points in the middle are removed, and the blue ones remain. This is exactly what I am seeing.

This is clearly a bug in the scan_to_cloud_filter_chain from laser_filters; I tried removing everything from the filter chain except the LaserScanAngularBoundsFilter, and the problem is still there. The "dent" in the point clouds is not present in the original scans:

tilt scan

I guess the next step is to tweak the parameters of sac_ground_removal. Will report back after trying this.

How to reproduce:

roslaunch pr2_empty_world.launch
roslaunch pr2_2dnav_local pr2_2dnav.launch

I've come one step closer to the root of the problem. This seems to be a bug in laser_filters. I tried reproducing this in Gazebo to rule out hardware problems, and this is what I get when visualizing the /tilt_scan_shadow_filtered topic:

transformed point cloud

The blue points on the side have an average height of 0.003 m, the red ones in the middle have an average height of -0.018 m. In Gazebo, all points are still removed by sac_ground_removal, but on the real PR2 I've been working with only the red/yellow/green points in the middle are removed, and the blue ones remain. This is exactly what I am seeing.

This is clearly a bug in the scan_to_cloud_filter_chain from laser_filters; I tried removing everything from the filter chain except the LaserScanAngularBoundsFilter, and the problem is still there. The "dent" in the point clouds is not present in the original scans:

tilt scan

I guess the next step is to tweak the parameters of sac_ground_removal. Will report back after trying this.

How to reproduce:reproduce (Electric):

roslaunch pr2_gazebo pr2_empty_world.launch
roslaunch pr2_2dnav_local pr2_2dnav.launch

Note: seems solved, see Update at the end

I've come one step closer to the root of the problem. This seems to be a bug in laser_filters. I tried reproducing this in Gazebo to rule out hardware problems, and this is what I get when visualizing the /tilt_scan_shadow_filtered topic:

transformed point cloud

The blue points on the side have an average height of 0.003 m, the red ones in the middle have an average height of -0.018 m. In Gazebo, all points are still removed by sac_ground_removal, but on the real PR2 I've been working with only the red/yellow/green points in the middle are removed, and the blue ones remain. This is exactly what I am seeing.

This is clearly a bug in the scan_to_cloud_filter_chain from laser_filters; I tried removing everything from the filter chain except the LaserScanAngularBoundsFilter, and the problem is still there. The "dent" in the point clouds is not present in the original scans:

tilt scan

I guess the next step is to tweak the parameters of sac_ground_removal. Will report back after trying this.

How to reproduce (Electric):

roslaunch pr2_gazebo pr2_empty_world.launch
roslaunch pr2_2dnav_local pr2_2dnav.launch

Update: It's not a bug, it's a feature. To disable it, set the parameter use_hack of the scan_to_cloud_filter_chain node to false, for example like this (in pr2_navigation_perception/lasers_and_filters.xml):

<node pkg="laser_filters" type="scan_to_cloud_filter_chain" respawn="true" machine="c2" name="tilt_shadow_filter">
  ...
  <param name="use_hack" value="false" />
</node>

Note: In Fuerte, the parameter is called incident_angle_correction.

Note: seems solved, see Update at the end

I've come one step closer to the root of the problem. This seems to be a bug in laser_filters. I tried reproducing this in Gazebo to rule out hardware problems, and this is what I get when visualizing the /tilt_scan_shadow_filtered topic:

transformed point cloud

The blue points on the side have an average height of 0.003 m, the red ones in the middle have an average height of -0.018 m. In Gazebo, all points are still removed by sac_ground_removal, but on the real PR2 I've been working with only the red/yellow/green points in the middle are removed, and the blue ones remain. This is exactly what I am seeing.

This is clearly a bug in the scan_to_cloud_filter_chain from laser_filters; I tried removing everything from the filter chain except the LaserScanAngularBoundsFilter, and the problem is still there. The "dent" in the point clouds is not present in the original scans:

tilt scan

I guess the next step is to tweak the parameters of sac_ground_removal. Will report back after trying this.

How to reproduce (Electric):

roslaunch pr2_gazebo pr2_empty_world.launch
roslaunch pr2_2dnav_local pr2_2dnav.launch

Update: It's not a bug, it's a feature. To disable it, set the parameter use_hack of the scan_to_cloud_filter_chain node to false, for example like this (in pr2_navigation_perception/lasers_and_filters.xml):

<node pkg="laser_filters" type="scan_to_cloud_filter_chain" respawn="true" machine="c2" name="tilt_shadow_filter">
  ...
  <param name="use_hack" value="false" />
</node>

Note: In Fuerte, the parameter is called incident_angle_correction.

Note: solved, see Update update at the end

I've come one step closer to found the root of the problem. This seems to be a bug in laser_filters. I tried reproducing this in Gazebo to rule out hardware problems, and this is what I get when visualizing the /tilt_scan_shadow_filtered topic:

transformed point cloud

The blue points on the side have an average height of 0.003 m, the red ones in the middle have an average height of -0.018 m. In Gazebo, all points are still removed by sac_ground_removal, but on the real PR2 I've been working with only the red/yellow/green points in the middle are removed, and the blue ones remain. This is exactly what I am seeing.

This is clearly a bug in the scan_to_cloud_filter_chain from laser_filters; I tried removing everything from the filter chain except the LaserScanAngularBoundsFilter, and the problem is still there. The "dent" in the point clouds is not present in the original scans:

tilt scan

How to reproduce (Electric):

roslaunch pr2_gazebo pr2_empty_world.launch
roslaunch pr2_2dnav_local pr2_2dnav.launch

Update: It's not a bug, it's a feature. To disable it, set the parameter use_hack of the scan_to_cloud_filter_chain node to false, for example like this (in pr2_navigation_perception/lasers_and_filters.xml):

<node pkg="laser_filters" type="scan_to_cloud_filter_chain" respawn="true" machine="c2" name="tilt_shadow_filter">
  ...
  <param name="use_hack" value="false" />
</node>

Note: In Fuerte, the parameter is called incident_angle_correction.

This solved the problem on the real (not simulated) PR2.