-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rover: Update documentation #3377
base: main
Are you sure you want to change the base?
Conversation
|
1a9fd80
to
2d17059
Compare
|
||
::: info | ||
The parameter [RD_MAN_YAW_SCALE](../advanced_config/parameter_reference.md#RD_MAN_YAW_SCALE) can be used to scale the manual input for the yaw rate. | ||
The parameter [RD_MAN_YAW_SCALE](#RD_MAN_YAW_SCALE) can be used to scale the manual input for the yaw rate. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMO this should be moved to the first step of tuning, and have a bit more of an explanation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The entire tuning process is now structure into drive modes. I merged the "Basic Setup" into manual mode and also tried to elaborate on the RD_MAN_YAW_SCALE parameter. See here.
en/flight_modes_rover/manual.md
Outdated
This mode requires a yaw rate estimate. | ||
::: | ||
|
||
Acro Mode is similar to [Manual mode](#manual-mode), but with closed-loop yaw rate control. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Start with the dummies version to give a "feel. Something like (I assume this is the point)
Acro Mode is similar to [Manual mode](#manual-mode), but with closed-loop yaw rate control. | |
Acro Mode is similar to [Manual mode](#manual-mode) except that closed-loop yaw rate control is used to maintain a yaw rate setpoint, which improves cornering behaviour, and makes it easier to maintain a straight line. |
Same for the rest.
en/flight_modes_rover/manual.md
Outdated
| Mode | Features | | ||
| ------------------------------ | ---------------------------------------------------------------------------------------------------------- | | ||
| [Manual](#manual-mode) | Directly map stick inputs to motor commands, no closed loop control. | | ||
| [Acro](#acro-mode) | Closed loop yaw rate control. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-
Three column table showing what is supported for Differential, Ackermann, Features? (like your other table)
-
What are open loop and closed loop yaw rate control? (Hint, I do know, but the readers may not, and for most of this should not need to).
For this whole doc, the audience here is as far as possible a high school kid. Assume they know as little as possible about control theory as possible. Minimally it should start with this assumption, and only go to the detail when you absolutely have to. You can look at the FC and MC docs for inspiration.
You want to give a flavour to what this means for driving - i.e. how does closed loop yaw rate control make acro "better" than manual.
This is like the dummies version I mention below https://github.com/PX4/PX4-user_guide/pull/3377/files#r1764257980
"Yaw rate is controlled, providing better cornering ..."
Or do both
"Closed loop yaw rate control (holds line better when cornering)
Hope that makes sense (and is acheivable)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated this table with more and easier to understand information here.
en/flight_modes_rover/manual.md
Outdated
|
||
This is the most advanced manual mode. It uses _closed loop yaw rate control_, _closed loop speed control_ and a special logic for driving a straight line when there is no yaw rate input. | ||
|
||
In this mode, moving the left-stick up/down commands a desired speed setpoint, and moving the right-stick left and right commands a desired yaw rate setpoint which are both close-loop controlled by the autopilot. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- What does setting a speed setpoint do for you in terms of changing the driving? Presumably if cornering the speed will adjust for the yaw setpoint?
- Did you consider using an accel. setpoint? Matthias changed the MC position mode to this to make it "more like driving" - this seems less like driving.
en/flight_modes_rover/manual.md
Outdated
This mode requires a yaw rate, yaw, speed and position estimate. | ||
::: | ||
|
||
This is the most advanced manual mode. It uses _closed loop yaw rate control_, _closed loop speed control_ and a special logic for driving a straight line when there is no yaw rate input. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"This is the most advanced manual mode. " - true but what do you mean by advanced? Or to put it another way, in MC we order from easiest/safest/most controlled to hardest/least controlled. The point being that for users we're assuming they want to start safe and work up to hard so we introduce the safest mode first.
This also affects the dummy version explanation. Who is this mode for?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reworded this here.
en/flight_modes_rover/manual.md
Outdated
|
||
- [**Differential Rover**](../frames_rover/differential_rover.md): Moving the left-stick up/down controls the _forward speed_ and moving the right-stick left/right controls the _yaw rate_ of the vehicle. | ||
|
||
- [**Ackermann Rover**](../frames_rover/ackermann_rover.md): Moving the left-stick up/down controls the _forward speed_ and moving the right-stick left/right controls the _steering angle_ of the vehicle. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is true for all modes right? The difference is that in some modes you do closed loop control over the rate/angle?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well the end-effect is the same, but in some modes the stick inputs are mapped to motor commands and in some they are mapped to setpoints for the control system. I tried to clarify this with the tables for the stick inputs i added here.
en/flight_modes_rover/manual.md
Outdated
| ------------------------------ | ---------------------------------------------------------------------------------------------------------- | | ||
| [Manual](#manual-mode) | Directly map stick inputs to motor commands, no closed loop control. | | ||
| [Acro](#acro-mode) | Closed loop yaw rate control. | | ||
| [Stabilized](#stabilized-mode) | Closed loop yaw rate and yaw control. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ditto - the "both" might be
| [Stabilized](#stabilized-mode) | Closed loop yaw rate and yaw control. | | |
| [Stabilized](#stabilized-mode) | Closed loop yaw rate and yaw control (holds direction better when yaw is not applied). | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added here,
en/flight_modes_rover/manual.md
Outdated
The rover does not attempt to maintain a specific orientation or compensate for external factors like slopes or uneven terrain! | ||
The user is responsible for making the necessary adjustments to the stick inputs to keep the rover on the desired course. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, the dummies version! This is what we want first! Does not have to be in an info box.
### Acro Mode | ||
|
||
To set up [Acro mode](../flight_modes_rover/manual.md#acro-mode) navigate to [Parameters](../advanced_config/parameters.md) in QGroundControl and set the following parameters: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For all modes, at this point a reader doesn't know what acro mode is, so it wouldn't be obvious why/when you would do this. I would prefix each section with a one line summary about the mode. Something like:
### Acro Mode | |
To set up [Acro mode](../flight_modes_rover/manual.md#acro-mode) navigate to [Parameters](../advanced_config/parameters.md) in QGroundControl and set the following parameters: | |
### Acro Mode | |
[Acro mode](../flight_modes_rover/manual.md#acro-mode) is a minimally stabilised mode where the vehicle attempts to hold its rate of turn (but does not stablise heading or speed). | |
To set up this mode navigate to [Parameters](../advanced_config/parameters.md) in QGroundControl and set the following parameters: |
en/flight_modes_rover/manual.md
Outdated
::: | ||
|
||
::: info | ||
This mode requires a yaw rate estimate. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For MC we needed up-front information about the modes, such as requires GPS, because a vehicle might not have GPS.
But why does a user need to know this up front? I would say it is detail you would only add if we have lots of things that are preconditions, and even so, that box would appear after the "for dummies" explanation of the mode.
@chfriedrich98 Thanks for this
PS YOu might not agree with all this, or it might not all be practical. But let's see what you think - compromise is possible :-) |
en/flight_modes_rover/manual.md
Outdated
|
||
## Acro Mode | ||
|
||
<Badge type="tip" text="Differential" /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FYI I added badging to show what is supported, and the warning below to note what is not supported.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I split the flight modes for ackermann and differential in 9be54ba so i removed them again.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I split the flight modes for ackermann and differential in 9be54ba so i removed them again.
…l and add config folder for rover
@@ -0,0 +1,11 @@ | |||
# Differential Rovers | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FYI only, normally I am reticent to change file names, delete files etc. The reason is that there is no auto-redirects so any linking to docs will be broken. This doesn't matter so much for this doc because it hasn't been in a previous version, or at least was not very stable there. But for anything that did pre-exist we should consider a redirect.
For example, when I split the flight mode docs into separate folders for easier management I created docs like this to redirect https://raw.githubusercontent.com/PX4/PX4-user_guide/refs/heads/main/en/flight_modes/altitude_fw.md .
Eventually I might delete these.
Anyway, "as a habit" consider whether the name change is worth the cost. For now we're finding a new structure and this is good.
/en/config_rover/ackermann.md
/en/config_rover/differential.md
/en/releases/main.md
|
|
||
For an explanation of the different modes see [Flight Modes (Differential Rover)](../flight_modes_rover/differential.md). | ||
|
||
## Manual Mode |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is basic setup.
Update the rover docs to reflect the changes in the following PRs:
This PR the following improvements to the rover docs: