-
Notifications
You must be signed in to change notification settings - Fork 283
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 example about using joint control components #2728
Open
scpeters
wants to merge
4
commits into
gz-sim9
Choose a base branch
from
scpeters/example_joint_control_components
base: gz-sim9
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Signed-off-by: Steve Peters <[email protected]>
iche033
reviewed
Jan 25, 2025
examples/plugin/joint_control_components/PulseJointVelocityCommand.cc
Outdated
Show resolved
Hide resolved
examples/plugin/joint_control_components/joint_control_components.sdf
Outdated
Show resolved
Hide resolved
ahcorde
requested changes
Jan 27, 2025
examples/plugin/joint_control_components/ResetJointVelocityNearPosition.cc
Show resolved
Hide resolved
examples/plugin/joint_control_components/joint_control_components.sdf
Outdated
Show resolved
Hide resolved
examples/plugin/joint_control_components/joint_control_components.sdf
Outdated
Show resolved
Hide resolved
examples/plugin/joint_control_components/joint_control_components.sdf
Outdated
Show resolved
Hide resolved
* Copyright year * Example cmake project name * Missing includes * Typo in example cd command * Whitespace Signed-off-by: Steve Peters <[email protected]>
Signed-off-by: Steve Peters <[email protected]>
…oint_control_components
iche033
approved these changes
Jan 27, 2025
@osrf-jenkins run tests |
24 tasks
The CI for Windows is using the new Conda jobs, the |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🎉 New feature
Demonstrate issues with joint control
Summary
I was struggling to use both
JointVelocityCmd
andJointVelocityReset
components when controlling joints until I noticed the following comment in src/systems/physics/Physics.cc:To demonstrate this interaction I created two example plugins:
ResetJointVelocityNearPosition
: this plugin sets theJointVelocityReset
component to a fixed value when the measured joint position is near a trigger
position. This can create a bouncing behavior of a pendulum if the trigger
position is the bottom stable equilibrium.
PulseJointVelocityCommand
: this plugin applies pulses of joint velocitycommands as a square wave with a specified time period between pulses.
The example world includes three pendulum models:
ResetJointVelocityNearPosition
with a trigger position at the downward stable eqilibrium point. This exhibits
a bouncing behavior.
PulseJointVelocityCommand
.It starts out stationary, then alternates between moving at constant velocity
and swinging passively.
of constant velocity alternating with passive swinging and bouncing at the
bottom.
Screen capture with dartsim:
example_joint_control_commands_dartsim.mov
Screen capture with dartsim without setting JointForceCmd
If you comment out PulseJointVelocityCommand.cc:67 which sets the
JointForceCmd
component to0
during the inactive portion of the pulse, the velocity controller remains active with a velocity command of0
.example_joint_control_commands_dartsim_without_force_cmd.mov
Bullet
There is an issue with bullet-featherstone; I will file that separately.
Test it
Follow the instructions in the example README to compile and run the examples
Checklist
codecheck
passed (See contributing)Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining
Signed-off-by
messages.