MIT四足机器人Cheetah 3控制方案理解笔记(2)——Convex Mpc身体姿态控制

机器人动力学与控制pdf_MIT四足机器人Cheetah 3控制方案理解笔记(2)——Convex Mpc身体姿态控制... 在“MIT四足机器人Cheetah 3控制方案理解笔记(1)”中,主要简单的总结了下一般情况下腿足机器人的摆动腿控制方法以及Cheetah 3的基于集中质量模型的平衡控制器。此外,MIT还在Cheetah 3以及Mini Cheetah上采用了Convex MPC平衡控制器,在其2018年论文《Dynamic Locomotion in the MIT Cheetah 3 Through Conv... 阅读详情
AI摘要

本文深入探讨MIT四足机器人Cheetah3的控制策略,重点讲解基于集中质量模型的平衡控制及ConvexMPC应用。通过分析机器人状态变量、模型简化与方程列写,详细阐述如何将MPC问题转化为QP问题,以实现高速计算并优化机器人性能。

在“MIT四足机器人Cheetah 3控制方案理解笔记(1)”中,主要简单的总结了下一般情况下腿足机器人的摆动腿控制方法以及Cheetah 3的基于集中质量模型的平衡控制器。此外,MIT还在Cheetah 3以及Mini Cheetah上采用了Convex MPC平衡控制器,在其2018年论文《Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control》中,Cheetah 3通过Convex MPC平衡控制器达到了3m/s的奔跑速度:

为了将论文中的方案部署到自己的腿足机器人上,笔者此处依次从问题分析、模型简化、方程列写、QP表达形式组织等谈谈自己对这篇论文的一些理解。

1)首先是描述机器人状态的主要变量的选取。对于机器人自身运动状态的描述,姿态以及位置层面,可以使用姿态角(roll ,pitch,yaw)和质心位置(x,y,z)来描述,同时为了描述其运动层面,可以加入姿态角角速度以及机器人质心的运动速度。因此,在机器人状态描述层面,共有姿态角、质心位置、姿态角角速度、质心速度共12个量描述。在外界输入层面,现今大多腿足机器人的MPC都是规划质心轨迹,而后采用逆动力学跟随质心轨迹。但这种方法在实际工程操作中,首先是逆动力学求解难度大,其次在机器人存在空中相时,也很难保证能够跟随所规划的质心轨迹,出于力控的角度,更理想的应该是直接规划出关节力矩,亦或能够在其基础上较简单的求出各关节力矩。

2)大致确定了我们希望的状态描述量以及需要规划的量,此处之前提过的单刚体模型恰好满足这些条件,单刚体模型的运动方程如下:

其中第三项其实就是旋转矩阵的导与角速度的关系,在一般的机器人学教材中都有。

不清楚的可以看一下ETH的精简版的机器人运动学动力学讲义:

https://ethz.ch/content/dam/ethz/special-interest/mavt/robotics-n-intelligent-systems/rsl-dam/documents/RobotDynamics2017/RD_HS2017script.pdf

通过IMU获得的角速度仅是机器人相对于身体坐标系的角速度。身体坐标系中的运动变换到世界坐标系可通过左乘一个变换矩阵R,论文中是依据ZYX顺序变换,这也是目前很多论文中通用的变换方式:

当R满秩时,求逆即可得到身体坐标系的角速度与世界坐标系的角速度的关系:

且在运动中,pitch,roll角度非常小,则上式可简化为:

而此时的变换矩阵恰好是绕z轴旋转的变换矩阵,即

同时惯量*角加速度项的微分项为此处第二项是因为这个求导操作是在非惯性系下进行的,所以多了个叉乘项。机器人相对于世界坐标系的惯量表达式为:

上文已将R简化为绕z轴的旋转矩阵,此处依旧适用:

 

此时将上文的单刚体运动方程写成状态空间的表达方式(xdot=Ax+Bu)为:

Cheetah 3中是将最后的重力加速度项也整合到了状态矩阵A中,此处笔者为了表述更加易懂就将其先单拎出来。这是连续时间的状态方程,因为最终需要计算机编程实现,需要将其离散化。要将A、B矩阵离散化,可以将他们分别乘以控制周期dt,而后求矩阵指数即可,Eigen中:

matlab中可用expm()函数。离散化结果如下:

通过这个模型,便可以计算出系统对应的输出,可以将其组织为一个MPC问题,

即求得最优的当前输入使得系统下一时刻输出尽可能接近期望值,同时也要保证输入量尽可能小。因为在实际机器人中,机器人的力矩是有限的,我们并不希望计算出一个很大的力矩。当然这算是一个很简单的cost函数,状态变量、输入量变化率等我们都没有加入约束。有了cost函数,实际已经可以开始求解了,但我们的控制对象是对实时性要求较高的腿足机器人,若直接对这种形式求解然后用于机器人控制,是不能将MPC周期控制在几十ms内的,会严重影响控制性能。

为了提高MPC的计算速度,除了减少约束条件,缩短预测/控制时域等外,可以将MPC转为显示预测控制(Explicit Mpc),当今用于汽车ECU等对实时性要求较高的MPC大多也是Explicit Mpc形式,简单来说,Explicit Mpc是求出预测步长内的解的组合域,如下图所示,然后直接根据各个状态量查找对应的解。通过这种方案,MIT Cheetah 3上的MPC的频率大约为30hz。

关于Explicit Mpc的详细介绍,可以参考一下意大利的Bemporad大神的MPC教程,Benporad参与了MPC Toolbox和Hybrid Toolbox的开发,很多source code都是他自己亲自写的。Bemporad也有自己的公司ODSYS提供一些工业界可用的MPC算法。Bemporad教授是有一定的实际工程经验的,所以其教材在实际运用MPC方面也更有心得:http://cse.lab.imtlucca.it/~bemporad/mpc_course.html

Cheetah 3的MPC问题转化为QP的详细推导过程如下:

假设预测步长为n步,将n步内系统的状态以及输入量写成如下形式:

则上述的优化问题形式可转化为:

其中Q、R为半正定或者正定,以便保证该问题有界。同时系统的离散状态方程解为:

x(t)为系统的初始状态,则上面的X还可以写成:

写为X=Aqpx(t)+BqpU,带入上式,优化问题的表达形式变为:

至此该问题已经转化为一个标准的QP问题,每次取MPC更新后取第一步的U作为控制输入来控制机器人的支撑腿,可以通过对Q、R两个权重矩阵进行调参来改善支撑腿的性能。此处输入的R矩阵,笔者在实际调参中发现R的权重值设的越小,所生成的力就越大,通过查阅IIT的一篇MPC文献,此种现象是正常的。

MIT Cheetah3的力权重:4*10^-5,

IIT 的HyQReal :1*10^-9()

直观理解-梯度下降及MIT自适应控制律 具体解释了什么是梯度,以及梯度如何应用于MIT自适应控制律,为后续基于梯度法的模型参考自适应控制做铺垫,如果可以理解的,可以自动跳过。 阅读详情

相关推荐

【伺服电机控制】MIT无刷电机FOC驱动程序设计

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、FOC主程序分析1、主程序步骤2、主程序代码二、中断程序分析1.can接收中断主要的任务(1)驱动特殊指令(优先级最高)【用于非串口设置电机模式】(2)CAN接口指令(优先级最低)(3)把电机收到的信号返回到主设备,说明电机有响应代码2.串口接收中断主要的任务设置电机的模式(1)【27】电机复位状态+接收8位数据清零(2)【REST_MODE】:电机还在菜单栏上,在这里进行电机

qq_35635374的博客 9371

MIT Cheetah(二)

论文阅读:MIT Cheetah 3: Design and Control of a Robust, Dynamic Quadruped Robot 摘要: 结构方面,猎豹3采用一种新的腿部设计,除了扩大臀部和膝盖的运动范围外,还包括外展/内收自由度的本体感觉驱动。 控制器方面,猎豹3采用通用平衡和运动控制器,这些控制器嵌入到一个模块化的控制架构中,允许机器人通过反应性步态修改处理意外的地形干扰,而无需外部传感器或先验环境知识。 成果:高效性,具体体现:在多个步态中Cost of Transpor

aaaaPIKACHU的博客 4137

【四足机器人项目实战】四足机器人支撑相腿反作用力规划之模型预测控制MPC方法

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、【期望输入范畴】设置躯干一系列的期望轨迹状态(包括躯干高度h、位置xy、姿态yaw)1.原理2.代码二、【M模型范畴】单刚体动力学模型表示为连续状态空间方程1、机器人的状态表出(包括躯干惯量、位置、线速度、角速度、旋转角、偏航角、足端位置)2、打印机器人状态(包括躯干惯量、位置、线速度、角速度、旋转角、偏航角、足端位置)3、把机器人状态数组值转换成矩阵,方便计算连续状态空间方程

qq_35635374的博客 5899

MIT Cheetah (三)

论文阅读: Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control 摘要: 提出了一种基于模型预测控制(MPC)的力矩控制四足机器人地面反作用力计算方法。机器人动力学被简化为凸优化问题,同时仍能捕捉系统的完整3D特性。根据简化模型,地面反作用力规划问题的预测范围为0.5秒,并以20-30 Hz的频率在1毫秒内求解到最佳值。尽管使用了简化模型,但该机器人能够以各种速度进行稳健的运动。实验结果展示了对步

aaaaPIKACHU的博客 4589

【论文解读--PD控制】MIT Cheetah 3 Design and Control of a Robust, Dynamic Quadruped Robot

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、简介二、机械平台的设计三、硬件计算平台的设计1.第二代酷睿i7处理器2.Cortex-A8的处理器四、控制软件架构和组件1.2.3.4.五、实验结果总结参考资料 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对一种健壮、动态四足机器人的设计与控制做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文

qq_35635374的博客 4315

【论文解读--MPC控制】Dynamic Locomotion in the MIT Cheetah 3 Through Convex Model-Predictive Control

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、简介二、控制系统框图0.定义body坐标系和world坐标系1.状态机FSM2.摆动腿控制关节器3.支撑腿控制关节器4.躯干参考轨迹生成(系统状态生成)三、四足机器人(简化的)动力学模型1.动力学模型简化--近似角速度动力学--忽略俯仰角和翻滚角(φ、θ)2.简化机器人角动力学与平移动力学可以组合成矩阵形式3.附加重力,将动力学公式表示成状态空间形式4.线性离散时间动力学四、模

qq_35635374的博客 5175

【转载】MIT四足机器人Cheetah 3控制方案笔记

转载:知乎 Wenboxing https://zhuanlan.zhihu.com/p/190028074 这里写自定义目录标题MIT四足机器人Cheetah 3控制方案理解笔记(1)——摆动腿控制、单刚体模型平衡控制器一、摆动腿控制二、平衡控制器MIT四足机器人Cheetah 3控制方案理解笔记(2)——Convex Mpc身体姿态控制MIT四足机器人控制方案理解笔记(3)——Mini Cheetah 19年的MPC+WBC控制方案 MIT四足机器人Cheetah 3控制方案理解笔记(1)——摆动腿控制

aaa376070331的博客 5840

MIT mini cheetah四足机器人Highly Dynamic Quadruped Locomotion

文中提出了一种结合整体的控制器控制(WBC)和模型预测控制(MPC)。在里面的框架中,MPC找到了一个最佳的反作用力剖面在较长的时间范围内,使用简单的模型和WBC根据以下命令计算关节扭矩、位置和速度命令:根据MPC计算的反作用力。不同于现有的WBCs,试图跟踪指令的身体轨迹,我们的控制员更专注于反应部队指挥部,这使得它能够实现高速动态运动空中相位。新设计的WBC是集成的使用MPC,并在小型猎豹四足机器人上进行测试。为了证明鲁棒性和通用性,控制器在六种不同的步态下,以多种不同的方式进行测试环境,包括户外和跑步机上,达到最高速度为3:7 m=s。

matlab 自控控制相关的函数_MIT四足机器人Cheetah 3控制方案理解笔记(2)——Convex Mpc身体姿态控制...

在“MIT四足机器人Cheetah 3控制方案理解笔记(1)”中,主要简单的总结了下一般情况下腿足机器人的摆动腿控制方法以及Cheetah 3的基于集中质量模型的平衡控制器。此外,MIT还在Cheetah 3以及Mini Cheetah上采用了Convex MPC平衡控制器,在其2018年论文《Dynamic Locomotion in the MIT Cheetah 3 Through Conv...

weixin_39723655的博客 549

MIT-Cheetah-Note:MIT Cheetah仿真平台源码笔记以及一部分第三方组件

MIT-Cheetah-Note MIT Cheetah仿真平台源码笔记以及一部分第三方组件 仓库说明 在看MIT Cheetah仿真平台的源码的过程中所做的笔记的整理,为了更好地理解源码,因此对应代码中提到的部分参考论文,手动整理了这份笔记,希望与同好交流,笔记中的错误之处欢迎指正。 文件结构 ref 文件夹中存储相关的论文和电子书的pdf格式文件。 BalanceController 对应源码中BalanceController相关文件的剖析,主要是调用qpOASES求解器完成对四足机器人GRF的优化求解过程。 Quadruped 对应源码中Quadruped相关文件的剖析,主要是构建四足机器人的动力学和运动学模型。 LegController 对应源码中LegController相关文件的剖析,主要是四足机器人腿部运动学的参数处理以及正、逆运动学的计算。 FootSwingTraje

[金仓数据库V8R6]更换授权

上传授权,使用mv license_xxx_0.dat /home/kingbase/KingbaseES/license.dat替换每个授权,并使用ls -l license.dat确保替换前后属主和权限不变。根据步骤1的数据目录位置,执行/home/kingbase/KingbaseES/Server/bin/sys_ctl -D /home/kingbase/KingbaseES/data reload使新的授权文件生效。该参数意义为授权剩余有效天数,查询结果为新授权中有效期间的天数即为替换成功。

l04050924的博客 3706

arXiv | 通过全身冲量控制和模型预测控制实现高度动态的四足运动【文献解读】(已开源)

本文提出了一种结合模型预测控制(MPC)和全身冲量控制(WBIC)的四足机器人动态运动控制框架。针对高速奔跑、跳跃等动态步态中存在的腾空相控制、短支撑相力优化等挑战,该方案采用分层控制结构:上层MPC基于简化质心模型优化足端地面反作用力(30-40Hz),下层WBIC基于完整动力学模型将接触力转化为关节指令(500Hz)。通过凸化处理和线性近似,MPC可实时求解未来时域的力分布优化问题;WBIC则弱化轨迹跟踪,重点执行MPC规划的接触冲量。

Robot-Nav的博客 475

JLink版本不兼容?手把手教你解决APM32F003F6P6在Keil中烧写闪退和报错

本文详细解析了APM32F003F6P6在Keil中烧写闪退和报错的解决方案,重点介绍了JLink版本兼容性问题。通过实测不同版本组合,推荐使用JLink 7.20a或6.86b与Keil 5.25的黄金组合,并提供详细的降级驱动和工程配置步骤,帮助开发者高效解决烧写困境。

weixin_33694620的博客 415

机器人 - 关于MIT电机模式控制

Mixed Integrated Torque为一种混合控制模式,在同一帧CAN数据里包含位置、速度、扭矩三类的闭环指令。驱动器里面把位置环、速度环、前馈扭矩相加,得到一个参考电流,然后再交给电流环完成精准扭矩输出。

qq_39546358的博客 7113

SAP 财务BAPI_ACC_DOCUMENT_POST批导的税务tax

最近遇到了关于SAP财务凭证批导要bapi:BAPI_ACC_DOCUMENT_POST增加税的功能要求,查阅了一众文献发现都不尽如人意,所以想着自己写一个趟过的雷吧。 一般前台sap的凭证是有自动计算税码的勾选框的,但是bapi却并没有这个字段。 实际操作过程中1.可以定义一个税额的结构,参考bapiactx09 2.在会计分录上传如果需要增加税码的时候,譬如总账gl,需要对应tax_code 3.通过CALCULATE_TAX_FROM_GROSSAMOUNT 计算出税额和acct_k...

qq_35640448的博客 3184

西门子S7-200 SMART 实战解析:滑动平均值滤波算法在模拟量信号处理中的应用

本文详细解析了在西门子S7-200 SMART PLC中实现滑动平均值滤波算法的实战应用。通过处理模拟量信号如温度、压力等,该算法有效抑制信号干扰,提升系统稳定性。文章涵盖算法原理、程序框架、信号采集及调试优化,为工业自动化工程师提供实用指南。

gitlab7runner的博客 1151

MIT Mini Cheetah四足机器狗开源代码仿真环境搭建以及问题报错汇总

主要分为四大部分:完成Qt、Lcm与Eigen库的安装及Cheetah代码的编译四部分,以及遇到的问题和解决方法,大部分参考开头两篇引用文章。

BIT_TF的博客 5954

统信UOS/麒麟Kylin OS下利用pyenv实现Python多版本开发环境搭建指南

本文详细介绍了在统信UOS和麒麟Kylin OS国产操作系统下使用pyenv搭建Python多版本开发环境的完整指南。从系统环境准备、pyenv定制安装到Python版本编译实战,提供了针对国产CPU架构的特殊优化方案和常见问题解决方法,帮助开发者高效管理不同Python版本需求。

sea99的博客 1050

如何编写控制四足机器人的MPC算法

MPC (Model Predictive Control) 是一种常用的控制算法,它可以用来控制四足机器人的运动。 编写MPC算法的步骤大致如下: 建立机器人的动力学模型,描述机器人的运动学和动力学特性。 设计控制器,确定控制量(通常是轮子的转速)和控制目标(通常是机器人的位置和速度)。 建立预测模型,用来预测机器人未来的运动状态。 设计损失函数,用来衡量控制器的效果。 使用优化算法(...

weixin_35752122的博客 2232

ROS与Qt5人机交互界面开发:添加rviz显示界面

最后,点击"完成"以创建新的Qt5应用程序项目。通过结合ROS和Qt5,您可以创建强大的人机交互界面,以实现丰富的机器人控制和数据可视化。在本教程中,我们将在主窗口中创建一个简单的按钮,用于启动rviz显示界面。在Qt Creator的槽函数编辑器中,为按钮添加一个槽函数,该函数将在单击按钮时调用。在上面的代码中,我们使用QProcess类启动了一个新的进程,并执行"rviz"命令来启动rviz显示界面。当您单击Qt5应用程序中的按钮时,将会启动一个新的rviz窗口,显示机器人数据的可视化界面。

CodeJolt的博客 2066

利用 Python 构建高效爬虫爬取国家标准文献——从基础到进阶

然而,由于许多标准文献需要从特定网站获取,手动下载既耗时又低效,因此构建自动化爬虫成为一种实用且高效的解决方案。本文从技术选型、网站分析、代码实现到反爬优化,全面讲解了如何爬取国家标准文献。国家标准文献(National Standards Literature)是国家对各领域统一规范的文件,涵盖了技术参数、测试方法、生产工艺等内容。因此,通过自动化爬虫技术进行文献爬取和管理,不仅能解放劳动力,还可以提高数据管理效率。在构建爬虫前,我们需要对目标网站进行分析,包括页面结构、请求方式以及可能的反爬机制。

2201_76125261的博客 2104

MIT四足机器人MIT Cheetah的硬件框架

前几天小米的铁蛋,又让四足机器人火了一把。9999一台,这个价钱还挺香的。众所周知,国内的大部分四足机器狗的涌出,都是因为2019年,MIT的猎豹开源,从硬件到软件。国内四足机器人的研发也就上了一个台阶,也包括小米的铁蛋也是基于mit的Cheetah Mini。 最近看了一下mit的机器狗开源的关节,看了一下12个关节到控制器的是如何通信的。 简单的画了个图: 模块通信 12个关节驱动器,只运行了FOC的算法,对于命令和信息上报使用了CAN通信 一条腿(三个关节)为一路CAN,与SPIne进行通信,一

wei 2万+

目标检测基础

目标检测是计算机视觉的核心任务,需同时对图像中的物体进行定位与识别。传统方法存在速度慢、精度低等问题,而深度学习显著推动了该领域发展,使实时高精度检测成为可能。检测的核心是为每个物体预测边界框坐标和类别标签。为实现高效检测,引入了锚框机制,通过预设多尺度、多宽高比的候选区域,缩小预测偏移量,提升定位精度。训练时,通过计算锚框与真实边界框的交并比 (IoU) 确定正负样本,并基于此生成类别标签和坐标偏移量作为监督信号。该方法提升了检测器对多尺度目标和复杂场景的鲁棒性。

盼小辉丶的博客 2729

Cheetah-Software方案分析

开源的为MIT Cheetah 3和MIT Mini Cheetah的控制系统,两个平台在控制和和通讯上都有一定区别。MIT的Cheetah-Software方案是很经典的四足机器人控制框架,在这之后,有不少更优秀的方案,但不妨碍从Cheetah开始入手学习四足机器人。其他一些方案参考。

偷得浮生半日闲 1万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

matlab测试达妙电机MIT模式曲线追踪能力

测试达妙电机的曲线追踪能力

2301_79345492的博客 2079

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

[机器人-2]:开源MIT Min cheetah机械狗设计(二):机械结构设计

一个机械狗动力强不强劲,电机起到至关重要的作用,机械狗的电机比较特殊,类似于公版电机T-Motor U8的型号,这款电机是广泛应用于四旋翼的,需要很高的能量密度(不然就无法完成后空翻这样的经典动作),因此机械狗的动力选择的是无人机的无刷电机+行星齿轮组的形式,每个执行器都由一个定制的高耦合到单级6:1的行星齿轮减速机(背隙0.005rad/0.28°)。现在机械狗的基本构型就有了,现在我们最关心的还是腿部,希望腿部的惯性尽量的小,这里我们需要对腿部的结构进行拓扑优化,满足性能的同时,质量最小。

文火冰糖(王文兵)的博客 5816

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: MIT四足机器人Cheetah 3控制方案理解笔记(1)——摆动腿控制、单刚体模型平衡控制器
下一篇: MIT四足机器人控制方案理解笔记(3)——Mini Cheetah 19年的MPC+WBC控制方案
Wincoding
博客等级 码龄9年 77粉丝 4原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值