《仿人机器人原理与实战》一3.2 动态平衡与仿人机器人设计

2023-10-19 07:20

本文主要是介绍《仿人机器人原理与实战》一3.2 动态平衡与仿人机器人设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本节书摘来华章计算机《仿人机器人原理与实战》一书中的第3章 ,第3.2节,作者布莱恩·伯杰伦(Bryan Bergeron) 托马斯B. 塔尔博特(Thomas B. Talbot) 王伟 魏洪兴 刘斐 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.2 动态平衡与仿人机器人设计

如果仔细研究过中央处理器(CPU),就会对那些热导管和水冷却系统非常熟悉,它们是用来防止元器件过热的。水和其他液体多年来一直用于冷却大型计算机和其他发热电子器件。水的比热容大于空气,这意味着你没必要用一打松鼠笼大小的吹风机去冷却发热的CPU,而只需要一套非常紧凑的流体系统就足够了。
假设我们跟同类相处会感觉更加舒服,那么拥有暖皮肤和接近静音操作的服务机器人将会比冷冰冰且噪音很大的服务机器人受欢迎得多。所以,除非在电子元器件效率方面取得重大基础研究突破,否则你的仿人机器人一定会产生过量的热量。假设仿人机器人拥有类似于人的外形,你就需要找到将热量从内部转移到外部的方法,比如模拟人体热量传送机制。
当然,如果你的目标就是简单地让仿人机器人身体发热,那么最简单的解决方案是在皮肤或者外骨骼下面嵌入电加热毯,具体请看本章后面的附加项目。你需要理解接下来我们要讨论的内容,除此以外,你还将在第4章中再次阅读有关流体的内容,并可应用本章中学到的经验。

3.2.1 热力学模型

如图3-2所示,仿人机器人、人类或者其他具有核心体温的任意事物的简化热力学模型都是由电容、充电器和几个电阻组成。分析该模型时,我们可以把温度视为电压。依此类推,电容两端的电压代表身体的核心体温,电容值的大小表示身体中热量的多少。

2


电容C通过发光二极管(LED)D2放电,将能量以热和光的形式辐射出去。电阻R代表从中心到四肢的热阻力。R越大,例如绝热状态,通过LED辐射出去的热量就越少。由于R上的压降,即从内部到四肢的温度梯度,D2上的电压小于电容C两端的电压,与四肢的温度较低类似。对于人类,这种从内部到四肢的温度梯度值大概是4摄氏度。对于仿人机器人,这个梯度值取决于其构造和热交换系统的设计。
可调电阻P2是一种表示动态调节电容C向四肢放电率的方式,同时电位计P1允许调节充电率。电源G、二极管D1和电位计P1构成了充电回路,表示身体的新陈代谢。
在平衡位置,从电源G获得的充电电流等于通过LED灯D2放电的电流。如果因为D2短路(类似于跳进冰水中)、负载突然增加或电源G失效(比如没吃早饭),那么通过增大P2,C的放电过程就会限制在最小值(血液从皮肤向器官回流)。相反,如果C过度充电,那么通过减小P2值,大量能量会送到D2并辐射出去。挑战在于确定增大或减小P2的时间点和时间长度,这就是为什么需要控制系统技术。

3.2.2 简单的负反馈控制

为了更好地掌握控制系统,假设我们有一个具备动态平衡系统的仿人机器人,该系统由一槽液体、把热量从液体中带走的热交换器、把液体从储槽中抽到辐射器或者热交换器中再流回储槽的泵、控制器和温度探头等组成,如图3-3所示。

3


首先我们通过简单的开关负反馈环来控制水泵的流速,水泵将水从储槽(内部)中抽到辐射器(四肢)中,在那里热量可以辐射到环境中。我们利用下面的伪代码来定义泵的开关控制:
q1

其中,Temperature是储槽中流体的当前温度,Setpoint是流体的期望温度。注意我们已经定义了一个典型的负反馈环,控制对象是温度,通过控制机制可调节的变量是泵的流速。
从直观上我们就可以发现,开关控制算法不能为达到目标温度提供平滑的控制。另一种可选用的方式是改变泵的流速,用伪代码描述带泵流速控制的负反馈环如下:
q2

还有一件事情,就是要描述变量Temperature与变量Setpoint之间的差值。这两者字面上的差值可用来直接确定泵的流速。另外一种可选方式是,将泵的流速设定为最大流速的百分比。或者将两者的差值映射为一个非线性函数,当变量Temperature与变量Setpoint之间的差值较大时,其函数值较大,反之函数值较小。
为了进一步掌握负反馈,我们将把开关控制的伪代码转化为一个包括真实变量的更规范的方程:

Tempt = Tempt–1 + (Tempt–1–DT < SetPoint)×Inc – R

在这个方程中,DT表示死区,即泵和水响应打开信号所需要的时间。死区考虑了流体的惯性和电子器件的微小延时。温度增量Inc用来描述由于泵的作用引起的温度增加的变化量,它是泵的设计值和设定参数的函数。阻值R是一个总项,包括从储槽到管线和泵的流体的反向流动,还包括泵与辐射器的低效。
注意方程式中第二项是一个逻辑判断值,要么是真值(1),要么是假值(0)。如果逻辑判断为假,则新的温度值就是之前的温度值减去系统阻力的影响。
正如之前所说,简单的开关控制系统可能导致的问题是设定值出现超调,如图3-4的曲线所示。从热水的起始温度位置,当温度超过100华氏度时,控制器打开泵。然而,直到水温冷却到83华氏度,泵还没有关闭。从实用的角度来说,如果回路安装在仿人机器人身上,那么这种超调是可以接受的,但是,当更好的控制方法近在咫尺的时候,为什么要满足于这种落后的控制方法呢?
图3-4的曲线所描述的内容是,在图3-2所示的热力学模型中,热量可以流进或者流出储槽。如果达到某个初始温度后不再加热,那么泵停止工作以后,核心体温会缓慢降低,降低程度与储槽的绝热性能有关。当热量持续进入系统时,控制反应的性质便显现出来。10分钟的时间是任意选取的,这取决于系统的性质,时间轴允许我们对各种控制方法进行快速比较。

4

3.2.3 比例–积分–微分(PID)控制

可以取代简单开关泵控制方法的是PID控制器,它可能比之前介绍的简单控制方法更接近设定的温度值,当然不是100%。PID的三个分量可以有不同的组合形式,以强调不同的分量。例如,比例(P)控制器对某个应用来说就足够了,而在另外一个控制器上则需要比例-积分(PI)控制器。

  1. P控制
    下面逐个讨论PID控制器中的分量,最基本的P控制器的方程如下:


Tempt = tempt–1 + (SetPoint +SPC – Tempt–1–DT) × PC

其中,Temp表示温度,PC表示比例常数,SPC是设定值的修正项。如果没有SPC,SetPoint的值将永远都不会达到。可以把SPC理解为一个修正因子,用来补偿只有实际温度和目标温度差值的一部分(而不是全部),用于计算当前温度这一实际情况。
如图3-5所示,如果采用了恰当的比例常数和设定值修正项,那么跟简单的开关控制相比,比例控制经过最初的不稳定期后,能够提供更加平滑的温度控制。调节P控制器的工作由调节PC的值和观察结果的稳定性组成。
上述典型的P控制器响应说明该控制方法存在局限性,即初始响应可能会引起设定的温度值大幅超调。在这个例子中,还有一个风险就是直到温度低于设定值6度后比例控制才会再次起作用。注意时间轴是任意的,取决于外界条件和控制器常数。

5


比例控制的特征是在设定值、设定值修正、死区和比例常数值等因素的某些联合作用下会引起不稳定性。在特殊情况下,如果比例常数值增加,温度会出现振荡趋势。

  1. PI控制
    针对单纯P控制的不稳定性,PI控制增加了积分项,即期望值和实际值对时间的积分。PI控制方程的基本形式如下:


Tempt = Tempt–1 + (SetPoint – Tempt–1–DT) ×PC

           + Integralt–1 + (Tempt – Integralt–1)×IC


其中,Integral表示SetPoint与当前温度差值的积分和;IC为积分常数,决定了积分项对当前温度的贡献量。注意,在这个方程中,没有SPC这一设定值修正项了。
比较图3-6中PI控制和图3-5中的P控制的响应曲线。即使利用微软Excel来生成这两幅图,采用相同的设定值、设定修正项、死区和比例常数,我们也会发现PI控制引起的超调更小,且能够更快稳定。虽然图3-6中10分钟的时间轴是大概值,但是与本章中其他温度曲线的时间轴是可比的。
因为积分项反映了实际温度与期望温度随时间的差值,所以在外界温度相对固定的情况下,PI控制最有用。相反,当环境条件持续变化时,增加积分项的用处就不大了。调节PI控制器的工作包括确定比例常数PC和积分常数IC的最优值,通常比调节P控制器更具有挑战性。

6

  1. PID控制
    与纯P控制器类似,PI控制器也会在某些变量叠加时引起不稳定。为了解决不稳定性,可以用微分项(等同于电源中的平滑电容),来抑制变化率。完整的PID控制方程定义为:


Tempt = Tempt–1 + (SetPoint + Tempt–1–DT) × PC + Integralt–1

             + (Tempt – Integralt–1)× IC – (Tempt–1 –Tempt) ×DC


其中,DC是微分常数,决定了系统对二阶温度变化的敏感程度。与比例和积分项不同,微分项可以从之前的温度值中获得。如图3-7所示,变化率逐渐消失。同时可以看出,与之前的控制器不同,相应曲线没有明显的超调。
之前的四幅图片尽管典型,但都是理想化的,常数都选为适合值,以说明最佳响应曲线。也就是说,控制器是调试过的。调节PID控制器的工作包括确定三个常数(比例常数PC、积分常数IC和微分常数DC)的最优值,对一个复杂系统来说,调试工作量可能非常大。幸运的是,我们的系统相对简单。
尽管PID控制器似乎优于其他简单的控制器,但是使用PID控制器并不能保证快速达到设定值且不会有超调。如果想要获得图3-7所示的曲线,你必须要在调节常数项时足够机灵。另外一个要求就是处于控制之下的系统必须具有重复性,否则常数项必须反复重新定义。采用相同初始条件有利于确保重复性,比如采用相同的储槽温度、储槽容积、外界温度、湿度、储槽和线圈周围的气流等。

7


除了这些基本方程,PID控制器还有更多变化和增强版本,也有专门为运动控制设计的复杂的PID控制算法。虽然理解前面所说的PID分量的优点和局限性是很关键的,但是我们可以避开具体细节的实施而直接采用Arduino标准的PID库。

这篇关于《仿人机器人原理与实战》一3.2 动态平衡与仿人机器人设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/238258

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

hdu4407容斥原理

题意: 有一个元素为 1~n 的数列{An},有2种操作(1000次): 1、求某段区间 [a,b] 中与 p 互质的数的和。 2、将数列中某个位置元素的值改变。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.Inpu