-
Notifications
You must be signed in to change notification settings - Fork 43
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 bullet-featherstone plugin #373
Conversation
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Louise Poubel <louise@openrobotics.org>
Signed-off-by: Michael X. Grey <grey@openrobotics.org>
Signed-off-by: Michael X. Grey <grey@openrobotics.org>
Signed-off-by: Michael X. Grey <grey@openrobotics.org>
Signed-off-by: Michael X. Grey <grey@openrobotics.org>
Signed-off-by: Michael X. Grey <grey@openrobotics.org>
Signed-off-by: Michael X. Grey <grey@openrobotics.org>
That's an exciting failure mode... |
Signed-off-by: Michael X. Grey <grey@openrobotics.org>
I compiled the code in nao.mp4 |
Signed-off-by: ahcorde <ahcorde@gmail.com>
Codecov Report
@@ Coverage Diff @@
## gz-physics6 #373 +/- ##
===============================================
+ Coverage 73.69% 75.36% +1.66%
===============================================
Files 128 140 +12
Lines 5787 7068 +1281
===============================================
+ Hits 4265 5327 +1062
- Misses 1522 1741 +219
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
Signed-off-by: ahcorde <ahcorde@gmail.com>
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Added Shapes Features to bullet-featherstone * make linters happy * Improve implementation * make linters happy * Fix bullet-featherstone collisions (#387) * Fixed collision issues * Improved joints in bullet featherstone Signed-off-by: ahcorde <ahcorde@gmail.com> Signed-off-by: Michael X. Grey <grey@openrobotics.org> Signed-off-by: Michael Carroll <michael@openrobotics.org> Co-authored-by: Michael X. Grey <grey@openrobotics.org> Co-authored-by: Michael Carroll <michael@openrobotics.org>
* Improved joints in bullet featherstone (#404) * Fixed ExamplesBuild * Fixed world test * Fixed joint test * Fixed kinematic features common test * Fixed kinematic test Signed-off-by: ahcorde <ahcorde@gmail.com>
Signed-off-by: ahcorde <ahcorde@gmail.com>
Signed-off-by: Michael Carroll <michael@openrobotics.org> Co-authored-by: ahcorde <ahcorde@gmail.com>
* Fixed bullet-featherstone mesh collisions Signed-off-by: ahcorde <ahcorde@gmail.com>
Signed-off-by: ahcorde <ahcorde@gmail.com>
* Bullet-featherstone Added detachable joints * decrease expectation joint_features attach/detacth Signed-off-by: ahcorde <ahcorde@gmail.com>
Signed-off-by: ahcorde <ahcorde@gmail.com>
Bullet featherstone: Added contacts and improved simulation tests Signed-off-by: ahcorde <ahcorde@gmail.com>
* Added FreeGroupWorld Velocities and minor fixes * If there is no CMD commands then I don't attach the motor to move the joint, because this will block the joint. Signed-off-by: ahcorde <ahcorde@gmail.com> Co-authored-by: Michael Carroll <michael@openrobotics.org>
* Add infrastructure for LinkFeatures * fix some issues * Added test * Fix joint attach test and tighten test constraints * Initialize to something to suppress compiler Signed-off-by: Michael Carroll <michael@openrobotics.org> Signed-off-by: ahcorde <ahcorde@gmail.com> Co-authored-by: ahcorde <ahcorde@gmail.com>
* Add some debug output for focal * Comment out flaky test Signed-off-by: Michael Carroll <michael@openrobotics.org>
@@ -34,13 +36,18 @@ class ConstructSdfCollision : public virtual Feature | |||
public: using ShapePtrType = ShapePtr<PolicyT, FeaturesT>; | |||
|
|||
public: ShapePtrType ConstructCollision(const ::sdf::Collision &_collision); | |||
|
|||
public: ShapePtrType GetCollision(const std::string &_collisionName); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why was this API added instead of using GetShapeFromLink::GetShape
?
🎉 New feature
Summary
This PR adds a
gz-physics-bullet-featherstone-plugin
which wraps the Featherstone API of the bullet physics engine. This is created as a separate plugin fromgz-physics-bullet-plugin
because the API of Bullet's Featherstone dynamics is different enough that there isn't really feature parity or easy interchangeability between them. Users will need to choose whether they are willing to settle for fewer features in exchange for the better performance of Bullet's Featherstone implementation.This PR depends on gazebosim/gz-sim#1560
Test it
I have been testing the plugin using the NAO demo world. Just download, unzip, and run
However, I have been noticing an inexplicable bug... The
bullet-featherstone
plugin works perfectly fine whengz-physics
is compiled inDebug
mode, but fails to respond to changing joint force commands whengz-physics
is compiled inRelease
orRelWithDebInfo
mode. I don't have an explanation for this at the moment. I've tried compiling bullet from source in both single and double precision mode, but the effect is the same either way.The strangest part is that the initial joint force commands seem to be respected because the arms manage to remain pointing straight outward. Also if you adjust the position slider before starting the simulation, then the joint will manage to reach that position, but it stops responding to any changes after the simulation begins.
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.