mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2025-12-10 00:03:04 +08:00
Prettier, typos, minor wording
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
# Attitude Tuning
|
||||
|
||||
Attitude tuning is required to use [Stabilized mode](../flight_modes_rover/manual.md#stabilized-mode) and all later modes.
|
||||
|
||||
::: warning
|
||||
The [rate tuning](rate_tuning.md) must've already been completed before this step!
|
||||
:::
|
||||
|
||||
To tune the attitude controller and unlock [Stabilized mode](../flight_modes_rover/manual.md#stabilized-mode) configure the following [parameters](../advanced_config/parameters.md) in QGroundControl:
|
||||
Configure the following [parameters](../advanced_config/parameters.md) in QGroundControl:
|
||||
|
||||
1. [RO_YAW_P](#RO_YAW_P) [-]: Proportional gain for the closed loop yaw controller.
|
||||
|
||||
|
||||
@@ -1,44 +1,45 @@
|
||||
# Basic Setup
|
||||
|
||||
## Configure the rover frame and outputs:
|
||||
## Configure the rover frame and outputs
|
||||
|
||||
1. Enable Rover support by flashing the [PX4 rover build](../config_rover/index.md#flashing-the-rover-build) onto your flight controller.
|
||||
Note that this is a special build that contains rover-specific modules.
|
||||
1. Enable Rover support by flashing the [PX4 rover build](../config_rover/index.md#flashing-the-rover-build) onto your flight controller.
|
||||
Note that this is a special build that contains rover-specific modules.
|
||||
|
||||
2. In the [Airframe](../config/airframe.md) configuration select the your rover type: _Generic Rover Ackermann_/_Generic Rover Differential_/_Generic Rover Mecanum_:
|
||||
2. In the [Airframe](../config/airframe.md) configuration select the your rover type: _Generic Rover Ackermann_/_Generic Rover Differential_/_Generic Rover Mecanum_:
|
||||
|
||||

|
||||

|
||||
|
||||
Select the **Apply and Restart** button.
|
||||
Select the **Apply and Restart** button.
|
||||
|
||||
::: info
|
||||
If this airframe is not displayed and you have checked that you are using rover firmware (not the default), you can alternatively enable this frame by setting the [SYS_AUTOSTART](../advanced_config/parameter_reference.md#SYS_AUTOSTART) parameter directly to the following value:
|
||||
::: info
|
||||
If this airframe is not displayed and you have checked that you are using rover firmware (not the default), you can alternatively enable this frame by setting the [SYS_AUTOSTART](../advanced_config/parameter_reference.md#SYS_AUTOSTART) parameter directly to the following value:
|
||||
|
||||
| Rover Type | Value |
|
||||
| ------------ | ------- |
|
||||
| Ackermann | `51000` |
|
||||
| Differential | `50000` |
|
||||
| Mecanum | `52000` |
|
||||
:::
|
||||
| Rover Type | Value |
|
||||
| ------------ | ------- |
|
||||
| Ackermann | `51000` |
|
||||
| Differential | `50000` |
|
||||
| Mecanum | `52000` |
|
||||
|
||||
3. Open the [Actuators Configuration & Testing](../config/actuators.md) to map the motor/servo functions to flight controller outputs.
|
||||
:::
|
||||
|
||||
This already covers the minimum setup required to use the rover in [Manual mode](../flight_modes_rover/manual.md#manual-mode).
|
||||
3. Open the [Actuators Configuration & Testing](../config/actuators.md) to map the motor/servo functions to flight controller outputs.
|
||||
|
||||
This mode is also affected by (optional) acceleration/deceleration limits.
|
||||
As configuration of these limits becomes mandatory later, we do this setup here.
|
||||
That is the minimum setup to use the rover in [Manual mode](../flight_modes_rover/manual.md#manual-mode).
|
||||
|
||||
Navigate to [Parameters](../advanced_config/parameters.md) in QGroundControl and set the following parameters:
|
||||
## Geometric Parameters
|
||||
|
||||
## Geometric Paramters
|
||||
The geometric parameters are dependant on your rover type:
|
||||
Manual mode is also affected by (optional) acceleration/deceleration limits set using the geometric described below.
|
||||
These limits are mandatory for all other modes.
|
||||
|
||||

|
||||
|
||||
Navigate to [Parameters](../advanced_config/parameters.md) in QGroundControl and set the parameters in the group for your frame type.
|
||||
|
||||
### Ackermann
|
||||
|
||||
1. [RA_WHEEL_BASE](#RA_WHEEL_BASE) [m]: Measure the distance from the back to the front wheels.
|
||||
1. [RA_MAX_STR_ANG](#RA_MAX_STR_ANG) [deg]: Measure the maximum steering angle.
|
||||
1. (Optional) [RA_STR_RATE_LIM](#RA_STR_RATE_LIM) [deg/s]: Maximum steering rate you want to allow for your rover.
|
||||
2. [RA_MAX_STR_ANG](#RA_MAX_STR_ANG) [deg]: Measure the maximum steering angle.
|
||||
3. (Optional) [RA_STR_RATE_LIM](#RA_STR_RATE_LIM) [deg/s]: Maximum steering rate you want to allow for your rover.
|
||||
|
||||
:::tip
|
||||
This value depends on your rover and use case.
|
||||
@@ -53,9 +54,11 @@ The geometric parameters are dependant on your rover type:
|
||||
:::
|
||||
|
||||
### Differential
|
||||
|
||||
1. [RD_WHEEL_TRACK](#RD_WHEEL_TRACK) [m]: Measure the distance from the centre of the right wheel to the centre of the left wheel.
|
||||
|
||||
### Mecanum
|
||||
|
||||
1. [RM_WHEEL_TRACK](#RM_WHEEL_TRACK) [m]: Measure the distance from the centre of the right wheel to the centre of the left wheel.
|
||||
|
||||
## Speed Parameters
|
||||
@@ -67,7 +70,7 @@ The geometric parameters are dependant on your rover type:
|
||||
It will be further adjusted in the [velocity tuning](velocity_tuning.md) step.
|
||||
:::
|
||||
|
||||
1. (Optional) [RO_ACCEL_LIM](#RO_ACCEL_LIM) [m/s^2]: Maximum acceleration you want to allow for your rover.
|
||||
2. (Optional) [RO_ACCEL_LIM](#RO_ACCEL_LIM) [m/s^2]: Maximum acceleration you want to allow for your rover.
|
||||
|
||||
<a id="RO_ACCEL_LIM_CONSIDERATIONS"></a>
|
||||
|
||||
@@ -89,7 +92,7 @@ The geometric parameters are dependant on your rover type:
|
||||
3. Set [RO_ACCEL_LIM](#RO_ACCEL_LIM) to the highest value that does not cause the rover to lift up.
|
||||
:::
|
||||
|
||||
1. (Optional) [RO_DECEL_LIM](#RO_DECEL_LIM) [m/s^2]: Maximum deceleration you want to allow for your rover.
|
||||
3. (Optional) [RO_DECEL_LIM](#RO_DECEL_LIM) [m/s^2]: Maximum deceleration you want to allow for your rover.
|
||||
|
||||
:::tip
|
||||
The same [considerations](#RO_ACCEL_LIM_CONSIDERATIONS) as in the configuration of [RO_ACCEL_LIM](#RO_ACCEL_LIM) apply.
|
||||
@@ -123,7 +126,6 @@ You can now continue the configuration process with [rate tuning](rate_tuning.md
|
||||
| ----------------------------------------------------------------------------------------------------- | ----------- | ---- |
|
||||
| <a id="RD_WHEEL_TRACK"></a>[RD_WHEEL_TRACK](../advanced_config/parameter_reference.md#RD_WHEEL_TRACK) | Wheel track | m |
|
||||
|
||||
|
||||
### Mecanum Specific
|
||||
|
||||
| Parameter | Description | Unit |
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Rover Configuration/Tuning
|
||||
|
||||
This topic provides a step-by-step guide for setting up your rover.
|
||||
|
||||
Successive steps enable [drive modes](../flight_modes_rover/index.md) with more autopilot support and features:
|
||||
@@ -12,8 +13,7 @@ Successive steps enable [drive modes](../flight_modes_rover/index.md) with more
|
||||
| 5 | [Position Tuning](position_tuning.md) | [Auto modes](../flight_modes_rover/auto.md) |
|
||||
|
||||
::: warning
|
||||
Each step is dependent on the previous steps having been completed.
|
||||
Drive modes will only work properly if the preceding modes have been unlocked.
|
||||
A drive mode will only work properly if all the configuration for the preceding modes has been completed.
|
||||
:::
|
||||
|
||||
## Flashing the Rover Build
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# Position Tuning
|
||||
|
||||
Position tuning is required in order to use [Auto modes](../flight_modes_rover/auto.md).
|
||||
|
||||
:::warning
|
||||
The [velocity tuning](velocity_tuning.md) must've already been completed before this step!
|
||||
:::
|
||||
@@ -8,22 +10,22 @@ The position controller is responsible for autonomously guiding the vehicle to a
|
||||
These position setpoints are automatically generated by the internal PX4 auto modes (Mission, Return, GoTo, ...) or can directly be sent to the rover through the `RoverPositionSetpoint.msg` (External Modes).
|
||||
A path is generated for the rover to reach its destination, which tracked through a path following algorithm called [pure pursuit](#pure-pursuit-guidance-logic-info-only).
|
||||
|
||||
To tune the position controller and unlock [Auto modes](../flight_modes_rover/auto.md) configure the following [parameters](../advanced_config/parameters.md) in QGroundControl:
|
||||
To tune the position controller configure the [parameters](../advanced_config/parameters.md) in the following sections (using QGroundControl).
|
||||
|
||||
## Speed
|
||||
|
||||
1. (Optional) [RO_SPEED_RED](#RO_SPEED_RED): Tuning parameter for the speed reduction based on the course error.
|
||||
This can be used to limit the maximum allowed speed based on the difference between the current course and the bearing setpoint:
|
||||
$v_{max} = v_{full throttle} \cdot (1 - \theta_{normalized} \cdot k) $
|
||||
$v*{max} = v*{full throttle} \cdot (1 - \theta\_{normalized} \cdot k) $
|
||||
|
||||
with
|
||||
|
||||
- $v_{max}:$ Maximum speed
|
||||
- $v_{full throttle}:$ Speed at maximum throttle [RO_MAX_THR_SPEED](../advanced_config/parameter_reference.md#RO_MAX_THR_SPEED).
|
||||
- $\theta_{normalized}:$ Course error (Course - bearing setpoint) normalized from $[0\degree, 180\degree]$ to $[0, 1]$
|
||||
- $\theta_{normalized}:$ Course error (Course - bearing setpoint) normalized from $[0\degree, 180\degree]$ to $[0, 1]$
|
||||
- $k:$ Tuning parameter [RO_SPEED_RED](#RO_SPEED_RED)
|
||||
|
||||
::: note
|
||||
::: info
|
||||
This parameter is used to calculate the speed at which the vehicle arrives at a waypoint based on the upcoming corner.
|
||||
Set to -1 to disable course error based speed reduction.
|
||||
:::
|
||||
@@ -42,7 +44,6 @@ To tune the position controller and unlock [Auto modes](../flight_modes_rover/au
|
||||
3. Plot the `adjusted_speed_body_x_setpoint` and `measured_speed_body_x` from the [RoverVelocityStatus](../msg_docs/RoverVelocityStatus.md) message over each other.
|
||||
If the tracking of these setpoints is not satisfactory adjust the values for [RO_SPEED_P](../advanced_config/parameter_reference.md#RO_SPEED_P) and [RO_SPEED_I](../advanced_config/parameter_reference.md#RO_SPEED_I).
|
||||
|
||||
|
||||
## Path Following
|
||||
|
||||
The [pure pursuit](#pure-pursuit-guidance-logic-info-only) algorithm is used to calculate a bearing setpoint for the vehicle that is then close loop controlled.
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
# Rate Tuning
|
||||
|
||||
Rate tuning is required to use [Acro mode](../flight_modes_rover/manual.md#acro-mode) and all later modes.
|
||||
|
||||
::: warning
|
||||
The [basic setup](basic_setup.md) must've already been completed before this step!
|
||||
The [Basic Setup](basic_setup.md) must've already been completed before this step!
|
||||
:::
|
||||
|
||||
To tune the rate controller and unlock [Acro mode](../flight_modes_rover/manual.md#acro-mode) configure the following [parameters](../advanced_config/parameters.md) in QGroundControl:
|
||||
Configure the following [parameters](../advanced_config/parameters.md) in QGroundControl:
|
||||
|
||||
1. [RO_YAW_RATE_LIM](#RO_YAW_RATE_LIM): Maximum yaw rate you want to allow for your rover.
|
||||
|
||||
@@ -15,21 +17,21 @@ To tune the rate controller and unlock [Acro mode](../flight_modes_rover/manual.
|
||||
If this is the case:
|
||||
|
||||
1. In [Acro mode](../flight_modes_rover/manual.md#acro-mode), set [RO_YAW_RATE_LIM](#RO_YAW_RATE_LIM) to a small value, drive the rover at full throttle and steer all the way to the left or right.
|
||||
1. Increase [RO_YAW_RATE_LIM](#RO_YAW_RATE_LIM) until the wheels of the rover start to lift up.
|
||||
1. Set [RO_YAW_RATE_LIM](#RO_YAW_RATE_LIM) to the highest value that does not cause the rover to lift up.
|
||||
2. Increase [RO_YAW_RATE_LIM](#RO_YAW_RATE_LIM) until the wheels of the rover start to lift up.
|
||||
3. Set [RO_YAW_RATE_LIM](#RO_YAW_RATE_LIM) to the highest value that does not cause the rover to lift up.
|
||||
|
||||
If you see no need to limit the yaw rate, set this parameter to the maximum yaw rate the rover can achieve:
|
||||
|
||||
1. In [Manual mode](../flight_modes_rover/manual.md#manual-mode) drive the rover at full throttle and with the maximum steering angle.
|
||||
1. Plot the `measured_yaw_rate` from [RoverRateStatus](../msg_docs/RoverRateStatus.md) and enter the highest observed value for [RO_YAW_RATE_LIM](#RO_YAW_RATE_LIM).
|
||||
2. Plot the `measured_yaw_rate` from [RoverRateStatus](../msg_docs/RoverRateStatus.md) and enter the highest observed value for [RO_YAW_RATE_LIM](#RO_YAW_RATE_LIM).
|
||||
|
||||
:::
|
||||
|
||||
1. (Optional) [RO_YAW_RATE_CORR](#RO_YAW_RATE_CORR) [-]: Yaw rate correction factor.
|
||||
2. (Optional) [RO_YAW_RATE_CORR](#RO_YAW_RATE_CORR) [-]: Yaw rate correction factor.
|
||||
|
||||
This can be used to scale the mapping from the yaw rate setpoint to the steering effort if it is offset from the [idealized mapping](#kinematic-models) (This could be due to wheel misalignments, excessive friction etc.).
|
||||
|
||||
:::note
|
||||
::: info
|
||||
Skid/tank-steered and mecanum rovers will most likely require this adjustment.
|
||||
:::
|
||||
|
||||
@@ -38,11 +40,11 @@ To tune the rate controller and unlock [Acro mode](../flight_modes_rover/manual.
|
||||
This way the yaw rate is only controlled by the feed-forward term, which makes it easier to tune.
|
||||
Now put the rover in [Acro mode](../flight_modes_rover/manual.md#acro-mode) and then move the right-stick of your controller to the right and/or left and hold it at a few different levels for a couple of seconds each while driving with a constant throttle (for differential/mecanum rovers this can also be done while standing still).
|
||||
Disarm the rover and from the flight log plot the `adjusted_yaw_rate_setpoint` from [RoverRateStatus](../msg_docs/RoverRateStatus.md) and the `measured_yaw_rate` from [RoverRateStatus](../msg_docs/RoverRateStatus.md) over each other.
|
||||
If the actual yaw rate of the rover is higher than the yaw rate setpoint, decrease [RO_YAW_RATE_CORR](#RO_YAW_RATE_CORR) (between (0, 1]).
|
||||
If it is the other way around increase the parameter [1, inf) and repeat until you are satisfied with the setpoint tracking.
|
||||
If the actual yaw rate of the rover is higher than the yaw rate setpoint, decrease [RO_YAW_RATE_CORR](#RO_YAW_RATE_CORR) (between [0, 1]).
|
||||
If it is the other way around increase the parameter [1, inf] and repeat until you are satisfied with the setpoint tracking.
|
||||
:::
|
||||
|
||||
1. [RO_YAW_RATE_P](#RO_YAW_RATE_P) [-]: Proportional gain of the closed loop yaw rate controller.
|
||||
3. [RO_YAW_RATE_P](#RO_YAW_RATE_P) [-]: Proportional gain of the closed loop yaw rate controller.
|
||||
The closed loop acceleration control will compare the yaw rate setpoint with the measured yaw rate and adapt the motor commands based on the error between them.
|
||||
The proportional gain is multiplied with this error and that value is added to the motor command.
|
||||
This compensates for disturbances such as uneven ground and external forces.
|
||||
@@ -56,19 +58,19 @@ To tune the rate controller and unlock [Acro mode](../flight_modes_rover/manual.
|
||||
1. Repeat until you are satisfied with the behaviour.
|
||||
:::
|
||||
|
||||
1. [RO_YAW_RATE_I](#RO_YAW_RATE_I) [-]: Integral gain of the closed loop yaw rate controller.
|
||||
4. [RO_YAW_RATE_I](#RO_YAW_RATE_I) [-]: Integral gain of the closed loop yaw rate controller.
|
||||
The integral gain accumulates the error between the desired and actual yaw rate scaled by the integral gain over time and that value is added to the motor command.
|
||||
|
||||
::: tip
|
||||
An integrator might not be necessary at this stage, but it will become important for subsequent modes.
|
||||
:::
|
||||
|
||||
1. (Optional) [RO_YAW_ACCEL_LIM](#RO_YAW_ACCEL_LIM)/[RO_YAW_DECEL_LIM](#RO_YAW_DECEL_LIM) [deg/s^2]: Used to limit the yaw acceleration/deceleration.
|
||||
5. (Optional) [RO_YAW_ACCEL_LIM](#RO_YAW_ACCEL_LIM)/[RO_YAW_DECEL_LIM](#RO_YAW_DECEL_LIM) [deg/s^2]: Used to limit the yaw acceleration/deceleration.
|
||||
This can be used to smoothen the yaw rate setpoint trajectory.
|
||||
|
||||
1. (Optional) [RO_YAW_STICK_DZ](#RO_YAW_STICK_DZ) [-]: Percentage of yaw stick input range that will be interpreted as zero around the stick centered value.
|
||||
6. (Optional) [RO_YAW_STICK_DZ](#RO_YAW_STICK_DZ) [-]: Percentage of yaw stick input range that will be interpreted as zero around the stick centered value.
|
||||
|
||||
1. (Advanced) [RO_YAW_RATE_TH](#RO_YAW_RATE_TH) [deg/s]: The minimum threshold for the yaw rate measurement not to be interpreted as zero.
|
||||
7. (Advanced) [RO_YAW_RATE_TH](#RO_YAW_RATE_TH) [deg/s]: The minimum threshold for the yaw rate measurement not to be interpreted as zero.
|
||||
This can be used to cut off measurement noise when the rover is standing still.
|
||||
|
||||
The rover is now ready to drive in [Acro mode](../flight_modes_rover/manual.md#acro-mode) and the configuration can be continued with [attitude tuning](attitude_tuning.md).
|
||||
@@ -92,6 +94,7 @@ The feed forward mapping is done using the kinematic model of the rover to trans
|
||||
### Kinematic Models
|
||||
|
||||
#### Ackermann
|
||||
|
||||
<!-- prettier-ignore -->
|
||||
$$ \delta = \arctan(\frac{w_b \cdot \dot{\psi}}{v}) $$
|
||||
|
||||
@@ -121,7 +124,7 @@ with
|
||||
|
||||
The steering setpoint is equal to $v_{diff}$ interpolated from [-[RO_MAX_THR_SPEED](../advanced_config/parameter_reference.md#RO_MAX_THR_SPEED), [RO_MAX_THR_SPEED](../advanced_config/parameter_reference.md#RO_MAX_THR_SPEED)] to [-1, 1].
|
||||
|
||||
These mappings based on the idealized kinematic models can be adjusted with the multiplicative factor [RO_YAW_RATE_CORR](../advanced_config/parameter_reference.md#RO_YAW_RATE_CORR) to tune the feed forward part of the yaw rate controller to account for wheel misalignemnts, high friction etc.
|
||||
These mappings based on the idealized kinematic models can be adjusted with the multiplicative factor [RO_YAW_RATE_CORR](../advanced_config/parameter_reference.md#RO_YAW_RATE_CORR) to tune the feed forward part of the yaw rate controller to account for wheel misalignments, high friction etc.
|
||||
|
||||
## Parameter Overview
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
The [attitude tuning](attitude_tuning.md) must've already been completed before this step!
|
||||
:::
|
||||
|
||||
:::note
|
||||
::: info
|
||||
To tune we will be using the manual [Position mode](../flight_modes_rover/manual.md#position-mode).
|
||||
This mode requires a global position estimate (GPS) and tuning of some parameters that go beyond the velocity controller.
|
||||
If you use a custom external flight mode that controls velocity but does not require a global position estimate you can ignore the [manual position mode parameters](#manual-position-mode-parameters).
|
||||
@@ -16,7 +16,7 @@ To tune the velocity controller configure the following [parameters](../advanced
|
||||
|
||||
1. [RO_SPEED_LIM](#RO_SPEED_LIM) [m/s]: This is the maximum speed you want to allow for your rover.
|
||||
This will define the stick-to-speed mapping for [Position mode](../flight_modes_rover/manual.md#position-mode) and set an upper limit for the speed setpoint.
|
||||
1. [RO_MAX_THR_SPEED](#RO_MAX_THR_SPEED) [m/s]: This parameter is used to calculate the feed-forward term of the closed loop speed control which linearly maps desired speeds to normalized motor commands.
|
||||
2. [RO_MAX_THR_SPEED](#RO_MAX_THR_SPEED) [m/s]: This parameter is used to calculate the feed-forward term of the closed loop speed control which linearly maps desired speeds to normalized motor commands.
|
||||
As mentioned in the [Manual mode](../flight_modes_rover/manual.md#manual-mode) configuration , a good starting point is the observed ground speed when the rover drives at maximum throttle in [Manual mode](../flight_modes_rover/manual.md#manual-mode).
|
||||
|
||||
<a id="RA_SPEED_TUNING"></a>
|
||||
@@ -37,20 +37,20 @@ To tune the velocity controller configure the following [parameters](../advanced
|
||||
If your rover oscillates when driving a straight line in [Position mode](../flight_modes_rover/manual.md#position-mode), set this parameter to the observed ground speed at maximum throttle in [Manual mode](../flight_modes_rover/manual.md#manual-mode) and complete the tuning of the [manual position mode parameters](#manual-position-mode-parameters) first before continuing the tuning of the closed loop speed control.
|
||||
:::
|
||||
|
||||
2. [RO_SPEED_P](#RO_SPEED_P) [-]: Proportional gain of the closed loop speed controller.
|
||||
3. [RO_SPEED_P](#RO_SPEED_P) [-]: Proportional gain of the closed loop speed controller.
|
||||
|
||||
::: tip
|
||||
This parameter can be tuned the same way as [RO_MAX_THR_SPEED](#RA_SPEED_TUNING).
|
||||
If you tuned [RO_MAX_THR_SPEED](#RO_MAX_THR_SPEED) well, you might only need a very small value.
|
||||
:::
|
||||
|
||||
3. [RO_SPEED_I](#RO_SPEED_I) [-]: Integral gain for the closed loop speed controller.
|
||||
4. [RO_SPEED_I](#RO_SPEED_I) [-]: Integral gain for the closed loop speed controller.
|
||||
|
||||
::: tip
|
||||
For the closed loop speed control an integrator gain is useful because this setpoint is often constant for a while and an integrator eliminates steady state errors that can cause the rover to never reach the setpoint.
|
||||
:::
|
||||
|
||||
4. (Advanced) [RO_SPEED_TH](#RO_SPEED_TH) [m/s]: The minimum threshold for the speed measurement not to be interpreted as zero.
|
||||
5. (Advanced) [RO_SPEED_TH](#RO_SPEED_TH) [m/s]: The minimum threshold for the speed measurement not to be interpreted as zero.
|
||||
This can be used to cut off measurement noise when the rover is standing still.
|
||||
|
||||
## Manual Position Mode Parameters
|
||||
@@ -91,6 +91,7 @@ The rover is now ready to drive in [Position mode](../flight_modes_rover/manual.
|
||||
This section provides additional information for developers and people with experience in control system design.
|
||||
|
||||
The velocity vector is defined by the following two values:
|
||||
|
||||
1. The absolute speed [$m/s$]
|
||||
2. The direction (bearing) [$rad$]
|
||||
|
||||
@@ -105,20 +106,20 @@ For ackermann and differential rovers the bearing is aligned with the vehicle ya
|
||||
For mecanum vehicles, the bearing and yaw are decoupled. The direction is controlled by splitting the velocity vector into one speed component in body x direction and one in body y direction.
|
||||
Both these setpoint are then sent to their own closed loop speed controllers.
|
||||
|
||||
## Parmeter Overview
|
||||
## Parameter Overview
|
||||
|
||||
| Parameter | Description | Unit |
|
||||
| ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | ------- |
|
||||
| <a id="RO_MAX_THR_SPEED"></a>[RO_MAX_THR_SPEED](../advanced_config/parameter_reference.md#RO_MAX_THR_SPEED) | Speed the rover drives at maximum throttle | $m/s$ |
|
||||
| <a id="RO_SPEED_LIM"></a>[RO_SPEED_LIM](../advanced_config/parameter_reference.md#RO_SPEED_LIM) | Maximum allowed speed | $m/s$ |
|
||||
| <a id="RO_SPEED_P"></a>[RO_SPEED_P](../advanced_config/parameter_reference.md#RO_SPEED_P) | Proportional gain for speed controller | - |
|
||||
| <a id="RO_SPEED_I"></a>[RO_SPEED_I](../advanced_config/parameter_reference.md#RO_SPEED_I) | Integral gain for speed controller | - |
|
||||
| <a id="RO_SPEED_TH"></a>[RO_SPEED_TH](../advanced_config/parameter_reference.md#RO_SPEED_TH) | (Advanced) Speed measurement threshold | $m/s$ |
|
||||
| Parameter | Description | Unit |
|
||||
| ----------------------------------------------------------------------------------------------------------- | ------------------------------------------ | ----- |
|
||||
| <a id="RO_MAX_THR_SPEED"></a>[RO_MAX_THR_SPEED](../advanced_config/parameter_reference.md#RO_MAX_THR_SPEED) | Speed the rover drives at maximum throttle | $m/s$ |
|
||||
| <a id="RO_SPEED_LIM"></a>[RO_SPEED_LIM](../advanced_config/parameter_reference.md#RO_SPEED_LIM) | Maximum allowed speed | $m/s$ |
|
||||
| <a id="RO_SPEED_P"></a>[RO_SPEED_P](../advanced_config/parameter_reference.md#RO_SPEED_P) | Proportional gain for speed controller | - |
|
||||
| <a id="RO_SPEED_I"></a>[RO_SPEED_I](../advanced_config/parameter_reference.md#RO_SPEED_I) | Integral gain for speed controller | - |
|
||||
| <a id="RO_SPEED_TH"></a>[RO_SPEED_TH](../advanced_config/parameter_reference.md#RO_SPEED_TH) | (Advanced) Speed measurement threshold | $m/s$ |
|
||||
|
||||
### Pure Pursuit
|
||||
|
||||
| Parameter | Description | Unit |
|
||||
| -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ---- |
|
||||
| <a id="PP_LOOKAHD_GAIN"></a>[PP_LOOKAHD_GAIN](../advanced_config/parameter_reference.md#PP_LOOKAHD_GAIN) | Pure pursuit: Main tuning parameter | - |
|
||||
| <a id="PP_LOOKAHD_MAX"></a>[PP_LOOKAHD_MAX](../advanced_config/parameter_reference.md#PP_LOOKAHD_MAX) | Pure pursuit: Maximum value for the look ahead radius | m |
|
||||
| <a id="PP_LOOKAHD_MIN"></a>[PP_LOOKAHD_MIN](../advanced_config/parameter_reference.md#PP_LOOKAHD_MIN) | Pure pursuit: Minimum value for the look ahead radius | m |
|
||||
| Parameter | Description | Unit |
|
||||
| -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ---- |
|
||||
| <a id="PP_LOOKAHD_GAIN"></a>[PP_LOOKAHD_GAIN](../advanced_config/parameter_reference.md#PP_LOOKAHD_GAIN) | Pure pursuit: Main tuning parameter | - |
|
||||
| <a id="PP_LOOKAHD_MAX"></a>[PP_LOOKAHD_MAX](../advanced_config/parameter_reference.md#PP_LOOKAHD_MAX) | Pure pursuit: Maximum value for the look ahead radius | m |
|
||||
| <a id="PP_LOOKAHD_MIN"></a>[PP_LOOKAHD_MIN](../advanced_config/parameter_reference.md#PP_LOOKAHD_MIN) | Pure pursuit: Minimum value for the look ahead radius | m |
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# Auto Modes
|
||||
|
||||
In auto modes the autopilot takes over control of the vehicle to run missions, return to launch, or perform other autonomous navigation tasks.
|
||||
For the tuning process see the configuration for [Auto modes](../config_rover/position_tuning.md).
|
||||
|
||||
To use auto modes **all** the configuration/tuning steps in [Rover Configuration/Tuning](../config_rover/index.md) must be followed (from [Basic Setup](../config_rover/basic_setup.html) to [Position tuning](../config_rover/position_tuning.md)).
|
||||
|
||||
## Mission Mode
|
||||
|
||||
|
||||
@@ -15,13 +15,13 @@ Selecting any other mode than those listed below will either stop the rover or c
|
||||
| Mode | Description |
|
||||
| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [Manual](manual.md#manual-mode) | No autopilot support. User is responsible for keeping the rover on the desired course and maintaining speed and rate of turn. |
|
||||
| [Acro](manual.md#acro-mode) | + Maintains the yaw rate (This makes it feel more like driving a car than manual mode). <br>+ Allows maximum yaw rate to be limited (Protects against roll over). |
|
||||
| [Stabilized](manual.md#stabilized-mode) | + Maintans the yaw (This makes it significantly better at holding a straight line). |
|
||||
| [Position](manual.md#position-mode) | + Maintains the course (Best mode for driving a straight line).<br>+ Maintains speed against disturbances, e.g. when driving up a hill.<br>+ Allows maximum speed to be limited. |
|
||||
| [Acro](manual.md#acro-mode) | + Maintains the yaw rate (feels more like driving a car than manual mode). <br>+ Allows maximum yaw rate to be limited (protects against roll over). |
|
||||
| [Stabilized](manual.md#stabilized-mode) | + Maintains the yaw (significantly better at holding a straight line). |
|
||||
| [Position](manual.md#position-mode) | + Maintains the course (best mode for driving a straight line).<br>+ Maintains speed against disturbances, e.g. when driving up a hill.<br>+ Allows maximum speed to be limited. |
|
||||
|
||||
## Auto Modes
|
||||
|
||||
| Mode | Description |
|
||||
| ------------------------------- | ------------------------------------------------------------------------- |
|
||||
| [Mission](auto.md#mission-mode) | Automatic mode that causes the vehicle to execute a predefined autonomous |
|
||||
| [Return](auto.md#return-mode) | Automatic mode that returns the vehicle to the launch position |
|
||||
| Mode | Description |
|
||||
| ------------------------------- | ----------------------------------------------------------------------- |
|
||||
| [Mission](auto.md#mission-mode) | Automatic mode that causes the vehicle to execute a predefined mission. |
|
||||
| [Return](auto.md#return-mode) | Automatic mode that returns the vehicle to the launch position. |
|
||||
|
||||
@@ -6,20 +6,20 @@ Manual modes require stick inputs from the user to drive the vehicle.
|
||||
|
||||
The sticks provide the same "high level" control effects over direction and rate of movement in all manual modes:
|
||||
|
||||
| Rover Type | Left stick up/down | Left stick left/right | Right stick left/right |
|
||||
| ------------ | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| Ackermann | Drive the rover forwards/backwards (controlling speed) | - | Make a left/right turn (controlling steering angle ([Manual mode](#manual-mode)) or yaw rate ([Acro](#acro-mode), [Stabilized](#stabilized-mode) and [Position](#position-mode))). |
|
||||
| Differential | Drive the rover forwards/backwards (controlling speed) | - | Make a left/right turn (controlling speed difference ([Manual mode](#manual-mode)) or yaw rate ([Acro](#acro-mode), [Stabilized](#stabilized-mode) and [Position](#position-mode))). |
|
||||
| Mecanum | Drive the rover forwards/backwards (controlling speed) | Make a left/right turn (controlling speed difference ([Manual mode](#manual-mode)) or yaw rate ([Acro](#acro-mode), [Stabilized](#stabilized-mode) and [Position](#position-mode))). | Drive the rover left/right (controlling speed) |
|
||||
| Rover Type | Left stick up/down | Left stick left/right | Right stick left/right |
|
||||
| ------------ | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Ackermann | Drive the rover forwards/backwards (controlling speed) | - | Make a left/right turn (controlling steering angle in [Manual mode](#manual-mode), and yaw rate in [Acro](#acro-mode), [Stabilized](#stabilized-mode) and [Position](#position-mode) modes). |
|
||||
| Differential | Drive the rover forwards/backwards (controlling speed). | - | Make a left/right turn (controlling speed difference in [Manual mode](#manual-mode), and yaw rate in [Acro](#acro-mode), [Stabilized](#stabilized-mode) and [Position](#position-mode) modes). |
|
||||
| Mecanum | Drive the rover forwards/backwards (controlling speed) | Make a left/right turn (controlling speed difference in [Manual mode](#manual-mode), and yaw rate in [Acro](#acro-mode), [Stabilized](#stabilized-mode) and [Position](#position-mode) modes). | Drive the rover left/right (controlling speed). |
|
||||
|
||||
The manual modes provide progressively increasing levels of autopilot support for maintaining a course, speed, and rate of turn, compensating for external factors such as slopes or uneven terrain.
|
||||
|
||||
| Mode | Features |
|
||||
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [Manual](#manual-mode) | No autopilot support. User is responsible for keeping the rover on the desired course and maintaining speed and rate of turn. |
|
||||
| [Acro](#acro-mode) | + Maintains the yaw rate (This makes it feel more like driving a car than manual mode). <br>+ Allows maximum yaw rate to be limited (Protects against roll over). |
|
||||
| [Stabilized](#stabilized-mode) | + Maintans the yaw (This makes it significantly better at holding a straight line). |
|
||||
| [Position](#position-mode) | + Maintains the course (Best mode for driving a straight line).<br>+ Maintains speed against disturbances, e.g. when driving up a hill.<br>+ Allows maximum speed to be limited. |
|
||||
| Mode | Description |
|
||||
| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [Manual](manual.md#manual-mode) | No autopilot support. User is responsible for keeping the rover on the desired course and maintaining speed and rate of turn. |
|
||||
| [Acro](manual.md#acro-mode) | + Maintains the yaw rate (feels more like driving a car than manual mode). <br>+ Allows maximum yaw rate to be limited (protects against roll over). |
|
||||
| [Stabilized](manual.md#stabilized-mode) | + Maintains the yaw (significantly better at holding a straight line). |
|
||||
| [Position](manual.md#position-mode) | + Maintains the course (best mode for driving a straight line).<br>+ Maintains speed against disturbances, e.g. when driving up a hill.<br>+ Allows maximum speed to be limited. |
|
||||
|
||||
::: details Overview mode mapping to control effect
|
||||
|
||||
|
||||
Reference in New Issue
Block a user