FaMe

A BPMN-driven Framework for Multi-Robot System Development

User Guide

Requirements

Detailed instructions for setting up the FaMe tools can be found in the online documentation.

Video Guide

Reproducing the simulation

To reproduce a simulated experiment, it is necessary to follow these steps:

  • Download a simulation package (s.a. ground vehicle cooperation or agriculture scenario) and the engine package
  • Build each ROS package:
    • cd <package_name>
    • colcon build
    • source install/setup.bash
  • Run the simulation launch file: ros2 launch <simulation_package_name> <launch_file_name>.py
  • Run the engine launch file: ros2 launch fame_engine <launch_file_name>.py
  • Run the splitter node: ros2 launch fame_engine splitter.launch.py

Framework Description

FaMe is a BPMN-driven framework for Multi-Robot System (MRS) development. It allows the definition of an MRS mission using BPMN Collaborations and the execution of the system exploiting the ROS2 framework. Specifically, the development phases are the modeling, the configuration, and the enactment.

  • The modeling phase consists of a disciplined use of the BPMN notation permitting to define a collaboration diagram able to represent at a high level of abstraction the MRS for what concerns the involved devices and their behaviors.
  • The configuration phase enriches the modeled collaboration with all the information needed for its execution, producing as output an executable collaboration diagram.
  • The enactment phase executes the BPMN collaboration directly on each involved robot.
FAME framework.

FaMe Phases

MODELING

G1Robots as pools
G1.1Heterogeneous robots as single-instance pools
G1.2Homogeneous robots as multi-instance pools
G2Mission as a process
G2.1Actions as activities
G2.1.1Complex actions as call activities
G2.1.2Simple actions as script tasks
G2.2Event handlers as event sub-processes
G2.3Concurrent behaviors by means of AND gateways
G2.4Internal choices as XOR gateways
G2.5External choices as event-based gateways
G2.6Missions activation as start events
G2.7Missions shutdown as end events
G3Communication via signal events
G4Execution errors via error events
G5Delays and timers via timer events
G6Conditions via conditional events
G7Data as data objects
Guidelines to define a disciplined use of the BPMN elements

CONFIGURATION

  • Data Objects
    1. Select a data object
    2. Select in the Properties Panel the Extensions one
    3. Add new property and assign a name and a value
      • If the value depends on the system execution ${variable_name}
    4. Add as many properties as many variables you want to contain in the data object
  • Signal Events
    1. Select a signal event
    2. Select in the Properties Panel the Extensions one
    3. Add a property named type, with a value equal to the ROS message type, s.a., std_msgs/msg/Bool, ‎geometry_msgs/msg/Vector3, …
    4. If it is a throwing signal: add a property named payload, with a value equal to the data it shares, s.a., true, {x: ${x_target}, y: ${y_target}, z: ${z_target}}, …
  • Script Tasks
    1. Select a script task
    2. Select in the Properties Panel the General one
    3. Add the desired programming language type in the Script Format field, s.a. JavaScript
    4. Write the script inside the Script box
    5. It is possible to access a global variable or to create a new one following the syntax: this.environment.variables.variable_name
    6. A script task should end with the next() function, to ensure its ending

ENACTMENT

Some results of the real-life experiment:

References

Khalid Bourr, Flavio Corradini, Sara Pettinari, Barbara Re, Lorenzo Rossi, Francesco Tiezzi: Disciplined use of BPMN for mission modeling of Multi-Robot Systems. In: Proceedings of the Forum at Practice of Enterprise Modeling (PoEM 2021), pp. 1–10, CEUR-WS.org, 2021.
Flavio Corradini, Sara Pettinari, Barbara Re, Lorenzo Rossi, Francesco Tiezzi: A BPMN-driven framework for Multi-Robot System development. In: Robotics and Autonomous Systems, vol. 160, pp. 104322, 2022, ISSN: 0921-8890.