Hectorslam without odometry
Hi everyone, I need some advice about the correct setup of hectorslam on my robot. I can get a map through hector_mapping but I can't navigate on it. I use a LMS111 as a laser and my robot doesn't have an odometry. How can I check that everything is set properly according to the capacities of my robot ?
Here is my actual setup:
The hector config file
<launch>
<!--
<node pkg="hector_trajectory_server" type="hector_trajectory_server" name="hector_trajectory_server" output="screen">
<param name="target_frame_name" type="string" value="/map" />
<param name="source_frame_name" type="string" value="/base_link" />
<param name="trajectory_update_rate" type="double" value="4" />
<param name="trajectory_publish_rate" type="double" value="0.25" />
</node>
<node pkg="hector_geotiff" type="geotiff_node" name="hector_geotiff_node" output="screen" launch-prefix="nice -n 15">
<remap from="map" to="/dynamic_map" />
<param name="map_file_path" type="string" value="$(find arobot)/maps" />
<param name="map_file_base_name" type="string" value="map" />
<param name="geotiff_save_period" type="double" value="0" />
<param name="draw_background_checkerboard" type="bool" value="true" />
<param name="draw_free_space_grid" type="bool" value="true" />
</node>
-->
<node pkg="hector_mapping" type="hector_mapping" name="hector_mapping">
<!-- Frame names -->
<param name="map_frame" value="/map" />
<param name="base_frame" value="/base_link" />
<param name="odom_frame" value="/odom" />
<!-- Tf use -->
<param name="use_tf_scan_transformation" value="false"/>
<param name="use_tf_pose_start_estimate" value="true"/>
<param name="pub_map_odom_transform" value="true"/>
<!-- Map size / start point -->
<param name="map_resolution" value="0.045"/>
<param name="map_size" value="512"/>
<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_angle_thresh" value="0.06" />
<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="false"/>
<param name="scan_subscriber_queue_size" value="5"/>
<param name="scan_topic" value="/scan"/>
<!-- 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="scanmatcher_frame" />
</node>
</launch>
the base_local_planner config file
TrajectoryPlannerROS:
#Independent settings for the local costmap
transform_tolerance: 0.3
costmap_visualization_rate: 1.0
world_model: costmap
sim_time: 1.7
sim_granularity: 0.05
sim_granularity: 0.1
dwa: true
vx_samples: 10
vtheta_samples: 10
max_vel_x: 6.0
min_vel_x: 3.0
max_vel_th: 2.0
min_vel_th: 1.0
min_in_place_vel_th: 0.5
xy_goal_tolerance: 0.05
yaw_goal_tolerance: 0.05
goal_distance_bias: 0.8
path_distance_bias: 0.4
occdist_scale: 0.01
heading_lookahead: 0.325
oscillation_reset_dist: 0.05
acc_lim_th: 10.0
acc_lim_x: 10.0
acc_lim_y: 10.0
heading_scoring: true
heading_scoring_timestep: 0.8
holonomic_robot: false
simple_attractor: false
controller_frequency: 10.0
meter_scoring: true
global_frame_id: map
The costmap common config file:
obstacle_range: 1.0
raytrace_range: 1.5
footprint: [[-0.3, -0.3], [-0.3, 0.3], [0.3, 0.3], [0.3, -0.3]]
inflation_radius: 0.50
observation_sources: scan
scan: {sensor_frame: /laser, data_type: LaserScan, topic: /scan, marking: true, clearing: true}
transform_tolerance: 3
The global costmap config file:
#Independent settings for the planner's costmap
global_costmap:
global_frame: /map
robot_base_frame: base_link
update_frequency: 5.0
publish_frequency: 0.0
static_map: false
rolling_window: true
width: 10.0
height: 10.0
resolution: 0.05
and the local costmap config ...
lgtm. If you want some actual answers you need to state what "can't navigate" means.
Well it's simple. When I give a goal, the path is not displayed and a random cmd_vel is send to the teleop. Depending the configuration I test, the costmap is either displayed or not.