没有合适的资源?快使用搜索试试~ 我知道了~
基于自学习中枢模式发生器的仿人机器人适应性行走控制.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 179 浏览量
2023-02-23
20:17:57
上传
评论
收藏 728KB DOCX 举报
温馨提示
试读
26页
基于自学习中枢模式发生器的仿人机器人适应性行走控制.docx
资源推荐
资源详情
资源评论
仿人机器人具有双手、双足、躯干等人类外形特征, 无需改造就能适应人类日常环境
和使用工具, 更容易成为辅助人类生活、工作和完成危险作业的帮手, 因此可认为是下一代
服务机器人最典型、最友好的本体特征. 行走控制是仿人机器人的基础科学问题, 但仿人机
器人自由度多、传感器多, 是一个不稳定的非线性强耦合动力学系统, 行走的自然性、环境
适应性、突发环境变化时的平衡控制是长期困扰仿人机器人发展和应用的难题. 目前, 行走
控制方法主要基于编程作业机制, 使得仿人机器人的本体特性不能得到充分的发挥
[1]
.普遍
采用的基于零力矩点(Zero moment point, ZMP)的步行控制方法
[2-7]
, 允许机器人按照预先设
计的轨迹行走并保持平衡, 但是由于预先设计的轨迹是固定的, 一旦地形发生变化, 则机器
人无法完成行走任务. 对于机器人的环境适应性行走控制, 需要具有自适应产生轨迹的能
力.
改变传统的思维模式, 研究和抽象生物的行走机理并加以模仿, 可能是突破机器人行
走控制瓶颈的有效途径. 该思想也引起相关学者的广泛关注, 其中, 比较著名的方法是基于
中枢模式发生器(Central pattern generator, CPG)的生物诱导的机器人行走控制方法
[8-13]
. 由于
其突出的适应性优势已经广泛应用在机器人运动控制中, 特别是在游泳、爬行、多足机器
人的运动控制中取得了成功实验效果
[14-21]
. 然而目前存在的 CPG 模型基本只能产生正弦或
类似正弦的输出, 如 Hopf 模型
[22-23]
、Kuramoto 模型
[24-25]
等. 即使存在能够在一定程度上调
整输出波形形状的模型, 如 Matsuoka 模型
[26-28]
, 但是模型参数与输出波形的形状之间没有
明确的对应关系, 只能通过试凑法不断地尝试. 并且只能对输出进行简单调整, 无法准确模
拟某一特定形状.在 Righetti 等
[29-30]
的工作启发下, 我们提出了一种基于快速傅里叶变换的自
学习 CPG (Self-learning CPG, SL-CPG)模型. 提出的模型可以学习周期性任意形状输入信号,
解决了以往 CPG 模型输出上的局限性.自学习 CPG 模型可以通过调整参数在线平稳调整其
输出频率和幅值, 为引入传感器信号提供了便利.
另一方面, 如何将 CPG 模型应用于机器人的节律运动控制是该研究的另一难点问题.
目前 CPG 机器人生物诱导控制方法应用较多的是关节空间控制法. 通常将一个 CPG 单元
分配给一个自由度, 优化 CPG 拓扑网络, 生成多维协调信号, 直接控制关节运动实现运动
控制. 关节空间方法在爬行、游泳、多足等机器人上取得了突出的研究成果. 但是仿人机器
人自由度多、结构复杂, 如果直接将 CPG 分配到机器人关节空间, 利用 CPG 之间的相互耦
合组成 CPG 网络, 网络庞大, 参数众多. 一些学者将 CPG 和进化算法结合来实现仿人机器
人的行走控制
[31-34]
, 参数的进化是 CPG 产生满足要求控制信号的关键, 但参数和 CPG 网络
的输出轨迹的关系并不直观. 部分学者探索在机器人的工作空间来有效利用 CPG 的适应性
[35-41]
, 取得了不错的实验效果.
基于学者们的前期研究, 我们提出了生物诱导的仿人机器人工作空间行走模型. 本文
中, 我们采用自学习 CPG 模型在线生成仿人机器人质心和脚掌轨迹. 分别利用两组 SL-
CPG, 通过对示例轨迹的训练学习, 形成可以在线调制的轨迹生成器. 通过传感器测得机器
人自身姿态信息作为轨迹发生器的反馈输入, 因此可以根据具体的地面环境适应性调节输
出轨迹. 机器人的行走速度、腿的支撑段和摆动段的时间、迈步跨度和抬腿高度等可以实
时地调整, 这是实现环境适应性行走的重要前提条件. 基于工作空间的方法大大简化了
CPG 网络和参数整定, 不需要事先获得地形条件信息, 也不依赖于地形测量的距离传感器
信息. 仿人机器人坡面环境适应性行走实验验证了控制系统的有效性.
1. 自学习 CPG 模型
自学习 CPG 模型采用分层式设计: 底层为记忆单元, 高层为协调单元. 记忆单元负责
学习关节的参考控制信号, 协调单元负责调整各关节的相位关系并完成步态控制. 该模型与
其他模型的主要区别在于把相位同步和关节的运动模式控制分离开来.将相位振荡器模型
(如 Kuramoto 模型)作为新模型的协调单元, 仅用来产生相位同步的信息. 而把关节的运动
模式控制作为记忆单元单独进行设计. 产生的关节控制信号不仅可以保证相位锁定还能实
现各种关节运动模式. 而记忆单元采用傅里叶级数的思想, 用有限次的谐波去逼近一个周期
函数, 学习过程采用 Hebbian 学习方法, 可以在线学习任意输入, 并能够把学到的信息储存
起来, 通过协调单元的调节作用, 产生合适的输出.
1.1 自学习 CPG 原理
任意一个周期函数都可以按傅里叶级数展开为
$$ \begin{align} y(t) = a + \sum\limits_{n = 1}^\infty {{b_n}} \cos \left( {n\omega t + {\phi _n}} \right) \end{align} $$
(1)
其中, $ a $是常数项, $ \omega $是基波的角速度. $ a $和$ \omega $很容易计算得到.去
掉直流分量整理为
$$ \begin{align} y'(t) = &\ y(t) - a = \\&\ \sum\limits_{n = 1}^\infty {{b_n}} \cos \left( {n\omega t + {\phi _n}} \right)\approx \\&\ \sum\limits_{n =
1}^i {{b_n}} \cos \left( {n\omega t + {\phi _n}} \right) \end{align} $$
(2)
其中, $ i $是整数, $ i \ge {\rm{1}} $.因此$ b_n $和$ \phi _n $如果确定, 那么前$ i $个谐
波和就可以用来近似$ y' $.
自学习 CPG 的基本思想如图 1 所示. 每个圆代表具有自学习能力的谐波. $ y' $代表需
要学习的示例轨迹, $ P $代表系统的输出, $ F $是$ y' $与$ P $的差值. 随着学习训练的进行,
$ P $将逐渐趋向于$ y' $, $ F $趋向于 0, 由于忽略了高次谐波, $ F $最终不会为 0.但是如果
采用足够多的谐波, $ F $将足够小, 可以近似于 0, 此时对系统的影响可以忽略不计.这也就
意味着系统的输入和反馈可以切断, 系统的输入为 0, 学习过程停止, 系统变为一个自治的
系统, 系统的输出$ P $虽然和$ y' $有轻微变化, 但非常接近$ y' $.基于此, CPG 模型可以学
习和生成任意周期性信号.
图 1 自学习 CPG 模型学习基本过程
Fig. 1 Basic learning process of SL-CPG model
下载: 全尺寸图片 幻灯片
1.2 CPG 模型数学描述
1.2.1 Hopf 振荡器模型
Hopf 振荡器易于独立调节波形的幅值和频率, 因此本文采用 Hopf 振荡器设计自学习
CPG 模型, Hopf 振荡器描述如下:
$$ \begin{align} & \dot x = \left( {\mu - {r^2}} \right)x - \omega y\\[0.5mm] &\dot y = \left( {\mu - {r^2}} \right)y + \omega x \end{align} $$
(3)
其中, $ r = \sqrt {{x^2} + {y^2}} $, $ \mu > 0 $, $ \omega > 0 $, $ \mu $和$ \omega $分别
控制幅值和频率.
1.2.2 幅值学习
在 Hopf 振荡器模型中加入一个扰动项$ \varepsilon F $, 则式(3)变为
$$ \begin{align} &\dot x = \left( {\mu - {r^2}} \right)x - \omega y+\varepsilon F\\[0.5mm] &\dot y = \left( {\mu - {r^2}} \right)y+\omega x
\end{align} $$
(4)
其中, $ F = P - {y'} $, $ \varepsilon $为常数.进行变量替换, 令$ x = $ $ r\cos \left(t \right)
$和$ x = r\sin \left(t \right) $, 式(4)变为
$$ \begin{align} &\dot r = \left( {\mu - {r^2}} \right)r+\varepsilon F\cos \left( \phi \right)\\[0.5mm] & \dot \phi = \omega - \dfrac{\varepsilon }{r}F\sin
\left( \phi \right) \end{align} $$
(5)
观察式(2), 需要确定的变量就是幅值$ a $和相角$ n \omega t+\phi _n $.而在式(5)中,
$ \mu $控制幅值, $ \phi $是极坐标系下极角变量, 相角可以直接通过$ \phi $得到.对于如何
得到$ \mu $, 我们借助于 Hebbian 学习, 设计了一个新的变量$ \alpha $来取代$ \mu $, 使得
$ \alpha $也变成一个动态项, 来学习输入信号的幅值, 如式(6)所示.
$$ \begin{align} \label{equ:e6} & {{\dot r}_n} = \left( {{\alpha _n} - r_n^2} \right){r_n} + \varepsilon F\cos \left( {{\phi _n}} \right)\\[1.5mm] & {{\dot
\phi }_n} = n\omega - \dfrac{\varepsilon } {{{r_n}}}F\sin \left( {{\phi _n}} \right) \end{align} $$
$$ \begin{align} & {{\dot \alpha }_n} = \eta {r_n}F\cos \left( {{\phi _n}} \right) \end{align} $$
(6)
其中, $ \eta $是学习率, $ \omega $是基波角速度, 可以通过对输出信号$ y' $进行快速
傅里叶变换得到, $ n $代表第$ n $次谐波.最终采用式(6)完成对周期性信号$ y' $的学习, 系
统的输出如下:
$$ \begin{align} P = \sum \limits_{n = 1}^i {r_n}\cos {\phi _n} \end{align} $$
(7)
1.2.3 保持模型内相位同步
经过上面的步骤, 已经得到了一个能够学习任意周期波形的模型, 但这只是一个最基
本的模型, 要实际应用还需要进一步改进. 主要的问题在于: 无法调整该模型输出波形的相
位. 我们不仅要控制一个关节, 而是要同时控制多个关节并协调它们之间的相位使之满足一
定的步态. 因此, 如果不能调整任一输出的相位, 模型间是不能协调工作的, 也就不能用来
控制行走. 所以, 单个模型必须能够根据上一层的控制信号改变输出波形的相位.
根据设计的模型, 每个输入都是由一组谐波叠加进行逼近的, 当学习结束时, 这组谐波
之间其实也形成了一定的相位关系. 如果在上层控制信号发出改变输出波形相位的命令后,
这个相位关系还能够一直保持, 那么就能保证调整相位后, 输出波形的形状不变. 因此, 首
先要记录这个学习到的相位关系, 另外, 还要能够保持这个相位关系.
定义$ {\theta _n} = {\phi _n} - n{\phi _1} $, $ {\theta _n} $表示学习完成以后第$ n $次
谐波与基波之间的相位差.当$ F $设置为 0 之后, $ \theta _n $将不再发生变化.采用 Kuramoto
模型的方法, 此时学习结束后的模型为
$$ \begin{align} & {{\dot r}_n} = \left( {{\alpha _n} - r_n^2} \right){r_n}\\ & {{\dot \phi }_n} = n\omega - \lambda \sin \left( { - n{\phi _1} - {\theta
_n} + {\phi _n}} \right) \end{align} $$
(8)
当有高层信号使得基波相位发生变化时, 其他谐波相位也会立刻跟随基波相位发生变
化, 最终保持之前的相位关系. 因此叠加之后的波形除了相位产生了平移, 波形形状保持不
变.
1.2.4 保持模型间相位同步
通过加入 Kuramoto 项, 保持了谐波与基波间的相位差, 当基波相位发生变化时, 各次
谐波的相位能进行跟随, 因此保证了模型能够输出正确的波形. 为了保持各自学习 CPG 之
间的相位差, 也就是各模型间的相位差, 只需要另外加入 Kuramoto 项, 使相互有连接关系
的模型基波之间保持一定的相位差.
1.3 自学习 CPG 的参数调制
当自学习 CPG 模型完成对示例信号的训练学习后, 模型成为一个自治系统. 在式(8),
$ \alpha _n $和$ \omega $分别影响 CPG 输出的幅值和频率.引入幅值调节系数$ k_ \alpha $,
频率调节系数$ k_ \omega $和直流分量调节系数$ k_ a $如式(9)所示, 可以分别独立调节幅
值和频率分别为示例轨迹的$ k_ \alpha $和$ k_ \omega $倍, 这有利于自学习 CPG 根据不同
控制需求产生适应性的轨迹.
$$ \begin{align} & {{\dot r}_n} = \left( {{k_\alpha }^2{\alpha _n} - r_n^2} \right){r_n}\\ & {{\dot \phi }_n} = n{k_\omega }\omega - \lambda \sin
\left( { - n{\phi _1} - {\theta _n} + {\phi _n}} \right)\\ & P = \sum \limits_{n = 1}^i \cos {\phi _n}+k_a \end{align} $$
(9)
图 2 表示自学习 CPG 模型对一个示例轨迹的学习情况, 其中虚线代表示例轨迹, 实线
代表自学习 CPG 模型的输出.当为$ t < 4 $ s 时为模型学习阶段, 当$ t = 4 $ s 时, 模型学习
完成, 取消示例轨迹的输入, 此时自学习 CPG 仍然能够按照示例轨迹的形状继续生成.
图 2 自学习 CPG 学习结果
Fig. 2 The learning results of SL-CPG
下载: 全尺寸图片 幻灯片
剩余25页未读,继续阅读
资源评论
罗伯特之技术屋
- 粉丝: 3749
- 资源: 1万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功