Introducing Robotics UI: A Web Interface Solution for ROS 2 Robots 

If you’ve worked with ROS before, you’ve probably noticed how difficult it can be to set up a proper web interface for your robot. We had the exact same issue a couple of months ago, which led me to propose the Robotics UI project. The goal is to create a general web interface that can be used with any ROS 2-compatible robot by simply configuring a JSON file. 

But What Exactly Is Robotics UI? 

Robotics UI is a web interface solution for ROS 2-powered robots, built using React and ROS 2 Iron. 

Our vision is to create software that allows you to instantly add a web interface to any ROS 2 robot by configuring a simple JSON file. 

Robotics UI consists of two parts: a Python backend, which acts as a translation layer between ROS 2 and the React frontend. 

But How Does It Work? 

The backend accesses the JSON config file and then automatically creates ROS 2 subscribers and publishers. It converts the ROS 2 messages to JSON and hosts them on a FastAPI web interface. 

The frontend can then use the same JSON config file to create a customizable dashboard with plugins. These plugins can then access the backend via API calls to display or otherwise use the information. The same process works in reverse, where the frontend can use POST requests to send data to the backend, which then translates it into the ROS 2 message format. 

For more detailed information, check out our GitHub. 

Customization 

Robotics UI’s real power lies in its customizability. By configuring a JSON file, you can design a dashboard tailored to your robot’s needs.  

To configure the JSON file, you can use the built-in JSON editor.

In the dashboard, you can move around and change the size of different components to fully customize your interface. 

Plugins 

At launch, Robotics UI comes with three different plugins: 

The Generic Plugin and String Plugin allow you to display incoming JSON data directly on your dashboard. 

The Open Street Map Center plugin allows you to track your robot on a map and send a GPS route to your robot. 

Open Street Map Center is specifically developed for our Nav2-based robots, which are going to be released soon. The plugin can also be used with other GPS-based Nav2 solutions. 

We are planning to release further plugins in the future. Here’s a short list: 

  • Image Streamer 
  • Waypoint Recorder (Tap a button to record your current location and plan a route for your robot) 
  • Route Manager (Save, edit, and load different routes for your robot) 
  • Controller Plugin (Connect a controller and publish the inputs as a ROS 2 topic) 
  • Customizable Information and Control Panel (Add simple information screens and buttons to your dashboard) 

Looking Ahead 

Robotics UI is designed to grow. As we continue to develop new features and plugins, we welcome community feedback and suggestions to shape the future of this tool. Our goal is to make Robotics UI a useful tool for anyone working with ROS 2 robots. Whether you’re just getting started or looking to enhance your existing robotics projects, Robotics UI provides a flexible and powerful platform to create a web interface for your robot. 

Visit Us on Github

Author

Hey, I’m Claire. I’m currently a university student employed part-time. I’ve always been interested in robotics, so developing a robotics project in a company setting with proper guidance has been an amazing experience.  

The idea for Robotics UI came to me after a university project, and it quickly became something I wanted to develop further. After consulting with Herr Neugebauer, he quickly became interested in my idea. 

My goal with this project is to learn and grow as a developer while creating something truly useful for the robotics community. As the developer for Robotics UI, it is my responsibility to turn this vision into reality. I’m excited to receive your feedback and future ideas to make Robotics UI even better. 

Visit my Website

Leave a Reply

Your email address will not be published. Required fields are marked *