Fork us on GitHub

Bringing Robots to your Favorite Browser

3D Interactions

Multi-Platform Support

Towards Compatibility

Robot Web Architecture

A variety of routes are available for architecting a robot web application. A common route is building web technologies on an existing robot framework. The Robot Operating System (ROS) is one of the more popular robot middlewares to build upon.

ROS is one of the top frameworks to program robots and can run on a variety of robots, from a TurtleBot to a PR2 to an Arduino connected to a computer. ROS - and other robot middleware frameworks - provide common robot functionality, including drivers for interfacing with a variety of sensors and actuators and algorithms for navigation, perception, and manipulation.

rosbridge as a Transport

While ROS works great for applications on the robot, another layer is needed to connect external devices and applications. rosbridge is both a JSON spec for interacting with ROS and a transport layer, providing a WebSocket for clients to communicate over.

In the browser layer sits the core JavaScript libraries: roslibjs, ros2js, and ros3djs. These libraries communicate with ROS on the robot over rosbridge's WebSocket server. It's a lightweight, evented library that provides a convenient abstraction to core ROS functionality.

The real benefits of the Robot Web Tools organization is JavaScript modules and tools that build off these foundations. Check out the Tools section for a list of what the community has contributed. And please add your own!

Cite Us!

Russell Toris, Julius Kammerl, David Lu, Jihoon Lee, Odest Chadwicke Jenkins, Sarah Osentoski, Mitchell Wills, and Sonia Chernova. Robot Web Tools: Efficient Messaging for Cloud Robotics. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2015