-
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
Implement cyclic synchronous position (CSP) mode #222
Comments
I can confirm object 6061h ("Modes of Operation Display") reports CSP mode is entered successfully with #229 and firmware F508M/F509M (tested on CAN ids 19 and 20), despite object 6502h ("Supported drive modes") hinting it was not possible. I did not change any EasySetup configuration. For the record, iPOS firmware upgrade was tracked at https://github.com/roboticslab-uc3m/teo-hardware-issues/issues/42. |
CSP mode successfully tested. I was going to retain old (legacy) interpolation submodes. However, the online position-direct implementation is more than enough (and probably more robust) via CSP, hence I'll probably desist. Offline trajectory execution through legacy modes will be targeted in a new issue. |
While providing backward support to pt/pvt modes, I redesigned the way parameters are passed to subdevices via
|
Ready at 3a9fe3e. Old PT/PVT can be configured as described above, but it is currently disabled. Any attempts to switching into position-direct mode with these legacy submodes enabled will lead to a failure. Also, I noticed a persisting integrity counter error and abnormal (= fierce) joint motion; ignoring this as explained in #222 (comment). Offline usage of PT/PVT will be targeted at #245. |
I added this at bd1a72b (the page has a disclaimer that the protocols may be subject to change anyway). |
I just implemented joint velocity checks in CSP mode at 9fb6962. Robot arms behave horribly when controlled via spnav mouse. I presume this is caused by the cartesian controller sending commands that assume the robot has achieved the desired target, thus losing the actual reference (see roboticslab-uc3m/kinematics-dynamics#173 (comment)). As a result of this, the arm motion is erratic and goes totally bananas (techie term) when it is told to move faster. Note Issue #188 derived from a long I did a quick search across the robotology org. cc @jgvictores for science. ATOW, we use |
Guess what, it was my fault and commit ef6e264 easily fixed this. Of course, high-level apps would still suffer from this very same problem in case high-velocity targets are commanded to the robot boards. So, @jgvictores and I concluded such high-level apps (e.g. the cartesian motion controllers) should always perform position/velocity checks on resulting joint commands prior to sending them down to the joint controllers. Thus, low-level checks are per-joint mandatory lifeboats, but when coordinated motion is required, high-level should also clip those values (and probably perform FK/IK in cartesian space) in order to achieve correct behavior (e.g. linear movement). |
In #198, an attempt was made to try the CSP mode of operation (#198 (comment)):
Tested again via object 6502h, Supported drive modes: #198 (comment).
Also learned that... (#198 (comment))
And, more recently... (ref)
The text was updated successfully, but these errors were encountered: