FAME: a FrAmework for Multi-Robot systEms development


FAME framework.


HOW TO Tutorial


ROS Package installation


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
G4Data as data objects
Guidelines to define a disciplined use of the BPMN elements


  • 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 proprerty 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