Robotics StackExchange | Archived questions

Problem with local planner using navigation stack

Hello guys,

I am trying to run my robot with navigation stack. It is a four track differential robot as it is shown in the picture below. I am using gmapping instead of amcl so I will discover and update the map as I go along.

image description

I followed all the step in navigation stack tutorial and my mapping and localization seem to work fine.

However, there are some issues:

1- under local_costmap topic I have neither obstacles nor inflated obstacles. instead I have this:

image description

2- when I send a goal to navigation stack the global path is fine, but strange curly local path is being created and the robot as a result wanders around the global path. Please take a look at this video that I recorded of my screen.

I am considering everything 2D so in the TF tree (baselink - baselaser) I ignore height of the my laser scanner. Here is my parameters:

cost_map common parameters
obstacle_range: 2.5
raytrace_range: 3.0
footprint: [[0.5, -0.45], [-0.5, -0.45], [-0.5, 0.45], [0.5, 0.45], [0.6, 0.0]]
#robot_radius: ir_of_robot
inflation_radius: 0.1

observation_sources: SICK

SICK: {sensor_frame: base_laser, data_type: LaserScan, topic: /scan, marking: true, clearing: true}

global_costmap:
  global_frame: /map
  robot_base_frame: base_link
  update_frequency: 3
  static_map: true
  map_type: costmap

local_costmap:
  global_frame: odom
  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
  map_type: costmap

TrajectoryPlannerROS:
  max_vel_x: 0.25
  min_vel_x: 0.1
  max_vel_theta: 0.5
  min_in_place_vel_theta: 0.2

  acc_lim_theta: 1.2
  acc_lim_x: 1.5
  acc_lim_y: 1.5

  xy_goal_tolerance: 0.2
  yaw_goal_tolerance: 0.09
  holonomic_robot: false

  meter_scoring: true
  sim_time: 0.5
  sim_granularity: 0.025
  angular_sim_granularity: 0.025
  vx_samples: 3
  vtheta_samples: 20

Any ideas how to solve the problem?

Thank you very much in advance :)

Asked by mohsen1989m on 2015-10-12 05:18:37 UTC

Comments

Answers

Finally found the problem. there was a different standard in defining positive radial speed in my robot. In other words, either clockwise rotation is a positive or negative value .

I already figured out this mismatch in defining odometry, the problem was I forgot to apply the same idea in the speed command that I was sending to the rover.

Asked by mohsen1989m on 2015-10-14 08:50:14 UTC

Comments

Hi, I am having the same problem as you described: "when I send a goal to navigation stack the global path is fine, but strange curly local path is being created and the robot as a result wanders around the global path." However in your video I don't see this behaviour, I only see your robot turning in place. Also I don't understand how a mismatch in the positive or negative rotations would influence the local path, since this path is made before your robot actually moves. Did you have the same behaviour as you see in my video?: https://www.youtube.com/watch?v=oYihWi8htt0

Asked by SimonDahrs on 2019-12-17 05:46:19 UTC

Hi @SimonDahrs, maybe your local costmap is not good. Check this guide: http://kaiyuzheng.me/documents/navguide.pdf, it was very useful for me.

Asked by schulze18 on 2020-02-17 07:15:01 UTC