# Fast-Planner
## News
This package is under active maintenance. New features will be listed here.
- The heading (yaw angle) planner which enables smoother change of heading direction is available.
- The online mapping algorithm is now available. It can take in depth image and camera pose pairs as input, do raycasting to update a probabilistic volumetric map, and build a Euclidean signed distance field (ESDF) for the planning system.
## Overview
__Fast-Planner__ is a robust and efficient planning system that enables agile and fast autonomous flight for quadrotors.
It takes in information from odometry, sensor streams (such as depth images and point cloud), and outputs high-quality trajectories within a few milliseconds.
It can support aggressive and fully autonomous flight even in unknown and cluttered environments.
Demonstrations about the planner have been reported on the [IEEE Spectrum](https://spectrum.ieee.org/automaton/robotics/robotics-hardware/video-friday-nasa-lemur-robot).
__Authors__: [Boyu Zhou](http://boyuzhou.net), [Fei Gao](https://ustfei.com/) and [Shaojie Shen](http://uav.ust.hk/group/) from the [HUKST Aerial Robotics Group](http://uav.ust.hk/).
__Video__:
<!-- add some gif of the paper video: -->
<p align="center">
<img src="files/exp1.gif" width = "420" height = "237"/>
<!-- </p> -->
<!-- <p align="center"> -->
<img src="files/exp2.gif" width = "420" height = "237"/>
</p>
<p align="center">
<a href="https://youtu.be/XxBw2nmL8t0" target="_blank"><img src="files/title.png" alt="video" width="480" height="270" border="1" /></a>
</p>
This package contains the implementation of __Fast-Planner__ (in folder __fast_planner__) and a lightweight
quadrotor simulator (in __uav_simulator__). Key components are:
- __plan_env__: The online mapping algorithms. It takes in depth image (or point cloud) and camera pose (odometry) pairs as input, do raycasting to update a probabilistic volumetric map, and build an Euclidean signed distance filed (ESDF) for the planning system.
- __path_searching__: Front-end path searching algorithms. Currently it includes a kinodynamic version of A* algorithm that respects the dynamics of quadrotors. The standard A* is also available.
- __bspline_opt__: The gradient-based trajectory optimization based on B-spline trajectory representation.
- __plan_manage__: High-level modules that schedule and call the mapping and planning algorithms. Interfaces for launching the whole system, as well as the configuration files are contained here.
If you use __Fast-Planner__ for your application or research, please cite our related paper:
- [__Robust and Efficient Quadrotor Trajectory Generation for Fast Autonomous Flight__](https://ieeexplore.ieee.org/document/8758904), Boyu Zhou, Fei Gao, Luqi Wang, Chuhao Liu and Shaojie Shen, IEEE Robotics and Automation Letters (RA-L), 2019.
```
@article{zhou2019robust,
title={Robust and efficient quadrotor trajectory generation for fast autonomous flight},
author={Zhou, Boyu and Gao, Fei and Wang, Luqi and Liu, Chuhao and Shen, Shaojie},
journal={IEEE Robotics and Automation Letters},
volume={4},
number={4},
pages={3529--3536},
year={2019},
publisher={IEEE}
}
```
## 1. Prerequisites
- Our software is developed and tested in Ubuntu 16.04, [ROS Kinetic](http://wiki.ros.org/kinetic/Installation/Ubuntu). Other version may require minor modification.
- We use [**NLopt**](https://nlopt.readthedocs.io/en/latest/NLopt_Installation) to solve the non-linear optimization problem.
- The __uav_simulator__ depends on the C++ linear algebra library __Armadillo__, which can be installed by ``` sudo apt-get install libarmadillo-dev ```.
- _Optional_: If you want to run the more realistic depth camera in __uav_simulator__, installation of [CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit) is needed. Otherwise, a less realistic depth sensor model will be used (See section _Use GPU Depth Rendering_ below).
## 2. Build on ROS
After the prerequisites are satisfied, you can clone this repository to your catkin workspace and catkin_make. A new workspace is recommended:
```
cd ${YOUR_WORKSPACE_PATH}/src
git clone https://github.com/HKUST-Aerial-Robotics/Fast-Planner.git
cd ../
catkin_make
```
### Use GPU Depth Rendering (Optional)
The **local_sensing** package in __uav_simulator__ has the option of using GPU or CPU to render the depth sensor measurement. By default, it is set to CPU version in CMakeLists:
```
set(ENABLE_CUDA false)
# set(ENABLE_CUDA true)
```
The GPU version is recommended, because it generates depth images more like a real depth camera.
If you want to use the GPU depth rendering, set ENABLE_CUDA to true, and also remember to change the 'arch' and 'code' flags according to your graphics card devices. You can check the right code [here](https://github.com/tpruvot/ccminer/wiki/Compatibility).
```
set(CUDA_NVCC_FLAGS
-gencode arch=compute_61,code=sm_61;
)
```
For installation of CUDA, please go to [CUDA ToolKit](https://developer.nvidia.com/cuda-toolkit)
## 3. Run the Simulation
Run [Rviz](http://wiki.ros.org/rviz) with our configuration firstly:
```
<!-- go to your workspace and run: -->
source devel/setup.bash
roslaunch plan_manage rviz.launch
```
Then run the quadrotor simulator and __Fast-Planner__:
```
<!-- open a new terminal, go to your workspace and run: -->
source devel/setup.bash
roslaunch plan_manage simulation.launch
```
Normally, you will find the randomly generated map and the drone model in ```Rviz```. At this time, you can select a goal for the drone using the ```2D Nav Goal``` tool. When a goal is set successfully, a new trajectory will be generated immediately and executed by the drone. A sample is displayed below:
<!-- add some gif here -->
<p align="center">
<img src="files/exp3.gif" width = "640" height = "360"/>
</p>
## 4. Use in Your Application
If you have successfully run the simulation and want to use __Fast-Planner__ in your project,
please explore the simulation.launch file.
Important parameters that may be changed in your usage are contained and documented.
Note that in our configuration, the size of depth image is 640x480.
For higher map fusion efficiency we do downsampling (in kino_algorithm.xml, skip_pixel = 2).
If you use depth images with lower resolution (like 256x144), you might disable the downsampling by setting skip_pixel = 1. Also, the _depth_scaling_factor_ is set to 1000, which may need to be changed according to your device.
Finally, please kindly give a STAR to this repo if it helps your research or work, thanks! :)
## 5. Acknowledgements
We use **NLopt** for non-linear optimization.
## 6. Licence
The source code is released under [GPLv3](http://www.gnu.org/licenses/) license.
## 7. Disclaimer
This is research code, it 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.
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于C++和python实现的PX4飞控的四旋翼避障工程+源码+项目文档+使用教程,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C++和python实现的PX4飞控的四旋翼避障工程+源码+项目文档+使用教程,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于C++和python实现的PX4飞控的四旋翼避障工程+源码+项目文档+使用教程,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C++和python实现的PX4飞控的四旋翼避障工程+源码+项目文档+使用教程,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档, 基于C++和python实现的PX4飞控的四旋翼避障工程+源码+项目文档+使用教程,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档,
资源推荐
资源详情
资源评论





























收起资源包目录





































































































共 854 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论


梦回阑珊
- 粉丝: 6613
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 支路电气介数Matlab仿真研究:HVDC、FACTS(TCSC与UPFC)模型的选择与对比 · Matlab仿真 参考
- 我的自己总结的知识点总结
- 基于GA遗传优化的混合发电系统(Matlab)优化配置算法:风力、光伏与蓄电池发电
- 基于PI控制的PMSM永磁同步电机Simulink建模与仿真技术研究 - Matlab2022a版
- 基于PSO优化的MPPT光伏发电系统Simulink仿真:构建与优化详解 · MATLAB 文档
- 基于MATLAB的车辆行驶控制运动学模型建模与仿真及其应用 - MATLAB (2025-07-28)
- 基于Simulink的Flyback反激型电路建模与仿真:Matlab 2022a版全流程解析
- 电力系统负荷损失与潮流计算matlab仿真下的节点攻击对比研究:最高度数、最高介数及最高关键度的停电规模评估
- 100KW三相光伏并网逆变器设计方案:原理图、PCB、源码及元器件详解 故障保护 深度版
- 基于Copula函数的风光联合场景生成与K-means聚类削减算法研究
- COMSOL冻土水热耦合模型:PDE建模与降水入渗的入门指南
- 基于springboot的车辆充电桩系统_join1375.zip
- ADC建模与数字校准:基于MATLAB的模数转换器及模拟IC设计实践教程
- 基于SMIC18EE工艺的24位高精度Sigma Delta ADC调制器电路设计学习包
- 复现OEA顶刊论文:紧聚焦矢量光束激发纳米颗粒MIe散射物理模型,多极分解与任意矢量光设置和激发
- 基于FLAC3D点安全系数法的边坡安全系数计算与软件内置强度折减法的对比分析 · FLAC3D 2025版
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
