Thank you for your feedback so far. I will try to answer most of your questions
Have performed any benchmark of embeddedRTPS that you could share? If so, are such measurement mechanisms available by any chance?
I have updated the repository with round-trip-times for two different setups:
- 2x Infineon Aurix running embeddedRTPS
- STM32 running embeddedRTPS and Intel NUC running eProsima FastRTPS.
Measurements are obtained by toggling pins upon sending/reception and using a logical analyser for precise timing measurement.
I went through the code and dependencies somewhat quickly and while possibly beyond the scope of your project, the following popped: have you considered offering support for embeddedRTPS on top of POSIX/Linux for development? That’d be extremely helpful to many in this community IMHO and would allow comparison against other existing RTPS solutions out there while enhacing its portability to a wide variety of RTOSs.
That is definitely possible and we have followed that approach during the initial implementation. We used lwIP/FreeRTOS on top of Ubuntu, which also allows for unit testing. I will try to provide code for this setup as well, which will require some restructuring of the repositories. I will have to dig through some local branches.
- Could you share maybe a bit more about your goals and objectives with regard embeddedRTPS? Do you have an open roadmap for it? If someone wanted to jump in and help, how would best she/he do it?
We noticed that there was no portable and open-source implementation of the RTPS protocol for embedded systems and we needed one in the context of our project (https://www.unicaragil.de/en/). Especially in the context ROS2 and Adaptive AUTOSAR, we wanted microcontrollers that are unable to run Linux to be first-class participants in the communication network. Especially without having to rely on other platforms to tie them into the rest of the system, which is an issue for safety-critical systems (this is the approach for DDS-XRCE).
I have mentioned some of the limitations in the repository, and I’m sure there are plenty more things to implement and improve. I will release updates to embeddedRTPS if I make bugfixes or add new features, but I don’t have a formal roadmap for now.
People are of course welcomed to jump in and help with development. For this purpose, it would be best if I first provide the lwip/FreeRTOS layer on Ubuntu as mentioned above together with some unit tests.