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

Docs: Mentions setting the link mass in YAML #133

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

Conversation

matthias-mayr
Copy link

For my current setup, I am seeing better behavior during interactions with a smaller link mass.
It took me some minutes to find out how to set it in YAML. This should make it easier for other people.

@stefanscherzinger
Copy link
Contributor

@matthias-mayr Thanks for this!

I like that it improves the documentation implicitly. I might add some specific hints on what the parameter actually does.

Note that your proposed 0.1 is already the default as specified (somewhat redundantly) here:


and here:
gen.add("link_mass", double_t, 0, "Virtual mass of the manipulator's links. The smaller this value, the more does the end-effector (which has a unit mass of 1) dominate dynamic behavior. Near singularities, a bigger value leads to smoother motion.", 0.1, 0.001, 1)

so maybe

I am seeing better behavior during interactions with a smaller link mass

is due to some other effect?

@matthias-mayr
Copy link
Author

Note that your proposed 0.1 is already the default as specified (somewhat redundantly) here:

That is on purpose, because people often start with the example, so I want them to have the default value.

For my robot setup, I use these values:

solver:
    error_scale: 0.04
    iterations: 3
    forward_dynamics:
        link_mass: 0.025

since those were the best combination of some reactivity and stable contact in contact-rich situations.

iirc, higher (default) link mass gave me more low-frequency oscillations during contact. I might make my settings & the low-pass filter that I implemented available somehow. While it can be defined to be outside the scope of the library, it feels like it would be a great benefit if users can start out from some known well-working configurations for some standard robots like the UR5e.

I might add some specific hints on what the parameter actually does.

That'd be great

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

Successfully merging this pull request may close these issues.

2 participants