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

Revision history [back]

Tentative answer as I cannot test on the robot at the moment:

It looks like the following function in Karto.h

inline const PointVectorDouble& GetPointReadings(kt_bool wantFiltered = false) const

is NEVER called with wantFiltered = true And there is no parameter for adjusting this. Thus, Karto's mapper uses measurements whose range is smaller than the LiDAR's min_range. I think these don't show up in RViz exactly because they are below min_range; RViz probably filters them out.

Tentative answer as I cannot test on the robot at the moment:

It looks like the following function in Karto.h

inline const PointVectorDouble& GetPointReadings(kt_bool wantFiltered = false) const

is NEVER called with wantFiltered = true And there is no parameter for adjusting this. Thus, Karto's mapper uses measurements whose range is smaller than the LiDAR's min_range. I think these don't show up in RViz exactly because they are below min_range; RViz probably filters them out.

PS. The reason this doesn't occur in simulation is because the simulated LiDAR measurements are always between min_range and max_range

Tentative answer as I cannot test on the robot at the moment:

It looks like the following function in Karto.h

inline const PointVectorDouble& GetPointReadings(kt_bool wantFiltered = false) const

is NEVER called with wantFiltered = true And there is no parameter for adjusting this. Thus, Karto's mapper uses measurements whose range is smaller than the LiDAR's min_range. I think these don't show up in RViz exactly because they are below min_range; RViz probably filters them out.

See: https://github.com/ros-perception/open_karto/pull/9

PS. The reason this doesn't occur in simulation is because the simulated LiDAR measurements are always between min_range and max_range

It looks like the following function in Karto.h

inline const PointVectorDouble& GetPointReadings(kt_bool wantFiltered = false) const

is NEVER called with wantFiltered = true And there is no parameter for adjusting this. Thus, Karto's mapper uses measurements whose range is smaller than the LiDAR's min_range. I think these don't show up in RViz exactly because they are below min_range; RViz probably filters them out.

See: Edit: I opened a pull request: https://github.com/ros-perception/open_karto/pull/9

PS. The reason this doesn't occur in simulation is because the simulated LiDAR measurements are always between min_range and max_range