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

2023-12-01 21:28

本文主要是介绍机器人最优控制开源库 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

这篇关于机器人最优控制开源库 Model-based Optimization for Robotics的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/442744

相关文章

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

HomeBank:开源免费的个人财务管理软件

在个人财务管理领域,找到一个既免费又开源的解决方案并非易事。HomeBank 正是这样一个项目,它不仅提供了强大的功能,还拥有一个活跃的社区,不断推动其发展和完善。 开源免费:HomeBank 是一个完全开源的项目,用户可以自由地使用、修改和分发。用户友好的界面:提供直观的图形用户界面,使得非技术用户也能轻松上手。数据导入支持:支持从 Quicken、Microsoft Money

开源分布式数据库中间件

转自:https://www.csdn.net/article/2015-07-16/2825228 MyCat:开源分布式数据库中间件 为什么需要MyCat? 虽然云计算时代,传统数据库存在着先天性的弊端,但是NoSQL数据库又无法将其替代。如果传统数据易于扩展,可切分,就可以避免单机(单库)的性能缺陷。 MyCat的目标就是:低成本地将现有的单机数据库和应用平滑迁移到“云”端

基于树梅派的视频监控机器人Verybot

最近这段时间做了一个基于树梅派 ( raspberry pi ) 的视频监控机器人平台 Verybot ,现在打算把这个机器人的一些图片、视频、设计思路进行公开,并且希望跟大家一起研究相关的各种问题,下面是两张机器人的照片:         图片1:                   图片2                    这个平台的基本组成是:

MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)

1、MVC MVC(Model-View-Controller) 是一种常用的架构模式,用于分离应用程序的逻辑、数据和展示。它通过三个核心组件(模型、视图和控制器)将应用程序的业务逻辑与用户界面隔离,促进代码的可维护性、可扩展性和模块化。在 MVC 模式中,各组件可以与多种设计模式结合使用,以增强灵活性和可维护性。以下是 MVC 各组件与常见设计模式的关系和作用: 1. Model(模型)