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

g_gemignani's profile - activity

2018-03-27 06:51:54 -0500 received badge  Good Question (source)
2016-04-28 09:04:58 -0500 received badge  Nice Question (source)
2016-03-24 09:59:32 -0500 received badge  Famous Question (source)
2016-03-20 03:31:35 -0500 received badge  Famous Question (source)
2016-02-04 11:07:23 -0500 received badge  Student (source)
2015-12-26 14:11:20 -0500 received badge  Notable Question (source)
2015-12-16 20:52:25 -0500 received badge  Notable Question (source)
2015-12-04 22:24:50 -0500 received badge  Popular Question (source)
2015-11-18 12:47:41 -0500 received badge  Popular Question (source)
2015-11-13 03:56:01 -0500 received badge  Editor (source)
2015-11-11 10:10:26 -0500 asked a question nav2d_karto: LocalizedRangeScan contains unexpected numbers of range readings

Hello, I was able to run the third nav2d tutorial, mapping the example world provided in simulation. At this point, I tried to create a map playing a bag recorded with our robot (the bag seems ok since I was able to use it both with hector_slam and gmapping). The launch file adopted is the following:

<launch>

    <param name="use_sim_time" value="true" />
    <rosparam file="ros.yaml"/>

    <!-- Start Mapper to genreate map from laser scans -->
    <node name="Mapper" pkg="nav2d_karto" type="mapper">
        <remap from="scan" to="scan_front"/>
        <rosparam file="mapper.yaml"/>
    </node>

    <!-- RVIZ to view the visualization -->
    <node name="RVIZ" pkg="rviz" type="rviz" args=" -d $(find nav2d_tutorials)/param/tutorial3.rviz" />

</launch>

where ros.yaml is:

# Defines topics services and frames for all modules

### TF frames #############################################
laser_frame: base_front_laser_link
robot_frame: base_link
odometry_frame: odom
offset_frame: offset
map_frame: map

### ROS topics ############################################
map_topic: map
laser_topic: scan_front

### ROS services ##########################################
map_service: static_map

and mapper.yaml is:

### Mapper ################################################

grid_resolution: 0.1
range_threshold: 10.0
map_update_rate: 5
publish_pose_graph: true
max_covariance: 0.01
transform_publish_period: 0.1
min_map_size: 20

### Localizer #############################################

min_particles: 2500
max_particles: 10000

### Karto #################################################

# For a full list of available parameters and their
# corresponding default values, see OpenKarto/OpenMapper.h

MinimumTravelDistance: 1.0
MinimumTravelHeading: 0.52
LoopSearchMaximumDistance: 10.0

###########################################################

However, when I run the launch file, I repeatedly get the following error:

...
[/Mapper ERROR 1447255247.422253465, 1446138392.065241589]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.473642245, 1446138392.166068413]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.523607012, 1446138392.266683794]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.573577659, 1446138392.367428587]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.573836632, 1446138392.367428587]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.624776753, 1446138392.468281149]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.674386008, 1446138392.569080442]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.724970486, 1446138392.669702679]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.775455585, 1446138392.770533571]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.775564465, 1446138392.770533571]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
...

Am I missing something or there is a problem with the code?

Thank you so much for your help!

EDIT

I was able to solve the problem. The laser scanner driver that I am using is publishing 450 laser readings instead of the expected 451. I was able to use this mapper by replacing the line

m_NumberOfRangeReadings = static_cast<kt_int32u>(math::Round((GetMaximumAngle() - GetMinimumAngle()) / GetAngularResolution()) + 1);

with the line

m_NumberOfRangeReadings = static_cast<kt_int32u>(math::Round((GetMaximumAngle() - GetMinimumAngle()) / GetAngularResolution()));

in the nav2d_karto/OpenKarto/source/OpenKarto/Sensor.h file.

2015-11-11 10:10:26 -0500 asked a question nav2d_karto

Hello, I was able to run the third tutorial, mapping the example world provided in simulation. At this point, I tried to create a map playing a bag recorded with our robot (the bag seems ok since I was able to use it both with hector_slam and gmapping). The launch file adopted is the following:

<launch>

    <param name="use_sim_time" value="true" />
    <rosparam file="ros.yaml"/>

    <!-- Start Mapper to genreate map from laser scans -->
    <node name="Mapper" pkg="nav2d_karto" type="mapper">
        <remap from="scan" to="scan_front"/>
        <rosparam file="mapper.yaml"/>
    </node>

    <!-- RVIZ to view the visualization -->
    <node name="RVIZ" pkg="rviz" type="rviz" args=" -d $(find nav2d_tutorials)/param/tutorial3.rviz" />

</launch>

where ros.yaml is:

# Defines topics services and frames for all modules

### TF frames #############################################
laser_frame: base_front_laser_link
robot_frame: base_link
odometry_frame: odom
offset_frame: offset
map_frame: map

### ROS topics ############################################
map_topic: map
laser_topic: scan_front

### ROS services ##########################################
map_service: static_map

and mapper.yaml is:

### Mapper ################################################

grid_resolution: 0.1
range_threshold: 10.0
map_update_rate: 5
publish_pose_graph: true
max_covariance: 0.01
transform_publish_period: 0.1
min_map_size: 20

### Localizer #############################################

min_particles: 2500
max_particles: 10000

### Karto #################################################

# For a full list of available parameters and their
# corresponding default values, see OpenKarto/OpenMapper.h

MinimumTravelDistance: 1.0
MinimumTravelHeading: 0.52
LoopSearchMaximumDistance: 10.0

###########################################################

However, when I run the launch file, I repeatedly get the following error:

...
[/Mapper ERROR 1447255247.422253465, 1446138392.065241589]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.473642245, 1446138392.166068413]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.523607012, 1446138392.266683794]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.573577659, 1446138392.367428587]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.573836632, 1446138392.367428587]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.624776753, 1446138392.468281149]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.674386008, 1446138392.569080442]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.724970486, 1446138392.669702679]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.775455585, 1446138392.770533571]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
[/Mapper ERROR 1447255247.775564465, 1446138392.770533571]: LaserRangeFinder::Validate() - LocalizedRangeScan contains 450 range readings, expected 451
...

Am I missing something or there is a problem with the code?

Thank you so much for your help!