Creating a web interface for a ROS robot

asked 2018-04-13 08:04:33 -0500

MikeWx gravatar image

Hi, I want to create a web interface for controlling my ROS application.

Some of the interface will be very generic for machine control: e.g. screens like "main overview", "setup", "job control" with start/stop/options etc.. User login also required.

I recognize much if this is not very ROS specific except for the controls that needs to interact with the ROS topics/services/actions, but on the other hand it is very generic so I hope work exists that I could benefit from.

I hope to find some good advice here.

  • Maybe some ROS projects comes with much of this as a good starting point?
  • Any tutorials that demonstrate a solution to look at?
  • Maybe something that demonstrates a full robot web application with angular or react (which I don't know much about either)?

As someone who has only used html/css/php 15 years ago, and never used javascript I am in bit in doubt where to start.

  • Will I need to install a fullfledged webserver like Apache or does some ROS package provide a more dedicated web server?

I have found several packages that could be part of the solution, but most of them look rather old and unmaintained. Feel free to comment on:

Rostful ... latest commit is 5 years ago. However I like that it aims for: "services, topics, and actions to be provided as web services ... without exposing underlying ROS concepts"

Rosauth ... authentication is a must-have, but I am not really sure how I glue this in.

WebUI ... old and unmaintained. Specific to PR2 robot.

Robot Web Tools Seems like a good and up-to-date resource, but I am not sure how much of the stack it contains.

Ros Industrial ... mentions future plans for "standard industrial UI" which could be exactly what I need. Do open source projects already exists with such a (fairly standard) web UI to start from?

edit retag flag offensive close merge delete


One 'industrial option': ros-industrial/flexgui_industrial.

There's also some discussion on ROS Discourse: QtQuick support for RViz to build fancy HMIs.

gvdhoorn gravatar image gvdhoorn  ( 2018-04-13 08:24:42 -0500 )edit

Robot web tools has full applications under Tools->Systems. Check them out. Since I don't think that there is a single good answer to your questions I suggest to do some basic javascript tutorials first and make yourself comfortable in backend & frontend.

Humpelstilzchen gravatar image Humpelstilzchen  ( 2018-04-15 09:21:32 -0500 )edit

Thanks for these inputs. Flexgui looks interesting, I will give it a try. The robot web tools also looks interesting: rms looks good but maybe no longer actively developed.

MikeWx gravatar image MikeWx  ( 2018-04-17 02:26:45 -0500 )edit

ros-control-center seems actively maintained, very basic, maybe too basic. rosweb looks very limited. Let me know if anyone has concrete experiences with some of these systems.

MikeWx gravatar image MikeWx  ( 2018-04-17 02:30:27 -0500 )edit