
机器人最优控制工具
文章平均质量分 92
支持一下平台
优惠券已抵扣
余额抵扣
还需支付
¥29.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
kuan_li_lyg
有问题请在评论区讲,关注左下角公众号。
展开
-
NVIDIA Isaac Sim 入门教程(三)ROS2 联合仿真
导入URDF调整机器人参数该属性用于传感器标签,为传感器提供Isaacsim配置。有两种可能的用途--随Isaacsim提供的预配置激光雷达或用户自定义配置。与用户自定义配置一起使用时,必须提供配置json的位置,否则就必须提供预配置激光雷达的配置名称。URDFImporter的测试中提供了一个示例配置文件,位于data/lidar_sensor_template中。注意事项。原创 2025-01-20 01:23:54 · 1635 阅读 · 0 评论 -
线性倒摆模型(Linear inverted pendulum model)
线性倒立摆是一种点质量模型,主要针对足式机器人运动的平移动力学。原创 2024-11-29 18:57:58 · 781 阅读 · 0 评论 -
人形机器人 —— 运动学方程
物理系统的运动方程描述了其运动与时间和可选控制输入的函数关系。其一般形式如下其中,是时间变量、是广义坐标矢量,例如机械手的关节角矢量、是的一阶时间导数(速度)、是的二阶时间导数(加速度)、是控制输入矢量。这些方程提供了控制空间、我们发送给执行器的指令和机器人运动状态空间之间的映射。想象一个刚体块在桌面上滑动,我们可以将其视为坐标为 𝑥 的 1-DOF(一自由度)系统。操作员施加水平力 𝑢 将木块向前推。原创 2024-11-29 18:57:04 · 1113 阅读 · 0 评论 -
DRAKE - 基于模型的机器人设计与验证 由丰田研究所支持的 C++ / Python 工具箱。
Drake(中古英语中的 "龙")是一个 C++ 工具箱,由麻省理工学院计算机科学与人工智能实验室(CSAIL)的机器人运动小组开发。目前,开发团队已大幅壮大,核心开发工作由丰田研究所领导。这是一套用于分析机器人动力学和构建机器人控制系统的工具集合,重点强调基于优化的设计/分析。虽然机器人仿真工具的数量越来越多,但它们大多像黑盒子一样:指令输入,传感器输出。原创 2023-12-17 16:30:16 · 2125 阅读 · 0 评论 -
SAPIEN ManiSkill3 入门教程
请注意,table.set_pose(pose) 设置的是演员在世界帧中的坐标系姿势。移除的实体可以再次添加到场景中,但已在场景中的实体则不能再次添加。显示器可以是物理的(如显示器),也可以是虚拟的(如 VNC)。我们可以通过 get_pose()、get_linear_velocity() 和 get_angular_velocity()获取演员的运动量(姿势、线速度、角速度)。现在,让我们创建一个斜坡。例如,您可能需要一个简单的碰撞形状来进行快速模拟,但却需要一个复杂的视觉形状来进行逼真的渲染。原创 2024-11-09 08:54:30 · 1441 阅读 · 0 评论 -
零倾覆力矩点(ZMP)
从形式上讲,ZMP 指的是空间中相对于一个平面(通常是地平面)抵消接触力矩的点的集合。这个集合实际上是一个轴,而不是一个点,但为了方便起见,让我们按照传统的推导方法来计算地面平面上的 ZMP。这一推导从任何多刚体系统的牛顿-欧拉运动方程开始:其中,为机器人的总质量,为重力矢量,为系统的重心,为加速度,为固定点的角动量变化率。在右侧,表示净接触扭矩,即施加到机器人上的所有接触扭矩之和,坐标取自质心 (COM)。原创 2024-09-15 09:43:38 · 1361 阅读 · 0 评论 -
Underactuated Robotics - 欠驱动机器人学(三)- 体操机器人、小车摆杆和四旋翼飞行器
在低维模型系统的背景下,已经开展了大量有关欠驱动系统控制的工作。这些模型系统捕捉到了问题的本质,却没有引入更真实世界的例子中经常涉及的所有复杂性。在本章中,我们将重点讨论两个最著名、研究最深入的模型系统--Acrobot 和 Cart-Pole。在我们开发了一些工具后,我们将看到这些工具可以直接应用于其他模型系统;我们将使用四旋翼机器人举出一些例子。所有这些系统都是微不足道的欠驱动系统,执行器数量少于自由度。原创 2024-08-30 01:18:03 · 1108 阅读 · 0 评论 -
人形机器人创新发展顶层设计与关键技术布局
通过以上四个层面的战略布局与实施举措,我国正全力推动人形机器人产业迈向高质量发展的新阶段,力求在全球竞争中占据领先地位,为经济社会各领域的发展注入新动能。原创 2024-01-23 22:23:59 · 752 阅读 · 0 评论 -
ethz(苏黎世联邦理工学院)机器人系统实验室开源库
RSL 机器人系统实验室提供大量开源软件包,为机器人社区提供支持。请查看github。原创 2023-12-02 08:56:31 · 2049 阅读 · 0 评论 -
利用线性化 ZMP 约束条件优化轮式四足机器人的轨迹
摘要 -- 我们提出了一种带驱动轮的四足机器人轨迹优化器。通过级联方式求解底座和脚部轨迹的角度、垂直和平面分量,并引入零点平衡准则的新型线性公式,我们只需进行二次规划,从而无需非线性最优规划。然而,即使是包含完整飞行阶段的步态,我们也能生成执行复杂运动的轨迹,其中包括同时驾驶、行走和转弯。我们在对装有轮子的四足机器人 ANYmal 的模拟中验证了我们的方法,我们能够以 50 Hz 的频率运行所提出的轨迹优化器。据我们所知,这是首次使用在线运动规划器为有轮足式四足机器人演示这种动态运动。原创 2024-10-02 15:11:15 · 1112 阅读 · 0 评论 -
OSQP 求解器教程
OSQP 求解器文档[请访问我们的 GitHub 讨论页面 (https://github.com/orgs/osqp/discussions),了解与求解器相关的任何问题!OSQP(运算符分割二次方程式程序)求解器是一个数值优化软件包,用于求解形式如下的凸二次规划其中 x 为优化变量,x 为半正定矩阵。半正定矩阵,是正定矩阵的推广。实对称矩阵A称为半正定的,如果二次型X'AX半正定,即对于任意不为0的实列向量X,都有X'AX≥0.代码可在 GitHub 上获取。原创 2024-09-28 21:43:39 · 1316 阅读 · 0 评论 -
OCS2 入门教程(七)- CartPole
这段代码定义了一系列参数和配置,用于控制一个名为CartPole的系统的动态行为。其中包括CartPole系统的参数(如质量、长度等),SQP优化算法的配置, rollout(系统动态模拟)的配置,MPC(模型预测控制)的配置,初始状态和状态、控制、目标权重矩阵,以及最终目标状态。这些参数和配置将用于控制CartPole系统的运动。这段代码描述了一个模型预测控制(MPC)问题的详细配置,应用在经典的 CartPole 平衡任务上。原创 2024-08-30 00:58:33 · 356 阅读 · 0 评论 -
Whole Body Control(WBC)全身控制
谷歌的几种解释在这里,全身控制指的是 Oussama Khatib 教授提出的一种控制框架。该框架也被称为任务空间控制、操作空间控制或操作空间制定。当你控制一个有很多关节的机器人时,很难计算出所需的关节角度/力矩集。传统的方法是逆运动学(IK),这是一种几何解决方案。ahl_wbc 可以根据机器人指尖的期望位置/方位计算所需的角度/力矩集。因此,如果使用这个框架,就可以在不使用 IK 的情况下轻松控制复杂的机器人。原创 2023-11-18 08:56:43 · 4152 阅读 · 0 评论 -
TinyMPC - CMU (卡耐基梅隆大学)开源的机器人 MPC 控制器
TinyMPC: 资源受限微控制器上的模型预测控制作者:Anoushka Alavilli*, Khai Nguyen*, Sam Schoedel*, Brian Plancher, Zachary Manchester模型预测控制(Model-predictive control,MPC)是控制受复杂约束条件(complex constraints)影响的高动态机器人系统(highly dynamic robotic systems)的有力工具。原创 2023-12-06 07:09:21 · 3261 阅读 · 3 评论 -
NVIDIA Isaac Sim 入门教程(一)
文档分为以下几个部分: 简介、安装指南、API 文档、教程、手册和参考资料。简介部分是对 Omniverse Isaac Sim 的基本概述,以及它如何融入 NVIDIA Omniverse™ 生态系统。它还概述了 Omniverse Isaac Sim 的架构、工作流程和文档布局。原创 2024-01-15 06:24:54 · 13353 阅读 · 4 评论 -
NVIDIA Isaac Sim 入门教程(二)
Omniverse Isaac Sim 的工作空间非常容易自定义。调整用户界面的大小、停靠、取消停靠、添加和移除面板都非常容易。进入顶部菜单栏,单击下拉菜单最下方的窗口 > 视口 > 视口 2(现在工作区中应该会出现一个名为 "视口 2 "的新视口。如果您想创建更多的视口,请按照相机检查器扩展进行操作。单击并拖动视口 2 的顶部标题以激活停靠部件。拖放到原始视口的右侧,将两个视口并排放置。单击并向左拖动视口 2 的左侧,使视口大小相等。原创 2024-01-30 14:14:37 · 4248 阅读 · 3 评论 -
NVIDIA Isaac Lab 入门教程(一)
Isaac Lab 是一个用于机器人学习的统一模块化框架,旨在简化机器人研究中的常见工作流程(如 RL、从演示中学习和运动规划)。它建立在英伟达 Isaac Sim 的基础上,利用最新的仿真功能实现逼真的场景和快速高效的仿真。该框架的核心目标是Isaac Lab 的主要功能包括:由 PhysX 提供的快速准确的物理模拟、用于矢量化渲染的平铺渲染 API、用于提高鲁棒性和适应性的域随机化,以及对在云中运行的支持。有关该框架的更多信息,请参阅论文[MYY+23]。原创 2024-08-16 15:08:15 · 3953 阅读 · 0 评论 -
NVIDIA Isaac ROS - 入门教程(一)
欢迎访问 Isaac ROS,这是一套硬件加速、高性能、低延迟的 ROS 2 软件包,用于制造自主机器人,充分利用 Jetson 和其他英伟达平台的强大功能。英伟达 Jetson 平台运行在基于 Ubuntu Linux 的 JetPack 操作系统上。JetPack 5.x 是在 Ubuntu 20.04 Focal 的基础上构建的,这意味着由 ROS 2 Buildfarm 为 Ubuntu 22.04 Jammy 构建的 ROS 2 Humble 的 Debian 包不受支持。由于官方 ROS 2 B原创 2024-01-27 00:58:26 · 4122 阅读 · 0 评论 -
Underactuated Robotics - 欠驱动机器人学(三)- 体操机器人、小车摆杆和四旋翼飞行器
在低维模型系统的背景下,已经开展了大量有关欠驱动系统控制的工作。这些模型系统捕捉到了问题的本质,却没有引入更真实世界的例子中经常涉及的所有复杂性。在本章中,我们将重点讨论两个最著名、研究最深入的模型系统--Acrobot 和 Cart-Pole。在我们开发了一些工具后,我们将看到这些工具可以直接应用于其他模型系统;我们将使用四旋翼机器人举出一些例子。所有这些系统都是微不足道的欠驱动系统,执行器数量少于自由度。原创 2024-08-28 14:18:59 · 286 阅读 · 0 评论 -
IEEE RAS 机器人最优控制(Model-based Optimization for Robotics)学习资料
作者深入浅出地介绍了 NLP 的基本特性和算法,并将其与过程优化中的实际问题类相联系,从而使化学工程师和数学优化专家都能理解和使用这些材料。该书清晰、出色地介绍了优化的理论和概念,以及一些重要的算法类别,并附有大量来自不同领域的实际示例。这是一本更先进、涉及更多数学知识的书籍,探讨了非欧几里得流形上的优化问题,该问题在机器人学中受到了一定的关注。该书出色地介绍了优化的理论和概念,以及一些重要的算法类别,并附有大量来自不同领域的实际示例。对基于模型的机器人学的许多概念进行了很好的介绍。原创 2023-12-09 00:37:22 · 1145 阅读 · 0 评论 -
Crocoddyl - 多接触最优控制的高效多功能框架
我们介绍了 Crocoddyl(Contact RObot COntrol by Differential DYnamic Library),这是一个专为高效多触点优化控制(multi-contact optimal control)而定制的开源框架。Crocoddyl 可高效计算给定预定义接触序列(predefined sequence of contacts)的状态轨迹(state trajectory)和控制策略(control policy)。原创 2023-12-17 16:00:12 · 2853 阅读 · 0 评论 -
MATLAB - 使用 TOPP-RA 求解器生成带约束条件的时间最优轨迹
两条轨迹连接同一组航点,并受到一组速度和加速度限制。指定航点。不同的轨迹具有不同的几何和运动属性,这会影响它们在空间中的导航路径。为机械手路径选择轨迹示例说明了机器人系统工具箱™中提供的各种轨迹函数之间的一些差异。在本示例中,使用五次多项式轨迹连接航点。五次多项式通过使用平滑的速度和加速度曲线来连接线段。原创 2024-01-16 06:00:00 · 1575 阅读 · 0 评论 -
实时最优控制(Real-Time Optimal Control)工具
许多现代控制方法,如模型预测控制(model-predictive control),在很大程度上依赖于实时解决优化问题。特别是,高效解决优化控制问题的能力使复杂机器人系统在实现高动态行为(highly dynamic behaviors)方面取得了许多最新突破。原创 2023-12-10 06:30:00 · 1562 阅读 · 0 评论 -
Underactuated Robotics - 欠驱动机器人学(二)- 简单摆杆
本章的目标并不高,我们只想了解钟摆的动力学原理。为什么是摆呢?部分原因是,我们大多数多连杆机器人操纵器的动力学都是大量耦合摆的动力学。此外,单摆的动力学原理非常丰富,足以引入我们在本文中将会用到的大部分非线性动力学概念,同时又非常易懂,我们在接下来的几页中就可以(基本)理解。简摆运动方程的拉格朗日推导(如附录所述)得出我们将考虑广义力模拟阻尼力矩(来自摩擦)加上控制力矩输入。原创 2024-01-10 01:57:52 · 1108 阅读 · 0 评论 -
Underactuated Robotics - 欠驱动机器人学
第 1 章:全驱动与欠驱动系统。原创 2024-01-04 16:40:16 · 1179 阅读 · 0 评论 -
Underactuated Robotics - 欠驱动机器人学(一)- 全驱动与欠驱动系统
根据牛顿的观点,机械系统的动力学是二阶的(其状态由位置向量 q(也称为配置向量)和速度向量以及(可能还有)时间给出。二阶控制动力系统的一般形式是:其中 u 是控制向量。定义 1.1 (欠驱动控制微分方程) 二阶控制微分方程描述如下:在状态和时间 t 中,如果所得到的映射是可射的:对于每一个,都存在一个能产生预期响应的,那么系统就是全驱动的。否则,就是欠驱动(状态在时间 t)。原创 2024-01-06 11:00:10 · 2863 阅读 · 0 评论 -
OCS2 入门教程(一)
OCS2 是专为切换系统优化控制(ptimalontrol forwitchedystems,OCS2)定制的 C++ 工具箱。该工具箱提供以下算法的高效实现:SLQ:连续时间域约束 DDPiLQR:离散时域约束 DDPSQP:基于 HPIPM 的多重打靶算法IPM: 基于非线性内点法的多重搜索算法SLP:基于 PIPG 的顺序线性规划算法OCS2 通过增强拉格朗日法(Augmented Lagrangian)或松弛障碍法(relaxed barrier methods)处理一般路径约束。原创 2023-12-17 15:20:37 · 6470 阅读 · 15 评论 -
OCS2 入门教程(六)- Double Integrator
双积分器示例是我们最简单的问题。它模拟了一个沿 x 方向移动的一维点质量。模型是线性的,成本函数是二次函数。目标点通过参考管理器模块设置为二次成本。原创 2024-01-21 06:00:00 · 2345 阅读 · 4 评论 -
OCS2 入门教程(五)- 从 URDF 到 OCP、配置求解器、MPC - Net
阻碍 MPC 在机器人任务中广泛应用的主要挑战之一是设置最优控制问题的负担。OCS2 提供了多个辅助类,用于定义一些常用模型、成本和约束条件,以减轻这一问题。为此,OCS2 提供了多个第三方软件包接口,如 RobCoGen、CppADCodeGen、Pinocchio 和 HPP-FCL。我们在此重点介绍 Pinocchio 接口。本页讨论的所有软件包都可以在元软件包 ocs2_pinocchio 中找到。原创 2024-01-09 11:10:07 · 2676 阅读 · 1 评论 -
OCS2 入门教程(四)- 机器人示例
OCS2 包含多个机器人示例。我们在此简要讨论每个示例的主要特点。原创 2024-01-06 11:20:15 · 2938 阅读 · 0 评论 -
OCS2 入门教程(三)- 最优控制模块
在本页中,我们将为您提供如何定义 MPC 问题的一些提示。在 OCS2 中,OptimalControlProblem 结构定义了优化问题的主要组成部分,即动力学、成本和约束条件。除此之外,您可能还希望为 MPC 提供一些参考轨迹、预定义模式计划(用于切换系统)和其他外部信息,如模型参数的更新(如在自适应控制设置中)、环境地图(如用于避免碰撞的 SDF 地图)等。所有这些都可以借助参考管理器(ReferenceManager)和求解器同步模块(SolverSynchronizedModule)来实现。原创 2024-01-05 18:50:37 · 2039 阅读 · 0 评论 -
MATLAB - 强化学习(Reinforcement Learning)
控制系统环境是表示动态系统的环境,其中的状态和观测通常属于无限(不可数)的数值向量空间。在这种环境中,状态转换规律是确定性的,通常是通过对所要建模的底层物理系统的动力学进行离散化推导出来的。请注意,在这些环境中,动作仍然可以属于有限集合。强化学习工具箱提供了多个预定义的控制系统环境对象,用于模拟双积分器或小车摆杆系统等动态系统。一般来说,每个预定义环境都有两个版本,一个是离散(有限)动作空间,另一个是连续(无限和不可数)动作空间。原创 2024-08-12 19:56:42 · 2227 阅读 · 0 评论 -
Humanoid Whole-body Control
我们拟举办的研讨会旨在为生物力学和机器人学这两个学科架起一座桥梁,尤其侧重于人体运动分析和仿人机器人的全身控制。将人体运动转化为仿人机器人是一个新兴的跨学科领域。在过去二十年里,传统的双足行走步态生成和基于动态模型优化的全身控制取得了长足进步,但也遇到了各自的局限性。近来,机器学习、计算机视觉和计算能力的进步使人类运动分析取得了显著进展,尤其是在复杂的技能动作方面。我们认为,从人体工程学和生物力学模型中汲取灵感,将人体运动分析与机器人的全身控制联系起来,是一个前景广阔的研究方向。原创 2024-06-01 00:43:29 · 757 阅读 · 0 评论 -
PyMJCF 使用教程
重要:如果您在使用 PyMJCF 时发现自己卡住了,请查看本页上的各个重要方框和底部的常见问题部分,看看其中是否有相关内容。该库为 MuJoCo 基于 XML 的 MJCF 物理建模语言提供了一个 Python 对象模型。该库的目标是让用户能够在 Python 中轻松地与 MJCF 模型交互并对其进行修改,就像 JavaScript DOM 对 HTML 所做的那样。该库的一个主要特点是能够轻松地将多个独立的 MJCF 模型组成一个更大的模型。不同模型或同一模型的多个实例中的重复名称会自动进行消歧处理。原创 2024-05-01 18:45:39 · 834 阅读 · 0 评论 -
MuJoCo 入门教程(四)建模
在 MJCF 中,一个体可以包含多个关节,因此无需引入虚拟体来创建复合关节。相反,只需在同一主体中定义构成所需复合关节的所有原始关节即可。例如,可以使用两个滑块和一个铰链来模拟在平面内运动的肢体。其他 MJCF 元素可以在嵌套的主体元素所创建的树中定义,特别是关节、几何体、场地、摄像机、灯光。当一个元素被定义在一个肢体内时,它就固定在该肢体的局部坐标系上,并始终随其移动。涉及多个机构或根本不涉及机构的元素,将在运动树之外的单独部分中定义。原创 2024-05-01 18:38:51 · 2886 阅读 · 0 评论 -
Robotics Code Generator 教程
RobCoGen 是一个代码生成器,程序的输出是源代码(目前是 C++ 和 Octave (Matlab) 文件)。RobCoGen 是一个命令行工具,基本上用 Java 编写。生成的源代码可以高效地实现特定关节机器人的常用运动学和动力学算法。只要需要进行运动学/动力学计算,就可以在自定义应用程序中使用这些代码。RobCoGen 的主要输入是描述关节型机器人(如机械手或人形机器人)结构的文本文件。输出是经过优化的机器人专用代码,既适用于仿真,也适用于实时控制。RobCoGen 并非刚体动力学仿真器。原创 2024-05-01 12:16:26 · 1234 阅读 · 0 评论 -
Crocoddyl 使用教程(二)
小车摆杆是另一个经典的控制实例。在这个系统中,一根欠驱动的杆子被固定在一辆一维驱动的小车顶部。游戏的目的是将杆子升到站立位置。模型如下: https://en.wikipedia.org/wiki/Inverted_pendulum我们用表示小车质量、表示摆杆质量 ()、表示摆杆长度、表示摆杆相对于垂直轴的角度、表示小车位置、表示重力。系统加速度可重写为其中,其中,代表输入指令(即),代表总质量。原创 2024-05-01 01:44:21 · 1469 阅读 · 2 评论 -
MoJoCo 入门教程(七)XML 参考
本章是 MuJoCo 中使用的 MJCF 建模语言的参考手册。原创 2024-04-18 20:14:04 · 2465 阅读 · 0 评论 -
MuJoCo 入门教程(二)
本章介绍 MuJoCo 的数学和算法基础。对于熟悉广义或关节坐标建模和仿真的读者来说,整体框架是相当标准的。因此,我们将对这些材料进行简要总结。本章的大部分篇幅用于介绍我们如何处理接触和其他约束条件。这种方法是基于我们最近的研究,也是 MuJoCo 所独有的,因此我们花时间对其进行了详细的激励和解释。更多信息可参见下面的论文,尽管本章中的一些技术思想是新的,在其他地方还没有描述过。原创 2024-04-18 15:04:41 · 2541 阅读 · 0 评论 -
Python QP 求解器
该 Python 库提供一站式 solve_qp 函数,用于求解凸二次规划:向量不等式逐个坐标应用。函数返回后端 QP 求解器找到的初等解,如果求解失败/问题不可行,则返回 None。所有求解器都要求问题是凸的,这意味着矩阵应该是半正定的。有些求解器还要求问题是严格凸的,这意味着应该是正定的。:还有一个 solve_problem 函数,它不仅能返回初等解,还能返回其对偶乘法器和后端求解器计算的所有其他相关量。原创 2024-04-17 14:33:04 · 1423 阅读 · 0 评论