[Question] Question about getting multi rigid contact data to simulate robot skin #1630
Unanswered
ZhangYi1999
asked this question in
Q&A
Replies: 2 comments
-
|
Thanks for posting this. Our apologies we haven't been able to reply earlier. I'll move this to a discussion for the team to follow up upon. |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
I have the same question here. Any updates so far? Thanks. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello, everyone. I am currently investigate how to simulate a robot skin module in isaac lab. The robot skin module is consist of multi small contact sensor cell and connected with each other to become a grid or hive shape. Like this,
In this case, each contact cell will have its own force sensor data. According to my understand about isaac sim and isaac lab, I think there are following possible way to simulate it properly:
RigidContactView
Create a
omni.isaac.core.prims.RigidBodyfor every cell, connected them withUsdPhysics.FixedJoint, and use aomni.isaac.core.prims.RigidContactViewto query all cell in all environment at the same time. This is the same idea asContactSensorfromomni.isaac.lab.However, this method doesn't work because when the amount is getting higher, it gives this error message.
I think it could be the issue of creating too many rigid body in an inefficient way.
Callback function
Instead of creat a
RigidBodyfor each cell, we can also create only oneRigidBodyfor the whole group and consider each cell as an individualColliderunder the overall rigid body.Use a customed callback function, which can get the detailed collider information like the following code. This code comes from the example in
ContactReportDemoandContactReportDirectAPIDemofromomni.physx.demosHowever, this way doesn't make much sense since it should query the information one by one, which means if you have 10 env and each env has 100 cell, you need to run this call function 1000 times. What's more, I am not sure if this call function runs on cpu or gpu, and will it effect the preformance of RL or not.
Calculate the cell assignment manually
Since
RigidContactViewcan also report contact position, it will be possible to use the contact position to determine which cell is collided. However, this could increase the computation complexity.Question
My question is, is there a better way to do this or can we use any of the above idea but do it efficiently. Btw, is it possible that the
get_contact_force_datafunction inRigidContactViewreturn collider information as well?If anyone could give same advice, I will be super grateful. Thanks in advance!
Beta Was this translation helpful? Give feedback.
All reactions