当前位置: 首页 > article >正文

IEEE 机器人最优控制开源库 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.kler.cn/news/156303.html

相关文章:

  • 【开源】基于JAVA的校园电商物流云平台
  • 【C++】sizeof()、strlen()、length()\以及size()用法区别
  • 【每日一题】1038. 从二叉搜索树到更大和树-2023.12.4
  • python-GC机制、装饰器、生成器、迭代器、三元表达式、列表生成式、生成器表达式、函数递归、面向对象、
  • 【数据结构】八大排序 (三)
  • 如何精准操作无人机自动停机坪?
  • (c语言进阶)作业讲解
  • Docker pull 命令
  • 网件R8500 trojan
  • 技术前沿丨Teranode如何实现无限扩容
  • 36、红外遥控(外部中断)
  • 数据库事务的隔离级别
  • PyQt实战 创建一个PyQt5项目
  • 【算法】滑动窗口题单——5.多指针滑动窗口⭐
  • LabVIEW通过编程将图形类控件的X轴显示为时间戳
  • easyrecovery2024绿色版中文语言电脑数据恢复工具
  • 网络层之SDN基本概念、路由算法和路由协议
  • java的弱引用、软引用和虚引用
  • Ubuntu Server 20.04.6安装Anaconda3
  • javascript中的过滤操作
  • 11月推荐阅读的12篇大语言模型相关论文
  • 无需服务器,无需魔法,拥有一个微信机器人就是这么简单
  • 数学建模-数据新动能驱动中国经济增长的统计研究-基于数字产业化和产业数字化的经济贡献测度
  • 性能测试常见面试题
  • 网络细节核心笔记
  • Android监听用户的截屏、投屏、录屏行为
  • Google Guava 反射工具使用详解
  • 用纯 CSS 实现网格背景
  • 【Node.js】Node.js环境下载与安装教程(Windows系统)
  • 《系统架构设计师教程(第2版)》第2章-计算机系统基础知识-02-计算软件