Hesitate! When turtlebot meet the obstacles

asked 2016-05-31 01:57:34 -0500

sonictl gravatar image

updated 2016-06-01 01:00:21 -0500

I was using turtlebot to do navigation experiments based on ROS_navigation stack. I found that the turtlebot was much hesitating when it met some obstacles in the front. Even though the obstacle(which has been stayed there for a while) has been removed, the turtlebot still rotating at the place where it first see the obstacles.

Nevertheless, the turtlebot would recover navigation after the inflated obstacle layer(displayed in the Rviz) was refreshed. However, the time from the obstacles was removed to the inflated obstacle layer was refreshed would be very long(10-20 seconds).

I want to make the delay much shorter.

I noticed that there appears more yellow grid in the costmap if the obstacle stayed there for longer time. I noticed that it's the topic /move_base/local_costmap/costmap displayed as the inflated obstacles layer on the costmap.

My H&S Env. is:

  • Distro: ROS-Hydro
  • Monitor/simulator: Rviz
  • Sensor:RPLidar - 2D Laser scaner, 360 degree, 15Hz
  • Driving Base: iRobot Roomba 620
  • Controller: MiniPC running ubuntu 12.04, CPU 2.1GHz-Double Cores, Mem: 2G

My Question is:

  1. What's the relationship between move_base package and costmap_2D package
  2. How does "/move_base" publish the topic "/move_base/local_costmap/costmap"
  3. The time from the obstacles was removed to the inflated obstacle layer was refreshed would be very long(10-20 seconds). How to make the delay much shorter.

Thank you!!

I appreciate any idea/knowledge shared for my puzzles! image description

edit retag flag offensive close merge delete

Comments

It might be that you have set the "observation_persistence" parameter for your observation source to some non-zero value?

FOXTER gravatar image FOXTER  ( 2016-05-31 06:33:08 -0500 )edit

@FOXTER Thanks for your remind. but the observation_persistence does nothing to this issue after I tried different values. I guess that the mechanism designed in the costmap_2d package may affect this issue.

sonictl gravatar image sonictl  ( 2016-05-31 21:42:15 -0500 )edit

I'v known that the clear_costmaps service offered by move_base pkg can do the clearing work, but that may be some farfetched and not the perfect solution. I may try looking into this(costmap_2d/hydro/obstacles) for solutions.

sonictl gravatar image sonictl  ( 2016-05-31 21:51:54 -0500 )edit