-
Notifications
You must be signed in to change notification settings - Fork 20.3k
Description
Feature request
Is your feature request related to a problem? Please describe.
ArduSub and ArduRover boat vehicles have some unique features compared to other vehicle types, and are often controlled in different ways, many of which aren't yet covered by autotests.
Describe the solution you'd like
Add autotests for the following features (where the firmware is ticked):
Key:
- ✅ → autotest already available
- ❗️ → autotest needed
- 〰️ → maybe useful, but not essential
- ❌ → not needed / not (currently) relevant
| Feature | Sub? | Boat? | Notes |
|---|---|---|---|
MAVLink MANUAL_CONTROL axes |
❗️ | ❗️ | Used for GCS control by a joystick. Include roll/pitch axes |
MAVLink MANUAL_CONTROL buttons |
❗️ | ❌ | Used for GCS control by a joystick |
| Joystick roll/pitch trim button functions | ❗️ | ❌ | joystick attitude control |
| Joystick pilot gain inc/dec button functions | ❗️ | ❌ | joystick speed control |
| Pilot control failsafe | ❗️ | ❌ | |
| Normal PWM motors | ❗️ | ❌ | MOT_PWM_MIN/MAX/REVERSED |
| Trimmable (PWMAngle) motors | ❗️ | ❌ | SERVOn_MIN/MAX/REVERSE |
| Vectored 6DoF frame | ❗️ | ❌ | |
MOTOR_DETECT mode |
❗️ | ❌ | automatic motor reversal detection |
AHRS_ORIENTATION |
❗️ | ❗️ | accel / gyro orientation offset |
| INS position offset | 〰️ | ❗️ | |
TetherTrn reports |
❗️ | ❌ | NAMED_VALUE_FLOAT messages tracking cumulative yaw turns |
| Baro offset calibration | ❗️ | ❌ | Can be done manually, and happens automatically if the reading reports a positive altitude (negative depth) |
| Distance sensor position and orientation offsets | ❗️ | ❗️ | Critical for bathymetry, important for some obstacle avoidance |
| compass motor compensation | ❗️ | ❗️ | not (yet) frequently used |
| Leak failsafe | ❗️ | ❌ | |
VISO_ORIENT |
❗️ | 〰️ | DVL orientation |
MAVLink GPS_INPUT |
❗️ | 〰️ | Used by some positioning systems |
| GPS heading | ✅ | ❗️ | |
| GPS antenna position offset | ❌ | ❗️ | |
MAVLink AP_ADC |
〰️ | 〰️ | ADC feedback |
| EKF failsafe | 〰️ | ❗️ | |
| Lights1/2 output functions | ❗️ | ❌ | SERVOn_FUNCTION, Lights1/2 NAMED_VALUE_FLOAT messages, servo PWM range, duty-cycle PWM range, joystick inc/dec buttons, JS_LIGHTS_STEPS param |
| Mount tilt servo | ❗️ | ❌ | PWM range, rate-based stabilised angle control, joystick button inc/dec, CamTilt NAMED_VALUE_FLOAT messages |
| Gripper | ❗️ | ❌ | Rate-control servo-style PWM, joystick momentary button functions |
| Relay control | ❗️ | ✅ | on/off joystick button functions, MAV_CMD_DO_SET_RELAY programmatic/GCS control, RELAY_STATUS reporting |
MAVLink RC_CHANNELS_OVERRIDE support |
❗️ | ❌ | RC-like programmatic control |
Describe alternatives you've considered
Manual testing is generally possible, and should sometimes still be used as well, but is often less comprehensive and less convenient than regular automated tests which ensure features continue to work (particularly at the PR level).
Platform
[ ] All
[ ] AntennaTracker
[ ] Copter
[ ] Plane
[x] Rover
[x] Submarine
Additional context
I'm planning to work on these, but figured it doesn't hurt to share the list in case anyone wants to help.
List derived from a WIP spreadsheet of features and firmware release tests from Blue Robotics, intended for testing ROVs and skid-steer boats.