RoboticExplorationLab/TrajectoryOptimization.jl

A fast trajectory optimization library written in Julia

它解决了什么问题

轨迹优化问题具有独特的结构,这使得通用的非线性规划 (NLP) 求解器效率低下。该软件包提供了一个专门的接口和评估方法,让求解器能够利用这种结构,从而显著提高计算效率。它还使用户无需手动编写导数,因为所有动力学、成本和约束函数都通过 Julia 的 ForwardDiff.jl 自动求导。

工作原理

TrajectoryOptimization.jl 是一个轻量级软件包,仅专注于定义和评估轨迹优化问题。它不包含求解器;相反,它定义了一个接口,由独立的求解器软件包(如 Altro.jl)来实现。该软件包提供了一个便捷的 API 来设置问题,并且其几乎所有的评估方法都没有内存分配,并针对速度进行了高度优化。用户将动力学、成本和约束定义为函数,软件包使用自动微分来计算导数。

适用人群

该软件包适用于从事轨迹优化研究和工程的人员,特别是在机器人和控制领域。对于那些想要构建或测试能够利用高效问题评估的自定义求解器的人,或者想要以简洁、模块化的方式在 Julia 中制定轨迹优化问题的用户来说,它特别有用。

主要亮点

  • 提供了一个用于定义轨迹优化问题的简洁 API。
  • 评估方法极快,几乎零内存分配(比早期版本快 100 倍)。
  • 使用 ForwardDiff.jl 自动对动力学、成本和约束进行微分——无需手动求导。
  • 与求解器解耦,允许不同的求解器软件包实现其接口(例如 Altro.jl)。
  • 拆分为模块化软件包(RobotDynamics.jl, Altro.jl, RobotZoo.jl, TrajOptPlots.jl)以提高灵活性。

相关

  • 项目
  • 项目
  • 项目
  • 项目