Define ‘Robot’
ROS stands for Robot Operating System, however to understand what ROS is, we must first define what we mean by robot. A robot, in the context of this blog, is a vehicle or object that can move autonomously around its environment without the need for continuous human interaction and/or be guided by infrastructure. It must be able to make its own decisions based on the feedback it receives from on board sensors.
A robot can therefore be anything from an autonomous fruit picker, to a hotel corridoor cleaning robot. The fact remains the same however, it needs to navigate independently.
How does ROS work?
Despite the name, ROS is not strictly an operating system. It’s a set of open-source libraries and tools that provide a framework for developing software to run on robotic systems. It still requires a main operating system to run on top of, typically a Linux based system like Ubuntu. Then with the ROS layer, it enables the necessary hardware abstraction and other common functionality required in creating programs for robots.
But, what makes ROS an attractive proposition for developers?
1) Open-source and widely used
With the benefit of being open-source and adoption becoming more widespread, ROS has grown into one of the standards in robotics programming. Expanding beyond its origins in academia, more and more businesses are starting to make use of the ROS environment. Many OxTS customers are developing nodes and drivers for commercial products so they can be easily integrated on this common platform.
2) Supports many sensors
The long list of sensors supported by ROS includes many LiDAR systems; stereo, thermal, and RGB cameras; force/torque sensors; motor controllers; and positioning systems such as OxTS’ inertial navigation systems – like the RT3000 v4
3) Low barrier to entry
Thanks to the wide adoption and universal standard, the barrier to entry for creating robotics applications has been greatly lowered and the community is more interconnected. Code is more easily transferable to different robotic systems, and developers don’t have to start from scratch to lay the groundwork for each different hardware manufacturer they use.
What is ROS used for?
ROS is commonly used in a wide and varied range of applications. Many of the use cases we see today for ROS are in applications where ‘human assistance’ is desired. Therefore engineers building autonomous vehicles or industrial and medical robots use the ROS framework. Of course, research and education also commonly use ROS to help develop products for these applications.
In this section we talk about why these application use ROS.
Autonomous Vehicle Navigation
After the explosion of ADAS (advanced driver assistance) features appearing on vehicles in the early to mid 2000s, the natural next step in this evolution is full autonomous driving capability.
In essense, an autonomous vehicle is just another robot. To be functionally safe, the vehicle needs to know where it is, where it is heading, how to get there (staying on its planned path) and avoid any obstacles it encounters on its way – just like a robot needs to do.
To do this, the vehicle needs to use data from multiple sensors, such as LiDAR, wheelspeed, camera and of course, navigation systems like GPS or INS, and act on the information it receives. ROS therefore, is an important framework for this use case because it gives engineers the ability to work with each sensor’s data and create algorithms that generate a response from the motors – based on feedback from the sensors.
As well as hardware integration ROS is also useful for simulation, path visualisation, testing and debugging, data logging and reusability.

Industrial Robotics
Another use case for ROS is in industrial robotics applications. Just like an autonomous vehicle, a robot operating in a warehouse or port for example, will need to navigate accurately and safely around its environment without the need for human intervention – albeit on a smaller scale.
In an industrial setting, a robot can come in many different shapes and sizes depending on the task its asked to perform. An AGV (Autonomous Guided Vehicle) may be used to transport stock, or a smaller robot could be deployed to clean a factory floor in a similar way an autonomous vacuum operates in a hotel. However, one thing remains consistent – the need to operate in a range of different environments.
To operate in multiple environments, a sensor fusion approach is needed, and therefore ROS is critical for all of the same reasons mentioned above.
Medical Robotics
The medical profession is currently facing numerous challenges. The general population is aging and the workforce shrinking. This means that there is a real, distinct benefit in employing robots to take on more menial, repeatable tasks such as aiding with mobility and rehabilitation exercises.
In this instance, as long as the route is repeatable, ROS can be used to ensure that the robot sticks to its pre-planned route. Perception algorithms can also be used to ensure accidents involving robots are avoided.
Additional to mobility and rehabilitation applications, robots can also be used in medical robotics to systematically check patient observations and alert trained staff if any irregularities are identified.
Using OxTS systems with ROS
At OxTS we’ve developed a driver for ROS 2, the newest version of ROS, that provides a collection of packages that can decode the live NCOM navigation data from an OxTS INS device and also publish this data in a format that can be used by other ROS compatible devices. This enables the OxTS device to easily integrate into a wider ROS network and provide positioning, localisation, and dynamics data for navigation and control applications.
We’ve also developed another package that runs independently from the NCOM data decoding. This node, called “ROS 2GAD”, can take data from other sensors in the ROS environment, like LiDAR and cameras, and convert it into our Generic Aiding Data (GAD) format.
OxTS Generic aiding with inertial in combination (or instead of GNSS) is an interface developed to enable faster integration of external sensors that can be used to aid the navigation engine by providing measurements of things like position, velocity, and attitude.
By converting the ROS messages to the standard GAD format, the data can be passed directly to the OxTS navigation engine where it is combined with the inertial data and other aiding sources such as GNSS.

Autonomous Robot Navigation Solution Brief
AMRs need a robust robot localisation solution; a tool that not only records the position and orientation of the robot, but also operates both indoors and outdoors.
This solution brief steps through the aspects we recommend our customers consider when deciding on their source of localisation for their autonomous mobile robots.
Read the solution brief to learn how the right robot localisation solution can help your AMR project, including the key questions you need to ask yourself before embarking on a project.
Support with your ROS project
To learn more about using OxTS systems in robotics and autonomy applications, or to see how you could integrate an external sensor with Generic Aiding through ROS, contact us today.