A GCS for multi UAV & long range inspection
This repository prvides an GCS software that allow command and monitoring multiple UAVs for a heterogeneous fleet of unmannned Aerial Vehicles (UAVs). This project is part of Multi Project
First, clone the repo and cd into the project:
git clone https://github.com/alvcaballero/multiuav_gui.git
cd multiuav_gui
Install dependencies:
cd server
npm i
cd ..
For case you comunicate through ros do you have to setup a docker container
- Install Docker container and prepare the container
cd docker
docker build -t muavgcs:noetic .
or build with non root user
docker build --build-arg USER_ID=$(id -u) --build-arg GROUP_ID=$(id -g) -t muavgcs:noetic .
- modify the docker/container_run.sh and change the PROJECT_DIR value and run
cd docker
nano ./container_run.sh
- put repos and in catkin
https://github.com/dji-sdk/Onboard-SDK.git
mkdir build
cd build
cmake..
sudo make -j7 install
cd ..
mkdir catkin_ws && cd carkin_ws
mkdir src && cd src
catkin_init_workspace
git clone --recurse-submodules --branch GimbalPitch -j8 https://github.com/alvcaballero/multiUAV_system.git
git clone https://github.com/miggilcas/Onboard-SDK-ROS
// git clone https://github.com/alvcaballero/multiUAV_system.git
// git clone https://github.com/alvcaballero/multiuav_gui.git
// git clone https://github.com/dji-sdk/Onboard-SDK-ROS
// git clone https://github.com/grvcTeam/grvc-utils.git
// git clone https://github.com/CircusMonkey/ros_rtsp.git
// git clone https://github.com/miggilcas/simple_vs.git
cd ..
catkin_make
Move to the server directory:
cd server
Open .env.example and copy its content into a new file named .env, then set the correct value for all things. Now start the server:
npm run server
Move to the client directory and run :
cd client
npm run start
Backend will be running on port 5000 and frontend on port 3000 (if not already in use).
Mode to the docker directory and run:
cd docker
./container_run.sh
In the container run for enable the rosbridge and GCS can connect with de UAVs
roslaunch aerialcore_gui connect_uas.launch
Open .env.example and copy its content into a new file named .env, then set the correct value for all things. Install dependencies:
docker-compose run server npm i
docker-compose run bridge roslaunch aerialcore_gui connect_uas.launch
docker-compose up
Move to ./client/
npm i -g serve
Build the app:
npm run build # Or yarn build
Move to ./server/ and open .env.example and copy its content into a new file named .env, then set the correct value for all things. Now start the server:
npm run server
Build images and run containers:
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up
The documentation of this project is Documentation HERE
-
Multi-robot: Allow monitoring and control multiple robot at same time or individual.
-
Heterogeneity: Each vehicle can possess distinct capabilities, including various velocities and battery requirements (maximum time of flight).
-
Multi-User: Interact with the web application to monitoring and control de robot fleet or a single robot can be access athrough internet or in local network.
-
Third-party sotfware: Interact with other software thought API like abstraction layer for big proyects.
-
ROS easy integration: Easy integration with diferents robot using ROS
-
Mission Planning: Allow create waypoint mission in the web interface and export in diferets formats.
-
Mission Planning: Allow create waypoint mission in the web interface and export in diferets formats.
-
Video Straming from robot: Actually allow integration to mavlink through ros packages mavros, in future use directly mavlink.
-
Mavlink integration: Actually allow integration to mavlink through ros packages mavros, in future use directly mavlink.
-
To install MultiUAV-GUI need node 18 and npm and docker, I remend use nvm for use npm .
-
Clone the repository.
git clone https://github.com/alvcaballero/multiuav_gui.git
cd multiuav_gui
- Install the requirements of server.
cd server
npm install
The web interface use openStreatMaps and for elevation profile use OpentopoData
- Configure the server to modifi and edit .env and devices_init.yaml
cp multiuav_gui/server/.env.example multiuav_gui/server/.env
cp /multiuav_gui/server/config/devices/.devices_init.yaml' /multiuav_gui/server/config/devices/devices_init.yaml'
- Run server
cd multiuav_gui/server
npm run server
- Run rosbridge in docker
./container_run.sh
roslaunch aerialcore_gui connect_uas.launch
- Open the interfaz in browser http://localhost:4000/
Interface for control and monitoring of multiple UAV in mision
tmuxinator start -p muav-gui.yml
for development of MUAV-GUI can access to http://localhost:3000/
cd multiuav_gui/client
nvm use 18
npm install
npm run start
you can see the documentacion for integration in Documentation HERE
additional docs
- Implement option to exchange ROS messages over the network,s messages using Flatbuffers without Ros on server like robofleet
- access control
- Data Bases model for maintain the information.
- integration with external plannig
Test and Setup for Muav on Proyect Omicron Demo in Plaza de Agua
- Group points and move all route , in edit mission
- streaming of video using Websockets in MVS Architecture
- Donwload mission in diferentes file format
- Calcule middle point for create a new mission
- Creation mission page for eddit mission
-
inspector software_UAV in this project files from the camera are held via ftp and stored in the drone's backpack and then sent to the gcs via bashpass using and scp, this is done directly on the drone.
-
Robot Fleet Open Source Communication and Management for Fleets of Autonomous Robots To exchange ROS messages over the network,s messages using Flatbuffers.
-
DJI ROS OSDK custom DJI ROS SDK package with all sensors avoidance and download camera images.
-
UAL ROS UAV abstraction layer
-
ROS_RTSP publish video for robot to server
-
Mediamtx Server multimedia for streaming video in server part
-
traccar-web fleet management
If you find UAL useful in your research, please consider citing:
@inproceedings{poma2024Icuas,
title={Open-Source Web-Based Ground Control Station for Long-Range Inspection with Multiple UAV s},
author={Poma, Alvaro Ramiro and Caballero, Alvaro and Maza, Ivan and Ollero, Anibal},
booktitle={2024 International Conference on Unmanned Aircraft Systems (ICUAS)},
pages={1385--1392},
year={2024},
organization={IEEE}
}