What is teleoperation?
Teleoperation is remote control of a robot by a human operator. The operator sends commands and receives sensor feedback such as video, lidar, or pose in time to act.
Updated August 2026.
Teleoperation is remote control of a machine or robot by a human operator. The operator sends commands from a distance and receives feedback such as video, lidar, pose, or tactile data, then uses that feedback to decide the next action.
It is not the same as full autonomy. A teleoperated robot depends on a human for the task. Many field robots mix both modes: autonomy for the routine path, and a human for exceptions, docking, or recovery.
Teleoperation vs autonomy. In teleoperation, a human is in the control loop. In autonomy, software selects the actions. Supervised or shared autonomy keeps a human ready to take over.
Teleoperation vs remote monitoring. Monitoring is view-only. Teleoperation is bidirectional: sensor data comes in, and commands go out.
How a teleoperation loop works
- The operator views the robot state (cameras, 3D, plots, maps).
- The operator issues a command (velocity, joint target, or a custom message).
- The network delivers the command to the robot.
- The robot acts and publishes new sensor data.
- The operator sees the update and corrects the next command.
The loop only works if latency, bandwidth, and synchronization stay inside the limits of the task.
| Constraint | Why it matters |
|---|---|
| Latency | Delay between a command and visible motion. High delay makes tight control unsafe. |
| Bandwidth | Video and lidar need more capacity than telemetry. Congestion drops frames or stalls the view. |
| Synchronization | Cameras, lidar, and pose must share a timeline, or the scene is misleading. |
| Command rate | The robot must accept commands at a stable rate and fail safe if the link drops. |
“Good enough” latency depends on the task. A slow inspection rover can tolerate hundreds of milliseconds. A manipulator in a cluttered cell cannot. Deep-space links are so slow that teams use supervised autonomy instead of direct stick control.
How teams use teleoperation
Teleoperation is common when a site is hazardous, remote, or too dynamic for full autonomy.
Field robotics and delivery. Sidewalk and warehouse robots often call a human when autonomy is unsure. Coco uses Foxglove to review teleoperator sessions and incidents after the run, so pilots and engineers can audit the same recording.
Marine and inspection. Crews launch and recover vehicles from a host platform. CCOM researchers teleoperate autonomous surface vehicles from laptops on the host ship and watch cameras, GPS, and engine telemetry in one Foxglove layout.
Industrial and hazardous work. Operators keep people off the site for nuclear inspection, confined spaces, or heavy equipment.
Research and space. Planetary rovers use long-delay, supervised control. Medical robots use short-delay, high-precision control. These are industry examples, not Foxglove deployments.
Imitation learning. Teams record human teleop of arms and mobile bases, then train policies from those demonstrations. LeRobot can stream that teleop session into Foxglove.
Building blocks
| Building block | Role |
|---|---|
| Video (H.264, H.265, VP9, AV1) | Primary operator view |
| 3D, lidar, and TF | Spatial awareness around the robot |
Command channel (cmd_vel, joints, or custom topics) | Drive and manipulate |
| Input device | Keyboard, gamepad, Steam Deck, or leader arm |
| Network | LAN, VPN, cellular, or WebRTC |
Foxglove can display those streams in one layout. It does not replace an E-stop, a safety PLC, or a certified vehicle controller.
Use teleoperation with Foxglove
Foxglove supports both sides of the loop: watch the robot, and send commands the robot already accepts.
See the robot. Combine Image, 3D, Plot, Map, and diagnostics in one time-synced layout.
Send commands. Use the Teleop panel for velocity-style control and the Publish panel for other message types. The robot must already subscribe to those commands.
Connect on the same network. For ROS, run foxglove_bridge and open the WebSocket in Foxglove. Rosbridge is an alternative JSON WebSocket path. The Foxglove SDK covers custom (non-ROS) stacks.
Connect from anywhere. Remote Access (Pro and Enterprise) puts a gateway on the robot and streams over WebRTC, including from behind a firewall or on a cellular link. See Remote Access is generally available.
Record and review. Use the same layout for live teleop and playback. That is how teams train operators and inspect incidents after the fact.
Try it
- Open Foxglove.
- Connect live: local foxglove_bridge or Remote Access.
- Add Image, 3D, and Teleop panels.
- Publish a command the robot already accepts (for example
/cmd_vel). - Save the layout for the next operator.
FAQ
Q: Is teleoperation the same as autonomy?
A: No. Teleoperation keeps a human in the command loop. Autonomy lets software select actions. Many robots switch between the two.
Q: Can I teleoperate a ROS robot from a browser?
A: Yes. Connect Foxglove (desktop or browser) to ROS with foxglove_bridge, then use the Teleop or Publish panel. The robot must accept those messages.
Q: What is the difference between rosbridge and foxglove_bridge?
A: Rosbridge exposes ROS over a JSON WebSocket API. foxglove_bridge is the current Foxglove path for live ROS visualization and control. See What is rosbridge?.
Q: Does Foxglove support teleop off the local network?
A: Yes, on Pro and Enterprise, with Remote Access. The robot runs a gateway. The app connects through Foxglove. You still need a safe command path on the robot.
Q: How do teams review teleop sessions after the fact?
A: Record the run (bag, db3, or MCAP), open it in Foxglove, and use the same layout. Coco reviews pilot sessions this way.
Q: Does Foxglove provide haptic or surgical control?
A: No. Foxglove visualizes data and can publish commands. It does not implement haptics, clinical devices, or safety certification.
Related reading
- Remote Access is generally available
- Teleoperating the LeKiwi from a Steam Deck
- Native Foxglove visualization in LeRobot
- What is ROS?
Open Foxglove to connect a robot, or read the Teleop panel docs.