[uavcan] Fix unitless actuator range conversion #24936
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Solved Problem
When attaching a UAVCAN servo, the output does not work.
The UAVCAN message that gets sent is
uavcan.equipment.actuator.ArrayCommand
, but allcommand_values
are in the range [1, 3], while theCOMMAND_TYPE_UNITLESS
expects a range of [-1, +1].Solution
The formula for conversion was wrong, the input is [1000, 2000] and should map to [-1, +1]. The subtraction was -1, instead of -3.
Changelog Entry
For release notes:
Test coverage