Skip to content

Commit 46b250b

Browse files
committed
renamed files and updated readme
1 parent 1402c40 commit 46b250b

File tree

5 files changed

+36
-26
lines changed

5 files changed

+36
-26
lines changed

README.md

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,10 @@
1-
# Teleop Demo MuJoCo
1+
# Teleop Demo Python
22

3-
Teleoperation demo with MuJoCo and UR5 robot.
3+
Pico teleoperation demo written in python for both mujoco simulation and robot hardware.
44

55
## Overview
66

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.
188

199
## Dependencies
2010

@@ -54,11 +44,34 @@ The main dependencies are listed in the [`pyproject.toml`](pyproject.toml) file
5444

5545
## Usage
5646

57-
### Running the Demo
47+
### Running the MuJoCo Simulation Demo
5848

59-
To run the teleoperation demo with a UR5e robot:
49+
To run the teleoperation demo with a UR5e robot in MuJoCo simulation:
6050

6151
```bash
62-
python scripts/ur5e_dual_arm_demo.py
52+
python scripts/teleop_dual_ur5e_mujoco.py
6353
```
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+
```

pyproject.toml

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ name = "teleop_demo_python"
77
version = "0.1.0"
88
description = "Teleoperation demo with MuJoCo and UR5 robot"
99
readme = "README.md"
10-
requires-python = ">=3.7"
10+
requires-python = ">=3.10"
1111
license = {text = "MIT"}
1212
authors = [
1313
{name = "Zhigen", email = "[email protected]"}
@@ -34,10 +34,3 @@ packages = ["teleop_demo_python"]
3434

3535
[tool.setuptools.package-data]
3636
teleop_demo_python = ["../assets/**/*"]
37-
38-
[tool.black]
39-
line-length = 88
40-
41-
[tool.isort]
42-
profile = "black"
43-
line_length = 88
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,15 @@ def main():
1616
action="store_true",
1717
help="Run the reset procedure for the dual arm controller.",
1818
)
19+
parser.add_argument(
20+
"--visualize_placo", action="store_true", help="Visualize Placo in the arm controller."
21+
)
22+
1923
args = parser.parse_args()
2024

2125
pico_client = PicoClient()
2226
head_controller = DynamixelHeadController(pico_client)
23-
arm_controller = DualArmURController(pico_client, visualize_placo=False)
27+
arm_controller = DualArmURController(pico_client, visualize_placo=args.visualize_placo)
2428

2529
if args.reset:
2630
print("Reset flag detected. Running arm controller reset procedure...")

0 commit comments

Comments
 (0)