malintha / multi_uav_simulator Goto Github PK
View Code? Open in Web Editor NEWA drone swarm simulator based on ROS (Robot Operating System).
License: GNU General Public License v3.0
A drone swarm simulator based on ROS (Robot Operating System).
License: GNU General Public License v3.0
It would be good to have some example codes on python/C++ on simulating some trajectories with the drones.
After launching the simulation, how can we give a navigation goal?
Hey,
I have made a Makefile for this project that will handle the dependencies required as well as the build process. This is the first version of the Makefile, and it works on a fresh install of Ubuntu 20.04.5
, Kernel: 5.15.0-67-generic
.
To use this file, first download the gist, and place it the directory where you would like your catkin_ws
to be made.
Then run make deps
to install dependencies required. This will only work on distros and versions that support ROS1, and I have only tested it on 1 machine, so it will be updated as required.
Next, run make build
to build the multi_uav_simulator.
Finally, run make launch
to launch the simulation, and an Rviz window should open.
Included is a make clean
command, to remove the entire catkin_ws
.
Please leave comments either here and mention me (@matteovidali) with updates, or place requests on the gist itself.
The drones should be able to accept velocity/acceleration control inputs. Since the Lee's controller accepts only the positional inputs, this needs to be catered from the dynamical system front. I.e., Integrating the differentially flat model with the given control input and use the resulting coordinates to optimize the trajectories.
This can also handle stochastic dynamics, by adding a Gaussian noise to the integration.
I'm trying to get the example described in the main README file working. I'm inside a docker container on ubuntu 20.02 focal. I'm using the ros-noetic-robot container file to start with. After getting catkin working, and all prereqs installed, i manged to get through the build process, up until the 'mav_trajectory_generation' step. Then I get a somewhat unhelpful message about a missing package;
...
Starting >>> eigen_checks
Finished <<< geo_controller [ 0.3 seconds ]
Finished <<< eigen_checks [ 0.2 seconds ]
Starting >>> mav_trajectory_generation
___________________________________________________________________________________________________
Errors << mav_trajectory_generation:cmake /catkin_ws/logs/mav_trajectory_generation/build.cmake.004.log
CMake Warning (dev) at CMakeLists.txt:2 (project):
Policy CMP0048 is not set: project() command manages VERSION variables.
Run "cmake --help-policy CMP0048" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The following variable(s) would be set to empty:
CMAKE_PROJECT_VERSION
CMAKE_PROJECT_VERSION_MAJOR
CMAKE_PROJECT_VERSION_MINOR
CMAKE_PROJECT_VERSION_PATCH
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Error at /usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:463 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:643 (_pkg_check_modules_internal)
CMakeLists.txt:19 (pkg_check_modules)
cd /catkin_ws/build/mav_trajectory_generation; catkin build --get-env mav_trajectory_generation | catkin env -si /usr/bin/cmake /catkin_ws/src/mav_trajectory_generation/mav_trajectory_generation --no-warn-unused-cli -DCATKIN_DEVEL_PREFIX=/catkin_ws/devel/.private/mav_trajectory_generation -DCMAKE_INSTALL_PREFIX=/catkin_ws/install; cd -
...................................................................................................
Failed << mav_trajectory_generation:cmake [ Exited with code 1 ]
Failed <<< mav_trajectory_generation [ 1.0 seconds ]
Abandoned <<< multi_uav_simulator [ Unrelated job failed ]
[build] Summary: 8 of 10 packages succeeded.
[build] Ignored: 7 packages were skipped or are skiplisted.
[build] Warnings: None.
[build] Abandoned: 1 packages were abandoned.
[build] Failed: 1 packages failed.
[build] Runtime: 3.1 seconds total.
Up to this point, I was getting the occasional dependency errors (libtools), but they were easy to resolve. The error message made me think it was an issue with pulling/merging the dependency mentioned in the walkthrough, so I reran those steps, but the error persisted.
While attempting the catkin_make as instructed by the document, it gives the fatal error of not having simulator_utils\Waypoint.h
This will let each node to be controlled independently instead of centralized control through a single simulation node.
MavSwarm needs to be moved to ROS2. Ideally, this should be a separate branch parallel to the ROS1 master branch. A good first start would be to move the catkin build to colcon build. https://colcon.readthedocs.io/en/released/user/quick-start.html
Currently, there is only the crazyflie urdf model available for both the models. Need to add another quadrotor model for the large quadrotor dynamic model (the one described in Lee's geometric controller paper [1]).
[1] https://www.math.ucsd.edu/~mleok/pdf/LeLeMc2010_quadrotor.pdf
Hi!
Awesome simulation! But I ran against small problem. It seems that the quadcopter models are not visible when I try it on my computer eventhough I do find the .dae files in the directory downloaded with the repo:
OS: Ubuntu 20.04
ROS noetic
got some log files here but they are not indicating any errors.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.