Project Details

Web-Based GUI for Simulated Robot Control and Monitoring

To develop a web-based graphical user interface that allows users to monitor and control a simulated mobile robot in real-time using ROS and Gazebo. The interface enables visualization of sensor data, remote control commands, and robot state information through a browser, making it accessible and user-friendly.

Project Highlights:

  • Built a responsive, browser-based UI to control a robot simulated in Gazebo
  • Enabled real-time communication between ROS and the web using WebSockets
  • Visualized live data streams like camera feed, LIDAR, and robot position
  • Designed the interface to support both simulated and real robots

Technology & Methodology:

  • Frontend: HTML, CSS, JavaScript, roslibjs, ros3djs, ros2djs, Plotly.js
  • Backend: Python, C++
  • WebSocket Bridge rosbridge_server, web_video_server
  • Robot Description: URDF, Xacro, SDF

Key Features:

  • Real-Time Teleoperation: Send movement commands directly from the browser using virtual joystick or keyboard
  • Sensor Streaming:Visualize camera feed (via MJPEG), laser scan data, and robot state in real time
  • 2D/3D Visualization Display robot pose and map overlays using ros3djs
  • Cross-Platform Access: Works on any device with a browser and network access
  • Modular Design: Easily extendable to support additional sensors or actions

Testing Strategy:

  • Simulation Testing: Simulated various environments and obstacle scenarios in Gazebo
  • Data Verification: Used ROS bags for data replay and GUI stress testing
  • Performance Evaluation: Verified topic communication using rostopic echo and rqt_graph
  • Frontend Testing: Measured latency of data updates and control responses under different network conditions

Results & Impact:

  • Accessible Simulation: Created a fully functional web GUI for simulated robots with real-time feedback
  • Improved User Interaction: Improved accessibility for users who don't have ROS installed locally
  • Reduced Debugging Time: Reduced development and debugging time through clean, visual feedback
  • Scalable Architecture: Established a flexible base to integrate with real robots later without major frontend changes