-
Notifications
You must be signed in to change notification settings - Fork 8
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
Add end effector frame to Panda arm #10
Conversation
6d1fc99
to
f802491
Compare
f802491
to
e5e4750
Compare
Just to clarify, this is yet another problem that you have due to URDF's implicit constraint that link frames can only lie on the axis of the parent joint, using SDF, you do not have this constraints so you could directly place the link6's frame in the desired location. Regarding the "dummy mass" the best long term solution is for the the URDF fake links to be converted to SDF 1.7 frames by the URDF --> SDF converted presend in sdformat (see https://bitbucket.org/osrf/sdformat/issues/199/urdf-to-sdf-conversion-ignores-links#comment-56105477 and the evergreen https://discourse.ros.org/t/urdf-ng-link-and-frame-concepts/56). However, a more short term solution that does not change the total inertial parameters of the robot is to decompose the inertia of the link7 in two parts, in a way that the total inertia is still the original one. This can be easily done with iDynTree bindings. Note that as we leave all the collision shapes in link7, all the external forces will be measured as forces on link7 and not on link8. |
Additional comment: when assigning frames for industrial robots, it may be convenient to follow the guidelines used in ROS-Industrial models: |
@traversaro Thank you a lot for the ROS industrial links, very interesting. If I have to extract the relevant change for this PR, probably the only change we should do is having the EE with the X axis pointing forward (right now it's Z pointing forward). It is not a big change, and I can take care of it in short time.
Great explanation 😍 For the aims of our first experiments, I think that these very small masses can be left as they are. I will open a new issue linking your comment to keep track of this activity that we can implement in another PR. Since we got the inertial parameters from outside the repo, we are not even sure that they are correct and having this small additional mass does not block our current experiments.
I'm not sure I got this right. What's the role of link6 in this case? Here below you can find the current kinematic tree if it helps:
and this is the tree with the edits of this PR:
|
Sorry, I am too used to work with 6 dofs industrial arms. I actually meant with link6 the last "real" link (that is actually link7) and link7 the additional fake one (that is actually link8), I will edit the comment. |
Thanks. Just to be precise, |
I modified the model to have the X axis pointing forward. I updated the first post and image accordingly. Thanks @traversaro for pointing this out, now imagining the pose of the EE wrt the base is way more easier. |
Our Panda model (#2) does not have any end effector frame, very useful for cartesian control.
This PR adds a fake link attached with a fixed joint to the
panda_link7
link:Unfortunately I couldn't find a way to avoid adding a dummy mass to the fake
end_effector_frame
link. @traversaro do you have any smarter workaround?cc @paolo-viceconte @eleramp