机器人最优控制工具
文章平均质量分 92
主要记录机器人最优控制工具使用
kuan_li_lyg
有问题请在评论区留言
展开
-
Humanoid Whole-body Control
我们拟举办的研讨会旨在为生物力学和机器人学这两个学科架起一座桥梁,尤其侧重于人体运动分析和仿人机器人的全身控制。将人体运动转化为仿人机器人是一个新兴的跨学科领域。在过去二十年里,传统的双足行走步态生成和基于动态模型优化的全身控制取得了长足进步,但也遇到了各自的局限性。近来,机器学习、计算机视觉和计算能力的进步使人类运动分析取得了显著进展,尤其是在复杂的技能动作方面。我们认为,从人体工程学和生物力学模型中汲取灵感,将人体运动分析与机器人的全身控制联系起来,是一个前景广阔的研究方向。原创 2024-06-01 00:43:29 · 535 阅读 · 0 评论 -
PyMJCF 使用教程
重要:如果您在使用 PyMJCF 时发现自己卡住了,请查看本页上的各个重要方框和底部的常见问题部分,看看其中是否有相关内容。该库为 MuJoCo 基于 XML 的 MJCF 物理建模语言提供了一个 Python 对象模型。该库的目标是让用户能够在 Python 中轻松地与 MJCF 模型交互并对其进行修改,就像 JavaScript DOM 对 HTML 所做的那样。该库的一个主要特点是能够轻松地将多个独立的 MJCF 模型组成一个更大的模型。不同模型或同一模型的多个实例中的重复名称会自动进行消歧处理。原创 2024-05-01 18:45:39 · 680 阅读 · 0 评论 -
MuJoCo 入门教程(四)建模
在 MJCF 中,一个体可以包含多个关节,因此无需引入虚拟体来创建复合关节。相反,只需在同一主体中定义构成所需复合关节的所有原始关节即可。例如,可以使用两个滑块和一个铰链来模拟在平面内运动的肢体。其他 MJCF 元素可以在嵌套的主体元素所创建的树中定义,特别是关节、几何体、场地、摄像机、灯光。当一个元素被定义在一个肢体内时,它就固定在该肢体的局部坐标系上,并始终随其移动。涉及多个机构或根本不涉及机构的元素,将在运动树之外的单独部分中定义。原创 2024-05-01 18:38:51 · 1353 阅读 · 0 评论 -
Robotics Code Generator 教程
RobCoGen 是一个代码生成器,程序的输出是源代码(目前是 C++ 和 Octave (Matlab) 文件)。RobCoGen 是一个命令行工具,基本上用 Java 编写。生成的源代码可以高效地实现特定关节机器人的常用运动学和动力学算法。只要需要进行运动学/动力学计算,就可以在自定义应用程序中使用这些代码。RobCoGen 的主要输入是描述关节型机器人(如机械手或人形机器人)结构的文本文件。输出是经过优化的机器人专用代码,既适用于仿真,也适用于实时控制。RobCoGen 并非刚体动力学仿真器。原创 2024-05-01 12:16:26 · 1051 阅读 · 0 评论 -
Crocoddyl 使用教程(二)
小车摆杆是另一个经典的控制实例。在这个系统中,一根欠驱动的杆子被固定在一辆一维驱动的小车顶部。游戏的目的是将杆子升到站立位置。模型如下: https://en.wikipedia.org/wiki/Inverted_pendulum我们用表示小车质量、表示摆杆质量 ()、表示摆杆长度、表示摆杆相对于垂直轴的角度、表示小车位置、表示重力。系统加速度可重写为其中,其中,代表输入指令(即),代表总质量。原创 2024-05-01 01:44:21 · 1225 阅读 · 2 评论 -
MoJoCo 入门教程(七)XML 参考
本章是 MuJoCo 中使用的 MJCF 建模语言的参考手册。原创 2024-04-18 20:14:04 · 1642 阅读 · 0 评论 -
MuJoCo 入门教程(二)
本章介绍 MuJoCo 的数学和算法基础。对于熟悉广义或关节坐标建模和仿真的读者来说,整体框架是相当标准的。因此,我们将对这些材料进行简要总结。本章的大部分篇幅用于介绍我们如何处理接触和其他约束条件。这种方法是基于我们最近的研究,也是 MuJoCo 所独有的,因此我们花时间对其进行了详细的激励和解释。更多信息可参见下面的论文,尽管本章中的一些技术思想是新的,在其他地方还没有描述过。原创 2024-04-18 15:04:41 · 1280 阅读 · 0 评论 -
Python QP 求解器
该 Python 库提供一站式 solve_qp 函数,用于求解凸二次规划:向量不等式逐个坐标应用。函数返回后端 QP 求解器找到的初等解,如果求解失败/问题不可行,则返回 None。所有求解器都要求问题是凸的,这意味着矩阵应该是半正定的。有些求解器还要求问题是严格凸的,这意味着应该是正定的。:还有一个 solve_problem 函数,它不仅能返回初等解,还能返回其对偶乘法器和后端求解器计算的所有其他相关量。原创 2024-04-17 14:33:04 · 1033 阅读 · 0 评论 -
IEEE 机器人最优控制开源库 Model-based Optimization for Robotics
机器人,尤其是仿人机器人,是一个极其复杂的动态系统,其行为的生成(generation of behaviors)并非易事,因为一个行为需要调整的参数数量非常多。但是,当今机器人面临的挑战要求它们自动生成和控制各种行为,以便更加灵活地适应不断变化的环境。优化(Optimization)或最优控制(optimal control)为基于基本原理(成本函数(cost functions)、约束条件(constraints))自动生成行为提供了一种有趣的方法。原创 2023-11-30 16:37:17 · 1633 阅读 · 0 评论 -
MuJoCo 入门教程(八)Model仓库
一个物理仿真器的好坏取决于它所仿真的模型,而在像 MuJoCo 这样功能强大、建模选项众多的仿真器中,很容易创建出行为与预期不符的 "坏 "模型。MuJoCo Menagerie 的目标是为社区提供一个设计精良、开箱即用的模型集。更多信息,请访问 Menagerie 资源库。原创 2024-04-11 22:17:42 · 611 阅读 · 1 评论 -
TinyMPC 使用教程(二)
TinyMPC 的基础算法是交替方向乘法。TinyMPC 将基元更新步骤 —— 通常耗时最长的部分- —— 重新表述为一个 LQR 问题。这些问题已经研究了几十年,我们知道如何以封闭形式写出 LQR 问题:具体来说,就是使用里卡提递归法。我们重组了部分递归函数,以提取只需计算一次的大矩阵。在原型实现中,这限制了 TinyMPC 只能求解线性轨迹跟踪问题(只要能在线快速重线性化,各种约束条件均可求解)。不过,正如我们在演示视频中看到的那样,一次线性化就能解决很多问题。原创 2024-04-09 08:17:35 · 924 阅读 · 0 评论 -
TinyMPC 使用教程(一)
欢迎访问 TinyMPC 文档!TinyMPC 是为凸模型预测控制量身定制的开源求解器,能以较小的内存占用进行高速计算。TinyMPC 使用 C++ 实现,依赖性极小,特别适合资源受限平台上的嵌入式控制和机器人应用。TinyMPC 可以处理状态和输入边界以及二阶锥约束。提供 Python、Julia 和 MATLAB 接口,帮助生成嵌入式系统的代码。🏆 TinyMPC 已入围 IEEE ICRA 2024 最佳会议论文奖、最佳学生论文奖和自动化最佳论文奖!原创 2024-04-09 08:16:01 · 1221 阅读 · 0 评论 -
MuJoCo 入门教程(五)Python 绑定
本笔记本提供了使用本地 Python 绑定的 MuJoCo 物理入门教程。版权声明DeepMind Technologies Limited 2022 年版权所有。根据 Apache License 2.0 版(以下简称 "许可协议")授权;除非遵守许可协议,否则不得使用本文件。您可从 http://www.apache.org/licenses/LICENSE-2.0 获取许可证副本。除非适用法律要求或书面同意,否则根据许可协议分发的软件均按 "原样 "分发,不附带任何明示或暗示的保证或条件。原创 2024-04-08 12:32:17 · 1145 阅读 · 0 评论 -
MoJoCo 入门教程(六)Python LQR 教程
本笔记本提供了一个使用 MuJoCo 物理原理的 LQR 控制器示例。版权声明根据 Apache License 2.0 版("许可协议")授权;除非遵守许可协议,否则不得使用本文件。您可以从 http://www.apache.org/licenses/LICENSE-2.0 获取许可证副本。除非适用法律要求或书面同意,否则根据许可协议分发的软件均按 "原样 "分发,不附带任何明示或暗示的保证或条件。请参阅许可协议,了解有关许可协议下的权限和限制的具体语言。原创 2024-04-08 12:13:32 · 940 阅读 · 0 评论 -
MuJoCo 入门教程(三)Python 绑定
从 2.1.2 版开始,MuJoCo 附带使用 pybind11 以 C++ 开发的本地 Python 绑定。Python API 与底层的 C API 保持一致。这导致了一些非 Python 代码结构(如函数参数的顺序),但其好处是 API 文档适用于两种语言。Python 绑定作为 mujoco 包发布在 PyPI 上。这些都是底层绑定,旨在尽可能直接访问 MuJoCo 库。原创 2024-04-04 20:56:23 · 1557 阅读 · 1 评论 -
MuJoCo 入门教程(一)
在 MuJoCo 仿真中输入自定义数字有三种方法。首先,可在 XML 中定义全局数字字段。它们有一个名称和一个实数值数组。其次,可以通过特定元素的自定义数组来扩展某些模型元素的定义。具体方法是在 XML 元素大小中设置 nuser_XXX 属性。第三,数组 mjData.userdata 不用于任何 MuJoCo 计算。用户可以在这里存储自定义计算的结果;请记住,所有随时间变化的内容都应存储在 mjData 中,而不是 mjModel 中。自定义文本字段可以保存在模型中。原创 2024-04-02 22:48:54 · 2354 阅读 · 0 评论 -
NVIDIA 发布 Project GR00T 人形机器人基础模型和 Isaac 机器人平台重大更新
我们开发了 NVIDIA Isaac Lab 来大规模训练 GR00T,并构建了 NVIDIA OSMO,这是一种计算协调服务,可在用于训练的 NVIDIA DGX 系统、用于仿真的 NVIDIA OVX 系统以及用于硬件在环验证的 NVIDIA IGX 和 NVIDIA AGX 系统之间协调训练和推理工作流。这些挑战包括特定任务的复杂性,如装载和卸载。Jetson Thor 是一个全新的计算平台,能够执行复杂的任务并安全、自然地与人和机器交互,具有针对性能、功耗和尺寸优化的模块化架构。原创 2024-03-27 13:03:52 · 1583 阅读 · 0 评论 -
Humanoid-Gym 开源人形机器人端到端强化学习训练框架!星动纪元联合清华大学、上海期智研究院发布!
Humanoid-Gym是一个基于Nvidia Isaac Gym的易于使用的强化学习(RL)框架,旨在训练仿人机器人的运动技能,强调从仿真到真实世界环境的零误差转移。Humanoid-Gym 还集成了一个从 Isaac Gym 到 Mujoco 的仿真到仿真框架,允许用户在不同的物理仿真中验证训练好的策略,以确保策略的鲁棒性和通用性。原创 2024-03-08 20:43:29 · 3119 阅读 · 1 评论 -
MATLAB - MPC - 优化问题(Optimization Problem)
模型预测控制可在每个控制间隔内解决一个优化问题,具体来说就是二次规划(QP)。求解结果决定了被控对象在下一个控制间隔之前使用的操纵变量(MV)。下文将详细介绍这些功能。原创 2024-01-05 13:40:01 · 1853 阅读 · 0 评论 -
OCS2 入门教程(二)
我们在此简要说明您为解决具体问题而应用 OCS2 所需的步骤。根据安装页面的描述,我们已经假定您已经成功安装了程序库。原创 2024-01-04 14:57:04 · 1505 阅读 · 0 评论 -
MATLAB - 最优控制(Optimal Control)
最优控制是动态系统满足设计目标的条件。最优控制是通过执行以下定义的最优性标准的控制律来实现的。一些广泛使用的最优控制方法有:线性二次调节器 (LQR)/线性二次高斯 (LQG) 控制模型预测控制强化学习极值搜索控制H 无穷综合。原创 2023-12-20 21:09:52 · 2539 阅读 · 0 评论 -
MPC - Python、MATLAB、CVXPY、YALMIP、Julia 示例
我们考虑的问题是控制一个线性时变动态系统达到某个参考状态。为此,我们使用受限线性二次 MPC,在每个时间步求解以下有限视距最优控制问题状态和输入受限于某个下限和上限之间。该问题在不同的初始状态。原创 2023-12-19 10:10:34 · 718 阅读 · 0 评论 -
IEEE CSS 系统辨识与自适应控制工具及资料 - system identification andadaptative control
系统辨识与自适应控制软件工具与学习资料原创 2023-12-12 21:30:27 · 966 阅读 · 0 评论 -
MATLAB - 凸优化(Convex Optimization)
凸优化(Convex optimization)是在凸约束(convex constraints)条件下使凸目标函数(convex objective function)最小化的过程,或者等同于在凸约束条件下使凹目标函数最大化的过程。对于许多凸优化问题,满足局部最优(local optimality)条件的点都能被有效地找到。由于局部最优点也是全局最优(global optimum)点,因此只需找到局部最优点即可解决问题。原创 2023-12-09 06:30:00 · 2490 阅读 · 0 评论 -
CasADi - 最优控制开源 Python/MATLAB 库
CasADi 是一款开源软件工具,用于数值优化,特别是最优控制(即涉及微分方程的优化)。该项目由 Joel Andersson 和 Joris Gillis 在鲁汶工程大学工程优化中心 (OPTEC) 在读博士生在 Moritz Diehl 的指导下发起。本文档旨在简要介绍 CasADi。原创 2023-12-04 08:01:07 · 3451 阅读 · 0 评论 -
MATLAB - 自抗扰控制(Active Disturbance Rejection Control)
自抗扰控制 (ADRC) 是一种无模型控制方法,适用于为具有未知动态特性以及内部和外部扰动的被控对象设计控制器。此算法只需要对被控对象动态特性进行逼近,即可设计具有稳健抗扰功能的无超调的控制器。您可以使用 Active Disturbance Rejection Control 模块来实现 ADRC。该模块使用已知系统动态特性的一阶或二阶模型逼近以及建模为被控对象的扩张状态的未知动态特性和扰动。通常,您可以根据工作范围内被控对象的开环阶跃响应来确定此阶数。一阶逼近 -y˙tb0utft。原创 2023-12-03 09:00:27 · 1675 阅读 · 0 评论 -
MATLAB - 模型参考自适应控制(Model Reference Adaptive Control)
模型参考自适应控制模块计算控制动作,使不确定的受控系统跟踪给定参考被控对象模型的行为。使用该程序块,可以实现以下模型参考自适应控制 (MRAC) 算法。直接 MRAC - 根据被控对象与参考工厂模型状态之间的实时跟踪误差,估算反馈和前馈控制器增益。间接 MRAC - 根据参考设备模型与估计系统状态之间的跟踪误差,估计被控对象系统的参数。然后,根据估计系统和参考模型的参数推导出反馈和前馈控制器增益。直接和间接 MRAC 还能估算被控系统的外部干扰和不确定性模型。原创 2023-12-02 09:10:37 · 3135 阅读 · 5 评论 -
MATLAB 状态空间设计 —— LQG/LQR 和极点配置算法
状态空间控制设计方法,如 LQG/LQR 和极点配置算法,适用于 MIMO 设计。原创 2023-11-16 07:14:33 · 3144 阅读 · 3 评论 -
MATLAB - 模型预测控制入门教程(MPC)
模型预测控制(MPC)是一种最优控制技术,其计算出的控制输入可在有限的、后退的时间跨度内使受限动态系统的成本函数最小化。在每个时间步长内,MPC 控制器接收或估计被控对象的当前状态。然后,它通过求解一个依赖于被控对象模型并取决于当前系统状态的约束优化问题,计算出一系列控制行动,从而使整个时间跨度内的成本最小化。然后,控制器只对被控对象执行第一个计算出的控制操作,而不考虑后面的操作。在接下来的时间步中,该过程将重复进行。原创 2023-10-19 13:57:49 · 2855 阅读 · 0 评论 -
一级倒立摆控制 —— LQR 控制器设计及 MATLAB 实现
最优控制——线性二次型控制(LQR)一级倒立摆控制及MATLAB实现原创 2023-10-03 15:12:27 · 4470 阅读 · 4 评论 -
一级倒立摆控制 —— 动力学系统建模
一级倒立摆系统建模,传递函数及状态方程推导。MATLAB中表示传递函数及状态方程原创 2023-09-24 19:21:27 · 4582 阅读 · 4 评论 -
现代控制理论 - 最优控制介绍
最优控制研究的中心问题为:如何根据受控系统的动态特性,在一切可能的控制方案中寻找最优控制方案或控制规律,使得系统按照一定的技术要求运转,并使得描述系统性能或品质的某个“指标”在一定意义下达到最优值。原创 2023-08-21 15:23:16 · 882 阅读 · 1 评论 -
MATLAB - 线性二次型最优控制(LQR)矢量推力飞机控制
这和我们做小角度近似时用到的论证是差不多的,当θ接近0时,用θ代替sin θ,用1代替cos θ。下图为矢量推力飞机的简化模型图,我们只关注飞机在竖直平面内的运动。在平衡点附近时,这些变量都接近于零,所以这些变量中的非线性项可以被认为是相应向量的泰勒级数展开式中的高阶项。考虑矢量推力飞机模型,飞机可以通过调整向下的推力,使用位于机翼上的机动推进器完成起飞。矢量推力飞机的运动可用上述三个耦合的二阶微分方程来描述。,假定在系统的平衡点附近输入和状态的变化量很小,即。观察不同的输出权重的影响,即。原创 2023-08-17 15:57:47 · 1216 阅读 · 2 评论 -
现代控制理论(线性代数基础)MATLAB 矩阵与方程组
线性代数基础知识回顾原创 2023-08-09 22:41:53 · 179 阅读 · 1 评论