-
Notifications
You must be signed in to change notification settings - Fork 95
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
SDF to USD: set UsdPhysicsArticulationRootAPI #914
Conversation
Signed-off-by: ahcorde <ahcorde@gmail.com>
Codecov Report
@@ Coverage Diff @@
## sdf12 #914 +/- ##
==========================================
- Coverage 88.05% 88.00% -0.06%
==========================================
Files 100 100
Lines 14696 14714 +18
==========================================
+ Hits 12941 12949 +8
- Misses 1755 1765 +10
Continue to review full report at Codecov.
|
Signed-off-by: Ashton Larkin <42042756+adlarkin@users.noreply.github.com>
Signed-off-by: Ashton Larkin <42042756+adlarkin@users.noreply.github.com>
Signed-off-by: ahcorde <ahcorde@gmail.com>
@adlarkin I made more changes, it was not working in same cases. |
Signed-off-by: Ashton Larkin <42042756+adlarkin@users.noreply.github.com>
19e40f1
to
b9dc8ae
Compare
if (!markedArticulationRoot && !_model.Static()) | ||
{ | ||
if (!pxr::UsdPhysicsRigidBodyAPI::Apply(modelPrim)) |
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.
I have a few questions about this:
- If we are marking the model as a rigid body API, then why do we need to also mark the link as a rigid body API? I believe that marking only the model as a rigid body API should be sufficient, since the link is a child prim of the model prim.
- In the first
if
block, why do we check if the model is not static and if the model has not been marked as an articulation root? As I understand it,pxr::UsdPhysicsRigidBodyAPI
only implies static/non-static, which means that articulation root API should not have any influence on whether a prim is marked as a rigid body API or not. The only thing that should influence whether a prim is a rigid body API is whether it is static or not, so I believe the firstif
statement here should only check if the model is not static instead of checking of the model isn't static and also isn't marked as an articulation root API.
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.
When I was converting the panda robot to USD I was having some issues. Here it's what I found testing the model in Isaac Sim
- A
UsdPhysicsRigidBodyAPI
can't be marked asrigidbody
otherwise I was having issue with the joints - If the parent is marked as
UsdPhysicsRigidBodyAPI
then I need to set all children torigidbody
.
I don't have a clear explanation about why is this happening but I fix this based on the behaviour in Issac Sim
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.
Okay, thanks for the feedback 👍 so if a model prim is marked as an articulation root API, but not as a rigid body API, does it still move without issues? From the initial reading I did on USD, if a prim isn't marked as a rigid body, then I thought this prim would be interpreted as static.
Signed-off-by: Ashton Larkin <42042756+adlarkin@users.noreply.github.com>
Signed-off-by: ahcorde ahcorde@gmail.com
🦟 Bug fix
We should set the
UsdPhysicsArticulationRootAPI
to allow articulation arms to move in IsaacSimSummary
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.