All Projects → continental → rmw_ecal

continental / rmw_ecal

Licence: Apache-2.0 License
ROS2 middleware based on eCAL

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to rmw ecal

rmw email
ROS 2 over email: a middleware implementation
Stars: ✭ 40 (+33.33%)
Mutual labels:  ros2, rmw
interface-doc
The technical specification of the data interface that describes how to integrate the fiskaltrust Middleware into POS systems.
Stars: ✭ 17 (-43.33%)
Mutual labels:  middleware
horse-jwt
Middleware for JWT in HORSE
Stars: ✭ 39 (+30%)
Mutual labels:  middleware
AspNetCore.Weixin
An ASP.NET Core middleware for Wechat/Weixin message handling and apis. (微信公众平台/接口调用服务)
Stars: ✭ 24 (-20%)
Mutual labels:  middleware
xenon
A middleware abstraction library that provides a simple programming interface to various compute and storage resources.
Stars: ✭ 28 (-6.67%)
Mutual labels:  middleware
express-ping
Let all your express applications expose a common API to inform about their internal status and health.
Stars: ✭ 50 (+66.67%)
Mutual labels:  middleware
NiFi4Trading
NiFi Bundle for FIX Protocol
Stars: ✭ 14 (-53.33%)
Mutual labels:  middleware
mooseware
💀 Skeleton for writing a middleware handler
Stars: ✭ 47 (+56.67%)
Mutual labels:  middleware
jwt-auth
JSON Web Token Authentication for Laravel and Lumen
Stars: ✭ 46 (+53.33%)
Mutual labels:  middleware
ros2-ORB SLAM2
ROS2 node wrapping the ORB_SLAM2 library
Stars: ✭ 41 (+36.67%)
Mutual labels:  ros2
horse-logger
Middleware for access logging in HORSE
Stars: ✭ 25 (-16.67%)
Mutual labels:  middleware
DotNETCarRental
Daily car rental simulation with ASP.NET.
Stars: ✭ 13 (-56.67%)
Mutual labels:  middleware
express-xml-bodyparser
Simple XML body parser connect/express middleware
Stars: ✭ 64 (+113.33%)
Mutual labels:  middleware
rclshark
Tool for ROS 2 IP Discovery + System Monitoring
Stars: ✭ 32 (+6.67%)
Mutual labels:  ros2
isaac ros visual odometry
Visual odometry package based on hardware-accelerated NVIDIA Elbrus library with world class quality and performance.
Stars: ✭ 101 (+236.67%)
Mutual labels:  ros2
connect-browser-sync
Connect middleware for BrowserSync
Stars: ✭ 16 (-46.67%)
Mutual labels:  middleware
spiderable-middleware
🤖 Prerendering for JavaScript powered websites. Great solution for PWAs (Progressive Web Apps), SPAs (Single Page Applications), and other websites based on top of front-end JavaScript frameworks
Stars: ✭ 29 (-3.33%)
Mutual labels:  middleware
whoops-middleware
PSR-15 compatible middleware for Whoops, the pretty error handler
Stars: ✭ 24 (-20%)
Mutual labels:  middleware
rbac
RBAC - Simple, concurrent Role Based Access Control(GO)
Stars: ✭ 67 (+123.33%)
Mutual labels:  middleware
astuff sensor msgs
A set of messages specific to each sensor supported by AutonomouStuff.
Stars: ✭ 37 (+23.33%)
Mutual labels:  ros2

eCAL ROS2 middleware layer

ROS2 middleware based on eCAL.

eCAL RMW can offer:

  • High performance (shared memory is used for inter-process communication and udp multicast for inter-host communication)
  • Support for eCAL ecosystem powerful tools like eCAL recorder, eCAL player, eCAL monitor, which can be used to record, replay and monitor RMW layer
  • Communication between ROS2 nodes and eCAL tasks without need for a gateway

Build instructions

  • Install eCAL
  • Clone latest release of this repository into your ROS2 workspace
  • Source ROS2
# On Linux
source /path/to/your/ros/distro/folder/setup.bash
# On Windows
call C:/path/to/your/ros/distro/folder/setup.bat
  • Run colcon build from your workspace folder
  • Setup your workspace
# On Linux
source /path/to/your/workspace/install/setup.bash
# On Windows
call C:/path/to/your/workspace/install/setup.bat

How to use

There are currently two rmw implementations

  • rmw_ecal_dynamic_cpp
  • rmw_ecal_proto_cpp

rmw_ecal_dynamic_cpp

rmw_ecal_dynamic_cpp uses custom dynamic typesupport which is builtin into rmw.
To use this implementation just set variable RMW_IMPLEMENTATION to "rmw_ecal_dynamic_cpp".

Run all nodes using rmw_ecal_dynamic_cpp

# On Linux
export RMW_IMPLEMENTATION=rmw_ecal_dynamic_cpp
# On Windows
set RMW_IMPLEMENTATION=rmw_ecal_dynamic_cpp

Run specific node (in this example demo_nodes_cpp talker) using

RMW_IMPLEMENTATION=rmw_ecal_dynamic_cpp ros2 run demo_nodes_cpp talker

Pros:

  • Faster than rmw_ecal_proto_cpp
  • Plug&Play doesn't require any additional steps/ros packages to work

Cons:

  • Doesn't integrate well into eCAL ecosystem (monitor will only show binary data for messages and native eCAL nodes won't be able to deserialize its data)

rmw_ecal_proto_cpp

rmw_ecal_proto_cpp uses protobuf based static typesupport.
To use this implementation setup rosidl_typesupport_protobuf and set variable RMW_IMPLEMENTATION to "rmw_ecal_proto_cpp".

Run all nodes using rmw_ecal_proto_cpp

# On Linux
export RMW_IMPLEMENTATION=rmw_ecal_proto_cpp
# On Windows
set RMW_IMPLEMENTATION=rmw_ecal_proto_cpp

Run specific node (in this example demo_nodes_cpp talker) using

RMW_IMPLEMENTATION=rmw_ecal_proto_cpp ros2 run demo_nodes_cpp talker

Pros:

  • Integrates well into eCAL ecosystem (monitor will show actual message data and native eCAL nodes will be able to deserialize its messages)

Cons:

Currently supported ROS2 distributions

  • Dashing Diademata
  • Eloquent Elusor
  • Foxy Fitzroy
  • Galactic Geochelone
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].