1 research outputs found
Towards reliable and scalable robot communication
The Robot Operating System (ROS) is the de facto standard platform
for modern robots. However, communication between ROS nodes
has scalability and reliability issues in practice. In this paper, we
investigate whether Erlang’s lightweight concurrency and reliability
mechanisms have the potential to address these issues. The basis
of the investigation is a pair of simple but typical robotic control
applications, namely two face-trackers: one using ROS publish/subscribe
messaging, and the other a bespoke Erlang communication
framework.
We report experiments that compare five key aspects of the
ROS and Erlang face trackers. We find that Erlang communication
scales better, supporting at least 3.5 times more active processes
(700 processes) than its ROS-based counterpart (200 nodes) while
consuming half of the memory. However, while both face tracking
prototypes exhibit similar detection accuracy and transmission
latencies with 10 or fewer workers, Erlang exhibits a continuous
increase in the total time taken to process a frame as more agents
are added, and we identify the cause. A reliability study shows
that while both ROS and Erlang restart failed computations, the
Erlang processes restart 1000–1500 times faster than ROS nodes,
reducing robot component downtime and mitigating the impact of
the failures