Skip to content

Rover: add automatic motor reversal and enumeration detection #31066

@ES-Alexander

Description

@ES-Alexander

Feature request

Is your feature request related to a problem? Please describe.
Hardware and wiring can be messy, and it is possible for users to incorrectly wire up their motors, which then requires troubleshooting and subsequent fixing or software compensation.

Describe the solution you'd like
ArduSub supports a motor reversal detection mode which runs one motor at a time, and uses the vehicle's resulting motion to determine output configuration issues relative to the frame's expected motor motion contribution factors, and reports errors and/or sets the SERVOn_REVERSED parameters as relevant. As rover vehicles are constrained to a surface, it should be readily possible to achieve the same effect, and also detect and correct for issues in the motor ordering/enumeration (assuming the motors are at least connected to the configured set of pins).

This would be useful where motor wiring is difficult to adjust, and also specifying which motor connections should be swapped (or are not working as expected) for users who would prefer to fix things at the hardware level.

Describe alternatives you've considered
The current approach is to investigate manually and set relevant parameters / correct wiring by hand, which works, it's just not very friendly, and could be made easier.

Platform
[ ] All
[ ] AntennaTracker
[ ] Copter
[ ] Plane
[x] Rover
[ ] Submarine

Additional context
This forum thread covers a situation where a user loaded some incorrect parameters for the vehicle they were using (which did not follow ArduPilot's documented recommendations),

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions