Skip to content

Commit ec48106

Browse files
authored
Merge pull request #254 from RobotControlStack/juelg/fix-tacto-gripper
fix!(tacto,gripper): fixes required for lerobot integration
2 parents 5a2c03a + 706c601 commit ec48106

15 files changed

Lines changed: 48 additions & 31 deletions

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ if __name__ == "__main__":
9090

9191
for _ in range(10):
9292
# move 1cm in x direction (forward) and close gripper
93-
act = {"tquat": [0.01, 0, 0, 0, 0, 0, 1], "gripper": 0}
93+
act = {"tquat": [0.01, 0, 0, 0, 0, 0, 1], "gripper": [0]}
9494
obs, reward, terminated, truncated, info = env.step(act)
9595
print(obs)
9696
```

examples/fr3/fr3_env_cartesian_control.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,11 @@ def main():
6161
for _ in range(100):
6262
for _ in range(10):
6363
# move 1cm in x direction (forward) and close gripper
64-
act = {"tquat": [0.01, 0, 0, 0, 0, 0, 1], "gripper": 0}
64+
act = {"tquat": [0.01, 0, 0, 0, 0, 0, 1], "gripper": [0]}
6565
obs, reward, terminated, truncated, info = env_rel.step(act)
6666
for _ in range(10):
6767
# move 1cm in negative x direction (backward) and open gripper
68-
act = {"tquat": [-0.01, 0, 0, 0, 0, 0, 1], "gripper": 1}
68+
act = {"tquat": [-0.01, 0, 0, 0, 0, 0, 1], "gripper": [1]}
6969
obs, reward, terminated, truncated, info = env_rel.step(act)
7070

7171

examples/fr3/fr3_readme.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,6 @@
6767

6868
for _ in range(10):
6969
# move 1cm in x direction (forward) and close gripper
70-
act = {"tquat": [0.01, 0, 0, 0, 0, 0, 1], "gripper": 0}
70+
act = {"tquat": [0.01, 0, 0, 0, 0, 0, 1], "gripper": [0]}
7171
obs, reward, terminated, truncated, info = env.step(act)
7272
print(obs)

examples/fr3/grasp_demo.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ def __init__(self, env: gym.Env):
1919
self.unwrapped: RobotEnv = cast(RobotEnv, self.env.unwrapped)
2020
self.home_pose = self.unwrapped.robot.get_cartesian_position()
2121

22-
def _action(self, pose: Pose, gripper: float) -> dict[str, Any]:
23-
return {"xyzrpy": pose.xyzrpy(), "gripper": gripper}
22+
def _action(self, pose: Pose, gripper: list[float]) -> dict[str, Any]:
23+
return {"xyzrpy": pose.xyzrpy(), "gripper": [gripper]}
2424

2525
def get_object_pose(self, geom_name) -> Pose:
2626
model = self.env.get_wrapper_attr("sim").model
@@ -50,7 +50,7 @@ def plan_linear_motion(self, geom_name: str, delta_up: float, num_waypoints: int
5050
goal_pose *= Pose(translation=np.array([0, 0, delta_up]), quaternion=np.array([1, 0, 0, 0])) # type: ignore
5151
return self.generate_waypoints(end_eff_pose, goal_pose, num_waypoints=num_waypoints)
5252

53-
def execute_motion(self, waypoints: list[Pose], gripper: float = GripperWrapper.BINARY_GRIPPER_OPEN) -> dict:
53+
def execute_motion(self, waypoints: list[Pose], gripper: list[float] = GripperWrapper.BINARY_GRIPPER_OPEN) -> dict:
5454
for i in range(len(waypoints)):
5555
obs = self.step(self._action(waypoints[i], gripper))
5656
return obs

examples/fr3/grasp_digit_demo.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def __init__(self, env: gym.Env):
1919
self.unwrapped: RobotEnv = cast(RobotEnv, self.env.unwrapped)
2020
self.home_pose = self.unwrapped.robot.get_cartesian_position()
2121

22-
def _action(self, pose: Pose, gripper: float) -> dict[str, Any]:
22+
def _action(self, pose: Pose, gripper: list[float]) -> dict[str, Any]:
2323
return {"xyzrpy": pose.xyzrpy(), "gripper": gripper}
2424

2525
def get_object_pose(self, geom_name) -> Pose:
@@ -48,7 +48,7 @@ def plan_linear_motion(self, geom_name: str, delta_up: float, num_waypoints: int
4848
goal_pose *= Pose(translation=np.array([0, 0, delta_up]), quaternion=np.array([1, 0, 0, 0])) # type: ignore
4949
return self.generate_waypoints(end_eff_pose, goal_pose, num_waypoints=num_waypoints)
5050

51-
def execute_motion(self, waypoints: list[Pose], gripper: float = GripperWrapper.BINARY_GRIPPER_OPEN) -> dict:
51+
def execute_motion(self, waypoints: list[Pose], gripper: list[float] = GripperWrapper.BINARY_GRIPPER_OPEN) -> dict:
5252
for i in range(len(waypoints)):
5353
obs = self.step(self._action(waypoints[i], gripper))
5454
return obs

examples/fr3/grasp_ompl_demo.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ def __init__(self, env: gym.Env, planner: MjOMPL):
4545
self.planner = planner
4646

4747
def _action(self, pose: Pose, gripper: float) -> dict[str, Any]:
48-
return {"xyzrpy": pose.xyzrpy(), "gripper": gripper}
48+
return {"xyzrpy": pose.xyzrpy(), "gripper": [gripper]}
4949

50-
def _jaction(self, joints: np.ndarray, gripper: float) -> dict[str, Any]:
50+
def _jaction(self, joints: np.ndarray, gripper: list[float]) -> dict[str, Any]:
5151
return {"joints": joints, "gripper": gripper}
5252

5353
def get_object_pose(self, geom_name) -> Pose:
@@ -102,7 +102,7 @@ def generate_waypoints(self, start_pose: Pose, end_pose: Pose, num_waypoints: in
102102
def step(self, action: dict) -> dict:
103103
return self.env.step(action)[0]
104104

105-
def execute_motion(self, waypoints: list[Pose], gripper: float = GripperWrapper.BINARY_GRIPPER_OPEN) -> dict:
105+
def execute_motion(self, waypoints: list[Pose], gripper: list[float] = GripperWrapper.BINARY_GRIPPER_OPEN) -> dict:
106106
for i in range(len(waypoints)):
107107
obs = self.step(self._jaction(waypoints[i], gripper)) # type: ignore
108108
return obs

examples/so101/so101_env_cartesian_control.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,21 +49,21 @@ def main():
4949
env_rel.get_wrapper_attr("sim").open_gui()
5050
obs, info = env_rel.reset()
5151

52-
act = {"tquat": [0.03, 0, 0, 0, 0, 0, 1], "gripper": 1}
52+
act = {"tquat": [0.03, 0, 0, 0, 0, 0, 1], "gripper": [1]}
5353
obs, reward, terminated, truncated, info = env_rel.step(act)
5454

5555
for _ in range(100):
5656
for _ in range(5):
5757
# move 1cm in x direction (forward) and close gripper
58-
act = {"tquat": [-0.01, 0, 0, 0, 0, 0, 1], "gripper": 0}
58+
act = {"tquat": [-0.01, 0, 0, 0, 0, 0, 1], "gripper": [0]}
5959
obs, reward, terminated, truncated, info = env_rel.step(act)
6060
print(info, obs)
6161
if truncated or terminated:
6262
logger.info("Truncated or terminated!")
6363
return
6464
for _ in range(5):
6565
# move 1cm in negative x direction (backward) and open gripper
66-
act = {"tquat": [0.01, 0, 0, 0, 0, 0, 1], "gripper": 1}
66+
act = {"tquat": [0.01, 0, 0, 0, 0, 0, 1], "gripper": [1]}
6767
obs, reward, terminated, truncated, info = env_rel.step(act)
6868
if truncated or terminated:
6969
logger.info("Truncated or terminated!")

examples/ur5e/ur5e_env_cartesian_control.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ def main():
5454
gripper_config.joints = ["right_driver_joint"]
5555
gripper_config.collision_geoms = []
5656
gripper_config.collision_geoms_fingers = []
57+
gripper_config.max_actuator_width = 0
58+
gripper_config.min_actuator_width = 1
59+
gripper_config.max_joint_width = 0.0
60+
gripper_config.min_joint_width = 0.8
5761

5862
env_rel = SimEnvCreator()(
5963
control_mode=ControlMode.CARTESIAN_TQuat,
@@ -70,12 +74,12 @@ def main():
7074
for _ in range(100):
7175
for _ in range(10):
7276
# move 1cm in x direction (forward) and close gripper
73-
act = {"tquat": [0.01, 0, 0, 0, 0, 0, 1.0], "gripper": 0}
77+
act = {"tquat": [0.01, 0, 0, 0, 0, 0, 1.0], "gripper": [0]}
7478
obs, reward, terminated, truncated, info = env_rel.step(act)
7579
sleep(0.6)
7680
for _ in range(10):
7781
# move 1cm in negative x direction (backward) and open gripper
78-
act = {"tquat": [-0.01, 0, 0, 0, 0, 0, 1.0], "gripper": 1}
82+
act = {"tquat": [-0.01, 0, 0, 0, 0, 0, 1.0], "gripper": [1]}
7983
obs, reward, terminated, truncated, info = env_rel.step(act)
8084
sleep(0.6)
8185

examples/ur5e/ur5e_env_joint_control.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ def main():
5454
gripper_config.joints = ["right_driver_joint"]
5555
gripper_config.collision_geoms = []
5656
gripper_config.collision_geoms_fingers = []
57+
gripper_config.max_actuator_width = 0
58+
gripper_config.min_actuator_width = 1
59+
gripper_config.max_joint_width = 0.0
60+
gripper_config.min_joint_width = 0.8
5761

5862
env_rel = SimEnvCreator()(
5963
control_mode=ControlMode.JOINTS,

extensions/rcs_panda/src/rcs_panda/panda_env_cartesian_control.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ def main():
2929
for _ in range(100):
3030
for _ in range(10):
3131
# move 1cm in x direction (forward) and close gripper
32-
act = {"tquat": [0.01, 0, 0, 0, 0, 0, 1], "gripper": 0}
32+
act = {"tquat": [0.01, 0, 0, 0, 0, 0, 1], "gripper": [0]}
3333
obs, reward, terminated, truncated, info = env_rel.step(act)
3434
if truncated or terminated:
3535
logger.info("Truncated or terminated!")
3636
return
3737
for _ in range(10):
3838
# move 1cm in negative x direction (backward) and open gripper
39-
act = {"tquat": [-0.01, 0, 0, 0, 0, 0, 1], "gripper": 1}
39+
act = {"tquat": [-0.01, 0, 0, 0, 0, 0, 1], "gripper": [1]}
4040
obs, reward, terminated, truncated, info = env_rel.step(act)
4141
if truncated or terminated:
4242
logger.info("Truncated or terminated!")

0 commit comments

Comments
 (0)