ROS2 middleware based on eCAL.
NOTE: Minimun eCAL compatible with RMW is 5.10.
eCAL RMW can offer:
We (the Eclipse eCAL Team) have reached our maximum capacity. Therefore, we currently cannot support this project as well as we would like to and need your help! 🫵
You can help by:
If you would like to actively maintain this project, feel free to contact us 😊
We are not abandoning this project and are happy to help and resolve any eCAL related issues.
# On Linux
source /path/to/your/ros/distro/folder/setup.bash
# On Windows
call C:/path/to/your/ros/distro/folder/setup.bat
colcon build from your workspace folder# On Linux
source /path/to/your/workspace/install/setup.bash
# On Windows
call C:/path/to/your/workspace/install/setup.bat
There are currently two rmw implementations
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:
Cons:
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:
Cons:
eCAL 5.10 introduced zero copy support for publishers, it's currently disabled by default since it's still in experimental stage. You can enable it by adding this config to ecal.ini
[publisher]
memfile_zero_copy = 1