Meet our team in San Diego, United States, from Tuesday 22 until Thursday 25 of April at XPONENTIAL, booth 4700

Update (15/04/2024): We have plenty of stock of all our products, find us also in and    Shop now

Meet our team in San Diego, United States, from Tuesday 22 until Thursday 25 of April at XPONENTIAL, booth 4700

Understanding ROS: How to Get Started with Robotics Operating System for Beginners

What is ROS?

ROS (Robot Operating System) is a framework designed for building robotic systems. It is not an actual operating system in the traditional sense, but rather a meta-operating system that runs on top of a host operating system (such as Linux). 

It provides a middleware layer that abstracts the hardware and offers a set of services, tools, and libraries to facilitate the development of robot software.

What are the key components of ROS?

The ROS framework is composed of several components, including:

  • ROS Core is the central component that provides essential services for communication between ROS nodes in a distributed system, such as message passing, parameter management, and naming.
  • ROS Nodes are individual programs that communicate with each other via the ROS Core using a publish-subscribe messaging system.
  • ROS Topics enable communication between ROS nodes. They are named buses through which nodes exchange messages. A node can publish messages on a topic, and any interested nodes can subscribe to that topic to receive the messages. Topics follow a publish-subscribe messaging pattern, allowing for asynchronous communication.
  • ROS Messages are the data structures used for communication between ROS nodes and define the information exchanged on a topic.
  • ROS Services provide a way for nodes to send requests and receive responses. They use a request-response pattern, ensuring a direct exchange of messages. A node can offer a service, specifying a service type that defines the request and response message formats. Other nodes can then call the service to make requests and receive responses.
  • ROS Launch files simplify the process of starting multiple nodes and configuring their parameters. A launch file is an XML file that describes the nodes to be executed, their parameters and the connections between them. By using launch files, you can start multiple nodes with a single command, making it easier to manage complex robotic systems.

In the context of ROS, the RTK receivers can be treated as a ROS node, and it can communicate with other nodes in a ROS system using ROS Topics, Messages and Services.

What platform for ROS Core to choose?

ROS Core can run on a PC , a laptop, a computer or a variety of embedded platforms: NVIDIA Jetson, Raspberry Pi,  BeagleBone, Intel NUC, Odroid etc.

The choice between them for running ROS depends on several factors, which are listed below. Here are some recommendations to help you choose between them for running ROS Core:

  • Computational requirements: If your robotics application requires high-performance computing, then NVIDIA Jetson or a PC may be the best choice. Both offer high-performance CPUs and GPUs, which are ideal for computationally intensive tasks such as computer vision and machine learning.
  • Power consumption: If your robotics application is battery-powered or requires low power consumption, then Raspberry Pi or NVIDIA Jetson may be the best choice. Both offer low power consumption options, and Raspberry Pi is known for its energy efficiency.
  • Cost: If cost is a major factor, then Raspberry Pi is the most cost-effective option and is widely used for prototyping and hobby projects. NVIDIA Jetson and PC are more expensive options, but they offer more powerful computing capabilities.
  • Form factor: NVIDIA Jetson or Raspberry Pi are most compact and lightweight platforms. Both offer small form factors and are suitable for building compact robotic systems.

So that, choose Raspberry Pi if you need cost-effective option (learn how connect simpleRTK2B/3B boards to a Raspberry Pi) or NVIDIA Jetson if computing capabilities are more important (check out step-by-step tutorial how to connect RTK receiver to NVIDIA Jetson).

What development environment for ROS to choose?

The most commonly used development environments are Ubuntu, ROS development studio (ROSDS), Visual Studio Code, Eclipse, CLion etc.

Ubuntu is well-supported and widely used operating system with large community of users who contribute to the development and support of ROS.

ROS itself is primarily developed and tested on Ubuntu, which means that it is optimized for this platform and most of the ROS packages and libraries are available as pre-built packages for Ubuntu. Just remember that:

Which RTK receivers and antennas are suitable for use in ROS?

All ArduSimple RTK receivers and antennas are compatible with ROS.

When choosing specific RTK receivers and antennas, consider your application requirements, such as positioning accuracy, connectivity options, and environmental factors, to select the most suitable equipment.

If you are new to RTK, we have prepared an easy RTK assistant to help you to find a set of products you might need to use them in ROS. 

To speed up your integration GPS data in your ROS project, we have prepared Tutorial how to use ArduSimple products in ROS.

If you liked this content, you can follow us on Twitter, YouTube, Facebook or LinkedIn to stay updated of content like this.

Want to learn more about GPS/RTK?

1. Our engineering team will contact you to solve any questions
2. We will keep you updated about promotions and new product releases
3.You will only hear from us when we have important news, we won’t spam your email