Code for article: Multi-UAV Deployment in Obstacle-cluttered Environments with LOS connectivity
Left: Find a topology that deploys as few asagents to reach some targets. Right: A trajectory planning method that make the underlying UAVs fly to the targets while maintain connectivity.
We have tested our code with:
ubuntu 20.0.4
in python3
This APP need following dependencies:
numpy 1.21.2
scipy 1.6.3
cvxopt 1.3.0
matplotlib 3.4.3
mayavi 4.8.0
IMPC-MD depends on the package openGJK to apply polytope-related calculation. As openGJK is written in C++, a conversion from C++ to python is needed. This can be done by generating a Python-Binding file called opengjkc.so
.
PS: This file must be generated specifically for each different running environment. The one provided in IMPC-OB source code is generated based on python 3.9, thus it might not be available for importing in your environment. Be sure to manually generate it yourself!
The process is shown below:
git clone https://github.com/MattiaMontanari/openGJK
cmake -E make_directory build
cmake -E chdir build cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build build
cmake -E chdir build/examples/c ./example_lib_opengjk_ce
Move the 'openGJK.c' file from the root directory to the 'src' directory, then open it and delete all keywords named restrict
.
cd to the 'examples/python' directory and run source build.sh
.
This should generate a file called opengjkc.cpython-38-x86_64-linux-gnu.so
.
Rename it as opengjkc.so
and move it to the 'IMPC-MD/scripts/geometry/opengjk' directory to replace the existing opengjkc.so file.
cd scripts
python3 test.py