• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MatthewPeterKelly/OptimTraj: A trajectory optimization library for Matlab

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

MatthewPeterKelly/OptimTraj

开源软件地址(OpenSource Url):

https://github.com/MatthewPeterKelly/OptimTraj

开源编程语言(OpenSource Language):

MATLAB 100.0%

开源软件介绍(OpenSource Introduction):

OptimTraj - Trajectory Optimization for Matlab

OptimTraj is a matlab library designed for solving continuous-time single-phase trajectory optimization problems. I developed it while working on my PhD at Cornell, studying non-linear controller design for walking robots.

What sort of problems does OptimTraj solve?

Examples:

  • Cart-pole swing-up: Find the force profile to apply to the cart to swing-up the pendulum that freely hanges from it.
  • Compute the gait (joint angles, rates, and torques) for a walking robot that minimizes the energy used while walking.
  • Find a minimum-thrust orbit transfer trajectory for a satellite.

Details:

OptimTraj finds the optimal trajectory for a dynamical system. This trajectory is a sequence of controls (expressed as a function) that moves the dynamical system between two points in state space. The trajectory will minimize some cost function, which is typically an integral along the trajectory. The trajectory will also satisfy a set user-defined constraints.

OptimTraj solves problems with

  • continuous dynamics
  • boundary constraints
  • path constraints
  • integral cost function
  • boundary cost function

All functions in the problem description can be non-linear, but they must be smooth (C2 continuous).

Features:

  • Easy to install - no dependencies outside of Matlab (for base functionality)
  • Lots of examples - look at the demo/ directory to see for yourself!
  • Readable source code - easy to debug your code and figure out how the software works
  • Analytic gradients - most methods support analytic gradients
  • Rapidly switch methods - choose from a variety of methods:
    • direct collocation
      • trapezoid
      • Hermite-Simpson (seperated)
    • direct multiple shooting
      • 4th-order Runge-Kutta
    • global (pseudospectral) collocation
      • Chebyshev (Lobatto) -- (requires chebfun)

Installation:

  1. Clone or download the repository
  2. Add the top level folder to your Matlab path
  3. (Optional) Clone or download chebfun (needed for global collocation)
  4. Done!

Usage:

  • Call the function optimTraj from inside matlab.
  • optimTraj takes a single argument: a struct that describes your trajectory optimization problem.
  • optimTraj returns a struct that describes the solution. It contains a full description of the problem, the transcription method that was used, and the solution (both as a vector of points and a function handle for interpolation).
  • For more details, type help optimTraj at the command line, or check out some of the examples in the demo/ directory.

Documentation:

The best way to learn OptimTraj is by working through a few of the examples in the demo/ directory. There is also a .pdf user guide that can be found in the /docs directory.

For more background on trajectory optimization in general, I wrote a tutorial paper that includes derivations and references for most methods implemented here, along with a variety of practical suggestions and debugging tips. Finally, I have a tutorial webpage for trajectory optimization.

Citing OptimTraj

The best way to cite OptimTraj is via the user guide:

OptimTraj User's Guide, Version 1.5
Matthew P. Kelly
May 27, 2016
https://github.com/MatthewPeterKelly/OptimTraj

Alternatively, you can cite the tutorial paper that accompanies OptimTraj:

@article{kelly2017introduction,
  title={An Introduction to Trajectory Optimization: How to do your own Direct Collocation},
  author={Kelly, Matthew},
  journal={SIAM Review},
  volume={59},
  number={4},
  pages={849--904},
  year={2017},
  publisher={SIAM}
}

Contribute:

Contributions are welcome! Feel free to reach out if you're planning a bigger submission, or just go ahead and make a pull request for smaller contributions.

If you are interested in contributing, here are a few possible things to do:

  • Create additional demo problems
  • Identify holes in the documentation
  • Report bugs
  • Implement new methods or features
  • Look through the open issues

Contributions:

  • Will Wehner implemented analytic gradients in the 4th-order Runge-Kutta method.

  • Conrad McGreal contributed the minimum-time 3D quadrotor example.




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap