  We present the Pluggable Distributed Resource Allocator (PDRA), a middleware
for distributed computing in heterogeneous mobile robotic networks. PDRA
enables autonomous robotic agents to share computational resources for
computationally expensive tasks such as localization and path planning. It sits
between an existing single-agent planner/executor and existing computational
resources (e.g. ROS packages), intercepts the executor's requests and, if
needed, transparently routes them to other robots for execution. PDRA is
pluggable: it can be integrated in an existing single-robot autonomy stack with
minimal modifications. Task allocation decisions are performed by a
mixed-integer programming algorithm, solved in a shared-world fashion, that
models CPU resources, latency requirements, and multi-hop, periodic,
bandwidth-limited network communications; the algorithm can minimize overall
energy usage or maximize the reward for completing optional tasks. Simulation
results show that PDRA can reduce energy and CPU usage by over 50% in
representative multi-robot scenarios compared to a naive scheduler; runs on
embedded platforms; and performs well in delay- and disruption-tolerant
networks (DTNs). PDRA is available to the community under an open-source
license.
