用于非线性mpc的非线性优化solver有哪些,各有什么特点?
最近再使用mpc,发现matlab自带的fmincon太慢,想了解关于这方面求解器的。目前知道的求解器有IPOPT, FORCES PRO,PIPS-NLP和ACADO。现在在用opti里面集成的ipopt,发现还是比较慢,想试试看其他。
再补充几个:
AutoGenU - C/GMRES法
GRAMPC - gradient projection
VIATOC - gradient projection
再留个广告位给自己。
OCS2是为开关系统最优控制( OCS2 )定制的C + +求解器。求解器提供了下列算法的有效实现:
![](https://picx.zhimg.com/v2-0b7f7bda4285149c0414cedc85c31d87_r.jpg?source=1def8aca)
=为了方便OCS2在机器人任务中的应用,它为用户提供了额外的工具来设置URDF模型中的系统动力学(例如运动学或动力学模型)和成本/约束(如自碰撞避免和末端执行器跟踪等)。该库还提供了一个自动区分工具来计算系统动态、约束和成本的导数。为了方便其在机器人平台上的部署,OCS2提供了ROS接口工具。工具箱的高效和数值稳定的实现与它的用户友好的界面一起为使用它在许多具有有限的机载计算能力的机器人应用程序铺平了道路。
https://leggedrobotics.github.io/ocs2/overview.htmlOverview - OCS2 1.0.0 documentation
OCS2求解器用户手册一句话,OCS2可以解决下面的问题:1.有动力学方程,2.有cost约束函数,3.可以划分子问题
![](https://picx.zhimg.com/v2-23b5d22f37404e93d2b91fc912472114_r.jpg?source=1def8aca)
官网安装:Installation - OCS2 1.0.0 documentation
![](https://picx.zhimg.com/v2-2d1c3755afc3c51397ad6b45dc1f8ed7_r.jpg?source=1def8aca)
请按照上面的安装流程安装,下面是个人的安装问题记录:
1.源码下载:
官网的ssh命令链接不知道为什么失效了,使用http链接下载就可以了
git clone https://github.com/leggedrobotics/ocs2.git
2.依赖安装
![](https://pica.zhimg.com/v2-e7c437a1eeb5410becc3619f0416e7cb_r.jpg?source=1def8aca)
还要安装挺多依赖项目的,一个个来吧,其中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两相比较,遇到了比较多的问题。含泪解决吧。。。
![](https://picx.zhimg.com/v2-c9080f5045a527ebcc870fec6e7d46d3_r.jpg?source=1def8aca)
特别是环境设置过程中,务必注意,这个.bashrc文件是系统配置文件,每次运行
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
这条命令其实都是在配置文件中修改,所以要十分注意
3.setup.bash问题
我出现了这个问题:
![](https://pica.zhimg.com/v2-f465ad815b2ed0c3e8286e6215cf9be9_r.jpg?source=1def8aca)
爱喝水的大灰狼: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开源库教程
同类文章排行
- 三聚磷酸钠与减水剂、解胶王等产品的区别?
- 「亚马逊人脸识别噩梦」贝索斯将AI武器化遭大规模抗议
- 星巴克的中年劫
- 腾讯游戏营收比重连续两个季度下降,支付、云计算等业务营收涨3
- 三聚磷酸钠在陶瓷行业中的作用是什么?
- 工业三聚磷酸钠实验室鉴别假冒伪劣产品的方法?
- 传滴滴即将接入ofo,共享单车大战格局或生变
- 获 3800 万元 A+ 轮投资,乐摇摇科技利用抓娃娃机做线
- 工业三聚磷酸钠在洗涤行业中的作用是什么?
- 点击在线求助,应答的却都是机器人,这样真的好吗?