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