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

[multibody] Add CurvilinearJoint (#22196) #22350

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

mshalm
Copy link
Contributor

@mshalm mshalm commented Dec 24, 2024

Adds a Joint and corresponding Mobilizer which model a single-DoF joint along a path composed of circular arcs and line segments within a plane, implementing part of #22196

Mobilizer is implemented as a thin wrapper around PiecewiseConstantCurvatureTrajectory. If the trajectory is a closed loop, the Joint can be flagged as periodic, in which case the mobilized frame can "wrap" around back to the beginning of the trajectory. In this case, the generalized coordinate q models the total distance traveled, with an intermediate function CurvilinearMobilizer::calc_s remapping to the trajectory's domain with drake::math::wrap_to.

The PR is longer than the recommended range of 500-1000 lines. We did not elect to split the PR into two due to the coupled nature of unit testing Joints and Mobilizers.

Some small touchups to PiecewiseConstantCurvatureTrajectory were included.


This change is Reviewable

Adds a Joint and corresponding Mobilizer which model a single-DoF
joint along a path composed of circular arcs and line segments
within a plane.
@mshalm mshalm changed the title [multibody] Add CurvilinearJoint (#22214) [multibody] Add CurvilinearJoint (#22196) Dec 27, 2024
@jwnimmer-tri
Copy link
Collaborator

@drake-jenkins-bot ok to test

Thank you for this! I'll tag +@amcastro-tri to take a look and CC @sherm1 -- though I anticipate it'll probably be next week once people are back in-office before they dig in.

Copy link
Contributor

@amcastro-tri amcastro-tri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @mshalm! Today is my first day in the office after the holidays. I'll get back to you ASAP

Reviewable status: LGTM missing from assignee amcastro-tri, needs platform reviewer assigned, needs at least two assigned reviewers, missing label for release notes (waiting on @mshalm)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants