Skip to content
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

Allow reversed revolute and prismatic joints #22212

Open
sherm1 opened this issue Nov 19, 2024 · 0 comments
Open

Allow reversed revolute and prismatic joints #22212

sherm1 opened this issue Nov 19, 2024 · 0 comments
Assignees
Labels
component: multibody plant MultibodyPlant and supporting code type: feature request

Comments

@sherm1
Copy link
Member

sherm1 commented Nov 19, 2024

Background

Reversed weld joints are allowed in Drake as of #22122. That means it's OK if the child body of the weld is closer to World (or is World) in the tree structure than the parent body is. This gets us closer to solving #17429 but the addition of a weld is likely to require reversal of some of the other joints. For most robots the only such reversals will be revolute and occasionally prismatic joints. These are the easiest to reverse of the remaining joints since they just require flipping the reaction forces (already done in general in #22122) and negating the q and v.

Proposal

Add revolute and prismatic joints to the list of permitted reversed joints and implement the coordinate sign change in the corresponding mobilizers. Add unit tests for the coordinates; shouldn't need to test reaction flip as long as the same, already-tested code is used as for welds.

Per f2f discussion, consider whether it is sufficient to flip the axis while leaving the q and v signs alone. That would have the advantage of eliminating any conditionals or extra multiplies by a "sign" factor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: multibody plant MultibodyPlant and supporting code type: feature request
Projects
Status: Todo
Development

No branches or pull requests

2 participants