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
-
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