零倾覆力矩点(ZMP)

news2025/1/13 6:16:40

系列文章目录


前言

        在机器人学中,零倾力矩点(ZMP)是一个特征点,主要用于足式运动。在下文的一些假设中,我们将看到,它非正式地代表了一个系统接触反作用力的结果点。例如,下图中的刚体处于静态平衡,当且仅当其 ZMP 位于质心的垂直位置时。

静态平衡刚体的 ZMP 和 COM

一、定义

        从形式上讲,ZMP 指的是空间中相对于一个平面(通常是地平面)抵消接触力矩的点的集合。这个集合实际上是一个轴,而不是一个点,但为了方便起见,让我们按照传统的推导方法来计算地面平面上的 ZMP。这一推导从任何多刚体系统的牛顿-欧拉运动方程开始:

m\ddot{\boldsymbol{p}}_G=m\boldsymbol{g}+\boldsymbol{f}^c 

\dot{L}_O=\overrightarrow{OG}\times m\boldsymbol{g}+\boldsymbol{\tau}_G^c

        其中,m 为机器人的总质量,\boldsymbol{g} 为重力矢量,G 为系统的重心,\ddot{\boldsymbol{p}}_G 为加速度,\dot{L}_O 为固定点 O 的角动量变化率。在右侧,\boldsymbol{w}_G^c=[\boldsymbol{\tau}_G^c\; \boldsymbol{f}^c]) 表示净接触扭矩,即施加到机器人上的所有接触扭矩之和,坐标取自质心 (COM) G

        定义多体系统的重力惯性扭矩,它只取决于加速度:

\begin{aligned}&\boldsymbol{f}^{gi}\; \overset{​{\mathrm{def}}}{\operatorname*{\operatorname*{\operatorname*{=}}}}\; m(\boldsymbol{g}-\ddot{\boldsymbol{p}}_{G})\\&\boldsymbol{\tau}_{O}^{gi}\; \overset{​{\mathrm{def}}}{\operatorname*{\operatorname*{\operatorname*{=}}}}\; \overrightarrow{OG}\times m\boldsymbol{g}-\dot{L}_{O}\end{aligned}

        牛顿-欧拉方程可以用螺杆代数的扭矩形式写出:\boldsymbol{w}^{gi}+\boldsymbol{w}^c=\boldsymbol{0}:ZMP 是属于非中心轴的点 Z,其定义如下:

\boldsymbol{\tau}_Z^{gi}\times \boldsymbol{n}=0

        其中 \boldsymbol{n} 表示非倾斜表面(通常指在平地上行走时的地面)的法向量。这个等式的左侧可以根据另一点上的力矩进行改写:

\begin{aligned} \boldsymbol{\tau}_Z^{gi}\times\boldsymbol{n}& =(\boldsymbol{\tau}_O^{gi}+\overrightarrow{ZO}\times\boldsymbol{f}^{gi})\times\boldsymbol{n} \\ &=\boldsymbol{\tau}_O^{gi}\times\boldsymbol{n}+(\overrightarrow{ZO}\cdot\boldsymbol{n})\boldsymbol{f}^{gi}-(\boldsymbol{f}^{gi}\cdot\boldsymbol{n})\overrightarrow{ZO} \end{aligned}

通过展开向量三重乘积。我们暂且假设 OZ 位于 \boldsymbol{n} 的法线的同一平面上,因此 \overrightarrow{ZO}\cdot\boldsymbol{n}=0。然后,将上面的表达式注入 ZMP 的定义中,得到

\overrightarrow{OZ}=\dfrac{\boldsymbol{n}\times\boldsymbol{\tau}_O^{gi}}{\boldsymbol{f}^{gi}\cdot\boldsymbol{n}}

        这个公式在实践中用于计算力传感器或惯性测量单元的 ZMP,这些传感器或惯性测量单元通常嵌入在当前的足式机器人中。在某些情况下,ZMP 也可称为零力矩点(zero moment points),例如在足式运动中,当角动量在质量中心保持恒定,因此 \boldsymbol{\tau}_Z^{gi}=\boldsymbol{\tau}_G^{gi}=\boldsymbol{0} 。但是,请记住,如果没有这样的假设,在 ZMP 上的接触力净力矩只能在其三个坐标中的两个坐标上抵消。

二、压力中心

        压力中心(COP)是定义在两个接触物体之间的一个动态点。与根据多体系统加速度定义的 ZMP 不同,COP 是根据接触面上的相互作用力定义的局部量。当机器人与环境单接触或在平地上行走时,这两种不同的方法会得出相同的结果(Sardain 和 Bessonnet,2004 年)。

        让我们考虑机器人的一只脚接触平面的情况:

        环境通过表面对机器人施加的接触力 \boldsymbol{f}^{c} 可分解为两个项的总和: 

  •  合压力 \boldsymbol{f}^p=(\boldsymbol{f}^c\cdot\boldsymbol{n})\boldsymbol{n}
  • 合摩擦力 \boldsymbol{f}^f=\boldsymbol{f}^c-\boldsymbol{f}^p,与接触面相切 (\boldsymbol{f}^f\cdot\boldsymbol{n}=0)

        这两个力是通过接触面 \text{S} 的所有元素 \text{dS} 施加的无穷小力的总和。用 p(P) 表示在任意点 P\in\mathcal{S} 上施加的压力:

\boldsymbol{f}^p=\int_{P\in\mathcal{S}}p(P)\boldsymbol{n}\mathrm{d}\mathcal{S}

        压力始终是一个正量,因为脚无法穿透地面。因此,始终存在一个压力中心 C,即压力力矩消失的点,因此可以将 \boldsymbol{f}^{p} 视为 "施加在 C 处"。其坐标如下 

\begin{aligned} \boldsymbol{\tau}_{C}^{p}& =0 \\ \overrightarrow{OC}\times(\boldsymbol{f}^p\cdot\boldsymbol{n})\boldsymbol{n}& =-\boldsymbol{\tau}_O^p \\ \left(\boldsymbol{f}^p\cdot\boldsymbol{n}\right)\boldsymbol{n}\times\overrightarrow{OC}\times\boldsymbol{n}& =-\boldsymbol{n}\times\boldsymbol{\tau}_O^p \end{aligned}

        由于 OC 两点都属于同一法线 \boldsymbol{n} 平面,因此我们得到

\overrightarrow{OC}=\dfrac{\boldsymbol{\tau}_{O}^{p}\times\boldsymbol{n}}{\boldsymbol{n}\cdot\boldsymbol{f}^{p}}

        同时,摩擦力与接触面相切、 因此它们的力矩与 \boldsymbol{n} 一致。因此,上述关系可以等价地写成

\overrightarrow{OC}=\dfrac{\boldsymbol{\tau}_{O}^{c}\times\boldsymbol{n}}{\boldsymbol{n}\cdot\boldsymbol{f}^{c}}

        在这里,我们可以看到与用于定义 ZMP 的公式相同的公式,只不过现在是应用于(局部的)接触扭矩,而不是(全局的)重力惯性扭矩。现在,还记得牛顿-欧拉方程中的 \boldsymbol{w}^{gi}=-\boldsymbol{w}^c 吗?你就知道为什么只有一个接触点时 COP 和 ZMP 会重合了(Sardain et Bessonnet, 2004)。

        上图表示 COM G、COP C 和沿着(非中心)重力惯性轴 \Delta^{gi} 的 ZMP Z。后者不一定包含 G,除非系统的角动量守恒(\dot{L}_{G}=\boldsymbol{0})。角动量守恒是上世纪 90 年代和 00 年代大多数双足运动研究的共同假设(Kajita et Tani,1991 年)。 

三、支撑区域

        只要保持接触,COP 就会位于接触面 S 的内部。事实上,接触力矩可以写成

\boldsymbol{\tau}_O^c=\int_{P\in\mathcal{S}}\overrightarrow{OP}\times p(P)\boldsymbol{n}\mathrm{d}\mathcal{S}

        这样,上面的 COP 公式就变成了

\overrightarrow{OC}=\dfrac{\int_{P\in\mathcal{S}}p(P)\overrightarrow{OP}\operatorname{d}\mathcal{S}}{\int_{P\in\mathcal{S}}p(P)\mathrm{d}\mathcal{S}}

        因此,可以将 COP 视为地面接触点的平均值,并根据各自的压力进行加权。当它越过 S 的边界时,接触就会中断,并开始绕 S 区域的相应边缘旋转。为了避免这种结果,足式机器人必须确保其 COP 保持在该区域内,该区域被称为 "支撑区域"。条件 C\in\mathcal{S} 就是非倾斜接触条件。

3.1 与平面的多重接触

        在所有接触点都与同一平面接触的特殊情况下,支撑区域 S 成为所有接触点的凸壳。事实上,同一平面可用于定义上述的 COP 和 ZMP,积分公式显示 C\in\mathcal{S}也是不倾斜的必要条件。这就得出了双足运动中使用的著名标准:

非倾斜接触条件:在双足行走过程中,ZMP位于定义为地面接触点凸壳的支撑区域 S 内。


        这一标准经常用于生成行走轨迹,例如(Kajita 等人,2003 年)和(Wieber,2006 年)。需要注意的是,这是接触稳定性的必要条件,但不是充分条件,因为它缺乏非滑动的补充条件(详见本文第二节)。

四、更进一步


        尽管零倾覆力矩点已被应用于平衡足式机器人,但它通常是任何扭矩的一个特征点。在平衡过程中,我们通常会控制净接触扭矩的 ZMP,即使在有外力的情况下也能得出该值。您可以使用这个 Docker 镜像查看人形机器人控制器的 ZMP 是如何表现的,从而建立直觉。

        ZMP 支持区域可扩展到多接触场景,即脚或手与不同非共面接触的场景。不过,其二维性质使其在多接触运动中受到了一些限制。因此,在后来的行走轨迹生成器中,它们被扩展到了 COM 加速度的三维锥体。

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

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

相关文章

leetcode:布尔运算(动态规划版)

最近又要考试,勉励自己复习一些之前学过的!!! 开始使用的是DFS,遍历所有可能的情况,发现超时! 下面的是动态规划的一个模板,dp[i][j][result]表示从s的第i个元素到第个元素&#xf…

Auracast认证:蓝牙广播音频的革新之旅

低功耗音频(LE Audio)技术的突破,为蓝牙世界带来了前所未有的广播音频功能。Auracast™,作为蓝牙技术联盟精心打造的音频广播解决方案,正引领着一场全新的音频分享革命。它不仅革新了传统蓝牙技术的局限,更…

HuggingFace Embedding 转为 Ollama Embedding

Ollama 是基于 LlamaCpp 开发的 CPU 上的推理引擎,通过 LlamaCpp 提供的脚本可以将大语言模型装换为 gguf 的二进制跟是文件,从而通过 Ollama 就行推理。Ollama 支持HuggingFace 大多开源模型,例如 Llama、Qwen、Gemma 和 Phi3 等等。 GGUF …

【Leetcode:2848. 与车相交的点 + 模拟计数】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

软件研制功能点拆分

最近需要进行软件研制概算明细表中的估算对象原始功能点,记录一下学习过程,共有EI(external input 外部输入)、EO(外部输出)、EQ(外部查询)、ILF(internal logic 内部逻辑文件)、EIF(外部接口文件)五个。 功能点计数项分为数据功能(逻辑文件&…

【数据仓库】数据仓库常见的数据模型——范式模型

目录 一、范式 1、第一范式 2、第二范式 3、第三范式 4、进一步范式化:BCNF、4NF 和 5NF 简介 (1)Boyce-Codd 范式(BCNF) (2)第四范式(4NF) (5&#x…

光华里社区“电亮生活”行动:智能科技携手志愿温情,老旧小区焕发新生机

在朝阳区建外街道光华里社区,一场关于“电”的革命正悄然改变着居民的生活面貌。面对老旧小区普遍存在的电力设施陈旧、线路老化、电压不稳等老大难问题,社区党委没有坐视不管,而是携手北京中兴物业管理有限公司广联物业管理中心党支部&#…

泽众P-One性能测试平台支持分布式全链路压测

在当今数字化转型加速的时代,高性能、高可用性的系统已成为企业竞争力的核心要素之一。为了确保系统能够在高并发、大数据量的环境下稳定运行,分布式全链路压测成为了不可或缺的一环。P-One凭借其强大的功能,支持分布式全链路压测&#xff0c…

什么是 SMB 服务器以及它如何工作?

在本文中,您将了解 SMB 服务器以及它们如何促进网络文件共享。 我们将介绍它们的基本功能、主要特性以及如何安全地设置它们。无论您是新手还是需要复习,本指南都将帮助您更好地了解 SMB 服务器。 什么是 SMB 服务器? SMB(服务器…

day19JS-AJAX数据通信

1. 什么是AJAX 原生生js中有两种通信,一个ajax,还有一个是fetch。 AJAX 并不是编程语言,是一种从网页访问 Web 服务器的技术。AJAX 代表异步 JavaScript 和 XML。 AJAX 使用浏览器内建的 XMLHttpRequest 对象从 web 服务器请求数据&#xff0…

【开放词汇检测】MM-Grounding-DINO论文翻译

摘要 Grounding-DINO 是一种先进的开放式检测模型,能够处理包括开放词汇检测(Open-Vocabulary Detection,OVD)、短语定位(Phrase Grounding,PG)和指代表达理解(Referring Expressio…

Java多线程——模拟接力赛跑

题目: 多人参加1000米接力跑 每人跑100米,换下个选手 每跑10米显示信息 解题思路: 1.必须要用到多线程的锁,否则就会出现三个选手乱跑的情况,我们需要一个一个跑 2.使用给oneRunner上锁的方式更细的控制资源比直接给…

qt画板v1.0

qt图形视图做的一个工具,具备画板功能,对初学习有很大作用

搭建内网文件服务器(FTP),以及实现内网Gitee

一、实现windows搭建FTP,实现文件共享和管理 具体步骤: 1.打开控制面板,搜索功能 2.打开这几个配置 3.打开IIS,添加FTP站点即可 二、实现内网Gitee 参考博客: Gitblit服务器搭建及Git使用-CSDN博客 jdk1.8.0的安…

关系数据库(1,2)

目录 关系 域 笛卡尔集 元组 分量 基数 码 关系模式 关系模式的表示方式 关系数据库 基本关系操作 完整性 关系 单一的数据结构,二维表是一个逻辑结构,关系模型建立在集合代数的基础上。 域 指具有相同数据类型的集合。 笛卡尔集 笛卡尔集是…

独立站建站及运营经验分享

什么是独立站 了解过跨境电商的朋友肯定都知道,跨境电商其实分两种,一种是入驻平台,一种是做独立站。平台例如亚马逊,速卖通,Lazada,国内就是京东淘宝,他们都属于平台,但平台的劣势…

实验一 番外篇 虚拟机联网与DHCP服务器

写的有点乱,因为刚开始遇到了一堆问题。 实验一会有联网问题,下面紧接着解决一下。 注意虚拟机设置的默认网关要有网。 参考:vmware校园网虚拟机无法连接网络解决方法_大数据_十三川浪越-华为开发者空间 【11-Windows server 2016 DHCP服务…

『功能项目』战士的伤害型技能【45】

我们打开上一篇44战士职业平A怪物掉血的项目, 本章要做的事情是制作技能按钮,点鼠标点击时释放对范围内怪物的伤害技能 首先双击打开资源脚本下的Canvas预制体 制作技能栏 在资源商店中下载免费资源 - 技能图片 将技能图片拖拽至技能栏的Button按钮组件…

细说STM32单片机使用通用定时器生成固定占空比和可变占空比PWM波的方法

目录 一、本实例测试的目的 二、硬件和CubeMX项目配置 1、硬件开发板 2、项目配置 (1)定时器TIM2_CH1 (2)时钟和Debug (3) NVIC (4)GPIO 3、输出固定占空比的PWM波源码 &…

a√斗地主之顺子

题目描述 在斗地主扑克牌游戏中,扑克牌由小到大的顺序为:3,4,5.6,7.8,9,10,J,Q,K,A,2,玩家可以出的扑克牌阵型有:单张、对子、顺子、飞机、炸弹等。 其中顺子的出牌规则为:由至少5张由小到大连续递增的扑克牌组成,且不能包含2。 例如:(3.4.…