Bringing Micro-ROS onto RT-Thread
The Robot Operating System (ROS) is a collection of software frameworks for robot software development. To remedy a situation where many developers were held back by the diverse nature of robotics, the first pieces of ROS began to come together at Stanford University in 2007. ROS has now grown to include members from both academic and industrial communities worldwide.
ROS bridges the gap between hardware and software. As ROS grows larger and larger, the team behind would like to fix issues and add more features that require many breaking changes. With no intention to make ROS unstable, they decided to develop a completely new distribution from scratch, ROS2, that takes advantage of DDS/RTPS as its middleware which provides discovery, serialization, and transportation.
Micro-ROS further brings ROS2 onto microcontrollers. Following the ROS 2 architecture, micro-ROS makes use of its middleware pluggability to use DDS-XRCE, which is optimized for microcontrollers. Moreover, it uses POSIX-based RTOS (FreeRTOS, Zephyr, or NuttX) instead of Linux.
RT-Thread is a burgeoning Real-Time Operating System (RTOS) that supports over 150+ Chips & Boards, and the list keeps growing fast. With support for the POSIX interface, existing POSIX compliant applications can be easily ported to the RT-Thread ecosystem. Bringing Micro-ROS onto RT-thread will provide more possibilities and opportunities for ROS2.
RT-Thread is a burgeoning Real-Time Operating System (RTOS) that supports over 150+ Chips & Boards. Micro-ROS is a robotic framework that aims to bring ROS2 onto microcontrollers. Bringing them together provides more possibilities and opportunities for ROS2. This project intends to integrate RT-Thread into the micro-ROS build system such that micro-ROS-based applications can be deployed to hardware supported by RT-Thread.
This project aims to integrate RT-Thread into the micro-ROS build system.
To date, micro-ROS is supported by FreeRTOS, Zephyr, NuttX, in addition to Linux and Windows. All three RTOSes are downloaded natively with the micro-ROS build system, and can be chosen when creating a new firmware workspace. Dedicated tutorials for running the first micro-ROS application on each of these Operating Systems is also available here.
RT-Thread, on the other hand, provides a software package Micro-XRCE-DDS-Client that achieves communication with ROS2 node through TCP/UDP/Serial connection.
A successful completion of the project would include a demo on RT-Thread supported hardware or QEMU simulator that demonstrates a successful integration with micro-ROS API.
Relevant Background Experiences
Embedded systems related research and work experience.
Familiar with ROS/ROS2.
Familiar with the RT-Thread ecosystem including various components and packages.
Language skill set (English)
Major Challenges foreseen
Discuss any of the challenges that you see could make your project difficult or issues you need to resolve.
Future Improvements
Here, some future improvements on this project are proposed. This would be done after the GSoC program time line or as Bonus implementation during the program itself if things go better than expected.
Continued Involvement
How do you want to be involved with RT-Thread in the future? What role do you see yourself growing into? Consider this like a career statement for your role in the Project. Your mentors can help you achieve your goals.
References