All Projects → nlbucki → Rappids

nlbucki / Rappids

Licence: gpl-3.0
Rectangular Pyramid Partitioning using Integrated Depth Sensors (RAPPIDS): A Fast Planner for Multicopter Navigation

Projects that are alternatives of or similar to Rappids

Jankdrone
The jankest autonomous drone ever built and programmed from scratch
Stars: ✭ 127 (+647.06%)
Mutual labels:  drone, quadcopter
Clover
ROS-based framework and RPi image to control PX4-powered drones 🍀
Stars: ✭ 177 (+941.18%)
Mutual labels:  drone, quadcopter
Autonomous Drone
This repository intends to enable autonomous drone delivery with the Intel Aero RTF drone and PX4 autopilot. The code can be executed both on the real drone or simulated on a PC using Gazebo. Its core is a robot operating system (ROS) node, which communicates with the PX4 autopilot through mavros. It uses SVO 2.0 for visual odometry, WhyCon for visual marker localization and Ewok for trajectoy planning with collision avoidance.
Stars: ✭ 87 (+411.76%)
Mutual labels:  drone, quadcopter
Swarms
The ultimate node.js library for controlling Bitcraze Crazyflie 2.0 drones
Stars: ✭ 11 (-35.29%)
Mutual labels:  drone, quadcopter
goliath-quadcopter
Design files for the Goliath Quadcopter
Stars: ✭ 25 (+47.06%)
Mutual labels:  drone, quadcopter
Gymfc
A universal flight control tuning framework
Stars: ✭ 210 (+1135.29%)
Mutual labels:  drone, quadcopter
Esp Drone
Mini Drone/Quadcopter Firmware for ESP32 and ESP32-S Series SoCs.
Stars: ✭ 132 (+676.47%)
Mutual labels:  drone, quadcopter
QUICKSILVER
Flight Controller Firmware
Stars: ✭ 45 (+164.71%)
Mutual labels:  drone, quadcopter
ufomap
UFOMap: An Efficient Probabilistic 3D Mapping Framework That Embraces the Unknown
Stars: ✭ 117 (+588.24%)
Mutual labels:  drone, collision-detection
Dronin
The dRonin flight controller software.
Stars: ✭ 238 (+1300%)
Mutual labels:  drone, quadcopter
RaspberryPilot
RaspberryPilot
Stars: ✭ 31 (+82.35%)
Mutual labels:  drone, quadcopter
Dronebridge
DroneBridge is a system based on the WifiBroadcast approach. A bidirectional digital radio link between two endpoints is established using standard WiFi hardware and a custom protocol. DroneBridge is optimized for use in UAV applications and is a complete system. It is intended be a real alternative to other similar systems, such as DJI Lightbridge or OcuSync.
Stars: ✭ 370 (+2076.47%)
Mutual labels:  drone, quadcopter
Openmvg
open Multiple View Geometry library. Basis for 3D computer vision and Structure from Motion.
Stars: ✭ 3,902 (+22852.94%)
Mutual labels:  drone
Dronesploit
Drone pentesting framework console
Stars: ✭ 473 (+2682.35%)
Mutual labels:  drone
Quadrotor
Quadrotor control, path planning and trajectory optimization
Stars: ✭ 331 (+1847.06%)
Mutual labels:  drone
Dyn4j
Java Collision Detection and Physics Engine
Stars: ✭ 317 (+1764.71%)
Mutual labels:  collision-detection
Ardupilot
ArduPlane, ArduCopter, ArduRover, ArduSub source
Stars: ✭ 6,637 (+38941.18%)
Mutual labels:  drone
Px4 Autopilot
PX4 Autopilot Software
Stars: ✭ 5,090 (+29841.18%)
Mutual labels:  drone
Cleanflight Configurator
Google chrome/chromium based configuration tool for the cleanflight firmware
Stars: ✭ 311 (+1729.41%)
Mutual labels:  quadcopter
Bounce
Bounce is a 3D physics engine for games.
Stars: ✭ 300 (+1664.71%)
Mutual labels:  collision-detection

Rectangular Pyramid Partitioning using Integrated Depth Sensors (RAPPIDS)

This repository contains source code implementing an algorithm for quickly finding local collision-free trajectories given a single depth image from an onboard camera. The algorithm leverages a new pyramid-based spatial partitioning method that enables rapid collision detection between candidate trajectories and the environment. Due to its efficiency, the algorithm can be run at high rates on computationally constrained hardware, evaluating thousands of candidate trajectories in milliseconds.

The algorithm is described in a paper submitted to IEEE Robotics and Automation Letters (RA-L) with the International Conference on Intelligent Robots and Systems 2020 (IROS) option. A preprint version of the paper is available here.

Contact: Nathan Bucki ([email protected]) High Performance Robotics Lab, Dept. of Mechanical Engineering, UC Berkeley

Getting Started

First clone the repository and enter the created folder:

git clone https://github.com/nlbucki/RAPPIDS.git
cd RAPPIDS

Create a build folder and compile:

mkdir build
cd build
cmake ..
make

A program is provided that demonstrates the performance of the algorithm and gives an example of how the algorithm can be used to generate collision free motion primitives. The program Benchmarker performs the Monte Carlo simulations described in Seciton IV of the associated paper. The three tests performed in the paper can be ran from the RAPPIDS folder with the following commands:

./build/test/Benchmarker --test_type 0 -n 10000 --maxNumPyramidForConservativenessTest 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
./build/test/Benchmarker --test_type 1 -n 10000 
./build/test/Benchmarker --test_type 2 -n 10000 --w 640 --h 480 --f 386 --cx 320 --cy 240 --numCompTimesForTCTest 20

Note the -n option can be changed to a smaller number to perform less Monte Carlo trials, and thus run the tests faster (but with less accuracy). The above settings reflect those used to generate the results reported in the paper.

Each test generates a .json file in the data folder containing the test results. We provide two python scripts to visualize the results of the conservativeness test (test 0) and the overall planner performance test (test 2). They can be ran with the following commands:

cd scripts
python plotAvgTrajGenNum.py
python plotConservativeness.py

Documentation

An HTML file generated with Doxygen can be accessed after cloning the repository by opening Documentation.html in the doc/ folder.

Licensing

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].