Giter Site home page Giter Site logo

alan-zengliang / minimum-snap Goto Github PK

View Code? Open in Web Editor NEW

This project forked from czh-cehfdy/minimum-snap

0.0 0.0 0.0 12.24 MB

使用C++对Minimum Snap算法进行了实现,实现的结果超过了论文中给出的计算速度。并且实现了三维和二维的Minimum Snap轨迹生成算法

C++ 69.36% Python 18.90% C 2.16% CMake 9.58%

minimum-snap's Introduction

Minimum Snap

算法细节,请参考我的博客《【附源码和详细的公式推导】Minimum Snap轨迹生成,闭式求解Minimum Snap问题,机器人轨迹优化,多项式轨迹路径生成与优化》

1. 介绍

该仓库主要是对Minimum Snap算法进行实现。

具有以下功能:

  • 可以通过Rviz选择空间点,然后自动生成光滑的多项式曲线;
  • 具有前端轨迹搜索,到后端光滑轨迹生成功能。

功能包介绍:

  • map_generator:主要用来生成随机的地图
  • path_searcher:用于路径搜索,目前只实现了A star
  • trajectory_generator:用于配合path_searcher生成二维Minimum Snap的轨迹
  • waypoint_trajectory_generator:通过Rviz插件生成三维的Minimum Snap轨迹

2. 编译

我的开发环境为:Ubuntu 18.04Ros melodic

cd Minimum-Snap/
catkin_make -j8

3. 运行

通过Rviz生成轨迹

source devel/setup.bash
roslaunch waypoint_trajectory_generator test.launch

运行之后,会自动打开Rviz,并自动加载插件。

使用方法:点击3D Nav Goal按钮,然后鼠标左键点击Rviz中的位置,左键不松,继续点击右键控制箭头的高度,同样的方法选择至少三个点,然后以一个高度为负的箭头结束,将自动生成一条光滑的轨迹。

minimum_snap

A star + Minimum Snap

为了更加接近实际工程使用,帮助大家去更深入了解,我实现了一个比较完整的仿真实验环境,它具有随机二维地图生成功能,前端A star路径搜索功能,后端Minimum Snap轨迹生成。

source devel/setup.bash
roslaunch trajectory_generator run_minimum_snap_2d.launch

使用方法:点击Rviz中的2D Pose Estimate,然后鼠标左键点击地图的任意位置,将会生成光滑的轨迹。

A_star+minimum_snap

致谢:在学习路径规划的过程中,浙江大学的高飞老师给了我很多的帮助,其中也参考了他的不少代码和课件,在此向他提出感谢!

minimum-snap's People

Contributors

zm0612 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.