Skip to content

Sub/Boat: add autotests for core features #32174

@ES-Alexander

Description

@ES-Alexander

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions