-
Notifications
You must be signed in to change notification settings - Fork 64
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
Multi dof action extension #55
Multi dof action extension #55
Conversation
This is a fairly major change and I'd like to see some current motivation for this. Is it to add some cartesian constraints? Planning for a mobile manipulator including the base? |
I am working on a project to bring mobile manipulation to MoveIt 2. This means supporting the planar joint in a number of different places. I've made changes already to srdfdom and MoveIt2's joint definitions. The current definition of The standard for MoveIt is to have two parallel data structures, one for standard joints and one for multiDOF joints, i.e. |
This looks good to me, but I am not a ROS Control expert. This is needed to do whole body motion planning for mobile manipulators using MoveIt. @AndyZe do you have any thoughts on this? |
Here's what @DLu is up to -- https://twitter.com/PickNikRobotics/status/1385667196999725056 |
First thought is that the name is misleading. Maybe call it |
This PR adds support for single joints that have more than one degree of freedom, i.e. planar/floating. It adds a Either way, the naming reflects the existing names from trajectory_msgs. |
Also, I've slightly modified the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can't think of a better way to do this. Approve assuming you make the minor changes.
What do you think @bmagyar ? |
Is the rationale for extending the existing message the fact a multi-dof joint is still a "joint", as in contrast to Cartesian (fi) waypoints, trajectories (& associated goals) which do not conceptually really fit in at the joint level any more? I'm asking because it doesn't necessarily seem proper to me to make |
It definitely extends the scope of this message and opens a lot of possibilities for new use-cases. The whole-body motion planning aspect is what was really convincing to me. I have one ask though:
|
The concept of "joint" is rather wide, but yes, the rationale is that planar and floating are the two multi-dof joints defined in the URDF spec, and are thus still "joints". Furthermore, MoveIt treats them as joints and can plan for them.
Here's my thinking: Let's say we have two robots, R1 and R2, where R1 has MultiDOF joints and R2 does not. Both of them offer the Right now, R1 has no way to follow a trajectory that includes its MultiDOF joints. Extending the action definition like in this PR enables that capability. R2 does not need to change their implementation at all, because they can safely ignore the In the other case where we create a new action that includes the union (both MultiDOF and Regular Trajectory) (call it
I'm not sure what you're referring to here with FZI. |
The FZI reference is to this, I think: https://discourse.ros.org/t/developing-a-cartesian-manipulator-interface/13872 The takeaway is, they made a new action server for Cartesian motions instead of modifying the existing one. |
f67686a
to
759d0b0
Compare
I made the message type name, so I went ahead and renamed it. Since the only difference between it and |
Any other questions I can help with @bmagyar |
@AndyZe thanks for that reference. The way I see it is that this would allow us to extend the FollowJointTrajectory action with non-revolute/prismatic/linear joints. The goal is not to make a shapeshifter follow trajectory action but to extend the current setup to support whole body trajectories where even in the case of bipeds where a pure joint trajectory could exist (however unrealistic), but the lower body is abstracted as a floating joint for practical reasons, similarly to mobile bases. This would play nicely with controller chaining once we have it in |
Thanks! |
(and thanks for the Galactic release) |
Alternate approach for #16
Adds
trajectory_msgs/MultiDOFJointTrajectory
toFollowJointTrajectory.action
goal, as well as some related fields.Since this changes a core message, we should probably create a
galactic-devel
fork and merge there instead. However, adding the field shouldn't break too much since robots without a MultiDOF joint can just ignore the component.