Open samueledelloca opened 5 months ago
Are the targets given in the same frame as in which the controller is working?
Are the targets given in the same frame as in which the controller is working?
Yes, I'm pretty sure they are, given that the target frames are visualized correctly as you can see in the videos. They are even reached correctly if I do not apply any initial rotation to the Articulation.
Describe the bug
I'm developing a custom environment which makes (also) use of the
DifferentialIKController
for reaching a specific pose, defined through a command. Everything works fine until I apply a rotation into the Articulation'sinit_state
. It took me a while to understand the cause, because the Articulation's behavior is pretty strange. See the attached example videos for both my custom environment andIsaac-Lift-Cube-Franka-IK-Abs-v0
task fromorbit_tasks/manipulation/lift
. I tried with different articulations and configurations but the error persists, even when using only RL andDifferentialInverseKinematicsAction
without state machine. Other actions are working fine when rotating the Articulation. So I suppose that the initial rotation is not taken into account when computing the change in joint positions through the IK controller, but I'm not sure how to fix it.Steps to reproduce
Simply add the following lines into
FRANKA_PANDA_HIGH_PD_CFG
and execute theIsaac-Lift-Cube-Franka-IK-Abs-v0
task with./orbit.sh -p source/standalone/environments/state_machine/lift_cube_sm.py --num_envs 8
. Note that this task aims first at reaching the cube object and then lifting it to a specific pose. I'm interested only in the second part, so I didn't fixed the code for reaching the cube after applying changes to initial position and rotation.Additional context
You will find 2 attached videos:
custom_environment
(I apologize for the quality but it's the best I can upload) which shows the bug in my custom environment andfranka_lift
which is related toIsaac-Lift-Cube-Franka-IK-Abs-v0
and can be reproduced following the instructions in the previous section. The latter video is divided into 3 parts: 1- correct behavior without applying rotation 2- wrong behavior by applying rotation and translation 3- correct behavior by applying only translationWhile for the custom environment video you have: 1- correct behavior without applying rotation 2- wrong behavior by applying rotation and translation
Checklist
Acceptance Criteria
DifferentialIKController
when applying an initial rotation