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

Support of closed kinematic chains #25

Open
osrf-migration opened this issue Oct 18, 2019 · 12 comments
Open

Support of closed kinematic chains #25

osrf-migration opened this issue Oct 18, 2019 · 12 comments
Labels
enhancement New feature or request

Comments

@osrf-migration
Copy link

Original report (archived issue) by Diego Ferigo (Bitbucket: dgferigo).


Doing some experiments with the SDF of Minitaur quadruped (taken from KodlabPenn/kodlab_gazebo), I noticed that the current state of the dart physics plugin does not yet support closed kinematic chains (parallel robot).

The four legs on Minitaur are composed of a five-bar linkage. The SDFs hosted in the GitHub repo work well in Gazebo 10 Classic. However, the simulation of the model in Ignition Gazebo does not apply the constraint to keep the linkage closed, and the links forming the legs fall apart as soon as they touch the ground.

I found this TODO in the code, therefore I open this issue to track the status of the missing support.

@peci1
Copy link
Contributor

peci1 commented Aug 17, 2020

I vouch for resolving this issue. It is in SDF spec that the models can contain closed kinematic chains.

Until this is resolved, I'd expect a note on https://ignitionrobotics.org/docs/citadel/comparison#physics or https://ignitionrobotics.org/docs/all/release-features.

@peci1
Copy link
Contributor

peci1 commented Aug 17, 2020

According to dartsim/dart#465 and https://dartsim.github.io/#dynamics it should be possible with DART, maybe with some workarounds.

Other possibly useful resources: https://dartsim.github.io/tutorials_collisions.html.

@peci1
Copy link
Contributor

peci1 commented Aug 17, 2020

We have a possible use for closed kinematic chains in the SubT virtual challenge (with the Absolem robot).

@chapulina
Copy link
Contributor

I'd expect a note on

@peci1 , we'd appreciate a PR against the docs adding more rows to the comparison table with high-level features that you identify as missing. Thanks!

@peci1
Copy link
Contributor

peci1 commented Aug 18, 2020

I'd expect a note on

@peci1 , we'd appreciate a PR against the docs adding more rows to the comparison table with high-level features that you identify as missing. Thanks!

gazebosim/docs#61

@benediktkreis
Copy link

Is this feature going to be implemented soon (e.g. in Garden)? This would help to simulate parallel kinematics e.g. for grippers such as the Robotiq 2F-85 or the OnRobot RG2.

arjo129 added a commit that referenced this issue May 17, 2022
This PR supercedes #345 with a more general solution that would also help address #25 and solve a lot of issues related to casting joints. Open to feedback..

# TODO
- [ ] clean up all the excess joints and links  created during the process of loop joint creation.
- [ ] fix SetJointTransformChild to use only the joint.

Signed-off-by: Arjo Chakravarty <[email protected]>
@arjo129 arjo129 mentioned this issue May 17, 2022
11 tasks
@benediktkreis
Copy link

Are there any updates on this feature?

In Gazebo Classic there is the possibility to model 2-finger grippers with closed kinematic chains or use the mimic joints plugin (see here, here and here). Unfortunately, both doesn't work in Ignition Gazebo. That is why it would by of great help if there was the possibility to model closed kinematic chains in Ignition Gazebo.

@scpeters
Copy link
Member

we have laid some groundwork for supporting closed kinematic chains in #352, though currently only the AttachFixedJoint feature has this support implemented. So one can dynamically create fixed joints that close a loop or create non-tree kinematics. It will need to be applied to the other Attach*Joint features and the ConstructSDF* features before it can be supported for other joints and for loops defined in SDFormat

@benediktkreis
Copy link

Is there some progress that allows to statically create closed kinematic chains?

@Luczia
Copy link

Luczia commented May 29, 2023

Hi ! Is there any progress on the subject ?
May be there is a basic example of a 4 bar linkage with the workaround @scpeters mentions in this answer ?
Like this one in Gazebo Classic ?

@oKermorgant
Copy link

Hi,

I am adapting parallel robots from Gazebo classic in order to upgrade Ubuntu (as classic will not be maintained).

As far as I get the state of parallel robots / closed kinematic chains, the solution seems to write an robot without loops and attach some links on spawn, through some plugin (e.g. osrf/mbzirc#138).
A DetachableJoint plugin exists in Gazebo but it here to attach several models. A similar plugin should be made for use in a single model, but to attach two links in order to close the loop.

Is this correct or is there any supported approach for closed kinematics already?

@oKermorgant
Copy link

oKermorgant commented Feb 16, 2024

I have reproduced the 4 bar linkage in this repo here: https://github.com/oKermorgant/gz_attach_links

This still cannot be done statically in the SDF file, the closing joint has to be attached on spawn. This may be done with a DetachableJoint or with a custom plugin provided in the repo (I only though of using DetachableJoint afterwards...)

The main trouble is that the SDF should still define the robot as a tree, especially no link can have two parents. This may lead to change the parent/child ordering, and thus the relative joint positions.

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

No branches or pull requests

7 participants