The complex behaviors library contains complex behaviors for swarms of cyber-physical systems (CPSs). The complex behaviors are defined by finite state machines (FSMs) where each state defines a behavior and transitions are triggered by events. Each state can either be
- another complex behavior from this library,
- a swarm algorithm from the swarm behavior library,
- a swarm function from the swarm functions library, or
- a hardware function from the hardware functions library.
The events that trigger behavior state changes can either originate locally, e.g., from sensor readings or behavior rules or remotely, e.g., from communication between CPSs, or from a command and control station.
The complex behaviors library is part of the swarm library.
The behavior library is based on the latest ROS long-term support release ROS Kinetic Kame. Newer versions may also work.
To run complex behaviors of this library, the complete behavior library is required, including the swarm library and the abstraction library. The swarm library consists of the two additional sub-libraries:
The abstraction library consists of three sub-libraries:
- hardware functions
- sensing and actuation
- hardware drivers
The communication between CPSs is based on the CPSwarm Communication Library.
Furthermore, the cpswarm_msgs are required by most packages in this library.
For detailed usage instructions, please refer to the individual ROS packages in this repository.
Contributions are welcome.
Please fork, make your changes, and submit a pull request. For major changes, please open an issue first and discuss it with the other authors.
This work is supported by the European Commission through the CPSwarm H2020 project under grant no. 731946.