-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot change control mode some/many times #170
Comments
Same thing happened today:
|
I can confirm this is still an issue in current #229 code, although this time I did not test it beyond the pos->torq->pos transition sequence. Torque mode is successfully enabled, but motors do not control position after the last transition. I noticed the behavior of this mode either differs from the indications in the user manual, or simply I'm missing something and the solution is quite obvious. I contacted support in that regard. |
Answered:
However, CiA DSP 402 (v2.0) states in 12.4:
Support may have misunderstood me. I want a "set of set-points", in the above comment I'm told how to configure a "single set-point". |
Nope. Finally, thanks to @jgvictores, we found a recent version of the relevant CiA standard (402-2), see #223 (comment). A set of set-points, if supported by the drive, implies an internal buffer of at least one additional set-point. The next set-point is not sent until the previous one has been processed, executed and reached. The hand-shake is intended for the single set-point set-up as we have had it implemented. The procedure should look as follows:
Edit: done at 0d104f6. |
* CiA 402-2, 10.2.2 * #170 (comment)
Made the following experiment via YARP2CAN ports (#160):
Two things can happen now:
I noticed both behaviors are reproducible. The latter situation is easier to replicate if the target position (object 607Ah, used as reference in position profile mode) differs from the actual encoder read, probably because you spinned the motor manually when in torque mode. I managed to avoid this. Before transitioning from torque to position mode, request the SWITCHED_ON drive state and then go back to OPERATION_ENABLED. |
Mostly ready and tested at 8872f40. This is hopefully robust enough (tested via RPC and yarpmotorgui), but I'm going to contact support anyway to learn how the drive's internals behave. To sum up, we want to transition back and forth between four modes of operation (YARP control mode mappings aside):
Where:
Green ticks (✔️) mean seamless transitions in "Operation enabled" state, whereas red crosses (❌) mean abnormal behavior, e.g. sudden motor spin and transition to fault state. Implemented solutions:
Also, I expanded the latter to the ert-to-pv case for completeness, I just don't fully trust the iPOS drives. Important remark: motors are free to rotate (i.e. limbs may fall due to gravity) when switching from ert to any other mode due to the "Switched on" state transition. |
This has been reported to Technosoft support and confirmed by them, we have found a firmware bug. The suggested and working solution is to request homing mode upon leaving external reference torque, then switch to the desired mode of operation. This is highly convenient since spares us from transitioning to "Switched on" state, which results in loss of motor control for a brief while. I have implemented this in ece1971, and also used this same solution in the pv-to-csp transition. |
Similar to #127, thing seem pretty bad.
Changing from initial position mode to torque mode, the mode is not enabled even after several tries. This is, either it works the first time, or never works at all.
Additionally, as described at roboticslab-uc3m/teo-main#35, the pos -> torq -> pos -> torq sequence is not possible either.
The text was updated successfully, but these errors were encountered: