1 Star 0 Fork 0

dfjkjf / embeddedRTPS

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

embeddedRTPS

This repository contains source code for embeddedRTPS, a portable and open-source C++ implementation of the Real-Time Publish-Subscribe Protocol (RTPS) for embedded system. RTPS is based on the publish-subscribe mechanism and is at the core of the Data Distribution Service (DDS). DDS is used, among many other applications, in Robot Operating System 2 (ROS2) and is also part of the AUTOSAR Adaptive platform. embeddedRTPS allows to integrate Ethernet-capable microcontrollers into DDS-based systems as first-class participants.

embeddedRTPS is portable, as it only consumes lightweightIP and FreeRTOS APIs, which are available for a large number of embedded systems. embeddedRTPS avoids dynamic memory allocation once endpoints are constructed possible. Please note that embeddedRTPS only implements rudimentary Quality-of-Service (QoS) policies and is far from a complete RTPS implementation.

More information is provided in our ITSC'2019 publication [1], which we kindly ask you to consider citing if you find embeddedRTPS helpful for your work.

Features

Discovery Simple Participant Discovery Protocol (SPDP) as well as Simple Endpoint Discovery Protocol (SEDP) are implemented.

Interoperability We have sucessfully tested interoperability with FastDDS 2.3.1

QoS Policies Both reliable as well as best-effort endpoints are implemented.

UDP Multicast Our implementation supports multicast locators.

Message Size Message size is currently limited by lwIP buffer size and are not split up among multiple buffers

Supported Platforms

We have successfully ported embeddedRTPS on the following platforms:

  • Infineon Aurix
  • Xilinx UltraScale+ Cortex R5
  • STM32F767ZI

Due to license issues, we can only make source code available for the STM32.

Examples

The following repository provides code examples for running embeddedRTPS on the STM32F767ZI

Runnig on Linux & Unittests

The following repository allow to compile and run embeddedRTPS on Linux for development purposes. This repository also contains unittests for embeddedRTPS.

Third Party Libraries

embeddedRTPS makes use of the following third party libraries:

Performance

Round-trip-times (RTT) for different platforms and packet sizes are depicted in the tables below.

Table 1 2x Infineon Aurix TC277 running embeddedRTPS.

Table 2 STM32F7 running embeddedRTPS connected to an Intel NUC running eProsima FastRTPS 1.8.0.

Acknowledgment

embeddedRTPS has been developed at i11 - Embedded Software, RWTH Aachen University in the context of the UNICARagil project.

This research is accomplished within the project “UNICARagil” (FKZ EM2ADIS002). We acknowledge the financial support for the project by the Federal Ministry of Education and Research of Germany (BMBF).

References

[1] A. Kampmann, A. Wüstenberg, B. Alrifaee and S. Kowalewski, "A Portable Implementation of the Real-Time Publish-Subscribe Protocol for Microcontrollers in Distributed Robotic Applications," 2019 IEEE Intelligent Transportation Systems Conference (ITSC), Auckland, New Zealand, 2019, pp. 443-448. doi: 10.1109/ITSC.2019.8916835

@INPROCEEDINGS{8916835, 
author={A. {Kampmann} and A. {Wüstenberg} and B. {Alrifaee} and S. {Kowalewski}}, 
booktitle={2019 IEEE Intelligent Transportation Systems Conference (ITSC)}, 
title={A Portable Implementation of the Real-Time Publish-Subscribe Protocol for Microcontrollers in Distributed Robotic Applications}, 
year={2019}, 
volume={}, 
number={}, 
pages={443-448}, 
keywords={automobiles;intelligent transportation systems;microcontrollers;middleware;operating systems (computers);protocols;robot programming;Robot Operating System 2;microcontrollers;distributed automotive applications;distributed robotic applications;Data Distribution Service;DDS;open-source RTPS implementations;publish-subscribe protocol;AUTOSAR Adaptive platform;Protocols;Automotive engineering;Message systems;Real-time systems;Microcontrollers;Middleware;Operating systems}, 
doi={10.1109/ITSC.2019.8916835}, 
ISSN={null}, 
month={Oct},}
The MIT License Copyright (c) 2019 Lehrstuhl Informatik 11 - RWTH Aachen University Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE This file is part of embeddedRTPS. Author: i11 - Embedded Software, RWTH Aachen University

简介

暂无描述 展开 收起
C++ 等 3 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/dfjkjf/embeddedRTPS.git
git@gitee.com:dfjkjf/embeddedRTPS.git
dfjkjf
embeddedRTPS
embeddedRTPS
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891