Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ See [compositional.py](robosuite_models/robots/compositional.py): how to compose
| Robot Model | Names |
| --- | --- |
| `RobotBaseModel` | aloha_mount, b1_base, go2_base |
| `GripperModel` | ability_hands, aloha_gripper, g1_three_finger_gripper, pr2_gripper, schunk_svh_hands, umi_gripper, yumi_gripper, z1_gripper |
| `GripperModel` | arx_gripper,ability_hands, aloha_gripper, g1_three_finger_gripper, pr2_gripper, schunk_svh_hands, umi_gripper, yumi_gripper, z1_gripper |
| `ManipulatorModel` | aloha_robot, arx5_robot, g1_robot, h1_robot, pr2_robot, vx330s_robot, yumi_robot, z1_robot |

Example code:
Expand Down
60 changes: 60 additions & 0 deletions robosuite_models/assets/grippers/arx_gripper.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<mujoco model="arx gripper">
<compiler angle="radian" />
<option gravity="0 0 0"/>
<option integrator="implicitfast" cone="elliptic" impratio="100"/>
<visual>
<global ellipsoidinertia="true"/>
</visual>

<asset>
<material name="gripper" rgba="0.8 0.8 0.8 1" />
<material name="finger" rgba="0.1 0.1 0.1 1" />
<mesh name="link6" file="meshes/arx_gripper/link6.STL"/>
<mesh name="link7" file="meshes/arx_gripper/link7.STL"/>
<mesh name="link8" file="meshes/arx_gripper/link8.STL"/>
<mesh name="link7_collision" file="meshes/arx_gripper/link7_collision.STL"/>
<mesh name="link8_collision" file="meshes/arx_gripper/link8_collision.STL"/>
</asset>

<default>
</default>

<worldbody>
<body name="right_gripper" pos="0 0 0" quat="1 0 0 0">
<site name="ft_frame" pos="0 0 0" size="0.01 0.01 0.01" rgba="1 0 0 1" type="sphere" group="1"/>
<inertial pos="0 0 0.0" quat="0.707107 0.707107 0 0" mass="0.5" diaginertia="0.1 0.08 0.06" />
<!-- This site was added for visualization. -->
<body name="eef" pos="0 0 0.0" quat="0.707 0. -0.707 0.">
<site name="grip_site" pos="0 0 0" size="0.01 0.01 0.01" rgba="0 0 1 0.5" type="sphere" group="1"/>
<site name="ee_x" pos="0.1 0 0" size="0.005 .1" quat="0.707105 0 0.707108 0 " rgba="1 0 0 0" type="cylinder" group="1"/>
<site name="ee_y" pos="0 0.1 0" size="0.005 .1" quat="0.707105 0.707108 0 0" rgba="0 1 0 0" type="cylinder" group="1"/>
<site name="ee_z" pos="0 0 0.1" size="0.005 .1" quat="1 0 0 0" rgba="0 0 1 0" type="cylinder" group="1"/>
<!-- This site was added for visualization. -->
<site name="grip_site_cylinder" pos="0 0 0" size="0.005 10" rgba="0 1 0 0.3" type="cylinder" group="1"/>
</body>
<geom pos="0.0 0.0 0.0" quat="1.0 0.0 0.0 0.0" name="link6_collision" group="0" mesh="link6" type="mesh"/>
<geom pos="0.0 0.0 0.0" quat="1.0 0.0 0.0 0.0" name="link6_visual" material="gripper" group="1" contype="0" conaffinity="0" mesh="link6" type="mesh"/>

<body name="rightfinger" pos="0.08657 0.024896 -0.0002436" quat="1.0 0 0 0">
<joint name="finger_joint1" pos="0 0 0" axis="0 1 0" type="slide" limited="true" range="0.002 0.044" damping="100" armature="0.1" frictionloss="1.0"/>
<geom pos="0.0 0.0 0.0" quat="1.0 0.0 0.0 0.0" name="right_finger_visual" material="finger" group="1" contype="0" conaffinity="0" mesh="link7" type="mesh"/>
<geom pos="0.0 0.0 0.0" name="right_finger_collision" group="0" mesh="link7_collision" type="mesh"/>
</body>
<body name="leftfinger" pos="0.08657 -0.0249 -0.00024366" quat="1.0 0 0 0">
<joint name="finger_joint2" pos="0 0 0" axis="0 -1 0" type="slide" limited="true" range="0.002 0.044" damping="100" armature="0.1" frictionloss="1.0"/>
<geom pos="0.0 0.0 0.0" quat="1.0 0.0 0.0 0.0" name="left_finger_visual" material="finger" group="1" contype="0" conaffinity="0" mesh="link8" type="mesh"/>
<geom pos="0.0 0.0 0.0" name="left_finger_collision" group="0" mesh="link8_collision" type="mesh"/>
</body>
</body>

</worldbody>

<actuator>
<position ctrllimited="true" ctrlrange="0.002 0.044" joint="finger_joint1" kp="1000" name="gripper_finger_joint1" forcelimited="true" forcerange="-20 20"/>
<position ctrllimited="true" ctrlrange="0.002 0.044" joint="finger_joint2" kp="1000" name="gripper_finger_joint2" forcelimited="true" forcerange="-20 20"/>
</actuator>
<sensor>
<force name="force_ee" site="ft_frame"/>
<torque name="torque_ee" site="ft_frame"/>
</sensor>
</mujoco>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
1 change: 1 addition & 0 deletions robosuite_models/robots/grippers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from .yumi_gripper import YumiLeftGripper, YumiRightGripper
from .umi_gripper import UMIGripper
from .aloha_gripper import AlohaGripper
from .arx_gripper import ArxGripper
from .pr2_gripper import PR2Gripper
from .ability_hands import AbilityLeftHand, AbilityRightHand
from .schunk_svh_hands import SchunkSvhLeftHand, SchunkSvhRightHand
Expand Down
37 changes: 37 additions & 0 deletions robosuite_models/robots/grippers/arx_gripper.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import numpy as np
from robosuite.models.grippers import register_gripper
from robosuite.models.grippers.gripper_model import GripperModel

from robosuite_models import robosuite_model_path_completion


@register_gripper
class ArxGripper(GripperModel):
"""
UMIGripper for the Arx5 arm
Args:
idn (int or str): Number or some other unique identification string for this gripper instance
"""

def __init__(self, idn=0):
super().__init__(robosuite_model_path_completion("grippers/arx_gripper.xml"), idn=idn)

def format_action(self, action):
assert len(action) == self.dof
self.current_action = np.clip(self.current_action + np.array([1.0]) * self.speed * np.sign(action), -10.0, 10.0)
return self.current_action

@property
def init_qpos(self):
return np.array([-0.1, 0.1])

@property
def speed(self):
return 2

@property
def _important_geoms(self):
return {
"right_fingerpad": ["right_finger_collision", "right_finger_visual"],
"left_fingerpad": ["left_finger_visual", "left_finger_collision"],
}
2 changes: 1 addition & 1 deletion robosuite_models/robots/manipulators/arx5_robot.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def default_base(self):

@property
def default_gripper(self):
return {"right": "UMIGripper"}
return {"right": "ArxGripper"} # use ArxGripper

@property
def default_controller_config(self):
Expand Down