Replies: 1 comment
-
I have gained a better understanding after reviewing the I now realize that the large tensor arises because it's not just the primitives specified in the Next I will try to figure out how to figure out what value in the buffer belongs to what env_id. |
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,
Thank you in advance for your help! I have a question regarding obtaining contact data using the
RigidContactView
class API within the file_isaac_sim/extsPhysics/omni.physics.tensors/omni/physics/tensors/impl/api.py
. Specifically, I am uncertain about thedef get_contact_data(self, dt)
function, which I believe is based on the following documentation: get_contact_force_data.Compared to the
get_net_contact_forces(self, dt)
function, I findget_contact_data(self, dt)
harder to use because we need to predefine the size of our buffer. This would be manageable if I knew the exact number of contacts per robot. However, through trial and error, I have observed that each foot of the Anymal robot can have more than one contact. For instance, with an Anymal robot with 4 legs, I would expect to get 4 contacts between the feet and the ground using the following configuration:However, I sometimes get up to 6 contacts, and I am unsure why this happens. This variability complicates calculations dependent on the friction location, as I am trying to implement the Pacejka Magic Tire Model. This model requires applying forces to the contact points to replace the "usual" friction calculated by the simulation.
Currently, I am testing with the Anymal to validate the pipeline, but the goal is to use it for the AoW.
A second issue I have is understanding what points in the point_buffer belong to what environment, I understand that the API provides the pair contacts count and start parid contacts indices, but since the buffer seems to just fill up, I am not sure how this is sorted as I need to differenciate between the different env_ids. Also the the contact count buffer and start indices buffer will explode in size, as with just 2 robots and 4 porential contacts (LF_FOOT with ground, RF_FOOT with ground, etc.) the tensor already has a size of ~30x1. So simulating 4096 in parallel would be problematic I guess.
I understand that this is a big question, but maybe someone has had any simmilar issues, or knows in what direction to point me. I will also keep posting my findings in this discussion if I find out more!
Thank you for your assistance and I would really appriciate any hints!
I guess this is also somewhat related to the following issue Issue 364
Best,
Per
Beta Was this translation helpful? Give feedback.
All reactions