Skip to content

Bug in new brake disengage logic #63

Open
@d-loret

Description

Suggestion to simplify handling of brake disengage in Actuator's state machine

I might be missing something, but I also wonder if we considered just adding one additional state before any of the profile mode states. Something analogous to the HOLDING state but before you enter any of the profile states, say WAIT_BRAKE_DISENGAGE. In HandleNewProfX() you could store the command and what state you should transition after the wait, and transition to WAIT_BRAKE_DISENGAGE. In ProcessWaitBrakeDisengage you transition to the stored prof state immediately if servo_enabled is true. Otherwise, you wait for the max possible brake time (the current ~1s). And then just generate the trapezoid in ProcessProfX() if it is executing for the first time (e.g. maybe indicated by a flag that HandleNewProfX() sets).

I say this because right now you could go from, for example, PROF_POS -> PROF_POS_DISENGAGING -> PROF_POS, which is a little confusing.

Metadata

Assignees

Labels

bugSomething isn't workingenhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions