|
|
(3 intermediate revisions by one user not shown) |
Line 1: |
Line 1: |
− | This is some suggestions for changed settings for Robobot.
| + | Moved to [[regbot settings]] |
− | | + | |
− | == Robot configuration==
| + | |
− | | + | |
− | Metric setup
| + | |
− | | + | |
− | The distance between driving wheels are different from a Regbot.
| + | |
− | | + | |
− | [[File:robobot_robot_settings.png]] | + | |
− | | + | |
− | == Control issues ==
| + | |
− | | + | |
− | Some examples of control settings.
| + | |
− | | + | |
− | ===Edge control===
| + | |
− | | + | |
− | For higher speed in the range 0.7-0.9 m/s the following control settings could be used.
| + | |
− | | + | |
− | [[File:line_edge_control.png]]
| + | |
− | | + | |
− | The control uses a Lag-controller to decrease the static gain by a factor 5 (a pole with a time constant of 1.5 sec and a zero with a time constant of 0.3 seconds). This means that the high frequency gain is Kp*0.3/1.5 = 0.06.
| + | |
− | | + | |
− | The gain is further scaled by the speed (from firmware version 604), so that the gain is reduced to half at 0.5m/s, but the filter times are maintained. This is probably a bad solution, as the response probably is more distance driven than time driven.
| + | |
− | | + | |
− | | + | |
− | A test script to could be:
| + | |
− | | + | |
− | thread=1
| + | |
− | vel=0.01, acc=5.0, log=50.0: time=0.2
| + | |
− | vel=0.9, edger=1, white=0: dist=10.0, xb=20
| + | |
− | vel=0,event=7 : xb<10
| + | |
− | :vel< 0.1
| + | |
− | vel=-0.3,tr=0.1:turn=60
| + | |
− | vel=0.3,tr=0.1:turn=60
| + | |
− | vel=-0.3,tr=0.1:turn=60
| + | |
− | vel=0.7, edger=-1, white=0: dist=10.0, xb=20, log=0
| + | |
− | | + | |
− | The mission follows right side of line,
| + | |
− | * in a left curve (1mØ) until crossing a line
| + | |
− | * wait for crossing line to disappear,
| + | |
− | * and velocity reach 0
| + | |
− | * make a 3-point 180 degree turn
| + | |
− | * follow the other side of line - now a right curve (until log is full or 10 meters or crossing another black line)
| + | |
− | | + | |
− | The difference between a left and a right curve is the "edger=1.0" and "edger=-1.0", this makes the robot follow the curve with an offset of 1cm towards the center of the curve (more left in a left curve). This gives more space for overshoot when hitting the curve - the sensor range is about +/- 2cm.
| + | |
− | | + | |
− | If the line is no longer valid, then the last curvature is maintained, i.e. there is a chance that the the line will be re-found.
| + | |
− | | + | |
− | ===Heading control===
| + | |
− | | + | |
− | Heading control is not used during a tr=xx based turn, but after such a turn the heading control maintains the end heading.
| + | |
− | The end heading is the start heading plus the turned angle.
| + | |
− | | + | |
− | While driving straight, then the heading control attempts to keep the heading.
| + | |
− | | + | |
− | Heading control is somewhat speed dependent, these paramaters seems to be good at about 0.6 m/s.
| + | |
− | | + | |
− | [[File:heading_control_dialog.png]]
| + | |
− | | + | |
− | Figure 3. Heading control parameters for OK turns at a velocity of about 0.6 m/s. The controller is a PI-Lead controller with a weak pre-filter.
| + | |
− | | + | |
− | A 60 degree turn with an acceleration limit of 1m/s^2 makes a turn like this:
| + | |
− | | + | |
− | [[File:heading_ctrl_20_deg.png]]
| + | |
− | | + | |
− | Figure 4. The dotted line is the resulting heading, the magenta line is the target heading (when not in a turn. The red curve is the mission line number in the script below.
| + | |
− | | + | |
− | This curve is generated with the following script:
| + | |
− | | + | |
− | thread=6
| + | |
− | : time=0.01
| + | |
− | vel=0.6, acc=1.0: dist=0.1,time=1
| + | |
− | log=3.0: time=0.1
| + | |
− | tr=0.2: turn=20.0
| + | |
− | : dist=0.3, log=0
| + | |
− | | + | |
− | This is after version 3.612 (from 16 March 2017.
| + | |