-
Notifications
You must be signed in to change notification settings - Fork 27
/
TuningROS.txt
52 lines (41 loc) · 3.15 KB
/
TuningROS.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
ROS Tuning:
Be careful with tuning. If the robot is able to arrive at a destination without doing completely odd things (like spinning around and around until it gets there), then things are pretty good!
If you tweak for minor improvements, you are chasing shadows. The results vary a lot from run to run, and many changes have little affect.
I suggest tuning these items:
arlobot_ros/param/dwa_local_planner_params.yaml
max_vel_trans (formerly max_trans_vel): 0.6
max_vel_x: 0.6
I always set these to the same. From my testing (documented in ArlobotAccelerationTesting.txt) 0.74 is the maximum. However I find the robot overshoots goals a lot at this speed. 0.5 is safe. 0.6 seems "fast enough" to not seem tiresome.
NOTE:
Parameter max_trans_vel is deprecated (and will not load properly). Use max_vel_trans instead.
Parameter min_trans_vel is deprecated (and will not load properly). Use min_vel_trans instead.
Parameter max_rot_vel is deprecated (and will not load properly). Use max_vel_theta instead.
Parameter min_rot_vel is deprecated (and will not load properly). Use min_vel_theta instead.
Parameter rot_stopped_vel is deprecated (and will not load properly). Use theta_stopped_vel instead.
arlobot_ros/param/dwa_local_planner_params.yaml
acc_lim_x: 4.0
This is a goofy setting. Set it too low, like to the real value, and the robot just cannot function. Set it too high and the robot overshoots goals. Too low and it halts short and has to start up again to get where it wants to go. So it deserves tweaking. Try numbers between 2.5 and 20 (yes, a broad range). It is difficult because a course correction or obstacle detection can interfere with a test.
Bottom line is if your behavior is messy near the end of the goal, try tweaking this.
HOWEVER, remember every run is different, so be careful trying to tweak this too much.
What NOT to mess with:
arlobot_ros/param/move_base_params.yaml
planner_frequency: 1.0
This just tells the global planner how often to make new plan.
You don't need it doing it constantly, it has a plan already.
It should make a new one when you start and when the robot gets stuck.
The only reason we set it to 1.0 and not 0.0, is because at 0.0 it won't path around new obstacles (like your cat) until it is fully stuck. With 1.0 it will make a new plan every second, possibly planning around your cat before it gets stuck.
arlobot_ros/param/move_base_params.yaml
controller_frequency: 20.0 # Default: 20.0
Setting it lower seems to result in poor path following.
Setting it higher seems to cause VERY poor behavior. Robot will spin and spin and spin
without making any progress, or make circles to get to a location!
ALSO: Live reconfiguration of this appears to have NO affect. So you *THINK* you are tweaking it,
but the results are a lie. It only sets this on startup.
arlobot_ros/param/dwa_local_planner_params.yaml
acc_lim_theta: 20.0
Seems perfect here. Even though this has no relation to reality, it works.
Here are some good reference sites for ROS Tuning of Navigation:
http://wiki.ros.org/navigation/Tutorials/Navigation%20Tuning%20Guide
http://www.zkytony.com/documents/navguide.pdf
http://wiki.ros.org/rqt_reconfigure
http://wiki.ros.org/dynamic_reconfigure