波士顿动力真的无可企及吗?一步步剖析四足机器人技术(一)

四足机器人运动控制

  • 第一章 序
  • 第二章 运动状态
    • 姿态控制
    • 运动控制
  • 第三章 步态
  • 第四章 CPG控制网络
    • 介绍
    • CPG模型分类
    • 基于HOPF振荡器的CPG单元模型
    • CPG网络控制模型
  • Tips
  • 参考文献

大家可以先看看效果

[四足机器人]开环运动控制测试

第一章 序

足式机器人较传统的四轮式和履带式有着无与伦比的优势,其在复杂环境中具有更高的机动性,在军事任务和抢险任务中能够发挥出比传统轮式更大的作用。要想让机器人更智能,首先要做到的是让机器人能够像人或动物一样自由行动。在马克・雷波特看来,要想实现这一目标,必须让机器人具备以下三项能力:

①平衡性和动态运动能力:能够让机器人在任意地方、任何地形保持平衡,并实现自由活动,这意味着机器人的工作范围得到了有效扩展。

②对运动的控制能力:指机器人可以灵活地操控物体(如使用键盘和遥控器等),同时进行自由活动,这意味着机器人能够在移动的过程中轻松完成各项操作任务。

③移动感知能力:指机器人能够感知空间中物体的稳定存在,即便视线移向别处也能够避开障碍物,这意味着机器人能够绘制出周边环境中障碍物的位置图,从而在移动的过程中能够有效避开障碍物。

该项目就是致力于开发出一套完整有效四足机器人控制系统。在笔者看来,第一点是最基本的,因此我们的研究也是从第一点开始一步一步前进。对于四足机器人的平衡控制,其牵涉到的内容比较繁杂,需要一点先验知识,因此我们将其摆在运动控制之后论述。下面我们先从最简单运动控制开始,即实现机器人的移动,对此部分的控制,我们提出了基于平面三轴的运动控制方法

在介绍这套控制方法之前,我们先简单介绍一下关于四足机器人的一些基本知识,由于我们的控制方法是基于北理大出版的《仿生四足机器人技术》里提出的CPG控制网络,因此以下内容大部分为书上原话稍加整理给出,笔者就不对具体的技术细节过多解释了,有兴趣的小伙伴可以自行翻阅此书。

第二章 运动状态

本章先讨论一个基础的问题:如何描述机器人的位姿。位姿包括位置和姿态。我们可以用 P = [ x , y ] T P=[x,y]^T P=[x,y]T来表示平面上一个点的位置。相应的,也可以用来 P = [ x , y , z ] T P=[x,y,z]^T P=[x,y,z]T表示空间里一个点的位置。

姿态的数学描述比位置稍为抽象一点。平面上一个点的姿态可以只用一个旋转角表达,而空间中姿态的表达方式则有多种,常见的如欧拉角、四元数、旋转矩阵等,这里不展开论述[5]。总之,有了位置和姿态,我们就可以解决机器人的定位问题,以及坐标转换的问题。

该项目提出这样一个设想:在不考虑各腿的协同运动时,可以简单地把机器人当成一个刚体,因此其运动可看作是空间中刚体的运动,这里我们选用欧拉角表示机器人的姿态,因此其运动包括:Roll,Pitch,Liner_Z,Liner_X,Liner_Y,Yaw,前三者用于控制机器人的姿态,后三者控制机器人的位置。注意这里笔者把Liner_Z归入姿态控制而Yaw归入运动控制,因为在机器人的实际运动当中,Liner_Z控制机器人质心离地面的高度,对于平整路面而言,其高度应为定值,可看作是机器人的一个姿态,因此笔者把Z轴方向的运动归入姿态控制;对于Yaw,其控制的是机器人在平面内的旋转运动,属方向控制,因此归入运动控制。

姿态控制

上文已经提到过Roll,Pitch,Liner_Z这三轴的运动是用来控制机器人的姿态的,而姿态控制更多的应用在环境响应那部分,因此在这里暂时不细说,先来看运动控制部分。

运动控制

1、运动分解

由于四足机器人在平整地面上运动时,质心离地高度(Liner_Z),pitch,roll角均基本保持不变,因此可以将其看成是平面内的运动。其位姿表示成 P = [ x , y , θ ] T P=[x,y,\theta]^T P=[x,y,θ]T。该项目现阶段的主要目标是:通过该控制模型,机器人能够按照给定轨迹 P ( t ) = [ x ( t ) , y ( t ) , θ ( t ) ] T P(t) = [x(t), y(t), \theta(t)]^T P(t)=[x(t),y(t),θ(t)]T运动。其基本运动组成如下:

①沿X轴的平移(Liner_X)
②沿Y轴的平移(Liner_Y)
③绕Z轴的旋转(Yaw)

2、运动叠加

平面上几乎所有的运动均可拆解成上述三种基本运动的组合,这里我们举例最常见的两种运动:

①+②:平面内任意方向的斜向直线运动
①+③:指定半径的转向运动

需要注意的是对于组成复合运动的基本运动,其发生的顺序是不一定的,既可以同时发生,亦可以按时间先后发生,具体取决于实际环境中对运动轨迹的约束。

第三章 步态

参考清华大学张秀丽等前辈的《足式机器人生物控制方法和应用》,足式动物的运动模式可以用“步态”来表示。步态指的是各腿在行走时具有固定相位关系的行走模式。

行进速度较慢的情况下,四足动物的每一步行走都处于较为稳定的三足支撑状态,如乌龟等。该运动模式称为行进步态,是一种四拍步态。行进速度较快一点的是小跑步态(Tort)和溜蹄步态(Pace),这两者都是两拍步态。为了用数学语言描述步态,我们需要知道以下参数定义:

①步态周期T:一个完整运动循环所用的时间;
②步长S:一个步态周期内,支撑腿驱动躯体质心相对于地面移动的距离;
③抬腿高度h:一步内足端离地最大距离;
④相位差 φ i \varphi_i φi:第i条腿着地时刻相对于参考腿的延时与周期的比;
⑤支撑(stance):腿与地面接触支撑躯体并推动躯体前行的状态;
⑥摆动(swing):腿抬起在空中摆动的状态;
⑦负载因子 β \beta β:处在支撑相的腿撑在地面的时间占整个运动周期的比例。

以上参数为动物步态参数,由于四足机器人的步态是参照动物步态指定的,因此其参数定义与动物类似,具体可查阅其他资料,在此不展开细说。下面给出4种常见步态的相位图。

经研究发现,有以下规律:以机器人左前腿为基准,将其相位定义为 φ L F = 0 \varphi_{LF} = 0 φLF=0相对相位可以表达为负载因子β和右后腿相位 φ R H \varphi_{RH} φRH的函数,这在步态转换部分将起到重要作用:

第四章 CPG控制网络

介绍

众所周知,动物最常见的运动方式是节律运动,即按照一定的节奏、有力度地重复、协调、持续进行的动作,是低级神经中枢的自激行为。生物学上,动物的节律运动控制区被认为是分层并且模块化的,其控制以中枢模式发生器为中心,既可以接受来自高层的高级神经中枢的主观控制,也可以响应来自躯体各种感受器官的反射,这就是CPG控制机理。

前人已经按照CPG控制机理建立了不同形式的数学模型,它们能够产生的周期振荡的信号,使其能够满足节律运动的特点。

CPG模型分类

目前比较经典的CPG模型可划分为以下两大类:

①基于神经元的模型:Matsuoka神经元震荡模型、Kimura模型等,该类模型生物学意义明确,但参数较多,动态特性分析比较复杂。

②基于非线性振荡器的模型:Kuramoto相位振荡器、Hopf谐波振荡器等,该类模型参数较少,模型比较成熟。

在保证能够输出稳定的周期性震荡信号的前提下,那些形式简单、参数较少、计算量小、便于分析、易于实现的CPG模型是更好的选择。根据这一个原则,我们选取了HOPF振荡器作为CPG的单元模型。

基于HOPF振荡器的CPG单元模型

1、HOPF振荡器

HOPF振荡器在状态空间中存在一个稳定的极限环,即对于任意非零初始值,均能使得振荡器产生相同形状的周期性振荡信号,其数学模型如下:

假设 α = 100 , μ = 1 , ω = 2 π \alpha =100, \mu=1,\omega = 2\pi α=100,μ=1,ω=2π,振荡器产生的极限环和输出结果如下:

从图像可以看出,对于该微分方程组,取任意初始值x(0), y(0),在稳定输出后,均能收敛到同一个圆上。将其输出信号放大进行观察:

经过对比发现输出信号上升沿与下降沿所用时间是一致的,我们设定上升沿为摆动相,下降沿为支撑相,因此,采用HOPF振荡器时,机器人腿部摆动持续时间与支撑持续时间是一致的。为了能够对这两者进行单独控制,使其能够适应不同负载因子下的运动模式,对 ω \omega ω进行以下改进:

其中 ω s t , ω s w \omega_{st}, \omega_{sw} ωst,ωsw分别表示支撑相频率和摆动相频率,参数a决定 ω \omega ω在这两者之间的变化速度, β \beta β为负载因子,按照上文总结出的规律,其用于决定机器人的运动模式,即控制不同步态。最终数学模型的形式如下:

其中,

α用于控制振荡器收敛到极限环的速度;
a决定了ω在 ω s t \omega _{st} ωst ω s w \omega_{sw} ωsw之间的变化速度;
μ决定振荡器的幅值,关系式为 A = μ A=\sqrt{\mu} A=μ
β为负载因子(范围0-1);
ω s w \omega_{sw} ωsw表示摆动相频率;
ω s t \omega_{st} ωst表示支撑相频率,且 ω s t = 1 − β β ω s w \omega _{st}= \frac{1-\beta}{\beta}\omega_{sw} ωst=β1βωsw

2、动态特性

设置参数 α = 100 , a = 50 , β = 0.5 , μ = 1 , ω s w \alpha=100,a=50,\beta=0.5, \mu=1,\omega_{sw} α=100,a=50,β=0.5,μ=1,ωsw取不同值时的输出曲线:

设置参数 α = 100 , a = 50 , ω s w = 2 π , μ = 1 , β \alpha=100,a=50,\omega_{sw}=2\pi, \mu=1,\beta α=100,a=50,ωsw=2π,μ=1,β取不同值时的输出曲线:

设置参数 α = 100 , a = 50 , β = 0.5 , ω s w = 2 π , μ \alpha=100,a=50,\beta=0.5, \omega_{sw}=2\pi,\mu α=100,a=50,β=0.5,ωsw=2π,μ取不同值时的输出曲线:

通过上述对比可知,振荡器输出信号的幅值、周期、上升/下降沿所占时间比,都能通过相应的参数进行控制,且各参数之间不存在耦合。下面总结一下:

μ \mu μ:控制输出信号的幅值 A = μ A=\sqrt{\mu} A=μ ;
ω s w \omega_{sw} ωsw:控制调节输出信号的周期;
β \beta β:控制输出信号上升/下降沿所占时间比例。

CPG网络控制模型

以上内容已经简要介绍了单个振荡器的特性,但是,我们的四足机器人至少有12个主动关节,仅靠一个振荡器显然是不够的,因此我们需要一个CPG控制网络来实现各腿的协同运动。CPG按照不同的连接方式可分为链式连接和网络连接,连接起来的CPG能够实现多个肢体的协同运动,并且在时域上保持相关性。

这里我们先不考虑机器人的侧向髋关节的运动,仍旧参考北京理工大学《仿生四足机器人技术》里面提出的CPG控制网络模型。基本思路是这样的:采用4个HOPF振荡器分别对应四足机器人的4条腿,将每个振荡器的x输出直接作为髋关节的角度控制信号,对y输出进行变换,再将变换之后的信号用作膝关节的角度控制信号。

需要注意的是,我们的4个振荡器必须是相互关联的,按照前辈们的方法,就是设立一个耦合项,利用其来表征振荡器之间的关系(至于为什么能这样,笔者目前学识有限,惭愧地讲一句抱歉不能给大家解释这里),最终数学模型如下:

其中,

A h , A k A_h,A_k Ah,Ak分别为髋关节,膝关节幅值, ϕ \phi ϕ为关节标志,该项与硬件结构配置有关,我们的机器人采用前肘后膝式。即LF_k, RF_k为1, LH_k, RH_k为-1

R ( θ j i ) R(\theta^i _j) R(θji)控制各腿控制信号的耦合关系,且 θ j i = 2 π ( φ i − φ j ) \theta^i_j = 2\pi (\varphi_i-\varphi_j) θji=2π(φiφj) φ i \varphi_i φi为第i个振荡器的相位(相位图请看第三章:步态),其数学表达式如下:

③为了更加直观,我们把耦合项展开成以下矩阵形式(一个8*4矩阵,按行求和):

④同样我们可以把数学模型写成更加直观的微分方程:

d x i d t = α ( μ − r i 2 ) x i 2 − ω i y i + ∑ j = 1 4 ( cos ⁡ θ j i x j − sin ⁡ θ j i y j ) \frac{dx_i}{dt} = \alpha(\mu-r_i^2)x_i^2 - \omega_iy_i+ \sum_{j=1}^{4}(\cos\theta^i_jx_j-\sin\theta_j^iy_j) dtdxi=α(μri2)xi2ωiyi+j=14(cosθjixjsinθjiyj)

d y i d t = α ( μ − r i 2 ) y i 2 + ω i x i + ∑ j = 1 4 ( sin ⁡ θ j i x j + cos ⁡ θ j i y j ) \frac{dy_i}{dt} = \alpha(\mu-r_i^2)y_i^2 + \omega_ix_i+ \sum_{j=1}^{4}(\sin \theta^i_jx_j+\cos \theta_j^iy_j) dtdyi=α(μri2)yi2+ωixi+j=14(sinθjixj+cosθjiyj)

θ h i , θ k i \theta_{hi},\theta_{ki} θhi,θki分别为第i条腿的髋关节,膝关节的控制信号,是一条关于时间的函数。

至此我们已经建立起了最基础的控制网络模型,但是,仅仅是这样还不够,正如单个HOPF振荡器需要好几个参数一样,该控制模型亦是如此。那么这些参数跟我们的机器人有什么关系呢?又是如何确定的呢?这里先给大家留个悬念(-ω-),大家可以先思考一下,或者查阅相关资料,问题的答案在参考文献里面能找到,我也会在下一篇文章中“手把手”讲解。

Tips

这里我给出一个仿真实例,视频我会上传到B站,搜“四足机器人”,认准我的头像就ok了。

按照Tort步态的相位分布,给定以下参数 α = 1000 , a = 100 , β = 0.5 , A k = 3.3 , A h = 9.8 , ω s w = 5 π \alpha=1000,a=100,\beta=0.5,A_k = 3.3,A_h=9.8,\omega_{sw}=5\pi α=1000,a=100,β=0.5,Ak=3.3,Ah=9.8,ωsw=5π,(需要注意各数值单位间的换算,这里给定的 A h , A k A_h,A_k Ah,Ak为角度制),输出结果如下:

其中,蓝色信号为髋关节信号,红色信号为膝关节信号。从图像可以看出此时的输出信号满足Tort步态运动规律,左前腿与右后腿保持同相关系,另外两者同样如此,在髋关节信号上升沿为正,其余为0,符合摆动相的要求。

下面终于到了展示成果的环节了,仿真结果如下(✧٩(ˊωˋ*)و✧):

参考文献

[1].罗庆生, 罗霄著. 仿生四足机器人技术[M]. 北京:北京理工大学, 2016. 15-30

[2]韩宝玲, 王秋丽, 罗庆生. 六足仿生步行机器人足端工作空间和灵活度研究[J]. 机械设计与研究, 2006,22(4): 11-12

[3]常青, 韩宝玲, 罗庆生. 四足机器人转向与斜向运动规划理论及方法[J]. 北京理工大学学报, 2015, 35(5): 1-2

[4]施宏阳. 基于WCPG的步态生成与运动控制方法[D]. *:华中科技大学, 2015. 15-18

[5]高翔. 视觉SLAM十四讲[M]. *:电子工业出版社, 2017


如果觉得ok,点个赞,点个关注,也欢迎给个打赏支持一下编者的工作

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

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

相关文章

自己动手做个DIY波士顿机器狗

我想来整个DIY波士顿机器狗。 中文的介绍: https://www.qbitai.com/2020/08/17572.html 软件安装: https://github.com/mike4192/spotMicro 硬件制作: https://www.thingiverse.com/thing:3445283 中文介绍是这样的: 用树莓派DIY波士顿机器狗,帮你省下50万:教程开…

波士顿仿生机械狗 原理分析

导语:Boston Dynamics 在机器人动力方面堪称翘楚,其由双足或多足机器人组成的机器人天团总是时不时能给我们带来惊喜。上周,Boston Dynamics 又发布了一段视频,并再次推出了一款全新机器人——Handle,这也是Boston Dyn…

数据可视化分析报告这样做,大家都轻松

在BI数据可视化工具上这样做分析报告,智能分析、可视化呈现,拖拉拽点击就能快速完成一份数据可视化分析报告。不仅做分析报告的人轻松了,看报表的也轻松了,毕竟除了能够一眼看懂分析报告,更能够随时随地根据实际需求去…

数据分析-01数据分析之数据可视化(转)

声明:数据分析01-08均来自尚学堂学习内容,文档仅供学习交流使用,已上传github 一、数据分析介绍 什么是数据分析: 百度百科:数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和…

一般用哪些工具做大数据可视化分析?

做数据分析这些年来,从刚开始的死磕excel,到现在成为数据分析行业的偷懒大户,使用过的工具还真不少! 这篇分享一些我在可视化工具上的使用心得,由简单到复杂,按照可视化类型一共分为纯统计图表类、GIS地图…

如何做好数据可视化分析?

数据可视化是利用计算机图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。数据可视化的实质是借助图形化手段,清晰有效的传达与沟通信息,使通过数据表达的内容更容易被理解。 那…

数据分析与可视化概述

目录 一、数据分析 二、数据可视化 三、数据分析与可视化常用工具 四、为什么用python进行数据分析与可视化 爬取数据需要 Python 数据分析需要 Python Python 语言简单高效 五、Python 数据分析与可视化常用库 1、Numpy 2、Pandas 3、Matplotlib 4、SciPy 5…

如何实现数据可视化分析?有这个解决方案就够了

在这个数据呈爆炸式增长的时代,每天都有海量数据在产生。如何通过简单的方式实现业务上的分析、计算、交互,并最终呈现出可视化的分析结果,帮助业务人员更好地理解数据的价值,将数据变现,是当前众多企业都需要面对的问…

数据可视化之平台数据分析

一 前言 近年来,随着网络技术和电子商务的发展,对科学数据分析的研究提出了更高的要求,数据分析技术随之发展起来。我们可以通过数据分析技术,发现大量金融、通信和商业数据中隐含的规律,从而为决策提供依据。这已成为…

数据可视化分析工具如何在国内弯道超车,迅速崛起?

什么是数据可视化 数据可视化:Data Visualization,即视觉传达,为了清晰有效地传递信息,数据可视化通过统计图形、图表、信息图表和其他工具,例如点、线或条对数字数据进行编码,以便在视觉上传达定量信息。…

数据可视化(推荐Tableau、 PowerBI 、FineBI、Echarts、ggplot、PYTHON、R)---数据分析领域的万金油技能

首先,这是一篇扩大知识面的文章,适合收藏起来,在地铁,公交,厕所,睡前,吃饭时看。。。。(耶,恶趣味) 其次,本文不放图,节省大家的阅读…

中国最美的经典古文名篇Top10,它们也是你心中的白月光吗?

迄今为止,汉字是世界上使用时间最长的文字 ,在漫长的历史中,先贤们用汉字组成美妙的文章,至今读来,依然唇角含香,韵味无穷。今天分享10篇最美的古文,文字美,韵律美,意境美…

名帖160 欧阳询 行书《仲尼梦奠帖》

《中国书法名帖目录》 《仲尼梦奠帖》是唐代书法家欧阳询创作的行书作品,现收藏于辽宁省博物馆。此帖以“仲尼梦奠”开头,共78字,叙述孔子梦奠之事, 有佛教无常、报应之意。 《仲尼梦奠帖》书法笔力苍劲古朴,用墨淡而…

java 读取文件在控制台打印、将内容写入到文件

文章目录 1. 读取txt文本文件内容在控制台打印(5种方式)1.1 字节流方式1.1.1 FileInputStream 文件字节输入流1.1.2 BufferedInputStream 缓冲输入字节流 1.2 字符流方式1.2.1 InputStreamReader 转换输入字符流1.2.2 FileReader 便捷字符输入流1.2.3 Bu…

【潜渊症 | 万字解析】模组制作研究讲义

潜渊症mod制作研究讲义 说明 作者:晓涵 Steam昵称:Xiao[CN] ——荧惑守心研究院 最后编辑:2023.04.17 本文共计 17,000 字/词 (含代码),预计阅读时长 1min ~ Infinity 如有建议&错误反馈,或需要mod制作的技术…

Shell编程(三)grep sed awk文本处理三剑客

上一章: Shell编程(二)_做测试的喵酱的博客-CSDN博客 一、ps命令 指令: ps作用: 主要是查看服务器的进程信息选项含义: -e:等价于 ‘-A’ ,表示列出全部的进程 -f:显示全部的列&am…

java 多线程基础 万字详解(通俗易懂)

目录 一、前言 二、定义 1.进程 : 2.线程 : 3.单线程与多线程 : 4.并发与并行 : 三、线程的创建 1.创建线程的两种基本方式 : 1 继承Thread类,并重写run方法 1.5 多线程的执行机制(重要) 2 实现Runnable接口,并重写run方法 2. 两种创建线程方式…

超算对我们的生活有着什么样的影响?

为什么各国都去抢超算的世界第一?因为它对人们的生活有着很大的影响。 一、核武器的成功研发离不开超算 对美国而言,超算的作用首先在研制核武器领域。加利福尼亚的利弗莫尔国家实验室、新墨西哥州的洛斯阿拉莫斯国家实验室、圣地亚国家实验室、橡树岭…

简单博客系统静态页面(html+css+JavaScript+第三方库Jquery mdn)

目录 一、基本构造 1、博客列表页 2、博客详情页 3、登录页 4、博客编辑页 二、文件目录 1、css 文件夹 blog_detail.css blog_edit.css blog_list.css common.css login.css 2、html 文件 blogDetail.html blogEdit.html blogList.html Login.html 3、image…

【创作赢红包】Python第3章 流程控制

这里写目录标题 【本章导读】真值测试比较运算成员运算for循环while循环项目实训1项目实训2项目实训3项目实训4:项目实训5:项目实训6:项目实训7:项目实训8项目实训9:项目实训10:项目实训11:项目实训12&…