Skip to content

runagent-robotics/robot-control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ROS2 Remote Robot Control & Video Streaming

A distributed system for remote robot teleoperation using ROS2, MQTT, and WebRTC. This project enables operators to control robots remotely and view live camera streams in a web dashboard with low latency.

The system is designed to scale from a single robot prototype to a large fleet of robots.


Overview

This project provides a complete pipeline:

Robot → MQTT Control → ROS2 → Web Dashboard Robot Camera → WebRTC Streaming → Web Dashboard

Operators can:

  • Send control commands to robots
  • Monitor telemetry data
  • Watch live camera streams
  • Manage multiple robots from a single interface

System Architecture

                  +---------------------+
                  |   Web Dashboard     |
                  | (React + WebRTC)   |
                  +----------+----------+
                             |
                       WebSocket API
                             |
                  +----------v----------+
                  |    Backend API      |
                  |   (FastAPI / Go)    |
                  +----------+----------+
                             |
                           MQTT
                             |
                   +---------v--------+
                   |    MQTT Broker   |
                   |     (EMQX)       |
                   +---------+--------+
                             |
                        ROS2 Bridge
                             |
                   +---------v---------+
                   |       Robot       |
                   |   ROS2 + Camera   |
                   +---------+---------+
                             |
                        WebRTC Stream
                             |
                        Video Server

Key Features

Remote Robot Control

Robots subscribe to MQTT topics for control commands.

Example command flow:

Web Dashboard
      ↓
Backend API
      ↓
MQTT Broker
      ↓
ROS2 Node
      ↓
Robot Actuator

Supported commands:

  • robot movement
  • arm control
  • system status
  • task execution

Live Camera Streaming

Robots stream video using WebRTC for ultra-low latency viewing in the web dashboard.

Pipeline:

Robot Camera
     ↓
GStreamer Encoder
     ↓
WebRTC Publisher
     ↓
Streaming Server (SFU)
     ↓
Web Dashboard

Latency target:

150ms – 300ms

Project Structure

ros2-remote-robot/
│
├── robot/
│   ├── ros2_nodes/
│   │   ├── mqtt_bridge
│   │   ├── motion_controller
│   │   └── telemetry_node
│   │
│   ├── camera_stream/
│   │   └── webrtc_publisher
│   │
│   └── launch/
│
├── backend/
│   ├── api_server
│   ├── robot_manager
│   └── auth
│
├── dashboard/
│   ├── robot-control-ui
│   ├── video-viewer
│   └── telemetry-panel
│
├── infra/
│   ├── docker
│   ├── mqtt
│   └── streaming
│
└── docs/

Technologies

Robotics

  • ROS2
  • Python / C++
  • GStreamer

Communication

  • MQTT
  • WebSocket
  • JSON / Protobuf

Video Streaming

  • WebRTC
  • SFU se

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors