|
1 | | -# Teleop Demo MuJoCo |
| 1 | +# Teleop Demo Python |
2 | 2 |
|
3 | | -Teleoperation demo with MuJoCo and UR5 robot. |
| 3 | +Pico teleoperation demo written in python for both mujoco simulation and robot hardware. |
4 | 4 |
|
5 | 5 | ## Overview |
6 | 6 |
|
7 | | -This project provides a framework for controlling robots in MuJoCo simulation through XR (VR/AR) input devices. It allows users to manipulate robot arms using natural hand movements captured through XR controllers. |
8 | | - |
9 | | -The current implementation focuses on a UR5e robot arm, providing real-time control through position-based teleoperation. |
10 | | - |
11 | | -## Features |
12 | | - |
13 | | -- Real-time teleoperation of robot arms in MuJoCo physics simulation. |
14 | | -- Intuitive control using XR controllers. |
15 | | -- Coordinate frame transformations between XR and robot spaces. |
16 | | -- Support for Universal Robots UR5e (expandable to other robots). |
17 | | -- Inverse kinematics solving using Placo. |
| 7 | +This project provides a framework for controlling robots in robot hardware and MuJoCo simulation through XR (VR/AR) input devices. It allows users to manipulate robot arms using natural hand movements captured through XR controllers. |
18 | 8 |
|
19 | 9 | ## Dependencies |
20 | 10 |
|
@@ -54,11 +44,34 @@ The main dependencies are listed in the [`pyproject.toml`](pyproject.toml) file |
54 | 44 |
|
55 | 45 | ## Usage |
56 | 46 |
|
57 | | -### Running the Demo |
| 47 | +### Running the MuJoCo Simulation Demo |
58 | 48 |
|
59 | | -To run the teleoperation demo with a UR5e robot: |
| 49 | +To run the teleoperation demo with a UR5e robot in MuJoCo simulation: |
60 | 50 |
|
61 | 51 | ```bash |
62 | | -python scripts/ur5e_dual_arm_demo.py |
| 52 | +python scripts/teleop_dual_ur5e_mujoco.py |
63 | 53 | ``` |
64 | | -This script initializes the [`MujocoTeleopController`](teleop_demo_mujoco/mujoco_teleop_controller.py) with the UR5e model and starts the teleoperation loop. |
| 54 | +This script initializes the [`MujocoTeleopController`](teleop_demo_python/mujoco_teleop_controller.py) with the UR5e model and starts the teleoperation loop. |
| 55 | + |
| 56 | +### Running the Hardware Demo (Dual UR Arms and Dynamixel Head) |
| 57 | + |
| 58 | +To run the teleoperation demo with the physical dual UR arms and Dynamixel-based head: |
| 59 | + |
| 60 | +1. **Normal Operation:** |
| 61 | + ```bash |
| 62 | + python scripts/teleop_dual_ur5e_hardware.py |
| 63 | + ``` |
| 64 | + This script initializes the [`DynamixelHeadController`](teleop_demo_python/hardware/dynamixel.py) and [`DualArmURController`](teleop_demo_python/hardware/ur.py) and starts the teleoperation loops for both head tracking and arm control. |
| 65 | + |
| 66 | +2. **Resetting Arm Positions:** |
| 67 | + If you need to reset the UR arms to their initial/home positions and initialize the robotiq grippers, you can run the script with the `--reset` flag: |
| 68 | + ```bash |
| 69 | + python scripts/teleop_dual_ur5e_hardware.py --reset |
| 70 | + ``` |
| 71 | + This will execute the reset procedure defined in the [`DualArmURController`](teleop_demo_python/hardware/ur.py) and then exit. |
| 72 | + |
| 73 | +3. **Visualizing IK results:** |
| 74 | + To visualize the inverse kinematics solution with placo during teleoperation, run the script with the `--visualize_placo` flag. |
| 75 | + ```bash |
| 76 | + python scripts/teleop_dual_ur5e_hardware.py --visualize_placo |
| 77 | + ``` |
0 commit comments