Added torque_ramp_rate to controller config.
Changed INPUT_MODE_CURRENT_RAMP to INPUT_MODE_TORQUE_RAMP for controller input mode enum.
Torque limits and current limits are now observed seperately. Torque limit is in the controller, current limit is in the motor object.
Fixed torque -> current calculation in motor_update to handle ACIM motors.
The following documentation is moved to odrive-interfaces.yaml:
- Error flag documentation from troubleshooting.md
- Axis state documentation from commands.md
- Input mode documentation from input_modes.md
This adds a jinja template to generate markdown files
(with lots of HTML mixed in) from YAML using the existing
interface_generator.py script.
The docs website layout files are modified to incorporate the
new documentation.
While previously Github Pages was automatically running
Jekyll on the docs folder, this commit adds a custom Github
workflow to compile and deploy the website to facilitate
the custom markdown generation step before Jekyll runs.
Windows 10 includes since version 1903 a python stub which is supposed
to open the MS Store if python is invoked but not installed. However
when invoked from tup, the stub simply hangs without output.
With this change we first check the python version (something that the
Windows stub does not interer with) before we invoke it.
Previously, coexistence with devices that use extended CAN IDs was not
possible since the ODrive would simply clip the 18 upper bits of an
extended message ID.
This adds proper support for extended CAN IDs by changing
`can_node_id` from 8 to 32 bit and introducing the new option
`can_node_id_extended`.
Consistent naming makes code autogeneration easier.
This commit does not claim that the exported names of the variables were
more sensible than the in-code names. However changing the exported
names can break external tools and needs to happen in a controlled and
documented way.
- Remove logic that would inhibit error detection until the first value is received. This logic posed a risk when no encoder is connected at all.
- check error flag in AMS mode
- Make CUI mode work. Only tested with emulated CUI encoder.
- only go to ready-state if a successful value was received _and_ the offset was already pre-calibrated
- enable pull-up on MISO so that a disconnected AMS encoder can be detected
- update encoder documentation