edit 🚀

Rocos for ROS Robots

Thu Nov 12 2020 00:00:00 GMT+0000 (Coordinated Universal Time)

The Rocos Platform is built to work seamlessly with ROS-based robots. The Rocos Agent and Rocos Platform work together to provide unprecedented visibility and control over the way your robots interact with the cloud, other robots, and integrated systems.


The ROS plugin connects the ROS network on your ROS based robot to the Rocos platform. Unlike the ROSBridge plugin, the ROS plugin hooks in directly to ROS without needing any other software installed on the robot - the ROS plugin will appear as a ROS node to other ROS components on your robot.

The ROS plugin is bidirectional; it can both subscribe to ROS messages and send them upstream to the Rocos platform, as well as receive downstream messages from the Rocos platform and publish them into the ROS network.

Rocos supports Topics, Actions, Services 

Rocos provides the ability to explore ROS topics from the browser, wherever you are in the world, without requiring you to open up any ports on your robot to the public internet.

As a user, once you've installed Rocos Agent on your robot and navigate to the Data Viewer for your robot, you’re presented with live views of the topics currently available in ROS. From here you can click to see live data flowing through the topics and get a real-time view of the frequency, size, and shape of your data.

Rocos also supports Services, which provide a way to interact with your robot using a request/response pattern and is one of the first platforms to support Topics, Actions, and Services. 

In programming terms, a Service is similar to a function call which can be requested remotely and securely from the cloud. Each Service takes a single input (request), and returns outputs (responses). Each input and output consists of a payload and accompanying data, with a consistent schema for each output message; very similar to Telemetry Messages.

Services allow users of the Rocos platform to remotely invoke ROS Services and ROS Actions, and to create APIs for transferring data to and from a robot without broadcasting that data to other platform users. This feature allows for one to one dialog between you and the robot, and allows you to request specific data from the robot without notifying the entire team. 

Customized ROS Dashboards

The Rocos Platform makes it easy to create customized dashboards to display the robot data that is most important to you and your operations or technical teams.

Stream On-Demand

When viewing real-time data, the Rocos platform ensures that your robot only sends the data you’re interested in, and only if you’re actually viewing it. For example, if five users have five dashboards displaying real-time streams of data, the robot only sends the data once, and will stop sending data altogether once all five users close their browsers or navigate away.

This ‘on-demand’ streaming, in conjunction with the latest in streaming technology to send data, preserves your bandwidth by ensuring that the smallest practicable amount of data is sent by the robot.

Stored Stream Data

Data streams represent a stream of data being generated by your robot. Your data streams can be configured with a specific frequency so that you can decide how often you want to sample streams of data. These streams can be inspected and queried through the Rocos Storage Explorer, allowing you to query down to the individual telemetry message if you need to, and to compare telemetry between robots and topics.

Monitoring Bandwidth

By default, the Data Stream area for the robot displays charts of how many requests per second the robot is sending for data storage, as well as how many bytes per second this data represents. The user can tune the frequency of streams, and see which kinds of telemetry are contributing to the bandwidth consumed by the robot.

Working your ROS robot without Internet Access

The Rocos Agent is designed to work in internet-denied areas. Although access to the Rocos Platform is required when the agent is provisioned for a robot, after the initial setup, the agent can operate for extended periods of time without any access to the internet. This makes it ideal for local network collaboration between robots.

ROS Robots Collaborating on a Local Network

Not only does Rocos make it easy to send data to the cloud from multiple robots, but also to share data between robots running on a local network. This solves a significant stability challenge when trying to run distributed ROS nodes across a network with a single ROS master, where network instability can cause ROS to crash and other unwanted behavior.

This feature enables a variety of local collaboration scenarios for your ROS robots, such as:

  • Easy processing of ROS data outside of the ROS runtime, for example on dedicated hardware for running sophisticated models collected from multiple robots.
  • Relaying data from one robot through other robots to find a way to the Cloud in internet-denied environments.
  • Sending data from two robots to another, which then uses the data to update a SLAM model, before sending that SLAM model back out to robots on the network.

All the same benefits you get from working with the Rocos platform are available to you on the local network such as network-independent addressing with robot callsigns, data subscriptions, and reliability features.

ROS 2 Support

ROS 2 represents a giant leap forward in maturity for ROS, taking all those years of feedback and real-world experience from ROS 1 to evolve the underlying ROS architecture. It includes significant improvements in messaging reliability, configurability and security, introducing a pluggable DDS messaging middleware which brings next-level robustness, a key requirement as ROS is used in ever more mission-critical applications. 

The team at Rocos has been working to bring ROS2 support to the Rocos agent, and a beta release is just around the corner. You’ll experience all the great benefits of ROS 1 support as detailed above on ROS2 robots, ensuring the performance, security, and ease-of-use are all completely consistent between the two versions. Thanks to some collaboration with the world-class engineers at Open Robotics it’s shaping up to be a great release and we can’t wait to get it in the hands of our customers.

Get drones working for your business.