Coorp is a network supporting system designed for coordinated robotic learning. The implementation spans multiple repos (multiple libraries and the Linux kernel), thus there are several repos for different parts of the implementation. We describe the contents in each repo and the overall usage of Coorp here.
This repo implements the global controller, BH controller, and preemption controller described in the paper.
The other repos are:
-
Implements the proxy of preemption controller in ROS2.
-
Makes ROS2 messages go through
AC_VI
of EDCA. -
Adds some message types to support communication between preemption controller and its proxy.
-
Implements the virtual-preemption layer.
See the README of the kernel repo. You can use MT7612U wireless NICs, or adapt the virtual-preemption layer for other commodity WNICs.
- Follow the ROS2 official guide to install dependencies and get the original ROS2 source code.
- Substitute
ros2_foxy/src/eProsima/Fast-DDS
,ros2_foxy/src/ros2/rcl
, andros2_foxy/src/ros2/rcl_interfaces
provided by Coorp (from the above links). - Build and install ROS2 according to its official guide.
- Adapt your application to use the
MessageStream
class provided bybh_controller.py
to transmit bandwidth-hungry flows like parameter updates. - Start the
global_controller.py
. - Start
preemption_controller.py
on each robot. - Start your multi-robot applications on each robot.