Installation#
Install Argos 3. Please refer to this Link for instruction.
You can verify the correctness of the compilation by running:
argos3 --versionInstall RPC This repo requires RPC for communication between server and clients. Please install rpc using:
bash compile.sh rpclib
Install the minimal Python dependencies for
run_lifelong.py.python -m pip install -r requirement.txt
Compile client.
bash compile.sh client
To produce debuggable code (slow), type:
cd client cmake -DCMAKE_BUILD_TYPE=Debug .. make cd ..
Compile server.
bash compile.sh server
Compile MAPF planner. For now we support PBS and RHCR.
bash compile.sh pbs bash compile.sh rhcr
Alternatively, you may compile rpc, server, client, and MAPF planners using:
bash compile.sh all
While developing, you may compile server, client, and MAPF planners using:
bash compile.sh user
Container#
You can also build and run LSMART inside a Singularity container.
The container build expects Argos3 to already exist in the repository
root because singularity/container.def copies it into the image:
argos3_simulator-3.0.0-x86_64-beta59.deb: Download it from Argos3.Install CPLEX at
CPLEX_Studio2210/: If it exists in the repository root, the container build also copies it into the image and compiles the MASS planner. If it is missing, the container still builds, but skips MASS.
Build the container with:
bash singularity/build_container.sh
This produces singularity/container.sif. The build script first creates a
writable sandbox, runs it once to compile LSMART inside the container, and
then packs the result into the final .sif image. During the build, the
container also installs the Python packages from requirement.txt.
To run a headless simulation from the container:
singularity exec --cleanenv \
singularity/container.sif \
python run_lifelong.py maps/kiva_large_w_mode.json --headless True --screen 0 --num_agents 10 --save_stats True --rotation False --planner_invoke_policy default --sim_window_tick 10 --planner RHCR --backup_solver PIBT --task_assigner_type windowed --container True