Skip to content

Rover docs update #3602

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

Merged
merged 6 commits into from
Feb 26, 2025
Merged

Rover docs update #3602

merged 6 commits into from
Feb 26, 2025

Conversation

chfriedrich98
Copy link
Contributor

@chfriedrich98 chfriedrich98 commented Feb 25, 2025

Update rover docs:. The following PRs refactored all the rover modules to a common code architecture:

This included combining parameters and uORB messages that are shared among the modules under common names.
(i.e. RA_MAX_THR_SPD, RD_MAX_THR_SPD and RM_MAX_THR_SPD to RO_MAX_THR_SPD. )
This PR updates the parameter names and any references to the uORB messages in the documentation.

Additionally PX4/PX4-Autopilot#24285 changed the rate control for ackermann rovers from lateral acceleration to yaw rate to bring in line with the other modules. It also added support for the manual stabilized mode for ackermann modules.
This PR adds documentation for these changes and additions for ackermann rovers.

Further includes other minor updates and improvements to rover related documentation.

@chfriedrich98 chfriedrich98 self-assigned this Feb 25, 2025

[MAV_CMD_MISSION_START]: https://mavlink.io/en/messages/common.html#MAV_CMD_MISSION_START
[MAV_CMD_NAV_WAYPOINT]: https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_WAYPOINT
[MAV_CMD_NAV_RETURN_TO_LAUNCH]: https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_RETURN_TO_LAUNCH
[MAV_CMD_NAV_DELAY]: https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_DELAY
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@chfriedrich98 Delays are no longer supported? Seems a significant omission - it is not uncommon to need to wait. One use case is when you have payload or camera behaviour that takes a while - waiting can hold you at the waypoint while that stuff happens. Not blocking this PR of course :-)

@@ -19,23 +19,23 @@ 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:

- `Left stick up/down`: Drive the rover forwards/backwards (controlling speed)
- `Right stick left/right`: Make a left/right turn (controlling steering angle ([Manual mode](#manual-mode)) or lateral acceleration ([Acro](#acro-mode) and [Position](#position-mode))).
- `Right stick left/right`: Make a left/right turn (controlling steering angle ([Manual mode](#manual-mode)) or yaw rate ([Acro](#acro-mode) and [Position](#position-mode))).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Manual Controls] image above still shows lateral acceleration. Can you fix up in a follow on PR?

| 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). |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you please add entry for Stabilized Mode as a follow up PR.

| -------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
| [Manual](#manual-mode) | Directly map stick input to motor command. | Directly map stick input to steering angle. | None. |
| [Acro](#acro-mode) | Directly map stick input to motor command. | Stick input creates a yaw rate setpoint for the control system to regulate. | yaw rate. |
| [Position](#position-mode) | Stick input creates a speed setpoint for the control system to regulate. | Stick input creates a yaw rate setpoint for the control system to regulate. If this setpoint is zero (stick is centered) the control system will keep the rover driving in a straight line. | yaw rate, yaw, speed and global position (GPS). |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing stabilized mode.

Unlike the feed-forward part of the controller, the closed loop yaw rate control will compare the yaw rate setpoint with the measured yaw rate and adapt to 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.
This way disturbances like uneven grounds or external forces can be compensated.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Original was better English.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(i will fix)

An integrator might not be neccessary at this stage, but it will become important for subsequent modes.
:::

1. (Optional) [RO_YAW_ACCEL_LIM](#RO_YAW_ACCEL_LIM) and [RO_YAW_DECEL_LIM](#RO_YAW_DECEL_LIM) [deg/s^2]: This is the maximum yaw acceleration and deceleration you want to allow for your rover.
Copy link
Collaborator

@hamishwillee hamishwillee Feb 26, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is something not quite right about the following sentence. I'll have a shot at fixing it, but can you check it.

Changed to

This can be used to smooth the yaw_rate setpoints and make their trajectory feasible based on the physical limitations of the rover.
It also improves tracking and avoid integrator build up.

Copy link

No flaws found

@hamishwillee
Copy link
Collaborator

Thanks very much @chfriedrich98 - looks great. There are a few minor fixes needed (see suggestions) but since this cleans up many of the reported link errors I'm going to merge.

@hamishwillee hamishwillee merged commit 04dad93 into main Feb 26, 2025
2 checks passed
@hamishwillee hamishwillee deleted the pr-rover_docs_update branch February 26, 2025 00:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

2 participants