Closed angelom93 closed 5 months ago
We just discussed this issue internally and came up with the following plan:
step()
function: if the last heartbeat message is older than e.g. 1 second, activate the error flagset_mode()
function: if the error flag is set, set axis_state
and axis_control_mode
to -1 (unknown) and exit early, i.e. don't send updates to the ODriveThis should correctly handle both cases, when the ODrive has been reset and lost its internal state as well as when the ODrive is in a motor error state.
This will be fixed with the PR #41.
Issue Description: When the ODriveMotor is shut down, it resets its state, including the
CONTROL_MODE
. However, this change is not detected by Lizard. As a result, Lizard does not update the state of the ODrive before sending commands.Expected Behavior: Lizard should recognize the state change of the ODriveMotor, including the
CONTROL_MODE
, and update the state accordingly before sending any commands.