Tag: Teleoperation

  • Developing Web Interfaces for ROS – Web Development for Robots

    Developing Web Interfaces for ROS 2 | Modern Robotics Web Dev Guide 2026

    Web Interfaces for Robots

    The definitive 2026 guide to building real-time, responsive control dashboards using ROS 2, roslibjs, and HTML5.

    Practical Demo: Virtual Robot Dashboard

    Interact with this mock interface to understand the user experience (UX) flow of a ROS web client. This simulates a WebSocket connection via rosbridge_suite.

    Teleoperation

    Disconnected

    Sending geometry_msgs/Twist to /cmd_vel

    Topic Echo: /rosout

    [System] Ready to connect…

    Robot Battery

    24.5V 75%

    The Architecture

    Modern robotics web development relies on a WebSocket bridge (or WebTransport in advanced 2026 stacks) to translate JSON from the browser into ROS serialization formats. This architecture decouples the frontend (React, Vue, or Vanilla HTML5) from the robot’s onboard computer.

    🔌

    rosbridge_suite

    The backend node running on the robot. It opens a WebSocket port (default: 9090) to listen for incoming JSON commands.

    📚

    roslibjs

    The standard JavaScript library that acts as the client. It handles the publishing, subscribing, and service calls.

    📱

    Responsive UI

    HTML5 & CSS3 interfaces that adapt to tablets and mobile phones for field operation.

    Quick Start Guide (ROS 2 Jazz/Kilted)

    Follow these steps to connect your HTML interface to a real robot.

    1. Install the Bridge (On Robot)

    sudo apt install ros-jazz-rosbridge-suite
    ros2 launch rosbridge_server rosbridge_websocket_launch.xml

    2. Basic HTML Client Code

    Include the CDN link for roslibjs and initialize the connection.

    <script src=”https://cdn.jsdelivr.net/npm/roslib@1/build/roslib.min.js”></script>

    // Connect to ROS Bridge
    var ros = new ROSLIB.Ros({
      url : ‘ws://localhost:9090’
    });

    // Create Topic Object
    var cmdVel = new ROSLIB.Topic({
      ros : ros,
      name : ‘/cmd_vel’,
      messageType : ‘geometry_msgs/Twist’
    });

    SEO & Mobile Best Practices for 2026

    • Mobile-First Indexing: Ensure your buttons are at least 48px by 48px (Apple’s design standard) for touch accuracy in the field.
    • Latency Handling: Always display a “Connection Status” indicator. If WebSocket connection drops, the UI should visually gray out controls to prevent unsafe operations.
    • Dark Mode: Field robots often operate outdoors or in low light. High contrast (like our Black/Gold theme) improves visibility in varying lighting conditions.
    • Security: Never expose port 9090 directly to the public internet. Use VPNs or NGINX reverse proxies with SSL/TLS for remote teleoperation.