找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 14999|回复: 4
打印 上一主题 下一主题
收起左侧

仿生六足机器人控制系统(D-H数学模型 、程序、硬件原理图)

  [复制链接]
跳转到指定楼层
楼主
全部资料下载:

电路图文件
仿生六足机器人硬件原理图.pdf (127.98 KB, 下载次数: 169)
描述:硬件原理图

源代码  
robot-project.rar (6.48 MB, 下载次数: 138)   
描述:程序


教程
六足机器人-答辩论文.pdf (1.99 MB, 下载次数: 134)
描述:


其他文件
仿生六足机器人 D-H数学模型 P.7-10.pdf (234.1 KB, 下载次数: 108)
描述:D-H数学模型  
                                                            

以下是图片预览:



以下是预览(无图版)

本设计主要研究的是小型仿生六足机器人控制系统的开发,其采用自主设计 的控制器作为硬件平台。控制器主要有微处理器、驱动模块、电源模块、外围扩 展构成。其中驱动模块采用了分时复用的原理,将处理器的 3 路 PWM 信号扩展成
24 路,具有信号质量好、占用处理器资源少的优点。
在软件层上,采用了 D-H 建模、三角算法、六次项轨迹规划等算法来构建机 器人的运动的数学模型。在机器人的运动过程中,首先是由三角算法构建机器人 的运动步态,之后运用六次轨迹规划算法模拟出六足动物的抬腿摆动轨迹,最后
经由运动学的求逆,运算出每个关节的旋转角,进而模拟出六足动物的运动步态。

摘要................................................................................................................................ I
Abstract ........................................................................................................................ II


第 1 章 绪论.................................................................................................................. 1
1.1  机器人的发展史 .............................................. 1
1.2 仿生机器人的发展............................................. 1
1.2  仿生机器人的用途 ............................................ 2
1.3 仿生机器人的运动算法与控制的热点............................. 3
1.4 仿生六足机器人的开发流程..................................... 4
第 2 章 仿生六足机器人的运动学计算...................................................................... 6
2.1 仿生六足机器的机构特点....................................... 6
2.2 机器人的位置运动学........................................... 7
2.3  D-H 参数法的简介............................................. 7
2.4  仿生六足机器人的腿部正运动学计算 ............................ 8
2.6  仿生六足机器人的逆运动学 ................................... 10
第 3 章 仿生六足机器人的运动算法........................................................................ 13
3.1  运动轨迹的主要参数 ......................................... 13
3.2  六次项足迹规划 ............................................. 13
3.3 行走步态设计................................................ 16
3.4 转弯步态设计................................................ 18
3.4.1 原点转弯 .............................................. 18
3.4.2 定点转弯步态设计 ...................................... 19
第 4 章 控制系统设计................................................................................................ 20
4.1  控制系统概述及其要求 ....................................... 21
4.2 舵机原理介绍................................................ 21
4.3 下位机硬件开发.............................................. 22
4.3.1  主处理器的选型........................................ 22
4.3.2 驱动模块设计 .......................................... 23
4.3.3  驱动模块信号测试...................................... 24
4.3.4 电源模块设计 .......................................... 24
4.3.5  下位机软件架构........................................ 25
4.4 上位机软件开发.............................................. 26
4.4.1  上位机软件的主要功能.................................. 26

4.4.3  上位机软件界面........................................ 28
4.5  误差分析 ................................................... 29 结论.............................................................................................................................. 29 参考文献...................................................................................................................... 30 致谢.............................................................................................................................. 31 附录 1 机器人零件工程图 ............................................ 30 附录 2 驱动模块 PCB .................................................................................................. 30 附录 3 控制系统硬件原理图....................................................... 错误!未定义书签。




第1章        绪论



1.1  机器人的发展史



1920 年《Rossum’s Universal Robots》
由 Karel  Capek 写的剧本第一次在人类文学 上出现了机器人概念;随后这个概念引来了 无数人的遐想,同时也造就了众多有关机器
人的小说或是电影;而随着人类科学技术的 不断发展,人们惊讶的发现:遐想不在是遐 想,机器人已经在不知不觉中出现在人们的 生活生产里面[1]。
美国在 1954 年出现第一台可编程的磁 控制器,其是有 Geoge  Devol 开发设计的。 由于采用了示教再现的控制技术,使得其具有了在当时的优秀的可控性能。这标志着现代机器人已经初具雏形,随后该技术 促进了机器人技术的发展,第一台数控机床也紧跟着出现。
1955 年,D-H 建模开始出现在机器人领域,其运用了数学的矩阵变换来描述 机器人的姿态变换运动[2]。并由此推导出机器人运动的变换方程,人们称之为 D-H 参数建模。随着该模型的不断发展,到现在已经成为了机器人建模最为简洁的方 法之一。
随着机器人技术更新的越来越快,机器人开始不再只是局限于工业领域,机 器人开始在一些非工业领域崭露头角,如在一些高危行业,如灾难发生现场、复 杂地貌地区、非人类居住区域等等。
这些有人类不可完成的任务,用机
器人却可以达到很好的效果。如图
1-1 与图 1-2,都是机器人技术的在 非工业领域的具体运用。图 1-1 是 轮式机器人在外星球执行影像、土 壤、气体等资料的收集;图 1-2 是 美国的全地形六足机器人,其可以 在轮式机器人与履带式机器人无法 到达的区域执行任务。


1.2 仿生机器人的发展

图 1-2  美国全地形六足机器人

现代机器人由于一开始是出现在工业领域,其对自然环境的适应力较为底 下,而随着人类的需求的不断的扩大,现代机器人开始模仿自然界的动物的肢体 结构或是行为模式来设计,以便增强机器人的自然环境的适应能力。由于生物的 自然进化经过几亿年的自然选择,其本身就具有极大的研究性,这对现代机器人 的技术的更新起到了重要的作用。
仿生机器人的诞生是多种学科融合的结果,涉及仿生学、人工智能、力学、 传感技术、机构学、微电子学、控制学、信息科学、计算科学等学科知识[3]。仿 生机器人不仅具有传统机器人的特点,也具有生物运动的部分特点,这使其的运 行效率大大增加!
自然界的生物种类有很多,仿生机器人的种类也相对较多,但一般分为两类: 类人型、非人型。在当代的仿生机器人技术的前沿,类人型机器人主要研究的是 仿人型的行走姿态的变换、指关节运动的变化、手臂运动等姿态。非人型仿生机 器人主要研究集中在陆地昆虫、深海鱼类、空中飞行等方面。

1.2  仿生机器人的用途


在自然界存在许多人类无法正常到达或是会对生命产生危险的场合,如矿难 发生地点、月球表面、恐怖组织活动区域等等。为了对这些危险区域进行探测与 研究,通常需要运用机器人来满足人类的需求。而这些区域通常都是凹凸不平、 地势不规则,在人类还没有对仿生机器人进行大规模研究的时候,都是运用轮式 机器人与履带式机器人来进行探测。虽然轮式机器人在平坦的路面上具有很高的 机动性与灵活性,但是在松软的地面上,轮式机器人的适应力却极差。为了改善 机器人在松软地面上的适应力,人们采用了履带式机器人,但履带式机器人在凹 凸不平的路面上其可控性、平稳性仍然很差。尤其是在一些地貌复杂区域上,轮 式机器人与履带式机器人的能耗都将大大的增加,平稳性、可控性能也大大降低。
虽然仿生多足机器人在平稳性与适应性上有明显的优势,但是由于使腿部协 调稳定运动从机械结构设计到控制系统算法都比较复杂,相对于自然界的节肢动 物仿生多足步行机器人的机动性还有很大差距。

随着现代仿生学技术的不断发展与完 善,仿生机器人的用途必然随着人类发展而 越来越广泛,仿生多足机器人已经在多变的 地貌上展现实用价值,与当代科学技术所生 产的常规的机器人相比,仿生多足机器人在 这方面拥有难以超越的实用性与方便性[4]。 由于仿生多足机器人的运动的时候是点接 触,是一系列离散的点,它可以在行走经由 算法处理而选择最佳的路径行走[5];一个很 显著的特点就是仿生多足机器人可以通过 算法主动隔振,通过对机身运动姿态、运动 足迹的解耦,做到机体姿态的相对平稳;由 于是离散的点,仿生多足机器人在不平地面 与松软地面的能耗也相应减少,而且运动速 度较快。正是由于这些特点,仿生多足机器人在战地侦查、行星表面、灾难救援运用的越来越广。
如图 1-3 是美国 iRobot 公司研究院开发的美国大狗,其具有良好的运动性 能,能在复杂的地貌上执行任务。即使受外力干扰,如遭到人类的猛踢、地面打 滑等,它也能经由传感器向中央处理器发送数据,经过运算后,自动校正自己的 姿态,使自身不会跌倒。这些性能保证了美国大狗能在战场上运送物资、执行一 些人类不能执行的任务,具有极强的实用性。

1.3 仿生机器人的运动算法与控制的热点


虽然仿生学在不断完善,但是由于一些基础理论并没有得到有效的解决,当 代的技术并不能很好的仿生出动物的运动性能。但是随着越来越多的研究人员关 注,仿生机器人运动算法与控制发展的越来越好。
多足步行机器人是仿生机器人的一个重要分支,因为其能在复杂的地面上行

为了能自主处理在不同的环境中运动姿态,多足步行机器人必然需要一个步 态控制系统,步态控制系统主要分为力控制与位置控制,都是经由动力学的数学 模型而来。由于采用了动力学的数学模型,多足步行机器人的控制系统能对生物 的运动姿态进行较为真实的仿真。基于运动学的逆运动学的控制算法,能实现分 层次控制。例如将多足机器人分为腿部模型与机体模型,在底层能操纵多足机器 人的每一条腿,在高层次上能实现机体运动姿态的控制。

1.4 仿生六足机器人的开发流程


在本文中主要研究的是仿生六足机器人的控制器开发,其采用了多种先进 技术,有仿生学原理、电子技术、单片机技术、运动控制、数学建模仿真、数据 处理等等。在仿生机器人领域,采用了算法控制的仿生六足机器人,在运动上更 加逼近以真实生物,使得仿生六足机器人的运动更加平稳、顺滑。
在开发过程中,首先运用了三维建模软件,构造机器人的三维实体模型;再 构建数学模型,对仿生六足机器人的运动方式进行了仿真与分析,并采用了六次 项轨迹算法构建仿生六足机器人的运动轨迹;之后采用电子技术、单片机技术等, 将六足机器人的控制模型与控制方式以程序的方式加载在控制器中;最后对控制 模型进行调试与调整。



图 1-4  仿生六足机器人的开发流程



①        数学模型的建立
仿生六足机器人的六条腿的每条腿的结构都是一样且都为三轴串联型结构, 所以只要分析一条腿的数学模型就可以得出仿生六足机器人的腿部的数学模型。 但是如果要构建姿态变换的数学模型,是要构建并联型机器人的数学模型,就不 能单单只分析一条腿,而是要整体进行分析。
②        控制器的功能分析 控制器实际上是包含了微处理器、驱动模块、电源模块、外围模块等等的硬
件。因为处理器的计算结果位数都是有限的,像本中采用的 ARMstm32 芯片, 其运算结果可以精确到小数点后 7 位,基本可以满足运动控制的需求,如果是需 要更高精度的计算,可以采用 DSP 芯片。
③        误差与校准分析 在仿生六足机器人的机械结构装配过程中,是存在着一定的装配误差的。有
时候,运动部件的齿轮的啮合也会造成一定的装配误差。而微处理器的计算结果 由于运算精度的问题,也会产生误差。为了尽量的克服这些装配误差造成的运动 精度的下降,就必须对这些误差进行校准。

本章小结



仿生机器人由于具有自然环境的生物的一些特性,相对于轮式、履带式机器
人,其具有的优势是无可比拟的,如仿生机器人可以运用在自然环境恶劣的情况 下,完成人类无法执行的任务。但是仿生机器人由于其行走的的复杂性,其控制 系统更为复杂。在仿生机器人领域,虽然仍有一些基础理论并没有得到有效的解 决,但相信随着人类技术的发展与需要的不断扩大,相信其会发展的越来越好。





第2章        仿生六足机器人的运动学计算


2.1 仿生六足机器的机构特点





图 2-1  蚂蚁的身体结构图

仿生六足机器是以自然
界的多足生物为原形而建立 起的模型。如图 2-1 是蚂蚁 身体的结构示意。本文中的 仿生六足机器人的研究忽略 了腿部末端的跗节与刺爪, 只研究仿生六足机器人运动 的时候主体结构与基节的转 动角度、基节与股节的转动 角度、股节与胫节的转动角 度,这三个角度。多足生物 末端的跗节、刺爪主要的作

用是抓附,或者是微小动作的操作,而在本文中主要研究的是多足生物的运动姿 态问题,故在此不做详细分析。

仿生六足机器人是由机体和六条腿所组成的,机体与腿部通过运动部件相连 接。六条腿通过一定的布置规则安放在机体上。仿生六足机器人的腿部与三自由 度工业机械手相类似,都是串联型结构。从整体上看,仿生六足机器人是并联型 结构。

2.2 机器人的位置运动学


一个物体在在三维空间可以采用基坐标系与在物体上固连一个坐标系来表 示,基坐标系为已知,基坐标系与物体的固连坐标系关系为已知,这样一个物体 的位置与姿态就可以通过与基坐标系的相对关系来表达。
如果采用矩阵来表达,就是:

n、y、x 通常这三个单位向量互相垂直,在矩阵中,每一个单位向量都有它
们所在的基坐标系中的三个分量表示,其意义是表达着物体的姿态。 px、p y、pz
表达着物体在基坐标系的位置。该矩阵是齐此变换矩阵,最后一行为比例因子。 机器人是一种开环结构。当机器人的关节变量为已知的时候,我们可以通过 正向运动学通过数学推导得出其末端执行器的位姿;当我们只知道机器人的末端
位姿的时候,可以通过逆向运动学的求逆,得出机器人的关节变量。 正如前面的所描述的,固连在物体上的坐标系的原点有三个自由度,我们只
需三条信息就可以将其确定下来。故,坐标系的原点可以采用任意的坐标系来描 述,而机器人的运动则可以通过在坐标系中的运动来描述。常用的坐标系描述有:
①        比卡尔(直角)坐标
②        圆柱坐标
③        球坐标
④        链式(旋转)坐标
在这里我们采用的是链式坐标,在后面的 D-H 参数法建模中,会详细谈论。 其它坐标,在此不做讨论。

2.3  D-H 参数法的简介


仿生六足机器人的运动数学建模采用的是 Denavit 和 Hartenberg 提出来的 标准方法,称为 D-H 模型,D-H 建模方法适用于任何复杂的机器人建模[2]。

通常机器人都是有旋转关节、滑动关节等组成的,而连杆的长度则是根据需 求来制定的即是长度是可以任意的。在构建机器人的数学模型时,首先要做的就 是固连一个参考的坐标系,然后就是选择最简便的变换顺序,把坐标从第一个的 关节变换到最后的关节。


图 2-2  D-H 参数法关节标注

2.4  仿生六足机器人的腿部正运动学计算

若一个机器人的结构是 由很多个的关节与连杆组 成,且依次连接的三个关节 能在坐标系中通过变换互相 转换;可将第一个关节为关 节 n,依次类推为关节 n+1、 关节 n+2,同时称在 n 与 n+1 之间的关节为连杆 n,依照 顺序为连杆 n+1、连杆 n+2。 至于矩阵变换,将在仿生六 足机器人的腿部正逆运动学 计算详细讲解[2]。




图 2-3  腿部简化模型

法则确定 Z 轴的方向。在关节 1 处的 Z
轴为 Z 0 ,依次类推。
在确立了 Z 轴后,继续建立 X 轴。 X 0 的方向可以自由设定,但 X 1 的方向 由 Z 0 指向 Z1 的垂线所确立, X 2 也类 似。 X 3 - Z 3 坐标系固连在简化模型尾
端,由于尾端没有接其他关节,故
X 3 - Z 3 坐标系与 X 2 - Z 2 坐标系坐标系

如图 2-3  是仿生六足机
器人的腿部简化模型。由于只 有三自由度,其只有位置,而 没有姿态。
仿生六足机器人的腿部简 化模型有三个关节,确定其旋 转的正方向。
如图 2-4 在确定关节的旋
转方向之后,以每个关节的旋 转轴心为 Z 轴,并以右手旋转



图 2-4  腿部简化模型结构简图

一样,即从 X 2 - Z 2 坐标系平移至 X 3 - Z 3 坐标系,其姿态不变。建立坐标系后,
将参数导入 D-H 表即表 2-1。


参数说明:
        θ n 为 X n 1 绕 Z n 1 旋转至与 X n 平行的旋转角度。
        α n 为 Z n 1 绕 X n 1 旋转至与 Z n 平行的旋转角度。
        d n 为 Z n 1 与在 Z n 轴上分别做的两条公垂线的距离。
        a n 为 Z n 1 与 Zn 的垂线距离。
变换顺序为:
①        X n 1 绕 Z n 1 旋转至与 X n 平行。
②        X n 1 -Z n 1 平移至 X n -Z n 坐标系。
③        Z n 1 绕 X n 1 旋转至与 Z n 平行。




从变换顺序可得知,每次的坐标系的变换都是按当前坐标系变换,即在最终
变换的时候都是矩阵右乘。从关节 1(即基节,以此关节的坐标系作为基坐标系) 变换到关节 2 得 A 1 ,依次变换到关节 3,可得 A 2 、A 3 。
依据 D-H 表,将参数代入变换矩阵 A 中。


得到每个关节的变换矩阵后,可得到从关节 1 变换到关节 3 的最终变换:



式(2-8)表达的数学意义是:在三个关节的旋转角度为已知的前提下,通 过正向运动学的计算,可以推导出仿生六足机器人的腿部简化模型的尾端位置。

2.6  仿生六足机器人的逆运动学

在上节式(2-8)表达的意义是在知道每个关节的旋转角度后,就可以求得 仿生六足机器人的腿部简化模型的尾端位置。也可以依据两矩阵的关系得到尾端 坐标系的姿态,而建立矩阵的最终目的并不在此,而在于矩阵的逆求解,即逆运 动学解,其意义是在仿生六足机器人的简化模型的尾端的位姿为已知的情况下, 求得每个关节的旋转角度。
在上面的运动方程中,有很多角度是耦合在一起的,这就必须从矩阵中提取 足够的元素来解耦,如 a3S1C2C3   a3S1S2 S3  a2 S1C2   a1S1 。

为使角度解耦,可以采用矩阵


式(2-12)、(2-14)、(2-17)这三个角度的函数关系式表达的数学意义是: 在已知仿生六足机器人的腿部简化模型的尾端位置的前提下,可以通过逆运动学 的计算推导出仿生六足机器人的腿部的关节旋转角度。

本章小结
仿生六足机器人的腿部属于串联型结构,通过对其正逆运动学的求解,可以 求得其关节旋转角与腿部末端姿态的函数关系式。由这些函数关系式,就可以对 仿生六足机器人的腿部运动进行运动控制。



第3章        仿生六足机器人的运动算法


3.1  运动轨迹的主要参数


仿生六足机器人在地面上行走时,依靠的是腿的运动变换来实现的。尤其是 在复杂的地面上,对腿的摆动轨迹有着很高的要求。因此在设计的腿的摆动的时 候,必须考虑几点重要参数:
① 运动轨迹曲线的高宽比[6]。该值可以直接体现出仿生六足机器人的单腿 的运动特性。该值越大,仿生六足机器人的运动能力就越高。但是该值也会影响 仿生六足机器人的运动速度,该值越大,仿生六足机器人的运动速度也会相应变 慢。故,在设计之初就应该考虑一个合适的值,在运动能力与运动速度两者之间 有所收放。
② 运动轨迹曲线的弧长[6]。当弧长的宽度固定时,轨迹曲线越长,则仿生 六足机器人的单腿在空中滞留的时间就越长,相应的仿生六足机器人的运动速度 就会变慢。但是,如果该值过低,会影响仿生六足机器人越过具有一定高度的障 碍物的能力。
③ 运动轨迹曲线的运算复杂程度[6]。当运动轨迹曲线所限制的参数越多, 其的运动轨迹曲线将会加强仿生六足机器人的运动特性,但是与之相对应的是其 运算复杂性会成几何级数增长。运算越复杂,处理器产生的误差也会越大。因此 在选择运动轨迹的步态算法时,要优先考虑中央处理器是否能胜任,产生的误差 是否在可允许范围内。

3.2  六次项足迹规划


在仿生机器人的领域,通常都是将多足机器人的腿部运动末端的从支撑面抬 起再到降落至支撑面的过程叫为摆动相,这一过程中所产生的曲线就是上一节所 说的仿生多足机器人的运动轨迹曲线。从支撑面抬起那个点称为起始坐标,降落 至支撑面的那个点称之为终点坐标。在设计摆动相的时候,不仅仅只是限制其起 始坐标、终点坐标,还要限制其他几个重要参数,如:中点坐标、起始速度、终

度、中点加速度等参数。 在上一节的仿生六足机器人的单腿的摆动设计中,可知:当运动轨迹曲线
所限制的参数越多的时候,其运算复杂程度也会越大。由数学知识可知,越高次 数的多次项所拟合的曲线越精确。而仿生六足机器人的腿部末端的轨迹曲线可以 由下面的多次项来表达:



将约束条件代入(3-1)式中,并解方程就可以得出系数矢量。在文献[3,96-97]
中由于求解方式繁琐且不明朗,不适合实际运用。故在这里采用 MATLAB 高级科 学计算器来求解,代码如下:



3.3 行走步态设计


仿生六足机器人的运动是要协调多条腿来共同完成的,为了维持其在运动时 的稳定性,采用“三角算法”来设计其行走步态[5]。
所谓的“三角算法”即是仿生六足机器人在行走的时候是有三条腿作为支撑 点的,仿生六足机器人的重心稳定在三条腿组成的三角形中,另三条腿处于摆动 状态中。
在仿生六足机器人执行行走、转弯时,每条腿都是分成两部分动作来完成的, 第一部分是抬腿摆动相,第二部分是支撑摩擦相。
仿生六足机器人在行走步态时有三个重要参数:t1 抬腿摆动时间参数、t2 支 撑摩擦时间参数、t3 中继时间参数。其中中继时间参数是包含在在摆动相与支撑
摩擦相的时间参数内。当中继时间参数为 0 时,表达的意义是完成抬腿摆动相后 才进行支撑摩擦相;当中继时间参数大于 0 时,表达的意义是在抬腿摩擦相运行 至 (t1  t3 ) 时,支撑摩擦相就开始进行;当中继时间参数小于 0 时,与中继时间运
动步骤参数大于 0 相反。
通常 t3 时间都设为 0,其用途是增加支撑腿的摩擦力,或是减少仿生六足机
器人行走时完成一个步态的时间,在此只分析 t3 为 0 时的情况。
如图 3-1 至图 3-4 是仿生六足机器人的运动的简图,在这里将每个腿都看出 是一个整体,其关节变化不做分析。将腿分为两组,A 组与 B 组。

图 3-1  仿生六足机器人行走时腿部姿态变换
(a)站立姿态 (b)A 组腿运动 (c)B 组腿运动 (d)A 组腿运动

图 3-1(a)是仿生六足机器人的站未进入行走步态时的站立图,此时的重心位
于坐标中心点.
当仿生六足机器人处于行走步态时,其的腿的摆动顺序可由 A→B,或者是 由 B→A。这里的腿的摆动顺序并不会影响仿生六足机器人的步行的效果,故在
这里只分析 A→B 的摆动顺序,B→A 的分析也与之类似。
图 3-1(b)是仿生六足机器人从站立姿态向行走步态转换是的第一个步态,A 组腿此时都处于抬腿摆动相中,B 组腿为支撑腿。从图中可以看出仿生六足机器 人此时的重心位于由 B 组腿即是支撑腿所组成的三角形中。
图 3-1(c)是当 A 组腿的抬腿摆动相完成,支撑摩擦相开始执行时,B 组腿的 抬腿摆动相也相应开始。在图中我们可以看出随着 A 组腿的支撑摩擦相的变化, 仿生六足机器人的重心都是稳定在由三条腿组成的三角形内,在仿生六足机器人 的原点 Y 轴上变化,其变化幅度与其一个步态的行走距离相关。
图 3-1(d)是与图 3-1(c)的运动效果相似,只是抬支撑摩擦相变为由 B 组执 行,A 组进行抬腿摆动相。即是此时又变换为了图 3-2 所示的运动效果,这样不

断的往复循环,构成了仿生六足机器人的行走步态。从图 3-1(d)中可以看出仿 生六足机器人的重心的变换跟图 3-1(c)是一样的。
当已知行走步态一个步态的行走距离与仿生六足机器人的初始的时候六条 腿相对腿的三维坐标值时,由以上的分析可以得出抬腿摆动相结束后相对于腿部 坐标轴的坐标值,由此可以由六次项规划对轨迹进行求解,再有腿部的数学模型 求解出关节的旋转角度。

3.4 转弯步态设计


3.4.1 原点转弯


所谓的原点转弯,即是仿生六足机器人绕着其自身的中点自转,其与之前 的行走步态相类似,都是由抬腿摆动相、支撑摩擦相组成,但是其轨迹的求解比 行走步态较为复杂。在上一节,已经指出仿生六足机器人的行走、转弯都是两部 分组成的,即抬腿摆动相,支撑摩擦相。当仿生六足机器人由站立姿态向原点转 弯步态变换的时候,若先是 A 组腿先执行抬腿摆动相,其绕原点的旋转的顺序与 优先由 B 组腿执行的顺序刚好相反。



(a)         (b)
图 3-2  仿生六足机器人原点转弯时腿部姿态变换
(a)站立姿态 (b)A 组腿抬腿

如图 3-2(a),为仿生六足机器人的站立姿态,从图中可以看出:在仿生六
足机器人的初始设置中,其六条腿的站立点都是在以仿生六足机器人的中心为原 点的圆中。当仿生六足机器人原点转弯时,其每条腿都是在这个圆上运动的。由 于仿生六足机器人是以点来支撑的,其每个步态的轨迹并不需要如图中为一段圆
弧,在这里拆分成长度为 width 的直线一断断来逼近圆弧,这样可以减少运算量, 在下面的章节分析中,也做类似的处理。
图 3-2(b)为仿生六足机器人由站立姿态向绕原点转弯步态变化时的第一步。

从中可以看出其与行走步态时相类似,不过其轨迹的投影是与 Y 轴成一定角度的 为 3 ,通常在绕原点转弯时,其步态的行走距离是已知的。只要求解出 3 ,在 已知起始点的位置坐标,就可以求解出仿生六足机器人的腿部在抬腿摆动相结束 时所处的位置坐标。
因仿生六足机器人的每条腿在原点转弯时,其运动类似,在这里只分析 A1 腿ɑ的求解。如图 3-2 中 d1 是 A1 腿部末端原点坐标轴上 Y 轴的投影;d2 是 A1 腿部在 Y 轴的投影;d3 是 A1 腿部中点到原点的距
离;width 是绕原点转弯时一个步态的行走距离。 这些参数都是在机构设计与初始化参数设置中已
知的。设 A1 腿末端的初始点的相对于腿部的坐标 轴为 x, y  (因高度在初始与结束后不变,在此忽 略 z )。由坐标变换可得 x0 , y0  相对于原点的坐标 为 x  d 3, y  d 2。r 是原点到 A1 腿部末端的距离,
也是仿生六足机器人在原点转弯步态中腿部末端

图 3-2  A1 腿角度分析

所在点的圆的半径。依图与几何知识可得:


由以上三式可得仿生六足机器人的 A1 腿的抬腿摆动相结束后相对于 A1 腿部 坐标轴的坐标为:x0   width * sin 3, y0  width * cos 3 。由此可以由六次项规划 对轨迹进行求解,再有腿部的数学模型求解出关节的旋转角度。


3.4.2 定点转弯步态设计


在自然界中,生物的转弯姿态除了有绕原点转弯外,还有绕一定点转弯,与 汽车转弯相类似,绕一定点进行一段轨迹为圆弧的运动。其的步态跟上一节的原 点转弯步态有一定的相似性,一个步态也是分为抬腿摆动相、支撑摩擦相,但是 由于绕的点不再是原点,其轨迹点变得更为复杂。
如图 3-3 为仿生六足机器人由站立姿态向绕一定点转弯步态的第一步,从 图中可看出 A1 组的是绕定点 o 在作半径为 r1、r2、r3 的圆弧运动(在仿生六足 机器人的机构设计中,为对称结构,故 r1  r2 )。



图 3-3  A 组腿抬腿

由几何知识可知: width1  r1 。其相对坐标值的求解与上一节是类似的,
width 3         r3
都是由已知的机构参数与初始化坐标参数来求得夹角,再求得相对坐标值。 但是由于是绕定点转弯,其 A3 腿的运动方向与上一节是有所不同,在此因引起 注意!

本章小结
仿生六足机器人的运动过程中,涉及一个六次项方程的求解,通过该六次项 曲线拟合,可以模仿出六足动物运动时的抬腿摆动相。通过对在“三角算法”上 设计出了机器人的在运动时的行走步态、转弯步态等。

4.1  控制系统概述及其要求



仿生六足机器人的控制系统是嵌
入式控制系统。其是下位机软硬件采用 的是 keil MDK 开发环境,主处理器采 用的是 stm32 单片机;其上位机软件是 基于 Visual  Basic 6.0  的开发环境所 开发的采用串口通讯的控制软件。
如图 4-1 是仿生六足机器人控制
系统的架构图,其中的工作原理是:主 处理器负责算法计算,并将处理的结果 发送至驱动模块,驱动模块集成了源,可以直接驱动运动部件即关节按照主处理器的指令进行旋转运动;上位机软 件通过通讯模块与主处理器进行实时的通讯,上位机软件将指令发送至主处理器 后,主处理器会返回数据给上位机软件,并将指令下达给驱动模块、外围器件; 外围可扩展器件是可选择安装的器件,在硬件方案设计的初期已经考虑到了外围 器件的可扩展性,故预留了较多接口,可自行扩展所需要的硬件。
由于仿生六足机器人在运动的时候是 18 个关节协同运作,其控制难度相比 普通的轮式机器人更为复杂。这就对控制系统提出了一定要求,具体为:
①  实时可控性。仿生六足机器人的运动是由 18 个关节协同完成的,其工作 的时候如果指令发送时间有较大的误差的,将会严重影响仿生六足机器人的运动 性能。而且仿生六足机器人运动时,其每个关节的旋转量是有所不同的。故对驱 动模块发送指令有一定的实时可控性的要求。
② 运算速度较快。仿生六足机器人在运动的时候,其轨迹点都是由数学方 程式运算所得,再加载到仿生六足机器人的数学模型中,如果控制系统运算速度 过慢,将会导致仿生六足机器人的运动滞泻。
③ 人机界面的友好性,即是对上位机软件的界面有一定的要求。人机界面 是交互界面,它可以将人类的控制意图直接传送给控制系统,而人类也可以通过 人机界面了解控制系统当前的状态。这就对人机界面提出了一定的要求,其必须 简单明了,不能由于人机界面的过于复杂,而造成控制错误。
④ 外围器件的可扩展性。如图计算机升级一样,控制系统随着研究的不断 深入,也需要升级,这时就必须有一定的接口来满足升级的需求。
4.2 舵机原理介绍



图 4-2  舵机结构

仿生六足机器人运动的的时 候是需要关节进行驱动的,由于 是小型机器人,这里采用目前在 航模上运用较多的舵机来作为运 动关节。舵机具有小巧、驱动力 矩大等优点,很适合小型机器人 的原形机开发。控制系统的驱动 原理是依据舵机而开发,故在此 有必要对舵机的原理做简单介 绍。

如图 4-2 是舵机的结构图,其里面集成了信号接收装置、电机、减速装置等。 常用的舵机的有数字信号与模拟信号之分,模拟舵机的信号要补间断保持,,而 数字舵机只需在改变的时候发送数字信号,且多个舵机可同时联线。在本文中采 用的是改进的数码舵机,其本质仍为模拟舵机(加了自保持信号装置)。在此仅 对模拟舵机做简单的介绍。
舵机的转动角度是由信号接收装置对信号与当前角度的做过对比之后,若与 当前角度值有所不同,就经由直流电机带动减速装置,在减速装置上有一个电位 器(相当于位置传感器),当达到信号预定位置后,电机停止转动。
舵机接受的信号是周期为 20ms 的脉冲调制信号即是 pwm 波,其脉冲宽度多 为 0.5ms-  2.5ms,对应的舵机的转动值为 0 至 180 度。当信号固定为某一个值 后,舵机的转动就会固定在对应的位置,只要外界所加力矩不超过舵机所能承受 的最大转动力矩,其会一直保持该状态,直至信号改变。



图 4-3  舵机 pwm 信号脉宽与转动角度对照表



4.3 下位机硬件开发

4.3.1  主处理器的选型



在上一节的中已经提出了对控制系统的要求的,依照要求选择了意法半导体
的 stm32F103 增强性单片机作为处理器,其是一种高性能、成本低、功耗少的
Cortex-M3 内核的单片机。该系列的单片机是 32 位单片机,其时钟频率达到
72MHz,可超频至 144MHz,其内置 32K 到 128K 的内存,内置多个外设接口,可 进行多种不同的扩展处理[8]。
即使是后期对处理器有更高要求,也可以选择 Cortex-M4 内核的意法半导体 的单片机,这种单片机内部集成了 DSP 算法,运算速度有显著提升,但价格较贵, 由于都是同一公司生产的单片机,对于程序的移植有一定的方便性。


图 4-4  stm32 最小系统供电方案

如图 4-4 是 stm32F100xx 系列最小系统供电方案,其只需外围接几个电容,
加个 3.3V 电源就可以正常工作,其硬件设置简单方便,便于开发[8]。

4.3.2 驱动模块设计


驱动模块在整个硬件设计中,其难度最高。由于要考虑到控制的系统的实时 性、干扰性,又要考虑到对主处理器的端口资源的占用度,这对驱动模块提出了 很高的要求,市面上同类的驱动器基本都是直接利用单片机的端口发送指令,资 源利用效率极低。这里采用创新设计,利用分时复用原理通过外围芯片来扩展信 号的输出。
对于驱动模块,设计了以下两个方案:
①        采用 74HC573 八进制 3 态非反转透明锁存器,stm32 输出 8 路 pwm 信号, 用 3 个管脚分别控制 74HC573 的输出使能端,每 20ms 更新一次数据。可输出 24 路 pwm 信号[9]。
②  采用 74HC595 移位寄存器,stm32 输出 4 路 pwm 信号,用 2 个管脚输出 spi 协议数据,对 3 个 74HC595 输出通道进行选择。每 2.5ms 更新一次数据。可 输出 24 路 pwm 信号。
在实际测试中发现方案一虽然占用 cpu 资源少,但是 8 路 pwm 信号同时输出 会有信号失真的现象发生,且占用管脚较多,不利于后期扩展设计。只能放弃该

方案。
在对舵机的原理分析的时候,发现只要在 20ms 的周期内对舵机发出一个 pwm 信号(最大脉宽为 2.5ms),舵机就能对 pwm  信号进行识别。也就是说对一个舵 机来说其实质的信号范围为 0-2.5ms,剩余的 17.5ms 可以利用高低电平来补足。
基于以上发现,设计了方案二。在实际测试中,该方案表现出色,输出信号 质量高,占 cpu 资源较少,占用管脚少,有利于后期扩展设计。故采用该方案。

4.3.3  驱动模块信号测试


由于舵机的接受信号是 20ms 周期内才有效的,在驱动模块设计完毕后,有 必要对驱动模块的信号输出做一定的测试。
如图 4-5 是驱动模块的信号周期的测试在示波器上的波形图,从图中可以看 出其波形为标准的 pwm 波,波形除了一些外部干扰外,其余皆正常,周期也稳定在 20ms 左右。
如图 4-6  是随机选取一个信号接收点对信号测试的波形图。在该信号点上 stm32 单片机的 pwm 设置参数是:自动重载值为 1000,预置分频值是 180(在主 频为 72MHz 情况下)。在上一节的方案选择中,已经指出采用的是分时复用的原

理,stm32 单片机发送的周期是 1000 *180
72000KMz

= 2.5ms ,经驱动电路处理后扩展出的

信号周期是 20ms。故在做信号测试对比时是截取 2.5ms 的周期。在该信号点上

stm32 发送的 pwm 值是 622,即其占空比为

622  = 0.622 。由示波器上多得数值计
1000

算示波器上的 pwm 的占空比为 1.56 = 0.624 ,可得其误差为 0.2%,信号质量优秀。
2.5


4.3.4 电源模块设计



由于六足机器人的基本关节就有 18 个,而单个舵机的最大供电流需达到
250ma,总共需要 6000ma 电流,电源电流较大。这对电源的效率、稳定性、散热 都提出了要求。故电源模块设计了以下三个方案。
①        直接利用多个二极管直接降压,但是进过测试发现,这样二极管发热量 较大,且不具有限流保护作用。故放弃该方案。
②  LM4600 是小型 DC-DC 大电流供电模块,最大电流可大 10A,其采用  LGA 封装,具有外形尺寸小、输送电流大、速度反应快等优点,尤其是在瞬态电流变 化上具有出色的反应能力。LM4600 由于只有 2.8mm 可以方便的集成在电路板上,
很适合本文中的小型机器人的开发,但是其价格偏高,单个需 100 多 RMB。基于 成本考虑,放弃该方案。




图 4-7  LTM4600 与硬币比较

③        LM 2596  是国内现行使用较多的低成本开关电源,最大能输出 3A 驱动电
流,其内部集成了电源管理芯片,具有良好的线性和负载调节的特点。其对于外 围器件要求相对较低,只需 4 个外围元件就可以搭建成一个开关电源。且其可以 选择标准的电感,这大大简化了硬件设计难度。其封装有 DIP 封装与 SMD 封装, 可以很方便的集成在电路板上。
该器件还可以独立控制电源的关 断,或是由芯片内部的电源管理
芯片控制,当电流过载或是温度 过高时可以自动切断。这些特性 可以大大降低舵机因为电路问题 而导致损坏的可能性。

经过方案比较与成本考虑, 最终选择了 LM2596 开关电压调节

图 4-8  LM2596 的典型应用 5V 输出

器。基于保证舵机的安全性,并没有采用扩流管扩流的设计方式。而是采用 24
个舵机分为 3 组,每组由一个 LM2596 模块独立供电的方式。



图 4-9  下位机软件架构

如图 4-9 是下位机的软件架构图,它的主要工作原理是:
①        由通讯模块接受来自上位机的指令或是硬件输入模块的接受到指令;
②        经由指令处理模块处理后,发送参数给步态规划模块,步态规划模块发 送每一个步态所需参数给六次项轨迹运算模块;
③        六次项轨迹运算出步态所需的三维参数坐标,经由 D-H 模型运算模块运 算后得出每个关节的旋转角;
④        旋转角参数由底层驱动模块加工后以 pwm 波的信号形式发送给舵机; 存储模块工作在开机初始化或是存储数据需要刷新时。在开机初始化的过程
中,将存储芯片预置的参数传入指令模块中;当存储数据需刷新时,指令处理模 块发送指令到存储模块,经由存储芯片的协议将数据写入存储芯片内;
外围扩展模块包含了一些外围器件连接处理器的驱动协议,如 spi、iic 等 协议,当需要扩展外围器件时,只需要调用这个模块就能快速的开发新的功能。



4.4 上位机软件开发


4.4.1  上位机软件的主要功能


由于技术的限制仿生六足机器人并不能完全自主的执行动作,必然需要人类

系统的功能需求分析,设计了如图 4-10 的上位机软件的人机界面交互的功能图。 在这个界面可以对仿生六足机器人的许多参数进行设置,如在步态执行时所需的 步距、时间,在进行转弯步态时所需的转弯半径等等。这些参数在上位机软件的 加载的时候已经设定了初始化的参数值,可以方便的对这些参数进行调整。这个 界面同时也提供实时的控制功能,可以实时的对步态进行转换。




图 4-10  上位机软件功能框图




4.4.2  上位机软件的数据收发


仿生六足机器人的上位机软件是基于 Visual  Basic 开发环境,采用 Basic 语言所开发出来的。Visual  Basic 简称 VB,具有易上手,编程直观等特点。对 于小型程序的开发采用 VB 比采用 VC++具有更快的开发的速度,更小的开发难度。
上位机软件采用 VB 的 MSComm 控件与电脑串口构成软件的通讯接口,MSComm
采用事件驱动模式,当 MSComm 控件的接 受缓冲区接受到数据后,MSComm 控件就会 捕获事件并进行处理,然后有上位机下达 处理指令[10]。
如图 4-11 是仿生六足机器人的上位 机软件的流程图,其中主要利用的就是 VB 的 MSComm 控件来进行数据收发。当下位 机向上位机软件接受缓存区发生数据是,
MSComm 控件就会因该事件而触发,当数据 接收完毕后,有软件进行数据处理,在显

27


图 4-11  上位机软件流程图

示窗口显示处理结果;当由于键盘或是鼠标对上位机软件的参数进行更改后,会 触发数据处理指令,把当前的指令生产数据包格式,通过 MSComm 控件发送缓冲 区发送至下位机。



4.4.3  上位机软件界面



图 4-12  上位机软件界面
如图 4-12 是仿生六足机器人的上位机软件的初设化界面。界面主要分为三 个部分:第一部分是配置界面,该部分主要有串口设置,校准设置组成,这些基 本配置正确后,仿生六足机器人才能正常的接受上位机指令执行动作;第二部分 是仿生六足机器人的控制界面,该部分主要有几个图形按钮组成,采用图形按钮 具有简单明了的特点,使使用者一目了然按键功能;第三部分是显示信息界面, 该界面直接显示上位机软件所接受到下位机的返回的数据,可以明了的了解到下 位机接受了哪些指令。实验室功能是开发者的功能,里面集成了所有仿生六足机 器人的行走参数、步态参数,开发者可以在里面进行参数设置,可以进行运动的 复合,这些可以用来研究或者开发新的功能。




图 4-13  上位机软件的通讯设置界面        图 4-14  上位机软件的校准设置界面



4.5  误差分析


仿生六足机器人的控制系统的设计如上所述,其有硬件、软件共同构成。在 完成这些设计后,与仿生六足机器人的机械结构进行了组装、调试,并进行了设 计测试。经过实验后发现由较大的误差,经过分析有几个原因:机械结构误差、 机械装配不紧密、软件层运算取舍误差、舵机位置传感器不精准。由于是小型机 器人,对误差有较大的容忍范围,故在此采用的是软件层调整方法:在软件层设 置一个调整参数数组,在每次使用机器人后对其在校准状态下进行调整,并将参 数存入存储芯片中,在开机初始化状态中读取参数,并将参数加载到驱动模块中。

本章小结
本章主要研究的是仿生六足机器人的控制系统的设计。控制系统主要是有上 位机软件、下位机软硬件等组成。控制系统可以实时的对步态进行规划,且多种 参数可以设置,达到了设计初期规划的的要求。


结论

本次设计的仿生六足机器人的控制系统,利用了仿生学原理、电子技术、单 片机技术、运动控制、数学建模仿真、数据处理等多种先进技术。实现了设计初 期规划的要求,如能执行直走、横走、定点转弯、原点转弯等基本步态,而且多 种参数可调,如步距、时间、摆动高度等。在上位机软件里还设置了实验室功能, 这个功能可以对仿生六足机器人的参数进行实时的调整和多种步态的复合,为后 期开发新的功能预留了接口。
但是仿生六足机器人的控制系统由于技术上的限制,仍然有缺陷,如行走时 轨迹点跟理论值有一定的差距,造成这种误差的主要原因有几个:机械加工误 差,装配误差,运算误差等。运算误差的来源主要是处理器运算的取舍误差, 由于运算结果并不是一步到位的,在取舍误差的影响下,还会有累计误差。这些 都是仿生六足控制系统需要改进的地方。
随着人类技术的不断的进步,机器人将不再会仅仅局限于工业领域,它将会 在人类的生活中扮演越来越重要的角色。而有仿生学与现代机器人相结合的仿生 机器人也注定会越来越多样化、智能化。


评分

参与人数 1黑币 +2 收起 理由
阿亮666 + 2

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏10 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:166650 发表于 2017-2-25 22:17 | 只看该作者
求解,那个程序怎么打开啊?
回复

使用道具 举报

板凳
ID:255989 发表于 2017-12-7 00:13 | 只看该作者
正在找这家伙呢,刚好是STm32做的,谢谢了。
回复

使用道具 举报

地板
ID:423300 发表于 2018-11-8 21:56 | 只看该作者
需要多少积分下载呢??
回复

使用道具 举报

5#
ID:247778 发表于 2020-3-7 19:35 | 只看该作者
大佬D-H建模,控制算法那块可以出节视频教学吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表