input_ref_frame controller config parameter not working
System Info
Up-to-date master branch locally installed (pip install -e .) on macOS.
Information
When using the OSC_Pose controller with a robot arm, specifying the arm position relative to the base with the input_ref_frame parameter does not work:
...
"right": {
"type": "OSC_POSE",
"input_max": 1,
"input_min": -1,
"output_max": [0.05, 0.05, 0.05, 0.5, 0.5, 0.5],
"output_min": [-0.05, -0.05, -0.05, -0.5, -0.5, -0.5],
"kp": 150,
"damping_ratio": 1,
"impedance_mode": "fixed",
"kp_limits": [0, 300],
"damping_ratio_limits": [0, 10],
"position_limits": null,
"orientation_limits": null,
"uncouple_pos_ori": true,
"input_type": "delta",
"input_ref_frame": "base",
"interpolation": null,
"ramp_ratio": 0.2,
"gripper": {
"type": "GRIP"
}
},
...
If the base is moved, the arms try to stay in their global position, as can be seen here:
https://github.com/user-attachments/assets/c4c526b1-fee9-4749-a68f-a8f65c5cc863
Reproduction
Steps to reproduce:
- Run
python3 robosuite/scripts/collect_human_demonstrations.py --robot Tiago --rot-sensitivity 8.0 - Use
escto quit the static position and get a better viewing angle - Go into base mode with
band rotate the base withoorp
Expected behavior
The arms should stay in the same position relative to the base.
The feature was introduced in https://github.com/ARISE-Initiative/robosuite/commit/db953629d796fb318da99f828f4411dc88d85f32 by @snasiriany. I’ve reviewed the code but didn’t spot any clear bugs — though it’s possible I’m misunderstanding something. I’d be happy to contribute, but I might need some guidance.
CC @snasiriany seems like a bug, if you could look into this would be great!
I have encountered the same issue, which seems to be related to something more low-level. I use an OmronMobileBase and a Panda arm. I first encountered this problem when using OSC_POS, but even after I switched the controller to JOINT_POSITION, and when controlling, used action = np.zeros(12) with action[10] = 0.05 to make only the base rotate, the problem still persists. This seems to be a very serious bug.
CC @snasiriany seems like a bug, if you could look into this would be great!