Move_base/dwa parameters for a large robot with rotation center in the front
Edit 1: Video Link to Trial 1- link text
Edit 2: Video Link to Trial N - Working but not perfect system: here
Dear Navigation experts and other respective ROS users,
I have been struggling with an annoying problem for a while which I hope you can help me to solve it.
Robot properties:
I have a robot with the following size: 70x60x50(L,W,H). (Volksbot RT3 differential drive, modified and bigger). This robot has two maxon 150w engines, and two maxon controllers with 74:1 gears.
The rotation centre of the robot is on the front axis of the robot, and therefore I have the base_link and base_footprint on that point. This point is 12cm behind from the front of the robot.
We use ROS Hydro, Ubuntu 12.04
Sensors:
Laser: in the front
Front_rotating_xtion -> down sampled to leaf size of 5cm
Back_fixed_xtion -> down sampled to leaf size of 5cm
I use multiple obstacle layers so the sensors do not overwrite each other
Note: We started using xtions/kinect since Fuerte, and we always had to make two observation sources for one camera, and set one for marking and the other for clearing. Otherwise it wouldn't work. (Perhaps it changed but we didn't try)
Problem
When I give a navigation goal, the global plan is somewhat reasonable. I intentionally increased the inflation radius in the global costmap to avoid having tricky situation. My problem is that the dwa local planner puts the robot in very a difficult situations, and the robot gets stuck easily while there is a clear solution to the movement problem. Instead of following the path, it likes to stick to obstacles, and get itself stuck. When stuck, it keeps oscillating instead of move in reverse and correct its path. I do not penalize negative_x movement because the robot can see its behind pretty good. I read all the documentations for all sections of move_base. I changed a lot of variables to see the effect, but none of them really satisfied me, because the robot gets stuck so easily, and it doesn't get out of it.
Below the text are my move_base parameter files (Hopefully it can be also used as a reference for people who are trying to get hydro style move_Base to work with multiple sensors):
The things I have tried:
For DWA robot configuration parameters, I checked the plotted cmd_vel versus the odometry reading. The perfect plot match was with the given parameters below. (I used rqt_plot)
- I fiddled around with all the Forward simulation parameters, and the trajectory scoring parameters.
- I increased/decreased the inflation radius for both local and global costmap, and increase/decreased their resolution.
- I tried changing the reference frame to the centre of the robot instead of centre of rotation.
- I fiddled around with controller_frequency and planner and controller patience.
I checked whether the TF matches the robot (with xtions veiwing the robot)
I will prepare a video link and add it here so you ...
Can you specify a little more what you mean by "stick to obstacles"? Uploading diagrams would be helpful. (If you can't upload pictures, email me the pictures and I'll edit the question for you).
Thank you for responding David. I will take some detailed pictures and videos and will email them tomorrow the latest.
I updated the link, and sent some pictures for you to add to the topic.