-
Notifications
You must be signed in to change notification settings - Fork 13.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
Introduce boat vehicle type #24310
base: main
Are you sure you want to change the base?
Introduce boat vehicle type #24310
Conversation
🔎 FLASH Analysispx4_fmu-v5x [Total VM Diff: 304 byte (0.01 %)]
px4_fmu-v6x [Total VM Diff: 336 byte (0.02 %)]
Updated: 2025-02-12T10:15:53 |
@TomasTwardzik can you update with latest main changes through rebase? @MaEtUgR do these changes require further action on the rover type? |
7ac6300
to
428825a
Compare
[fix] Adding boat condition for NAV_CMD_TAKEOFF
428825a
to
e907fb0
Compare
@@ -94,6 +94,7 @@ uint8 VEHICLE_TYPE_ROTARY_WING = 1 | |||
uint8 VEHICLE_TYPE_FIXED_WING = 2 | |||
uint8 VEHICLE_TYPE_ROVER = 3 | |||
uint8 VEHICLE_TYPE_AIRSHIP = 4 | |||
uint8 VEHICLE_TYPE_BOAT = 5 |
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.
Before we introduce the new type type here, let's discuss the meaning of this field, see #24367
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 agree with the points made. As is it currently stands, the code is a bit confusing what is what and these changes should clear it up.
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.
Thanks for kicking off this discussion!
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there: |
@TomasTwardzik please rebase on main (e.g. #24367 came in now), and remove the CA_* params for now (until boat controllers are added). |
Motivation
Decoupling boat and rover to exists as separate entities within Navigator and Commander modules. Despite similarities, this should lead to more legible, self documented code. In the future, this also allows to make changes separately, without risking introducing unwanted behavior to other platforms.
Discovered Problem
Rover can be armed with high throttle, which is a significant risk.
Solution
Both Rover and Boat now require throttle stick near center to be armed.
Changelog Entry
For release notes:
VehickeStatus.msg
-> new vehicle type VEHICLE_TYPE_BOATNavigator module
-> boat explicitely mimics rover behavior, instead of relying on vehicle_type being VEHICLE_TYPE_ROVERControl Allocator's
module.yaml
-> Adding new airframe types for boats (Singe, Twin engine and Differential)commander_helper
-> adding distinct separation for boat and rover instead of generic ground vehicleCommander
-> adding method for throttle near center detection, adding, adding mission override for boats, adding dedicated arm checks for rover and boats