IROS2021 paper - CompROS: A composable ROS2 based architecture for real-time embedded robotic development

Dear all,

I’m happy to announce that our paper entitled “CompROS: A composable ROS2 based architecture for real-time embedded robotic development” is accepted in IROS2021 and will be published soon. Hereby, I will post the abstract of the paper, and you can read more about the project in my Researchgate (link is provided at the end).

Abstract: “Robot Operating System (ROS) is a de-facto standard robot middleware in many academic and industrial use cases. However, utilizing ROS/ROS2 in safety-critical embedded applications with real-time requirement is challenging because of C1) Non-real-time underlying hardware, C2) No control on the host OS scheduler, C3) Unpredictable dynamic memory allocation, C4) High resource requirement, and C5) Unpredictable execution model for ROS nodes. In this paper, we address these limiting factors by proposing a hardware-software architecture-CompROS-for ROS2 based robotic development in a Multi-Processor System on Chip (MPSoC) platform that. The proposed hardware architecture consists of a Hard Real-Time (HRT) RISC-V based subsystem implemented in the Programmable Logic (PL) part of the MPSoC platform, a Soft Real-Time (SRT) ARM-based subsystem in the Processing System (PS) part of the MPSoC platform, and a Non-Real-Time (NRT) PC. While the proposed hardware architecture along with a partitioning layer overcomes the first two limiting factors, the rest are managed by the proposed multi-layer software architecture. We make a bare-metal implementation of XRCE-DDS standard for PL-PS communication, while peer-to-peer PL-PL communication is done through a proposed real-time publish-subscribe approach. The reliable communication for PS-PLL communication is done through utilizing CHEAP protocol. Further, we integrate ROS2 software layers on top of the proposed hardware and software layers. Finally, with respect to C5, we present a real-time execution model of ROS2 nodes by a mapping of ROS2 entities to CompROS entities, which is validated through experimental results. We run ROS2 middleware with an executable size of less than 200 KB on an MPSoC platform.”

Read more about the project at (PDF) CompROS: A composable ROS2 based architecture for real-time embedded robotic development


Thanks this @Saeid_Dehnavi, I finished reading the paper and enjoyed the read.

I could not however find any source code related to this work. Are you planning to contribute back to micro-ROS and/or open source your architecture? If so, ping me as this might be of interest for the audience at the ROS 2 Hardware Acceleration Working Group.


@vmayoral Thanks for your positive feedback.
Right now our group is running a startup on the underlying proposed hardware (see, but the hardware is implemented based on CompSOC concepts which are open source.
We are now making a 4-wheeled robot (will be open source) in our research group at the Eindhoven University of Technology to apply CompROS in space exploration real-time applications. If you are interested, we are always open and looking forward to have collaboration in this area.

Hi @Saeid_Dehnavi,

This sounds very interesting! Are you planing to use ros2_control for controlling the robot? If so, we (control WG) is definitely interested in the project, because we try to develop control stack to have as little as possible memory allocation at runtime. I would be also interested to know is it even feasible to use ros2_control on your architecture.



1 Like

Hi @destogl,

Thanks for your positive feedback!
For sure, we will use ROS_control in the soft real-time side (ARM-based supervisory control) of CompROS. We may not use ROS2_control in the hard real-time side at the beginning since it needs various dependencies that might be a challenge to provide in bare-metal RISC-V programming.
We are always interested to collaborate in this area if you have any specific plans.

Kind regards,


in the SELENE project we have ROS2 on top RISC-V Debian. This might be helpful for you isar-riscv/ at main · siemens/isar-riscv · GitHub



Hi Carles,

Thanks for sharing the link. That sounds interesting, I will look into the details.

Kind regards,

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.