diff --git a/docs-requirements.txt b/docs-requirements.txt index e286ad2bb..ae7095d8b 100644 --- a/docs-requirements.txt +++ b/docs-requirements.txt @@ -1,3 +1,3 @@ # docs-requirements.txt hf-doc-builder @ git+https://github.com/huggingface/doc-builder.git@main -watchdog>=6.0.0 +watchdog>=6.0.0 \ No newline at end of file diff --git a/src/lerobot/cameras/opencv/camera_opencv.py b/src/lerobot/cameras/opencv/camera_opencv.py index 1dac0d976..9c24ac569 100644 --- a/src/lerobot/cameras/opencv/camera_opencv.py +++ b/src/lerobot/cameras/opencv/camera_opencv.py @@ -297,7 +297,9 @@ class OpenCVCamera(Camera): f"{self} failed to set capture_height={self.capture_height} ({actual_height=}, {height_success=})." ) if not height_success: - logger.warning(f"{self} set(CAP_PROP_FRAME_HEIGHT) returned False but {actual_height=} is correct.") + logger.warning( + f"{self} set(CAP_PROP_FRAME_HEIGHT) returned False but {actual_height=} is correct." + ) @staticmethod def find_cameras() -> list[dict[str, Any]]: diff --git a/src/lerobot/robots/unitree_g1/run_g1_server.py b/src/lerobot/robots/unitree_g1/run_g1_server.py index dd409867c..1edff87d2 100644 --- a/src/lerobot/robots/unitree_g1/run_g1_server.py +++ b/src/lerobot/robots/unitree_g1/run_g1_server.py @@ -379,14 +379,28 @@ def main() -> None: if args.grippers: try: grippers["L"] = build_gripper( - "L", args.gripper_port_left, args.gripper_send_id, args.gripper_recv_id, - args.gripper_motor_type, args.gripper_fd, args.gripper_open_deg, - args.gripper_close_deg, args.gripper_kp, args.gripper_kd, + "L", + args.gripper_port_left, + args.gripper_send_id, + args.gripper_recv_id, + args.gripper_motor_type, + args.gripper_fd, + args.gripper_open_deg, + args.gripper_close_deg, + args.gripper_kp, + args.gripper_kd, ) grippers["R"] = build_gripper( - "R", args.gripper_port_right, args.gripper_send_id, args.gripper_recv_id, - args.gripper_motor_type, args.gripper_fd, args.gripper_open_deg, - args.gripper_close_deg, args.gripper_kp, args.gripper_kd, + "R", + args.gripper_port_right, + args.gripper_send_id, + args.gripper_recv_id, + args.gripper_motor_type, + args.gripper_fd, + args.gripper_open_deg, + args.gripper_close_deg, + args.gripper_kp, + args.gripper_kd, ) except Exception as e: # noqa: BLE001 print(f"WARNING: gripper setup failed ({e}); continuing without grippers.") diff --git a/src/lerobot/teleoperators/unitree_g1/exo_serial.py b/src/lerobot/teleoperators/unitree_g1/exo_serial.py index c15f0dc4d..6566d7588 100644 --- a/src/lerobot/teleoperators/unitree_g1/exo_serial.py +++ b/src/lerobot/teleoperators/unitree_g1/exo_serial.py @@ -147,7 +147,9 @@ class ExoskeletonArm: smoothed: dict[str, float] = {} for joint, value in angles.items(): prev = self._ema.get(joint) - self._ema[joint] = value if prev is None else self._ema_alpha * value + (1 - self._ema_alpha) * prev + self._ema[joint] = ( + value if prev is None else self._ema_alpha * value + (1 - self._ema_alpha) * prev + ) smoothed[joint] = self._ema[joint] return smoothed diff --git a/src/lerobot/teleoperators/unitree_g1/unitree_g1.py b/src/lerobot/teleoperators/unitree_g1/unitree_g1.py index 66a60b39c..0a6b2b70b 100644 --- a/src/lerobot/teleoperators/unitree_g1/unitree_g1.py +++ b/src/lerobot/teleoperators/unitree_g1/unitree_g1.py @@ -295,7 +295,9 @@ class UnitreeG1Teleoperator(Teleoperator): gripper_buttons = self._exo_gripper_buttons(left_raw, right_raw) return {**joint_action, **rc.remote_action, **gripper_buttons} - def _exo_gripper_buttons(self, left_raw: list[int] | None, right_raw: list[int] | None) -> dict[str, float]: + def _exo_gripper_buttons( + self, left_raw: list[int] | None, right_raw: list[int] | None + ) -> dict[str, float]: """Exo joystick clicks as button flags: L3 (left stick) -> button.4, R3 (right) -> button.0. Reads the raw joystick-button ADC channel directly (pressed pulls it below mid-scale),