Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding Mujoco-Menagerie XArm7 #621

Open
EdwardoSunny opened this issue Jan 14, 2025 · 0 comments
Open

Adding Mujoco-Menagerie XArm7 #621

EdwardoSunny opened this issue Jan 14, 2025 · 0 comments
Assignees

Comments

@EdwardoSunny
Copy link

System Info

Robosuite Version: v1.5.0
OS: Ubuntu 22.04
Mujoco: 3.2.6
Python: 3.10.12

Problem Information

Similar to #605, I am trying to add a Xarm7 from mujoco-menagerie as a custom imported arm. I largely followed the directions from the importing model documentation, with slightly modified steps for handling the XML as it was obtained from the mujoco-menagerie repo instead.

The model is successfully loaded in robosuite and renders fine. The xml's are in the correct folders and renders correctly as well using browse_mjcf_model.py. I am able to attach camera observations as well. However, the arm's control seems to be wrong, as when I run the tune_joints.py script or any other script that asks the arm to hold its initial position, the arm just raises straight upwards and begins stuttering/shaking.

Here's a visual of the problem (result directly after running python tune_joints.py --robots XArm7):
image

I also printed the joint positions in the loop of the tune_joints by adding this to the bottom of the tune_joints.py:

def get_joint_positions(joint_pos_cos, joint_pos_sin):
        return np.arctan2(joint_pos_sin, joint_pos_cos)  

    # just spin to let user interact with window
    while True:
        action = np.zeros(env.action_dim)
        obs, reward, done, _ = env.step(action)
        print(get_joint_positions(obs["robot0_joint_pos_cos"], obs["robot0_joint_pos_sin"]))
        env.render()

and the output seems to be raising joint positions over time:

[robosuite WARNING] Could not import robosuite_models. Some robots may not be available. If you want to use these robots, please install robosuite_models from source (https://github.com/ARISE-Initiative/robosuite_models) or through pip install. (__init__.py:30)

Welcome to the joint tuning script! You will be able to tune the robot
arm joints in the specified environment by using your keyboard. The
controls are printed below:

Keys      	Command
1-N       	Active Joint being tuned (N=number of joints for the active arm)
t         	Toggle between robot arms in the environment
r         	Reset active arm joints to all 0s
up/down   	incr/decrement the active joint angle

[robosuite INFO] Loading controller configuration from: /home/edward/Documents/Code/URIL/URIL-robosuite/robosuite/controllers/config/default/composite/basic.json (composite_controller_factory.py:121)
[robosuite WARNING] The config has defined for the controller "left", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for left from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "torso", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for torso from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "head", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for head from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "base", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for base from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "legs", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for legs from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "left", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for left from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "torso", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for torso from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "head", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for head from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "base", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for base from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "legs", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for legs from self.part_controller_config. (robot.py:151)
[0.000 -0.003 0.000 1.235 -0.000 1.233 -0.000]
[-0.000 0.000 -0.000 1.259 -0.000 1.256 -0.000]
[-0.000 0.004 -0.000 1.284 -0.000 1.278 -0.000]
[-0.000 0.006 -0.000 1.308 -0.000 1.300 -0.000]
[-0.000 0.009 -0.000 1.331 -0.000 1.321 -0.000]
[-0.000 0.012 -0.000 1.354 -0.000 1.341 -0.000]
[-0.000 0.016 -0.000 1.379 -0.000 1.364 -0.000]
[-0.000 0.019 0.000 1.403 -0.000 1.385 -0.000]
[-0.000 0.022 0.000 1.428 -0.000 1.406 -0.000]
[-0.000 0.027 0.000 1.454 -0.000 1.429 -0.000]
[-0.000 0.030 0.000 1.478 -0.000 1.449 -0.000]
[-0.000 0.034 0.000 1.502 -0.000 1.470 -0.000]
[-0.000 0.038 0.000 1.528 -0.000 1.492 -0.000]
[-0.000 0.041 0.000 1.550 -0.000 1.511 0.000]
[-0.000 0.045 0.000 1.575 -0.000 1.532 -0.000]
[-0.000 0.048 0.000 1.598 -0.000 1.552 -0.000]
[-0.000 0.052 0.000 1.622 -0.000 1.571 -0.000]
[-0.000 0.056 0.000 1.646 -0.000 1.591 0.000]
[-0.000 0.060 0.000 1.669 -0.000 1.610 0.000]
[-0.000 0.063 0.000 1.691 -0.000 1.628 0.000]
[-0.000 0.065 0.000 1.712 -0.000 1.645 0.000]
[-0.000 0.068 0.000 1.733 -0.000 1.661 0.000]
[-0.000 0.070 0.000 1.754 -0.000 1.678 0.000]
[-0.000 0.073 0.000 1.775 -0.000 1.694 0.000]
[-0.000 0.076 0.000 1.796 -0.000 1.711 0.000]
[-0.000 0.077 0.000 1.815 -0.000 1.725 0.000]
[-0.000 0.080 0.000 1.835 -0.000 1.741 0.000]
[-0.000 0.083 0.000 1.855 -0.000 1.756 -0.000]
[-0.000 0.084 0.000 1.874 -0.000 1.771 -0.000]
[-0.000 0.085 0.000 1.891 -0.000 1.784 -0.000]
[-0.000 0.087 0.000 1.909 -0.000 1.798 -0.000]
[-0.000 0.090 0.000 1.930 -0.000 1.813 -0.000]
[-0.000 0.092 0.000 1.949 -0.000 1.828 -0.000]
[-0.000 0.092 0.000 1.965 -0.000 1.839 -0.000]
[-0.000 0.093 0.000 1.981 -0.000 1.851 -0.000]
[-0.000 0.095 0.000 2.000 -0.000 1.865 -0.000]
[-0.000 0.098 0.000 2.018 -0.000 1.878 -0.000]
[-0.000 0.100 0.000 2.036 -0.000 1.891 -0.000]
[-0.000 0.101 0.000 2.053 -0.000 1.903 -0.000]
[-0.000 0.103 0.000 2.070 -0.000 1.915 -0.000]
[-0.000 0.104 0.000 2.085 -0.000 1.926 -0.000]
[0.000 0.103 0.000 2.097 -0.000 1.934 -0.000]
[-0.000 0.102 0.000 2.109 -0.000 1.943 -0.000]
[-0.000 0.102 0.000 2.122 -0.000 1.952 -0.000]
[-0.000 0.103 0.000 2.138 -0.000 1.963 -0.000]
[-0.000 0.104 0.000 2.154 -0.000 1.973 -0.000]
[0.000 0.103 0.000 2.165 -0.000 1.980 -0.000]
[-0.000 0.102 0.000 2.176 -0.000 1.988 -0.000]
[-0.000 0.101 0.000 2.187 -0.000 1.995 -0.000]
[-0.000 0.102 0.000 2.202 -0.000 2.005 -0.000]
[-0.000 0.104 0.000 2.217 -0.000 2.015 -0.000]
[0.000 0.101 0.000 2.226 -0.000 2.021 -0.000]
[0.000 0.097 0.000 2.231 -0.000 2.024 -0.000]
[0.000 0.095 0.000 2.238 -0.000 2.029 -0.000]
[0.000 0.093 0.000 2.247 -0.000 2.034 -0.000]
[0.000 0.091 0.000 2.255 -0.000 2.039 -0.000]
[-0.000 0.089 0.000 2.265 -0.000 2.046 -0.000]
[0.000 0.088 0.000 2.275 -0.000 2.052 -0.000]
[0.000 0.086 0.000 2.282 -0.000 2.057 -0.000]
[0.000 0.083 0.000 2.288 -0.000 2.060 -0.000]

In contrast, if i run the built in Panda arm in the same way and print the joint position debug information, the arm holds the correct joint angle:

[robosuite WARNING] Could not import robosuite_models. Some robots may not be available. If you want to use these robots, please install robosuite_models from source (https://github.com/ARISE-Initiative/robosuite_models) or through pip install. (__init__.py:30)

Welcome to the joint tuning script! You will be able to tune the robot
arm joints in the specified environment by using your keyboard. The
controls are printed below:

Keys      	Command
1-N       	Active Joint being tuned (N=number of joints for the active arm)
t         	Toggle between robot arms in the environment
r         	Reset active arm joints to all 0s
up/down   	incr/decrement the active joint angle

[robosuite INFO] Loading controller configuration from: /home/edward/Documents/Code/URIL/URIL-robosuite/robosuite/controllers/config/default/composite/basic.json (composite_controller_factory.py:121)
[robosuite WARNING] The config has defined for the controller "left", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for left from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "torso", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for torso from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "head", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for head from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "base", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for base from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "legs", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for legs from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "left", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for left from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "torso", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for torso from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "head", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for head from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "base", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for base from self.part_controller_config. (robot.py:151)
[robosuite WARNING] The config has defined for the controller "legs", but the robot does not have this component. Skipping, but make sure this is intended.Removing the controller config for legs from self.part_controller_config. (robot.py:151)
[-0.000 0.196 0.000 -2.618 0.000 2.942 0.785]
[-0.000 0.196 0.000 -2.618 0.000 2.942 0.785]
[-0.000 0.196 0.000 -2.618 0.000 2.942 0.785]
[-0.000 0.196 0.000 -2.618 0.000 2.942 0.785]
[-0.000 0.196 0.000 -2.618 0.000 2.942 0.785]
[-0.000 0.196 0.000 -2.618 0.000 2.942 0.785]
[-0.000 0.196 0.000 -2.618 0.000 2.942 0.785]
[-0.000 0.196 0.000 -2.618 0.000 2.942 0.785]
[-0.000 0.196 0.000 -2.618 0.000 2.942 0.785]
[-0.000 0.196 0.000 -2.618 0.000 2.942 0.785]
[-0.000 0.196 0.000 -2.618 0.000 2.942 0.785]
[-0.000 0.196 0.000 -2.618 0.000 2.942 0.785]
[-0.000 0.196 0.000 -2.618 0.000 2.942 0.785]
[-0.000 0.196 0.000 -2.618 0.000 2.942 0.785]

Similarly, if I try to run the teleportation script, whenever I give an input, there seems to be a "force" pulling the arm in a different random direction and the arm continuously stutters and tweaks.

Reproduce Problem

My fork of the robosuite with my exact set up and xml files are at this repo. Just set up the same way as regular robosuite and run the corresponding scripts to reproduce.

Expected Behavior

Arm should stay still and hold position when running tune_joints.py without any additional input and should correctly move according to user input during teleportation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants