Robotics StackExchange | Archived questions

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:

image description

image description

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 baselocalplanner 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 file:

local_costmap:
  global_frame: map
  robot_base_frame: base_link
  update_frequency: 5.0
  publish_frequency: 2.0
  static_map: false
  rolling_window: true
  width: 6.0
  height: 6.0
  resolution: 0.05
  origin_x: 0.0
  origin_y: 0.0

Asked by TomSon on 2015-09-15 01:41:29 UTC

Comments

lgtm. If you want some actual answers you need to state what "can't navigate" means.

Asked by dornhege on 2015-09-15 03:10:52 UTC

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.

Asked by TomSon on 2015-09-15 04:29:47 UTC

Answers