欢迎浏览我们的网站

首页-高德娱乐-中国加盟站

11年专注提供磷化工原料批发

华南地区销量领前的三聚磷酸钠专业代理商

全国免费咨询热线:

400-123-4657

当前位置: 首页 > 高德资讯 > 公司动态

用于非线性mpc的非线性优化solver有哪些,各有什么特点?

文章作者:佚名 人气:发表时间:2024-07-08 14:38:13

最近再使用mpc,发现matlab自带的fmincon太慢,想了解关于这方面求解器的。目前知道的求解器有IPOPT, FORCES PRO,PIPS-NLP和ACADO。现在在用opti里面集成的ipopt,发现还是比较慢,想试试看其他。

再补充几个:

AutoGenU - C/GMRES法

GRAMPC - gradient projection

VIATOC - gradient projection

再留个广告位给自己。

OCS2是为开关系统最优控制( OCS2 )定制的C + +求解器。求解器提供了下列算法的有效实现:

=为了方便OCS2在机器人任务中的应用,它为用户提供了额外的工具来设置URDF模型中的系统动力学(例如运动学或动力学模型)和成本/约束(如自碰撞避免和末端执行器跟踪等)。该库还提供了一个自动区分工具来计算系统动态、约束和成本的导数。为了方便其在机器人平台上的部署,OCS2提供了ROS接口工具。工具箱的高效和数值稳定的实现与它的用户友好的界面一起为使用它在许多具有有限的机载计算能力的机器人应用程序铺平了道路。

leggedrobotics.github.io

Overview - OCS2 1.0.0 documentation

OCS2求解器用户手册

一句话,OCS2可以解决下面的问题:1.有动力学方程,2.有cost约束函数,3.可以划分子问题

官网安装:Installation - OCS2 1.0.0 documentation

依赖项目需要提前配置哈。。。环境比较复杂。坑爹

请按照上面的安装流程安装,下面是个人的安装问题记录:

1.源码下载:

官网的ssh命令链接不知道为什么失效了,使用http链接下载就可以了

git clone https://github.com/leggedrobotics/ocs2.git

2.依赖安装

还要安装挺多依赖项目的,一个个来吧,其中eigen库在之前介绍过:使用源码编译安装

爱喝水的大灰狼:分布式并行计算笔记-MPI+openmp+Eigen

至于什么是源码编译安装:1.把他的库源代码下载。2.使用编译命令在对应工程文件夹编译(把库当成你的工程文件一部分)

1.关于sudo apt install ros-noetic-pybind11-catkin等安装不成功:

可能是网络连接问题得换源安装

ubuntu20.04安装ros-noetic,moveit,ur机器人驱动...指南!_Dawn_yc的博客-CSDN博客

2.ros-noetic库安装

ros-noetic安装教程_鲁伯特1996的博客-CSDN博客

noetic/Installation/Ubuntu - ROS Wiki

参考一下维基百科和csdn两相比较,遇到了比较多的问题。含泪解决吧。。。

特别是环境设置过程中,务必注意,这个.bashrc文件是系统配置文件,每次运行

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc

这条命令其实都是在配置文件中修改,所以要十分注意

3.setup.bash问题

我出现了这个问题:

爱喝水的大灰狼:ROS安装问题解决: -bash:/opt/ros/humble/setup.bash: No such file or directory

找了一些方法解决了,当然还有一些七七八八愚蠢的问题。

4.boost C++库安装

Boost 是一个功能强大、构造精巧、跨平台、开源并且完全免费的 C++ 程序库。

细心的读者会发现,Boost 库的头文件与我们平常所用的头文件(*.h)或 C++ 标准库的头文件(没有后缀名)不同,这正是 Boost 的独特之处。它把 C++ 类的声明和实现放在了一个文件中,而不是分成两个文件,即.h+.cpp,故文件的后缀是.hpp

boost C++官网链接:Getting Started on Unix Variants

boost C++安装教程:1. linux C++安装并编译boost库 2.Linux系统下安装c++ boost开源库教程


平台注册入口