options | |
---|---|
--help | |
--inputFile | String The input file describes the problem to be solved in JSON format |
--output | String The output file describes the planner result in JSON format |
--outputScreen | Int (=1) The level of details in the output file (=1 to show all, = 2 to show problem summary, start and actual path and =3 to show only problem summary). |
--evaluationMode | Boolean when run in this mode the program will check the validity of the planned and executed actions in an existing plan, as specified by the --output parameter |
--simulationTime | Int The maximum number of timesteps allowed for solving the problem, we sometimes refer to this as planning horizon |
--fileStoragePath | String The folder path that your local preprocessing file locates |
--planTimeLimit | Int The amount of time available for planning in each timestep, if this time limit is exceeded by the planner, all robots are issued wait commands at current timestep |
--preprocessTimeLimit | Int The amount of time in seconds available for loading and precomputing auxiliary data before the problem-solving process begins |
--logFile | String An output file that records all warnings and errors issued by the simulator in the event of invalid or incomplete actions from the planner |
All paths here is the relative path relative to the location of input JSON file
properties | |
---|---|
mapFile | String The relative path to the file that describes the grid environment input. We use the grid map format as described in the next section (with a section link to the relevant section) |
agentFile | String The relative path to the file that describes the start locations for robots. The first line indicates the number of robots n. The following n lines correspond to the start locations of the n robots..* |
taskFile | String The relative path to the file that describes the locations for tasks. The first line indicates the number of tasks m. The following m lines contain single integers that correspond to the locations of the m tasks on the grid.* |
numTasksReveal | Int (=1) The number of tasks/errands revealed to a robot at any one time. Every time a robot finishes a task/errand a new task is revealed. By default, this is 1, which means only the next 1 task/errand is known to the robot. |
taskAssignmentStrategy | String (=roundrobin) The strategy for assigning tasks ( greedy ,roundrobin or roundrobin-fixed ). Every time a robot finishes a task/errand, a task assignment strategy decides the next task assigned to the robot. greedy will assign the next unassigned task from task file line by line. While for roundrobin and roundrobin-fixed , tasks assignment is pre-decided by the system using a round-robin strategy, where the |
teamSize | Int The number of robots in the simulation |
* We linearize the a 2-D coordinate and use a single integer to represent a location. Given a location (row,column) and the map height (total number of rows) and width (total number of columns), the linearized location = row*width+column.
All maps begin with the lines:
type octile
height y
width x
map
Map Symbols:
symbols | |
---|---|
@ | hard obstacle. |
T | hard obstacle (for 'trees' in game environment). |
. | free space |
E | emitter point (for ‘delivery’ goal) - traversable |
S | service point (for ‘pick up’ goal) - traversable |
The output file of ./lifelong
is a JSON file consisting of the planner output, actual paths of robots, and the statistics.
The following table defines the properties that appear in the output file.
properties | |
---|---|
actionModel | String The name of the action model used for the robots in the simulator, this value is always "MAPF_T" which indicates MAPF with Turnings (i.e. robots can be orientated in any of the 4 cardinal directions, the avaliable actions are forward, clockwise turn, counter-clockwise turn, and wait) |
AllValid | String A string either "Yes" or "No" that describes all the actions returned by your planner are valid actions or not |
teamSize | Int The number of robots in the simulation |
start | List A list of start locations. The length of the list is the number of robots. |
numTaskFinished | Int Number of finished tasks. |
sumOfCost | Int |
makespan | Int |
actualPaths | List A list of n strings, where n is the number of robots. Each string represents a sequence of action symbols, separated by commas (“,”). Action symbols: + “F” Forward + “R” Clockwise rotate + “C” Counter-clockwise rotate + “W” Wait + “T” Implicit wait (only in plannerPaths and corresponding to planner timeout or missing actions) |
plannerPaths | List A list of n strings, where n is the number of robots. Each string represents a sequence of action symbols, separated by commas. |
plannerTimes | List A list of planner times in seconds during each planning episode. |
errors | List A list of errors. Each error is represented by a list [robot1, robot2, timestep, description] where robot1, robot2, and timestep are integers and description is a string. robot1 and robot2 correspond to the id of robots that are involved in the error (robot2=-1 in case there is only one robot involved). The description is a message for the error. |
events | List A list of (task) events. Each event is represented by a list [timestep, id, description] where timestep and id are integers, and description is a string. id corresponds to a task id in tasks. The description can be “assigned” or “finished”. |
tasks | List A list of tasks. Each task is represented by a list of three integers [id, source, target]. |