机器人最优控制开源库 Model-based Optimization for Robotics

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、开源的库和工具箱
    • 1.1 ACADO
    • 1.2 CasADi
    • 1.3 Control Toolbox
    • 1.4 Crocoddyl
    • 1.5 Ipopt
    • 1.6 Manopt
    • 1.7 LexLS
    • 1.8 NLOpt
    • 1.9 qpOASES
    • 1.10 qpSWIFT
    • 1.11 Roboptim
  • 二、其他库和工具箱
    • 2.1 MUSCOD
    • 2.2 OCPID-DAE1
    • 2.3 SNOPT


前言

机器人,尤其是仿人机器人,是一个极其复杂的动态系统,其行为的生成(generation of behaviors)并非易事,因为一个行为需要调整的参数数量非常多。但是,当今机器人面临的挑战要求它们自动生成和控制各种行为,以便更加灵活地适应不断变化的环境。优化(Optimization)或最优控制(optimal control)为基于基本原理(成本函数(cost functions)、约束条件(constraints))自动生成行为提供了一种有趣的方法。摩尔定律以及优化算法,特别是实时优化算法的最新发展,使得算法优化的更广泛应用成为现实,甚至在不久的将来,复杂机器人应用中的实时控制(real-time control)也将成为现实。

在这里插入图片描述

基于模型的机器人优化(Model-based optimization for Robotics)技术专题组推动的重要研究领域包括

  • Optimization-based generation of robot trajectories using dynamical models of the robot and its environment,利用机器人及其环境的动力学模型,基于优化生成机器人轨迹
  • Improve the behavior style of robots by optimization, in particular for humanoid robots (induce natural behavior),通过优化改进机器人的行为方式,特别是仿人机器人(诱导自然行为)
  • Online motion control using real-time model-based optimization and model predictive control/receding horizon control,利用基于模型的实时优化和模型预测控制进行在线运动控制
  • Development of appropriate dynamical models for offline and online optimization,为离线和在线优化开发适当的动力学模型
  • Learning/improving models during optimization,在优化过程中学习/改进模型
  • Inverse optimal control techniques for the identification of objective functions,识别目标函数的逆最优控制技术
  • Robust optimal control and refinement of optimal controls based on actual experience,基于实际经验的鲁棒最优控制和最优控制改进
  • Combination of optimization and machine learning approaches,优化与机器学习方法的结合
  • Combination of optimization and path planning methods,优化与路径规划方法的结合
  • This interdisciplinary scope includes establishing bridges to the mathematical optimization community as well as to the field of biomechanics (to learn from biology and to identify optimality criteria) and to computer graphics (for promising optimization approaches on physically realistic models).,这一跨学科范围包括建立与数学优化社区以及生物力学领域(从生物学中学习并确定优化标准)和计算机制图领域(在物理现实模型上采用有前途的优化方法)的桥梁。

在这里插入图片描述


一、开源的库和工具箱

1.1 ACADO

ACADO 工具箱是一个用于自动控制和动态优化的开源软件环境和算法集。

它还使用直接多步法(direct multiple shooting method)。ACADO 由 C++ 编写,但带有用户友好的 Matlab 接口。

作者是鲁汶工程大学的 Moritz Diehl、Boris Houska、Hand Joachim Ferreau、Milan Vukov 和 Rien Quiynen。

网址: www.acadotoolkit.org

1.2 CasADi

CasADi 是一款用于非线性优化(nonlinear optimization )和算法微分(algorithmic differentiation)的开源工具。它有助于在离线环境和非线性模型预测控制(NMPC)中快速、高效地实施不同的数值优化控制方法。

网址:https://web.casadi.org/

1.3 Control Toolbox

控制工具箱(Control Toolbox,简称 “CT”)是一个用于建模(modeling)、控制(control)、估计(estimation)、轨迹优化(trajectory optimization)和模型预测控制(model predictive control)的 C++ 库。控制工具箱适用于多种动态系统,但也有专门为机器人设计的附加工具。该库包含多个工具,用于设计和评估控制器、动态系统建模和数值求解最优控制问题(optimal control problems)。

网址:https://ethz-adrl.github.io/ct/

1.4 Crocoddyl

Crocoddyl 是一个用于接触序列(contact sequence)下机器人控制的最优控制库。它的求解器基于高效的差分动态编程(Differential Dynamic Programming,DDP)算法。Crocoddyl 可计算最佳轨迹(optimal trajectories)和最佳反馈增益(optimal feedback gains)。它使用 Pinocchio 快速计算机器人动力学及其分析导数。

网址:https://github.com/loco-3d/crocoddyl

1.5 Ipopt

Ipopt 是用于大规模非线性连续优化(large-scale nonlinear continuous optimization)的开源求解器。它可以在 AIMMS、AMPL、GAMS 或 Matlab 等建模环境中使用,也可以作为可调用库提供,并与 C++、C、Fortran、Java 和 R 兼容。

网址:https://github.com/coin-or/Ipopt

1.6 Manopt

Matlab、Python 和 Julia 工具箱用于流形(manifolds)和矩阵(matrices)上的无约束优化(unconstrained optimization),可轻松处理应用中自然出现的各类约束(constraints)和对称性(symmetries),如正交性(orthonormality)、低秩(low rank)、正向性(positivity)和群作用(group actions)下的不变性(invariance)。

网址:https://www.manopt.org/

1.7 LexLS

D. Dimitrov、A. Sherikov 和 P.-B. Wieber 在论文 Efficient resolution of potentially conflicting linear constraints in robotics 中提出的基于词法 QR (l-QR) 的词法最小二乘问题(lexicographic least-squares problems)快速 C++ 求解器。

网址:https://github.com/jrl-umi3218/lexls

1.8 NLOpt

NLopt 是一个免费/开源的非线性优化(nonlinear optimization)库,它为许多在线免费优化例程以及各种其他算法的原始实现提供了一个通用接口。

网址:https://openocl.org/

1.9 qpOASES

qpOASES 是最近提出的在线主动集策略的开源 C++ 实现,其灵感来自参数化二次规划(parametric quadratic programming,QP)领域的重要观察结果。它的一些理论特性使其特别适用于模型预测控制(MPC)应用。进一步的数值修改使 qpOASES 成为一个可靠的 QP 求解器,即使是在处理半有限的(semi-definite)、不确定的(ill-posed)或退化(degenerated)的 QP 问题时也是如此。此外,qpOASES 还提供了多个与 Matlab 或 Simulink 等第三方软件的接口,即使不懂 C/C++ 的用户也能轻松使用。

1.10 qpSWIFT

qpSWIFT 是一种稀疏二次规划(sparse quadratic programming)编程求解器,专为机器人等嵌入式应用而设计。qpSWIFT 采用带有 Mehrotra 预测器-校正器步骤和 Nesterov-Todd 缩放的基元-二元内部点法。

求解器的核心部分是用 ANSI-C 编写的,并带有与 matlab、python 和 simulink 等流行编程语言的接口。要了解更多关于求解器安装和使用的信息,请参阅(pdf)或(github wiki)上的网页文档。有关算法的详细信息,请参阅研究文章(链接)

网址:https://qpswift.github.io/
Github 地址:https://github.com/qpSWIFT/qpSWIFT

1.11 Roboptim

Roboptim 是一个用于机器人数值优化的现代开源 C++ 库,由 Thomas Moulard(法国图卢兹 LAAS CNRS 和日本筑波 AIST-JRL)开发。

网址:http://www.roboptim.net/

二、其他库和工具箱

2.1 MUSCOD

MUSCOD 是一款功能强大的优化控制代码,适用于系统常微分方程和微分代数方程,可用于机器人问题。它采用直接多步法(direct multiple shooting method)。 MUSCOD 由 Hans Georg Bock、Daniel Leineweber 和合作者(德国海德堡大学)编写。

网址:http://www.iwr.uni-heidelberg.de/~agbock/RESEARCH/muscod.php, https://neos-server.org/neos/solvers/miocp:MUSCOD-II/AMPL.html

2.2 OCPID-DAE1

有关最优控制和代码 OCPID.DAE1 的总体信息页面,作者 Matthias Gerdts(德国慕尼黑联邦国防军大学):

网址:http://www.optimal-control.de

2.3 SNOPT

SNOPT 是一个用于约束优化的通用系统。它能在变量和稀疏线性或非线性约束条件的限制下,最小化线性或非线性函数。它适用于大规模线性和二次编程、线性约束优化以及一般非线性程序。

网址:https://web.stanford.edu/group/SOL/snopt.htm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/188116.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文阅读】1 SkyChain:一个深度强化学习的动态区块链分片系统

SkyChain 一、文献简介二、引言及重要信息2.1 研究背景2.2 研究目的和意义2.3 文献的创新点 三、研究内容3.1模型3.2自适应分类账协议3.2.1状态块创建3.2.2合并过程3.2.3拆分过程 3.3评价框架3.3.1性能3.3.1.1共识延迟3.3.1.2重新分片延迟3.3.1.3处理事务数3.3.1.4 约束 3.3.2 …

【代码】基于麻雀搜索优化Kmeans图像分割算法

程序名称:基于麻雀搜索优化Kmeans图像分割算法 实现平台:matlab 代码简介:首先使用麻雀搜索优化算法来确定 K-means 算法的初始质心位置,然后进行传统的 K-means 聚类。这样做的目的是为了避免 K-means 算法陷入局部最优解&…

使用Docker安装部署Swagger Editor并远程访问编辑API文档

文章目录 Swagger Editor本地接口文档公网远程访问1. 部署Swagger Editor2. Linux安装Cpolar3. 配置Swagger Editor公网地址4. 远程访问Swagger Editor5. 固定Swagger Editor公网地址 Swagger Editor本地接口文档公网远程访问 Swagger Editor是一个用于编写OpenAPI规范的开源编…

还得是字节出来的,太秀了...

前段时间公司缺人,也面了许多测试,一开始瞄准的就是中级水准,当然也没指望能来大牛,提供的薪资在15-20k这个范围,来面试的人有很多,但是平均水平真的让人很失望。看了简历很多上面都是写有4年工作经验&…

MatrixOne Meetup回顾 | 深圳站

11月11日,MatrixOne 社区在深圳成功举办了第二次 MatrixOne Meetup。活动当天,数十位外部小伙伴到场参与,一同分享云原生数据库相关知识内容。此次活动,我们也邀请了来自深圳素问智能的外部讲师,分享了目前火爆的大模型…

【每日OJ —— 144. 二叉树的前序遍历】

每日OJ —— 144. 二叉树的前序遍历 1.题目:144. 二叉树的前序遍历2.方法讲解2.1.算法讲解2.2.代码实现2.3.提交通过展示 1.题目:144. 二叉树的前序遍历 2.方法讲解 2.1.算法讲解 1.首先如果在每次每个节点遍历的时候都去为数组开辟空间,这样…

steam搬砖项目到底能不能做?

在Steam的世界里,有一款引人注目的游戏——《CSGO》游戏设备和配件的搬运项目。它就像一个桥梁,连接着全球的游戏世界,为玩家们提供着精彩的设备和配件。原则上,这是一个低买高卖的过程,通过汇率差来赚取利润。比如&am…

从PDF和图像中提取文本,以供大型语言模型使用

想法 大型语言模型已经席卷了互联网,导致更多的人没有认真关注使用这些模型最重要的部分:高质量的数据!本文旨在提供一些有效从任何类型文档中提取文本的技术。 Python库 本文专注于Pytesseract、easyOCR、PyPDF2和LangChain库。实验数据是一…

C 中的结构 - 存储、指针、函数和自引用结构

0. 结构体的内存分配 当声明某种类型的结构变量时,结构成员被分配连续(相邻)的内存位置。 struct student{char name[20];int roll;char gender;int marks[5];} stu1; 此处,内存将分配给name[20]、roll、gender和marks[5]。st1这…

zabbix 监控

zabbit 监控 非常成熟的监控软件。 运维人员,尽快系统服务器的状态,网站的流量,服务进程的运行状态。 保证整个集群的工作正常。7*24 zabbix是什么: web界面提供的一种可视化监控服务软件。 分布式的方式系统监控以及网络监控…

ts学习05-typeScript中的类

类的定义 class Person {name: string; //属性 前面省略了public关键词constructor(n: string) {//构造函数 实例化类的时候触发的方法this.name n;}run(): void {console.log(this.name);} } var p new Person("张三");p.run();class Person {name: string;//…

JOSEF约瑟 剩余电流保护器 CLJ3-100A+LH30 导轨安装

CLJ3系列剩余电流动作继电器 系列型号: CLJ3-100A剩余电流动作继电器 CLJ3-250A剩余电流动作继电器 CLJ3-400A剩余电流动作继电器 CLJ3-630A剩余电流动作继电器 LH30剩余电流互感器 LH80剩余电流互感器 LH100剩余电流互感器 LH140剩余电流互感器 一、产品概…

特征融合12种经典魔改方案汇总,附配套模型和代码

特征融合(Feature Fusion)是深度学习中的一种重要技术,它可以帮助模型更好地理解数据的内在结构和规律,提高模型的性能和泛化能力。另外,特征融合还可以提高模型的分类准确率,减少过拟合风险,帮…

Java核心知识点整理大全25-笔记

目录 25. Hadoop 25.1.1. 概念 25.1.2. HDFS 25.1.2.1. Client 25.1.2.2. NameNode 25.1.2.3. Secondary NameNode 25.1.2.4. DataNode 25.1.3. MapReduce 25.1.3.1. Client 25.1.3.2. JobTracker 25.1.3.3. TaskTracker 25.1.3.4. Task 25.1.3.5. Reduce Task 执行…

CSS特效024:旋转的通透立方体

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧,主要包含CSS布局,CSS特效,CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点,CSS特效主要是一些动画示例,CSS花边是描述了一些CSS…

15分钟了解国外Lead广告联盟,为什么做国外广告联盟要用到指纹浏览器?

说到国外Lead广告联盟,可能很多人会问这是啥?其实呢,作为搞外贸的,如果你想增加你的收入,做国外广告联盟也是不错的选择,只要你有正确的方法和策略,就能够成功赚取丰厚的佣金。今天龙哥我就给大…

101.套接字-Socket网络编程3

目录 1.字节序 主机字节序(小端) 网络字节序(大端) 字节序转换函数 2.IP地址转换函数 3.套接字地址结构 通用 socket 地址结构 专用 socket 地址结构 Socket套接字的目的是将TCP/IP协议相关软件移植到UNIX类系统中。设计…

前后端联调

JavaWenb开发 pom.xml 文件 配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://ma…

ROS2 Gazebo:三维物理仿真平台

介绍 Gazebo是ROS系统中最为常用的三维物理仿真平台&#xff0c;支持动力学引擎&#xff0c;可以实现高质量的图形渲染&#xff0c;不仅可以模拟机器人及周边环境&#xff0c;还可以加入摩擦力、弹性系数等物理属性。 比如我们要开发一个火星车&#xff0c;那就可以在Gazebo中…

OpenHarmony 关闭息屏方式总结

前言 OpenHarmony源码版本&#xff1a;4.0release 开发板&#xff1a;DAYU / rk3568 一、通过修改系统源码实现不息屏 修改目录&#xff1a;base/powermgr/power_manager/services/native/profile/power_mode_config.xml 通过文件中的提示可以知道DisplayOffTime表示息屏的…