Replies: 1 comment 3 replies
-
Right, this mostly belongs to the OP side (or Panda), not so much because of size but because it's application specific and adds complexity to interfaces, etc. If deviation is detected, OP shall request SOFT_OFF. (This would only miss unlikely hardware failures when the motor is not actively used. ) To make sure the angle from the motor and the car has the same offset, a simple zeroing could be part of calibration (or a dedicated function could called by some means of a button, CAN or debugger...). (I have some simple code WIP for zeroing after calibration and storing it in eeprom that I can publish soon). Then the savvy user must still ensure the zero doesn't change by full rotation. This can by achieved means of either always powering down with steering close to the center or never powering down (new StepperServoCAN will be more energy efficient). - Otherwise, the deviation safety would trigger in OP. |
Beta Was this translation helpful? Give feedback.
-
If used on a steering column, it is crucial that your StepperServoCAN assembly remains intact, with none of the parts coming loose.
This safety enhancement would be highly beneficial and could be easily implemented if the car already has a steering angle sensor. By monitoring the maximum deviation between the car's steering angle sensor and the StepperServoCAN angle, we can ensure safe and precise control. If the deviation exceeds a predefined threshold, the StepperServoCAN would no longer accept control messages.
To achieve this, we could introduce a fifth STEER_MODE, such as the "deviation tracking mode." Users can choose to utilize this mode optionally, and the system would not enforce its usage. In such a mode, the maximum deviation event could be reported in the CONTROL_STATUS message.
However, there are a few challenges to consider. One of them is efficiently incorporating the required CAN encodings of the steering angle into the StepperServoCAN firmware. Additionally, the maximum acceptable deviation might need to be user-defined since different assemblies may have varying tolerances. Implementing these features could increase the firmware's size, so we could address this issue on the OP side.
Beta Was this translation helpful? Give feedback.
All reactions