Hector-Mapping resulting in a really messy map

asked 2021-03-29 20:49:18 -0500

sisko gravatar image

updated 2021-03-29 20:50:59 -0500

I am using Hector-mapping to map a simulated city environment but the map is so badly formed that it is unuseable.

image description

The image above shows my most recent attempt. The section highlighted in red is actually the same road previously mapped and highlighted in blue. The section highlighted in yellow should not even be there. As I mentioned before, the map is messy.

The following is the hector and static-transform nodes from my launch file :

<arg name="tf_map_scanmatch_transform_frame_name" default="scanmatcher_frame"/>
<arg name="base_frame" default="chasis"/>
<arg name="odom_frame" default="odom"/>
<arg name="pub_map_odom_transform" default="true"/>
<arg name="scan_subscriber_queue_size" default="5"/>
<arg name="scan_topic" default="hokuyo_scan"/>
<arg name="map_size" default="4096"/>

<node pkg="hector_mapping" type="hector_mapping" name="hector_mapping" output="screen">
    <!-- Frame names -->
    <param name="map_frame" value="map" />
    <param name="base_frame" value="$(arg base_frame)" />
    <param name="odom_frame" value="$(arg odom_frame)" />

    <!-- Tf use -->
    <param name="use_tf_scan_transformation" value="true"/>
    <param name="use_tf_pose_start_estimate" value="false"/>
    <param name="pub_map_odom_transform" value="$(arg pub_map_odom_transform)"/>

    <!-- Map size / start point -->
    <param name="map_resolution" value="0.050"/>
    <param name="map_size" value="$(arg map_size)"/>
    <param name="map_start_x" value="0.5"/>
    <param name="map_start_y" value="0.5" />
    <param name="map_multi_res_levels" value="2" />

    <!-- Map update parameters -->
    <param name="update_factor_free" value="0.4"/>
    <param name="update_factor_occupied" value="0.9" />    
    <param name="map_update_distance_thresh" value="0.4"/>
    <!-- <param name="map_update_distance_thresh" value="0.1"/> -->
    <param name="map_update_angle_thresh" value="0.06" />
    <!-- <param name="map_update_angle_thresh" value="0.01" /> -->
    <param name="laser_z_min_value" value = "-1.0" />
    <param name="laser_z_max_value" value = "1.0" />

    <!-- Advertising config --> 
    <param name="advertise_map_service" value="true"/>

    <param name="scan_subscriber_queue_size" value="$(arg scan_subscriber_queue_size)"/>
    <param name="scan_topic" value="$(arg scan_topic)"/>

    <!-- Debug parameters -->
    <param name="output_timing" value="false"/>
    <param name="pub_drawings" value="true"/>
    <param name="pub_debug_output" value="true"/>

    <param name="tf_map_scanmatch_transform_frame_name" value="$(arg tf_map_scanmatch_transform_frame_name)" />
</node>

<node pkg="tf" type="static_transform_publisher" name="map_nav_broadcaster" args="0 0 0 0 0 0 chasis hokuyo_scan 100"/>

I have tried adjusting the values of map_update_distance_thresh and map_update_angle_thresh to no avail.

I also experienced a similar problem when I attempted to use gmapping as detailed here. i hoped Hector would be a better mapping algorithm because the simulated environment is outdoors.

I would appreciate some help understanding this issue and advise on how to fix it.

edit retag flag offensive close merge delete