File size: 9,915 Bytes
700dd75 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 | # Whole-body Teleoperation Guide
This guide covers best practices during whole-body teleoperation.
```{admonition} Prerequisites
:class: note
Complete the [Quick Start](../getting_started/quickstart), [PICO Setup](../getting_started/vr_teleop_setup), and [Teleop Setup](../tutorials/vr_wholebody_teleop)
```
## Overview
Whole-body teleoperation is very very hard to get right and there are a lot of moving parts. This guide will walk you through the details that are required during whole-body teleoperation. During whole-body teleoperation, the GEAR-SONIC policy will try to copy your motion **as much as possible**, including your foot movements! Thus, it can be quite **demanding and dangerous** if proper precautions are not taken.
```{admonition} Safety Warning
:class: danger
The robot will track your full-body movements in real-time. Always maintain a clear 3-meter safety zone around the robot, keep a safety operator at the keyboard ready to press **`O`** for emergency stop and always be prepared to emergecy stop on the PICO controller on your own. Practice extensively in simulation before attempting on real hardware!
```
## Sample Teleoperation Session
A typical whole-body teleoperation session follows this workflow:
```{video} ../_static/teleop/teleop_session_overview.mp4
:width: 100%
```
*Video: Full startup sequence β calibrating the PICO headset, engaging the policy, and the robot starting to balance independently on the gantry.*
**Terminal 1 β MuJoCo Simulator** (or skip for real robot):
```bash
source .venv_teleop/bin/activate
python gear_sonic/scripts/run_sim_loop.py
```
**Terminal 2 β C++ Deployment**:
```bash
cd gear_sonic_deploy
# For simulation:
bash deploy.sh --input-type zmq_manager sim
# For real robot:
# bash deploy.sh --input-type zmq_manager real
```
**Terminal 3 β PICO Teleop Streamer**:
```bash
source .venv_teleop/bin/activate
python gear_sonic/scripts/pico_manager_thread_server.py --manager
```
**Operator Actions**:
1. **Put on PICO headset and controllers** β Ensure foot trackers are securely attached.
2. **Stand in calibration pose** β Upright, feet together, arms in down. Recalibrate often!!!
3. **Make robot stand loose but standing** - Put the G1 somehow slack on gantry (the policy will start and start balancing on its own).
4. **Press A+B+X+Y** on controllers β Initializes the policy and calibrates (enters Planner mode)
5. **Press A+X** β Switches to Pose mode (whole-body teleoperation active)
6. **Teleoperate** β Your movements are now mirrored by the robot
7. **Press A+B+X+Y** when done β Emergency stop and exit. Policy will stop!!!
## Clothing Requirements
**Critical:** You **must** wear **tight-fitting pants or leggings** during teleoperation.
**Why this matters:**
- The PICO foot trackers use visual tracking and need a clear view of your leg/foot movements
- Loose, baggy, or flowing clothing (sweatpants, wide-leg pants, long skirts) will occlude the trackers
- Even brief tracking loss causes the robot to receive incorrect foot positions, leading to stumbling or dangerous motions
**Recommended:**
- β
Athletic leggings or compression tights
- β
Fitted jeans or slim-fit pants
**Not recommended:**
- β Baggy sweatpants or cargo pants
- β Wide-leg or flared pants
- β Long dresses or skirts
- β Any loose or flowing fabric around the legs
**Upper body:** Normal fitted clothing is fine. Avoid very baggy sleeves that might interfere with controller tracking.
**βοΈβοΈβοΈRecalibrate Often** The tracking quality of PICO may get worse overtime. When seeing performance drop, always recalibrate! Also, when the PICO controller loses track, it may get stuck in a sitting/weird pose. Always make sure your tracked motion is correct (by viewing the PICO avatar) before starting the teleoperation policy!
## WiFi Delays
```{video} ../_static/teleop/teleop_natural_movement.mp4
:width: 100%
```
*Video: Demonstrating how natural vs. hesitant walking affects robot stability β stumbling caused by WiFi delays or unnatural movement.*
**Network latency should be kept as low as possible.** We provide tools to detect delays. Network delays can significantly affect the GEAR-SONIC policy's performance, as the flow of movement for the robot will be interrupted mid-movement (say mid-stride during walking) and the robot can stumble or lose balance.
**Best practices:**
- **Use Private WiFi Routers** Public and school wifis can easily have large delays.
- **Minimize WiFi hops** β Ideally the PICO and deployment machine are on the same local network
- **Check latency** β Monitor ZMQ message delays in the terminal output
**Expected latency:**
- **Good:** < 10ms (wired or strong local WiFi)
- **Acceptable:** 10-30ms (may notice slight lag)
- **Poor:** > 30ms (robot will struggle to track smooth motions, increased stumbling risk)
**Checking network performance:**
The deployment terminal will show warnings if message delays exceed thresholds. Watch for messages like:
```
WARNING: High ZMQ latency detected: 45ms
```
If you see persistent high latency warnings, improve your network setup before continuing.
## Movement Patterns
```{video} ../_static/teleop/teleop_walking.mp4
:width: 100%
```
*Video: Walking demo β forward, backward, running, and sideways movement with natural gait.*
**Try to be as natural as possible.** The GEAR-SONIC policy is trained on natural human motion, so moving naturally gives the best results. Hesitating when moving actually lead to more stumbling!
**Good movement practices:**
1. **Walk naturally** β Use your normal gait with natural arm swing. Don't exaggerate or try to "help" the robot.
2. **Transfer weight smoothly** β When stepping, shift your weight from one foot to the other just as you normally would. Be confident!
3. **Use moderate speeds** β The robot can track fast motions, but start with walking at a comfortable pace. You can speed up/starts running once you're comfortable.
**Common mistakes:**
- β **Overtly slow movements** β Don't slow down too much!
- β **Trying to match the robot's movement** β Don't try to match the robot movement, as the robot will then try to match your movement and starts stumbling. Be natural!
**Advanced movements:**
```{video} ../_static/teleop/teleop_advanced.mp4
:width: 100%
```
*Video: Advanced movements β kneeling, dynamic leg motions, and challenging poses.*
Once comfortable with basic walking:
- **Turning** β Turn naturally by rotating your torso and stepping in the new direction
- **Reaching** β Extend your arms smoothly to grab objects
- **Squatting** β Bend your knees and lower your body naturally
- **Sidestepping** β Step sideways with natural weight transfer
## Calibration Best Practices
The initial calibration is **critical** to successful teleoperation.
**The calibration pose:**
1. **Stand upright** β Look straight ahead (not down at controllers)
2. **Feet together** β Foot parallel with no gaps.
3. **Upper arms down** β Hang straight down beside your torso
**Tips:**
- Hold the pose steady for 1-2 seconds after pressing A+B+X+Y
- If the robot seems offset throughout the session, recalibrate (stop with A+B+X+Y, then restart)
## Mode Switching Safety
When switching between modes, **always match the robot's current pose first**.
**Dangerous scenario:**
1. Robot is in Planner mode standing upright
2. You're crouching or reaching in a different pose
3. You press **A+X** to switch to Pose mode
4. **Robot violently tries to match your crouched pose** β οΈ
**Safe procedure:**
1. Before pressing **A+X**, look at the robot (or visualization)
2. Move your body to approximately match the robot's current pose
3. Then press **A+X** β transition will be smooth
**Pause feature (Menu button):**
```{video} ../_static/teleop/teleop_pause.mp4
:width: 100%
```
*Video: Using the Menu button to pause and resume pose streaming during teleoperation.*
- Holding **Menu** pauses pose streaming
- **Before releasing Menu**, move your body back to match the robot's current pose
- Releasing Menu while in a very different pose causes sudden dangerous motions
## Troubleshooting
### Robot is not tracking my movements
**Possible causes:**
- Foot trackers are not securely attached or have low battery
- Loose clothing is occluding the trackers
- Poor lighting conditions
- XRoboToolKit not running on PICO or configured incorrectly
**Solutions:**
1. Check foot tracker placement and battery level
2. Verify you're wearing tight-fitting pants
3. Improve lighting (avoid very bright or very dark areas)
4. Restart XRoboToolKit on the PICO headset
5. Recalibrate
### Robot makes sudden aggressive motions
**Possible causes:**
- Switched modes while poses didn't match
- Tracking glitch or foot tracker occlusion
- Network packet loss causing delayed frames
**Solutions:**
1. Recalibrate carefully before resuming
2. Always match robot's pose before switching modes
3. Check network latency and improve WiFi/wired connection
### Tracking is jittery or stumbles
**Possible causes:**
- Wireless delays
- IMU drift
- Joint encoder drift
**Solutions:**
1. Reduce WiFi interference (move away from other wireless devices)
2. Reclibrate robot
## Emergency Procedures
### Emergency stop methods
**Keyboard (deployment terminal):**
- Press **`O`** for immediate stop
**PICO controllers:**
- Press **A + B + X + Y** simultaneously
Both methods immediately halt the policy and exit control mode.
## Next Steps
- **Understand input interfaces** β See tutorials for [Keyboard](../tutorials/keyboard.md), [Gamepad](../tutorials/gamepad.md), [ZMQ](../tutorials/zmq.md), [Manager](../tutorials/manager.md)
- **Learn about deployment** β See [Deployment Code & Program Flow](../references/deployment_code)
- **General troubleshooting** β See [Troubleshooting Guide](troubleshooting) |