Closed cpr-fer closed 1 year ago
Problem with this approach, at least for the current setup, that a LAG error might occur in command mode switches. How to decide in the irc_ros_can if the errorstate is caused intentionally or if it should result in a complete halt of the kinematic?
One error in any single axis should disable all axes. This is a must fix before deploying the code in serious applications.
The best way to do it would probably in setting the lifecycle state of the hardware interface accordingly. An idea would be that depending on the type of the module error it gets handled differently. Some errors might even be attemptable to resolve them internally (MNE, COM). Others should result in a restart of the hardware interface and thus resetting all modules (LAG, ...). Errors that are not resolvable on the fly or indicate serious issues should finalize the node (ESTOP, OC, TEMP)