ROS 2 Service Load Balancing

New system application called ROS 2 Service Load Balancing.

My colleague @Barry and me @tomoyafujita have been considering the load-balancing use case for ROS 2 service internally. This is still draft but we would love to make a contribution to community and get feedback.

Overview

Objectives

  • ROS 2 service load-balancing in application layer without protocol change.
  • Support multiple service servers on the same service path to have robustness and load-balancing mechanism.
  • Scale / Offload ROS 2 service server/client application with remapping but code modification.

Tutorials

see How to run

Note

  • Currently only rolling and source build required.
  • load-balancing algorithm currently supported with round robin, least response time and least request number.
  • We are originally considering load-balancing mechanism with Kubernetes Service with using k8s cluster but ROS 2 connects the each endpoint directly in the application layer. So we have this load balancer in the application layer.
  • Having this load balancer in ROS 2 interfaces, so that we can rely on the features and tools provided by ROS 2. (e.g service introspection, rosbag2)

See more details for,

thanks,
Tomoya

3 Likes