-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Closed
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation
Description
Question
newbie to sim2real world. I am trying to understand how reference frames are setup in ArticulationData. My doubt is w.r.t the following 6 methods:
1. root_link_state_w()
2. root_com_state_w()
3. body_link_state_w()
4. body_com_state_w()
5. com_pos_b()
6. com_quat_b()
7. root_com_lin_vel_b()
8. root_com_ang_vel_b()
Among all these methods, I am seeing multiple definitions of reference frame such as:
- simulation world frame
- body frame
- center of mass frame
- actor frame
- orientation of principle inertia (or principle axes of inertia)
I know what reference frames are. What I don't understand is how its setup in IsaacLab? For instance,
- Why do we adjust
linear velocityinroot_link_state_w()and(pos, quat)inroot_com_state_w()? - Why do we use
com_pos_bandcom_quat_binroot_link_state_w()androot_com_state_w()?Are we transforming from body frame to world frame? - Why do we do
update_articulations_kinematics()inbody_link_state_w()andbody_com_state_w()? - What is the mapping/ordering of bodies in
body_link_state_w/body_com_state_w'sshape:(num_instances, num_bodies, 13)? - In
root_com_lin_vel_b()androot_com_ang_vel_b(), why are we usingroot_link_quat_wto inverse rotateroot_com_lin_vel_bandroot_com_ang_vel_b? Shouldn't we be usingroot_com_quat_w? Is this a bug?
Some clarity on the above questions will definitely be helpful to understand the code and the documentations.
best,
kb
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation