人形机器人建模与控制(六) - 行走控制

第六篇:行走控制

1. 引言

腿式机器人在复杂地形中行走的能力使其成为探索、救援和军事等领域的重要研究对象。在本篇博文中,我们将探讨腿式机器人行走周期、行走运动公式、零力矩点(ZMP)和模型预测控制(MPC)等相关理论与实践方法。

2. 行走周期

腿式机器人的行走周期可以分为支撑相和摆动相两个主要阶段。在支撑相中,机器人的一只或多只脚与地面接触,支撑整个身体的重量。在摆动相中,抬起的脚移动到下一个支撑点。

  • 支撑相:支撑相的主要任务是保持平衡和支持身体重量。该阶段要求机器人能稳定地控制重心,使得零力矩点(ZMP)始终保持在支撑多边形内。

  • 摆动相:摆动相的主要任务是将抬起的脚移动到下一个预定的支撑点。这个过程需要考虑行走速度、步幅和避障等因素。

3. 行走运动公式

行走运动可以通过线性倒立摆模型(LIPM)来描述。LIPM 是一个简化模型,它假设机器人身体的质量集中在一个质心上,质心通过一个不可伸缩的杆连接到地面。

x ¨ = g z x x ( t ) = x ( 0 ) cosh ⁡ ( t T c ) + T c x ˙ ( 0 ) sinh ⁡ ( t T c ) x ˙ ( t ) = x ( 0 ) T c sinh ⁡ ( t T c ) + x ˙ ( 0 ) cosh ⁡ ( t T c ) T c = z g ω c = g z Pendulum Natural Frequency  f c = 1 π g z \begin{array}{l} \ddot{\boldsymbol{x}}=\frac{g}{z} \boldsymbol{x} \\ \boldsymbol{x}(t)=\boldsymbol{x}(0) \cosh \left(\frac{t}{T_{c}}\right)+T_{c} \dot{\boldsymbol{x}}(0) \sinh \left(\frac{t}{T_{c}}\right) \\ \dot{\boldsymbol{x}}(t)=\frac{\boldsymbol{x}(0)}{T_{c}} \sinh \left(\frac{t}{T_{c}}\right)+\dot{\boldsymbol{x}}(0) \cosh \left(\frac{t}{T_{c}}\right) \\ T_{c}=\sqrt{\frac{z}{g}} \quad \omega_{c}=\sqrt{\frac{g}{z}} \quad \text { Pendulum Natural Frequency } \\ f_{c}=\frac{1}{\pi} \sqrt{\frac{g}{z}} \end{array} x¨=zgxx(t)=x(0)cosh(Tct)+Tcx˙(0)sinh(Tct)x˙(t)=Tcx(0)sinh(Tct)+x˙(0)cosh(Tct)Tc=gz ωc=zg  Pendulum Natural Frequency fc=π1zg

在这些公式中:

  • x \boldsymbol{x} x 表示质心的位置;
  • x ¨ \ddot{\boldsymbol{x}} x¨ 表示质心的加速度;
  • g g g 表示重力加速度;
  • z z z 表示质心的高度;
  • T c T_{c} Tc 表示临界阻尼时间常数;
  • ω c \omega_{c} ωc 表示振子的临界角频率;
  • f c f_{c} fc 表示振子的临界频率。

这些公式用于描述振子在重力和阻尼作用下的运动轨迹和速度变化。

4. LIPM 行走运动

在LIPM模型中,质心的位置和速度可以通过以下公式计算:

x 1 = x 0 + T c x ˙ 0 2 e Δ t T c + x 0 − T c x ˙ 0 2 e − Δ t T c x ˙ 1 = x 0 + T c x ˙ 0 2 T c e Δ t T c − x 0 − T c x ˙ 0 2 T c e − Δ t T c \begin{array}{l} \boldsymbol{x}_1 = \frac{\boldsymbol{x}_0 + T_{c} \dot{\boldsymbol{x}}_0}{2} e^{\frac{\Delta t}{T_{c}}} + \frac{\boldsymbol{x}_0 - T_{c} \dot{\boldsymbol{x}}_0}{2} e^{-\frac{\Delta t}{T_{c}}} \\ \dot{\boldsymbol{x}}_1 = \frac{\boldsymbol{x}_0 + T_{c} \dot{\boldsymbol{x}}_0}{2 T_{c}} e^{\frac{\Delta t}{T_{c}}} - \frac{\boldsymbol{x}_0 - T_{c} \dot{\boldsymbol{x}}_0}{2 T_{c}} e^{-\frac{\Delta t}{T_{c}}} \end{array} x1=2x0+Tcx˙0eTcΔt+2x0Tcx˙0eTcΔtx˙1=2Tcx0+Tcx˙0eTcΔt2Tcx0Tcx˙0eTcΔt

这些公式可以用于预测质心在时间间隔 Δ t \Delta t Δt 内的位置和速度变化。

5. 基于ZMP的行走运动

零力矩点(ZMP)是保持机器人稳定的重要参数。ZMP 是地面反作用力矩为零的点。在行走过程中,控制ZMP 使其保持在支撑多边形内,可以确保机器人的平衡。

p x = − τ y − f x d f z p y = τ x − f y d f z p = [ p x p y 0 ] \begin{aligned} \boldsymbol{p}_{x} & =\frac{-\boldsymbol{\tau}_{y}-\boldsymbol{f}_{x} d}{\boldsymbol{f}_{z}} \\ \boldsymbol{p}_{y} & =\frac{\boldsymbol{\tau}_{x}-\boldsymbol{f}_{y} d}{\boldsymbol{f}_{z}} \\ \boldsymbol{p} & =\left[\begin{array}{c} \boldsymbol{p}_{x} \\ \boldsymbol{p}_{y} \\ 0 \end{array}\right] \end{aligned} pxpyp=fzτyfxd=fzτxfyd= pxpy0

通过测量踝关节的力矩和力,可以计算出ZMP 的位置。这些公式用于评估脚底位置和平衡状态。

6. 基于模型预测控制的行走

模型预测控制(MPC)是一种基于优化的控制方法,通过预测未来的系统行为来生成控制输入。

u k = − K x k + [ f 1 , f 2 , ⋯ f N ] [ p k + 1 r e f ⋮ p k + N r e f ] K = ( R + b T P b ) − 1 b T P A f i = ( R + b T P b ) − 1 b T ( A − b K ) T ∗ ( i − 1 ) c T Q P = A T P A + c T Q c − A T P b ( R + b T P b ) − 1 b T P A \begin{aligned} u_{k} & =-\boldsymbol{K} x_{k}+\left[f_{1}, f_{2}, \cdots f_{N}\right]\left[\begin{array}{c} p_{k+1}^{r e f} \\ \vdots \\ p_{k+N}^{r e f} \end{array}\right] \\ \boldsymbol{K} & =\left(R+\boldsymbol{b}^{T} \boldsymbol{P} \boldsymbol{b}\right)^{-1} \boldsymbol{b}^{T} \boldsymbol{P} \boldsymbol{A} \\ f_{i} & =\left(R+\boldsymbol{b}^{T} \boldsymbol{P} \boldsymbol{b}\right)^{-1} \boldsymbol{b}^{T}(\boldsymbol{A}-\boldsymbol{b} \boldsymbol{K})^{T *(i-1)} \boldsymbol{c}^{T} Q \\ \boldsymbol{P} & =\boldsymbol{A}^{T} \boldsymbol{P} \boldsymbol{A}+\boldsymbol{c}^{T} Q \boldsymbol{c}-\boldsymbol{A}^{T} \boldsymbol{P} \boldsymbol{b}\left(R+\boldsymbol{b}^{T} \boldsymbol{P} \boldsymbol{b}\right)^{-1} \boldsymbol{b}^{T} \boldsymbol{P} \boldsymbol{A} \end{aligned} ukKfiP=Kxk+[f1,f2,fN] pk+1refpk+Nref =(R+bTPb)1bTPA=(R+bTPb)1bT(AbK)T(i1)cTQ=ATPA+cTQcATPb(R+bTPb)1bTPA

这些公式用于计算控制器的控制输入 u k u_{k} uk,使得系统在最小化性能指标的同时实现对参考输出的跟踪和控制要求的满足。

7. 基于DCM的行走

捕获点(Capture Point, CP)和发散运动分量(Divergent Component of Motion, DCM)是行走模式生成中的关键概念。捕获点是机器人可以迈步到达以实现停止的位置。

ξ = x + x ˙ ω ξ ˙ = x ˙ + x ¨ ω ξ ˙ = ω ( ξ − p ) x ˙ = − ω ( x − ξ ) \begin{aligned} \boldsymbol{\xi} & = \boldsymbol{x} + \frac{\dot{\boldsymbol{x}}}{\omega} \\ \dot{\boldsymbol{\xi}} & = \dot{\boldsymbol{x}} + \frac{\ddot{\boldsymbol{x}}}{\omega} \\ \dot{\boldsymbol{\xi}} & = \omega(\boldsymbol{\xi} - \mathbf{p}) \\ \dot{\boldsymbol{x}} & = -\omega(\boldsymbol{x} - \boldsymbol{\xi}) \end{aligned} ξξ˙ξ˙x˙=x+ωx˙=x˙+ωx¨=ω(ξp)=ω(xξ)

这些公式描述了捕获点和DCM的关系,通过控制捕获点可以实现稳定的行走模式。

8. 脚步运动

脚步运动规划是行走控制的重要组成部分。一个完整的脚步运动规划包括摆动相的抬脚、摆动和落脚。在摆动相中,需要精确控制脚的轨迹和速度,以确保机器人能够在不同地形上稳定行走。

脚步轨迹规划

脚步轨迹通常通过预先定义的路径来实现,可以使用多项式插值、样条曲线或贝塞尔曲线等方法来生成平滑的脚步轨迹。

摆动相控制

在摆动相中,需要控制脚的速度和加速度,以确保脚步的平滑过渡和准确落脚。可以使用模型预测控制(MPC)或基于逆运动学的方法来实现这一目标。

支撑相控制

在支撑相中,主要任务是保持平衡和支撑身体重量。通过控制零力矩点(ZMP)的位置,使其始终保持在支撑多边形内,可以确保机器人的平衡。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/16709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计 | SSM汽车租赁系统(附源码)

1, 概述 1.1 课题背景 随着社会的快速发展,计算机的影响是全面且深入的。用户生活水平的不断提高,日常生活中用户对汽车租赁系统方面的要求也在不断提高,需要汽车租赁系统查询的人数更是不断增加,使得汽车租赁系统的…

MaxState 突破长度和参数量限制(sam out)

新增模块 该代码是一个神经网络模块的实现,主要用于处理输入数据并产生输出。具体而言,该代码有两个类:squash和MaxState。 squash函数定义了一个名为squash的操作,用于对输入进行归一化处理。该函数通过计算兴趣胶囊的模长,并根据模长计算一个标量因子。然后,将标量因…

6-3 求二叉树的深度

作者 DS课程组 单位 临沂大学 本题要求实现一个函数,可返回二叉树的深度。 函数接口定义: int Depth(BiTree T);T是二叉树树根指针,函数Depth返回二叉树的深度,若树为空,返回0。 裁判测试程序样例: #in…

电商API接口:供应商价格与主流电商平台价格做比价

品牌在进行采购工作时,将供应商提供的价格与主流电商平台上的公开价格进行比价是一种非常常见的做法,这样做的目的主要是为了保证自身供应商提供的价格具有竞争力和合理性,从而更好地优化采购工作。 以下是过程中的具体步骤及一些注意事项&a…

基于springboot实现周边游平台个人管理系统项目【项目源码+论文说明】

基于springboot实现周边游平台个人管理系统演示 摘要 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以…

2024年上半年信息系统项目管理师下午真题及答案(第一批)

试题一 某项目包含ABCDEFGH共8个活动,各活动的历时、活动逻辑关系如下表所示: 单击下面头像图片领取更多软考独家资料

git忽略文件不生效解决方案

如下面命令报错 请查看(git学习笔记) 问题解释: Git忽略文件不生效可能是因为.gitignore文件中的规则不正确,或者是已经被跟踪的文件导致规则没有效果。 解决方法: 检查.gitignore文件中的规则是否正确。确保没有语…

分布式一致性必备:一文读懂Raft算法

本文作者:小米,一个热爱技术分享的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! 大家好!我是小米,一个热爱分享技术的29岁程序员哥哥。今天我们来聊聊分布式系统中的一个重要算法——Raft。这个算法专门用于管理分布式系统中…

DCL(数据控制)

1. 用户管理 1.1 查询用户 select * from mysql.user; 查询结果: 其中 Host代表当前用户访问的主机, 如果为localhost, 仅代表只能够在当前本机访问,是不可以远程访问的。 User代表的是访问该数据库的用户名。在MySQL中需要通过Host和User来唯一标识…

蓝牙Mesh模块组网时无线回程影响速率吗?

随着科技的发展,智能家居、智能办公等场景越来越广泛地应用于我们的生活。其中,蓝牙Mesh组网技术作为一种新型的无线通信技术,受到了越来越多用户的关注。那么,蓝牙Mesh模块在组网时无线回程过程中是否会影响速率呢?本…

Python爬虫实战:利用代理IP获取电商数据

文章目录 1.电商数据介绍2.爬取目标3.代理IP推荐4.准备工作4.1 模块安装4.2 代理IP获取 5.爬虫代码实战5.1分析网页5.1.1 获取cookie5.1.2 关键词分析5.1.3 翻页分析5.1.4 数据获取分析 5.2 发送请求5.3 提取数据5.4 保存数据5.5 完整源码5.6 数据分析六、总结 1.电商数据介绍 …

解决问题的多样手段:不止律师

在我们日常生活和工作中,总是会遇到各种各样的问题。有时我们会不由自主地想到找律师打官司,认为这是解决问题的唯一途径。然而,解决问题其实有很多手段,律师和法庭只是其中的一种。事实上,只要能够发现问题并及时解决…

基于LLM的优化器

基于LLM的优化器 代码输出 需求描述: 我准备用二台8卡的GPU服务器训练一个LLM模型,因为不同的超参会导致不同的性能.我准备了一个脚本,输入一些参数,会运行训练脚本,之后输出tokens/sec,这个值越大越好。 你现在是一个优化器,我告诉你有哪些输入参数,以及它们值的范围,你输出参…

php祛除mqtt 返回数据中包含的特殊字符

function cleanseMessage($message) {// 定义特殊字符的正则表达式$pattern /[[:^print:]]/;// 使用正则表达式替换特殊字符为空字符串$cleanedMessage preg_replace($pattern, , $message);return $cleanedMessage; }// 假设接收到的MQTT消息是: $rawMessage &q…

Spring Boot中@Value加载配置的替代者:@ConfigurationProperties

Value注解Spring Boot开发者都已经熟悉了,通过该注解,我们可以快速的把配置信息加载到Spring的Bean中。 例如:在application.yml中添加了一个配置如下: 我想在service中获取name,通过value注解方式实现,代…

人力资源管理信息化系统如何支持企业开展管理诊断?

华恒智信人力资源顾问有限公司致力于帮助企业开展人力资源管理方面的各项提升改进工作,在长期的咨询工作中,最常听到企业提到的问题莫过于管理诊断方面的问题,事实上,很多企业在日常工作中,都意识到企业内部存在管理方…

比例溢流阀的放大器找BEUEC

液压比例放大器的使用范围广泛,包括工业生产线、船舶液压系统等多个领域。BEUEC比例放大器是一种重要的液压系统组件,其作用是将微弱的液压信号放大,以实现对液压系统的精确控制。这种设备在多个行业中都有广泛的应用,特别是在需要…

C++ List完全指南:使用方法与自定义实现

文章目录 list的使用几种构造函数 list的实现1.节点类的定义1.1节点类的构造函数 2.正向迭代器实现2.1operator*重载2.2operator->重载2.3operator重载2.4operator--2.5operator和operator! 3.反向迭代器实现3.1operator*重载3.2operator->重载3.3operator重载…

ES2020新特性概览

以下是ES2020版本中的一些新特性: Promise.allSettled:Promise.allSettled()方法返回一个在所有给定的promise已被决议或被拒绝后决议的promise,返回的 promise 根据每个 Promise的结果状态决定其决议方式(注意:与Prom…

进口特氟龙隔膜泵的选型

进口特氟龙隔膜泵的选型需要考虑多个因素,以确保所选泵能够满足特定的应用需求。以下是一个清晰的选型指南,基于参考文章中的相关信息: 一、选型参数 公称通径: 根据系统需求选择合适的通径,通常范围为10-100mm。流量…