This is a revised version for benchmarking used by the Kumar Lab.
- main: ROS1 implementation
- ros2: ROS2 implementation (ros2 branch)
- noros: Pure C++ implementation without ROS (noros branch)
Each branch contains detailed usage instructions specific to its environment.
Make sure you have ROS1 installed if you are using the main branch. Additionally, install the following dependencies:
sudo apt update
sudo apt install libpcl-dev libompl-devmkdir -p test_ws/src
cd test_ws/src
git clone https://github.com/yuwei-wu/GCOPTER.git
cd ../
catkin build
source devel/setup.bash
roslaunch gcopter global_planning.launch
/move_base_simple/goal (geometry_msgs/PoseStamped)
- Uses 2D Nav Goal to send start and end poses
/voxel_map (sensor_msgs/PointCloud2)
- Publishes a 3D voxel grid map of the environment
/visualizer/body_rate (geometry_msgs/Vector3Stamped)
/visualizer/edge (visualization_msgs/Marker)
/visualizer/mesh (visualization_msgs/Marker)
/visualizer/route (nav_msgs/Path)
/visualizer/speed (std_msgs/Float32)
/visualizer/spheres (visualization_msgs/Marker)
/visualizer/tilt_angle (std_msgs/Float32)
/visualizer/total_thrust (std_msgs/Float32)
/visualizer/trajectory (nav_msgs/Path)
/visualizer/waypoints (visualization_msgs/Marker)
GCOPTER is an efficient and versatile multicopter trajectory optimizer built upon a novel sparse trajectory representation named MINCO. User-defined state-input constraints for dynamics involving nonlinear drag effects are supported.
If our repo helps your academic projects, please cite our paper. Thank you!
Author: Zhepei Wang and Fei Gao from ZJU FAST Lab.
Paper: Geometrically Constrained Trajectory Optimization for Multicopters, Zhepei Wang, Xin Zhou, Chao Xu, and Fei Gao, IEEE Transactions on Robotics (T-RO), Regular Paper.
@article{WANG2022GCOPTER,
title={Geometrically Constrained Trajectory Optimization for Multicopters},
author={Wang, Zhepei and Zhou, Xin and Xu, Chao and Gao, Fei},
journal={IEEE Transactions on Robotics},
year={2022},
volume={38},
number={5},
pages={3259-3278},
doi={10.1109/TRO.2022.3160022}
}
- SDLP: Seidel's Algorithm on Linear-Complexity Linear Programming for Computational Geometry.
- VertexEnumeration3D: Highly Efficient Vertex Enumeration for 3D Convex Polytopes (Outperforms cddlib in 3D).
- LBFGS-Lite: An Easy-to-Use Header-Only L-BFGS Solver.