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

Refactor Bullet plugin implementation #298

Closed
wants to merge 9 commits into from

Conversation

joxoby
Copy link

@joxoby joxoby commented Oct 12, 2021

The previous implementation was using instances if btRigidBody to represent links and instances derived from btConstraint to model the joints.

This implementation uses instances of btMultiBody multi-link models and btRigidBody for single-link ones.

btMultiBody is the Bullet implementation of Featherstone's algorithm, which uses a reduced coordinates representation.

Related ign-gazebo PR: gazebosim/gz-sim#1223

joxoby added 2 commits August 26, 2021 11:48
Signed-off-by: Juan Oxoby <joxoby@pm.me>
@github-actions github-actions bot added the 🏢 edifice Ignition Edifice label Oct 12, 2021
@joxoby joxoby changed the base branch from ign-physics4 to ign-physics5 November 29, 2021 22:41
@joxoby
Copy link
Author

joxoby commented Nov 29, 2021

I've updated the base branch to ign-physics5, so we should update the label to fortress.

@joxoby joxoby changed the title [WIP] Refactor Bullet plugin implementation Refactor Bullet plugin implementation Nov 30, 2021
@joxoby joxoby marked this pull request as ready for review November 30, 2021 02:30
Signed-off-by: Juan Oxoby <joxoby@pm.me>
@joxoby joxoby changed the title Refactor Bullet plugin implementation [WIP] Refactor Bullet plugin implementation Nov 30, 2021
@azeey
Copy link
Contributor

azeey commented Nov 30, 2021

Thanks for the contribution @joxoby. I see that this uses Bullet 3.17, but that version of Bullet is not available on Ubuntu Bionic or Focal. Is having 3.17 a strict requirement for the PR?

@joxoby
Copy link
Author

joxoby commented Nov 30, 2021

Thanks for the contribution @joxoby. I see that this uses Bullet 3.17, but that version of Bullet is not available on Ubuntu Bionic or Focal. Is having 3.17 a strict requirement for the PR?

No, it's not. I reverted the change.

@joxoby joxoby changed the title [WIP] Refactor Bullet plugin implementation Refactor Bullet plugin implementation Jan 24, 2022
@chapulina chapulina added 🏯 fortress Ignition Fortress and removed 🏢 edifice Ignition Edifice labels Mar 25, 2022
@dgoel
Copy link

dgoel commented Apr 5, 2022

Just checking if there's any plan to review this PR?

@bhaskara
Copy link

Hi all, checking on the status of this. I see it was removed from "In Progress" a few days ago?

@azeey
Copy link
Contributor

azeey commented May 16, 2022

I haven't had time to review this, but I think it might have been removed from "In Progress" due to the migration to the new project board under the gazebosim org.

btw, @joxoby I see CI is failing. Anyway you can fix the failing tests?

@mxgrey
Copy link
Contributor

mxgrey commented Jun 30, 2022

Thanks for all the effort that went into this PR. It was very informative to see the way you approached the integration. Seeing the challenges you dealt with helped us identify some issues that made gz-sim incompatible with physics engines that don't support incremental construction of models.

We're closing this PR in favor of gazebosim/gz-sim#1560 and #373

With those two PRs we're taking a different strategy than what was used here:

  • Instead of a ConstructSdfMultibody feature that conceptually overlaps with ConstructSdfModel, we are changing the behavior of gz-sim to, by default, have Models constructed in a single call to ConstructSdfModel, and then allow for incremental additions to those models using ConstructSdf[Link|Joint|Collision] if the physics engine happens to implement it. Now the only required ConstructSdf_ feature will be ConstructSdfModel.
  • Instead of migrating the existing bullet plugin over to the Featherstone API, we are allowing users to choose whether they use the classic or the Featherstone implementation by selecting between the two plugins. The classic bullet plugin will allow incremental construction of models whereas the Featherstone will not offer that feature in exchange for having better performance.

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

Successfully merging this pull request may close these issues.

6 participants