At PAL Robotics all of our robots are based on ROS (Robot Operating System), and we have been actively involved in software development with the community for a number of years. In addition, many universities and research institutions using our robots, in particular TIAGo the mobile manipulator, have made their own developments within the ROS framework. Here we talk more about some of the recent work done by our partners in ROS 2, as well as the work that has taken place in ROS 2 here at PAL Robotics.
TIAGo in ROS 2: Projects by Rey Juan Carlos University
The Rey Juan Carlos University (URJC) took part in work in collaboration with scientists from Silicon Valley, California to test the robustness of navigation of ROS 2, with TIAGo robot travelling through the Higher Technical School of Telecommunications Engineering (ETSIT) to test this navigation system. This initiative aimed to establish a new standard in the world of robotics within the ‘Intelligent Robotics Lab’ research group, led by Francisco Martín.
Francisco Martin Rico is associate professor at Rey Juan Carlos University (URJC) in Madrid, Spain, and leader of the Intelligent Robotics Lab. He is also a representative of the ROS community within the Technical Steering Committee.
Some of the URJC’s work in ROS 2 with TIAGo has also included the following:
URJC with TIAGo in ROS 2: Human characteristics database development, social navigation and avoiding obstacles
Remembering guests – human characteristics database development
In this work URJC addresses the creation of a memory on characteristics that we can extract from the guests who arrive at our house using tools such as face_recognition. This includes integrating components and creating ROS 2 nodes from non-ROS elements.
Social navigation – a system to serve people who would like our attention
In this work URJC addresses the development of a navigation capacity – the robot is able to navigate a space, but if a person greets or calls, the robot must stop to interact. In this work, knowledge about robot navigation is expanded, especially the Nav2 system.
Nav2 Controller with Virtual Force Field and Nav2 Planner with A
This work uses algorithms developed to follow zones of attraction and avoid obstacles, as well as taking into account factors like energy consumption or times when an environment is crowded. Both algorithms are being implemented in Nav2 for local navigation.
Watch the video below to learn more about some of URJC’s work.
TIAGo in ROS 2: Projects by Webots
Webots is an open-source and multi-platform desktop application used to simulate robots. It was designed for professional use, and it is widely used in industry, education and research. Webots includes a large collection of freely modifiable models of robots, sensors, actuators and objects, as well as the option to build new models from scratch or import them from 3D CAD software.
webots_ros2 is a package that provides the necessary interfaces to simulate a robot in the Webots open-source 3D robots simulator. It integrates with ROS 2 using ROS 2 messages, services and actions. This package provides a ROS 2 interface example for the simulated TIAGo robot in Webots. The TIAGo package contains two examples:
- One example does SLAM
- the other example provides a navigation tool.
TIAGo runs the SLAM and the navigation directly from its launcher file. Find out more here.
In addition, there is a presentation of TIAGo++ robot in simulation, which demonstrates the capability of Webots to use ROS 2 to send commands to the motor wheels. To learn more, watch the video below.
Recently, Webots also announced the release of Webots R2023b – a new version with new features, improvements and also bug fixes. With their latest release they continue to develop and improve the support for ROS 2 in Webots. It also includes a new TIAGo robot launch file for full configuration. See all the changes in the Webots main changelog of the package here.
Other projects and training courses with TIAGo in ROS 2
The OpenDR EU research project has created ROS 2 nodes to use deep learning in ROS 2, including within the TIAGo robot. The aim of OpenDR is to develop a toolkit for core robotic functionalities by using deep learning to provide advanced perception and cognition capabilities for robotics in healthcare, agri-food, and agile production.
The Deep learning toolkit from OpenDR can be used on Webots. Find out more about what’s available in simulation here.
A number of universities and research institutions are also planning to use TIAGo robot in their ROS 2 training courses. Watch this space for more news on this as we have it.
PAL Robotics’ work with ROS 2
Migration to ROS 2
The team at PAL Robotics’ has been hard at work on the migration from ROS to ROS 2, and ROS 2 will soon be available on PAL Robotics’ TIAGo robots. Earlier this year the team demonstrated a TIAGo robot fully operated in ROS 2 that makes use of the ros2_control framework, Navigation 2, MoveIt 2 and an enhanced TTS (text-to-speech) interface. The new OS is set to be ready for TIAGo in the near future, and following this, more of our robots.
The change to ROS 2 infrastructure has also presented the team with the opportunity to review and redesign our code base to enhance the overall usability of our robots and their software. ROS 2 is highly configurable, meaning developers can tailor it to their robot’s unique characteristics and the environment. For example, different ways of representing the robot’s surroundings can be used by the navigation system to plan and execute paths.
ROS 2 controllers
We use the standard joint_trajectory_controller on our robots to integrate alongside MoveIt and to execute motions via play_motions and other applications. We have developed a gravity compensation controller, so we are able to control the arm of the robot, so that it can maintain its joint position state against gravity.
ROS 2 control
ROS 2 offers a revamped API (Application Programming Interface), bringing new possibilities to developers. It also introduces controller chaining, ability to update controllers at different frequencies – useful for controlling robots with complex behaviours. This involves how the controllers operate, including their interfaces and functionality.
- An entry point for users via ROS services
- A node without an executor
- Connects controllers and the hardware-abstraction layer
- Manages Loading, Configuring, Activation, Deactivation, and Unloading of the controllers
- Responsible for granting controllers access to the hardware via interfaces when enabled
- Manages the access conflicts of hardware interfaces.
The Controller Manager reads data from the hardware and updates the interfaces, in addition to handling hardware read errors, as well as running the controller updating cycle, maintaining the controller update rate, managing the controller switching at the end, and returning the controller return type.
The software package and ROS wrappers of the Aruco augmented reality marker detector library. We have migrated the aruco_ros to ROS 2 and this is available on official ROS humble releases. aruco_ros, is very useful for object pose estimation and visual servoing: tracking the object and hand at the same time.
The head action is a node that provides an action interface for pointing the head of the configured robot. It passes trajectory goals to the controller, and reports success when they have finished executing. The head action is very useful to be able to have control over the gaze of the robot. This package provides the robot with lively behaviour.
The PAL Robotics team at ROSCon events
ROSCon Madrid 2023
The PAL Robotics team took part in the first event of its kind – ROSCon Madrid at the Universidad Rey Juan Carlos in Madrid. In addition, we sponsored the event and were part of the organising committee. Our team gave the following talks:
- Sai Kishor Kothakota, Robotics Engineer – ‘Brief introduction to ROS 2_control’
- Noel Jiménez, Software Engineer – ‘TIAGo in ROS 2’
Watch the highlights of the event here!
ROSCon New Orleans 2023
We are also soon heading to New Orleans, USA, to attend the ROSCon 2023 conference from 18-20 October. Our team members Luca Marchionni, CTO, and Sai Kishor Kothakota, Robotics Engineer will attend the event.
ROSCon 2023 provides an opportunity for developers working with ROS, regardless of their expertise level, to engage in a two-day experience of gaining knowledge from and connecting with the ROS community. Find out more about the event here.
Read more about TIAGo the mobile manipulator and all of the robot’s capabilities. Learn more about all of our robots for research and our latest projects on our website. To ask more about our work with ROS 2 and with the ROS community, don’t hesitate to get in touch.