Getting Started with micro-ROS: Core and Advanced Tutorials

Jun 16, 2020Tech

micro-ROS is the robotic framework that bridges the gap between resource-constrained and larger processing units and robotic applications. It brings the ROS programming interfaces to these resource-constrained devices. With micro-ROS, microcontrollers can hereby be integrated seamlessly into ROS 2-based systems, therefore no longer being inflexible black boxes and bringing all the benefits of ROS technology into robotics product development. This results in reduces costs and increased development efficiency, and a full-stack robotic framework, accelerating robot development.

There is, however, more to micro-ROS. It goes beyond the integration and portability of ROS-based software to microcontrollers. This is where FIWARE comes into play. The FIWARE micro-ROS adapter makes robots interoperable with heterogeneous services, sensors, and devices from the IoT world.

Want to get started with micro-ROS? The project offers both core and advanced tutorials to help familiarize new users with the technology and to help them to accelerate and ease the adoption of robotics and the development of robotic solutions in multiple domains.

Discover the Basics – Core Tutorials

  • First micro-ROS application on Linux: Learn how to install the micro-ROS framework and tools. This tutorial will guide you to develop your own first micro-ROS application under Linux.
  • First micro-ROS application on an RTOS: Learn how to build the application from the previous tutorial for a Real-Time Operating System (RTOS). Discover how to flash a microcontroller board with the application, as well as how to communicate with it from a microprocessor running ROS 2 on Linux.
  • Programming with rcl and rclc: Learn the concepts of the micro-ROS C API in depth. Already familiar with the ROS 2 C++ API or the underlying ROS Client Support Library (rcl)? Then this tutorial will be a walk in the park for you!
  • Optimizing the Middleware Configuration: In this tutorial, you will be guided through the configuration of the middleware between a microcontroller and the micro-ROS agent running on some Linux-based microprocessors in order to help you optimize the application for your specific use case.

Take it to the Next Level – Advanced Tutorials

  • Adding micro-ROS to a NuttX board configuration: Want to use micro-ROS on a board that is not yet supported? Then this one for you. This tutorial will explain what you have to do on a board which is already supported by NuttX, a board that has a board configuration.
  • Getting started with ROS 2 tracing: Explore the ongoing micro-ROS effort to instrument ROS 2 and provide trace analysis tools. Discover how the instrumentation and the current analysis tools can be used to plot callback durations.
  • Benchmarking with the Shadow-Builder: This tutorial deals with one specific benchmarking tooling called the Shadow Builder and aims to teach users how to create a plugin from A to Z as well as how to instrument their code.
  • Zephyr Emulator: This tutorial focusses on the creation of a new micro-ROS application with Zephyr RTOS emulator (also known as Native POSIX). The prerequisite for this tutorial is the First micro-ROS Application on an RTOS tutorial.

Upcoming Wednesday Webinars on Robotics

Looking to learn more about FIWARE for Robotics? We are running a series of webinars on the development of FIWARE NGSI Robotics Interfaces and how FIWARE enablers accelerate the implementation of powerful smart robotics applications. Following up on our previous webinars: ‘How to Get Context Data Out of Robots’ (click here to revisit the webinar) and ‘How to Develop FIWARE NGSI Interfaces for Robots’ (click here to revisit the webinar), we now present to you a series of blog posts acting as an introduction to the micro-ROS world, including topics such as architecture, middleware, tutorials, and demo cases. This way, you will be up to speed for our next webinars that will dive deeper into core real-time technologies from the smallest robotic devices to agile manufacturing environments

Related articles