Software patterns and data structures for the runtime coordination of robots, with a focus on real-time execution performance - Artigas, Maria I.; Rodrigues, Rômulo T.; Vanderseypen, Lars; Bruyninckx, Herman (Frontiers in Robotics and AI, 2024)
This paper introduces software patterns (registration, acquire-release, and cache awareness) and data structures (Petri net, finite state machine, and protocol flag array) to support the coordinated execution of software activities (also called “components” or “agents”). Moreover, it presents and tests an implementation for Petri nets that supports real-time execution in shared memory for deployment inside one individual robot and separates event firing and handling, enabling distributed deployment between multiple robots. Experimental validation of the introduced patterns and data structures is performed within the context of activities for task execution, control and perception, and decision making for an application on coordinated navigation.