Antlab: A multi-robot task server
ACM Transactions on Embedded Computing Systems (TECS), 2017•dl.acm.org
We present Antlab, an end-to-end system that takes streams of user task requests and
executes them using collections of robots. In Antlab, each request is specified declaratively
in linear temporal logic extended with quantifiers over robots. The user does not program
robots individually, nor know how many robots are available at any time or the precise state
of the robots. The Antlab runtime system manages the set of robots, schedules robots to
perform tasks, automatically synthesizes robot motion plans from the task specification, and …
executes them using collections of robots. In Antlab, each request is specified declaratively
in linear temporal logic extended with quantifiers over robots. The user does not program
robots individually, nor know how many robots are available at any time or the precise state
of the robots. The Antlab runtime system manages the set of robots, schedules robots to
perform tasks, automatically synthesizes robot motion plans from the task specification, and …
We present Antlab, an end-to-end system that takes streams of user task requests and executes them using collections of robots. In Antlab, each request is specified declaratively in linear temporal logic extended with quantifiers over robots. The user does not program robots individually, nor know how many robots are available at any time or the precise state of the robots. The Antlab runtime system manages the set of robots, schedules robots to perform tasks, automatically synthesizes robot motion plans from the task specification, and manages the co-ordinated execution of the plan.
We provide a constraint-based formulation for simultaneous task assignment and plan generation for multiple robots working together to satisfy a task specification. In order to scalably handle multiple concurrent tasks, we take a separation of concerns view to plan generation. First, we solve each planning problem in isolation, with an “ideal world” hypothesis that says there are no unspecified dynamic obstacles or adversarial environment actions. Second, to deal with imprecisions of the real world, we implement the plans in receding horizon fashion on top of a standard robot navigation stack. The motion planner dynamically detects environment actions or dynamic obstacles from the environment or from other robots and locally corrects the ideal planned path. It triggers a re-planning step dynamically if the current path deviates from the planned path or if planner assumptions are violated.
We have implemented Antlab as a C++ and Python library on top of robots running on ROS, using SMT-based and AI planning-based implementations for task and path planning. We evaluated Antlab both in simulation as well as on a set of TurtleBot robots. We demonstrate that it can provide a scalable and robust infrastructure for declarative multi-robot programming.