基于线性CCD仿生四足爬坡的设计和实现
2019-12-05黄寅光刘祚时
黄寅光,刘祚时
(江西理工大学 机电工程学院,赣州 341000)
0 引言
机器人技术的提高离不开机器人竞赛活动[1]。国内开展了许多机器人竞赛项目,郑增辉[2]介绍了以Arduino为控制器运输对抗机器人。贺龙豹[3]介绍了以STC12C5A60S2单片机为控制器,电机驱动车轮运动,舵机驱动机械手实现抓取物料功能。本文给出了适用于中国工程机器人暨国际公开赛仿生四足机器人稳定快速爬坡的软硬件设计。
仿生机器人在科研领域内已经成为了研究热点,目前许多国内外高校研究学者们对仿生四足机器人投入研究[4,5]。由于四足机器人的基础理论知识还不够成熟,在速度、平衡性、灵活性和环境的适应性等方面四足机器人的发展空间还很大。想要在复杂环境下灵活平稳的行走,解决机器人在不同角度斜坡上稳定快速的完成爬坡也是其中一个难题。
所谓的仿生四足机器人就是模仿自然界生物的身体结构特征和行走状态的一种机器人[6]。对于仿生四足机器人,四足机器人稳定性和快速性主要取决于爬行步态和软件系统控制[7]。机器人的爬行步态控制可分为连续性行走状态和间歇性行走状态两类[8]。连续性行走速度快但协调性比较差,而间歇性行走速度稍微慢点但稳定性高。本文以STM32F103单片机为核心控制四足机器人爬行步态,采用连续性的爬行方式结合TSL1401线性CCD采用黑线提取算法并对采集的黑色直线进行二值化处理,将获得的四足的方向偏差量和角速度偏差量,通过PD控制协调每条腿之间的角度差和速度差,使机器人稳步、精确、快速的爬行[9]。为了检测控制系统的快速稳定性,将四足机器人放在15°、25°、35°的斜坡阶梯上进行试验测试,在中国工程机器人公开赛中获得一等奖。
1 四足机器人硬件系统设计
狗和马等四足哺乳动物的行走方式在四足机器人方向的研究比较成熟[10]。机器人爬坡必须重心低、步态稳,本文采用类似乌龟的机械结构与四足哺乳动物步态规划相结合的方式来解决问题。四足机器人系统总体框架,如图1所示。四足机器人的硬件组成主要包括:舵机、STM32F103单片机、线性电荷耦合器件(CCD)、传感器模块、电源驱动等,四足机器人的硬件系统结构,如图2所示。
图1 四足机器人系硬件统总体框架图
图2 四足机器人的硬件组成
1.1 线性CCD模块
TSL1401CL线性传感器阵列由一个128x1的光电二级管。它提供了同时集成起始和停止时间的所有像素,像素间有8μm间隔,操作简化内部控制逻辑,只需要1个串行输入端(SI)的信号和时钟CLK。电源电压(VDD)范围3~5.5V。模拟输出(AO)的电压公式:Vout=Vdrk+(Re)(Ee)(tint)Vout是白色状态的模拟输出电压;Vdrk是黑暗条件下的模拟输出电压;Re是对于给定的V/中给出的光的波长(μJ/cm2设备响应);Ee是在μw/cm2的事件辐照;Tint是集成在几秒钟的时间。
1.2 控制器模块
STM32F103使用高性能的ARM®的Cortex™-M3 32位的RISC内核,工作频率为72MHZ,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。所有型号的器件都包含2个12位的ADC、3个通用16位定时器和1个PWM定时器,还包含标准和先进的通信接口:多达2个I2C接口和SPI接口、3个USART接口、一个SUB接口和一个CAN接口。
1.3 电源及稳压模块
LM2596S 电源模块板3A 12/24V转12/5/3.3V。输入电压范围3~40V同,输出电压范围直流1.5~35V。使用了4个该稳压模块分别为控制模块、传感器模块和13个舵机提供5V电压。电源使用2200mAh 11.1v放点倍率:20C的格力航模电池。
1.4 防跌落模块
4个避障传感器模块分别安装在四条腿的外侧,将有效距离调为10cm左右,当未检测遇到障碍物时,红外线反射回来被接收管接收,同时信号输出接口输出数字信号,将信息传送给单片机,使控制器调整脚步方向确保不从道路平台摔下。传感器模块输出端OUT直接与STM32F103单片机IO口PB2连接,采用稳压模块进行5V供电。
1.5 其他模块
舵机模块采用经济实惠的MG995模拟舵机,它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。假设现在舵机稳定在A点,这时候CPU发出一个PWM信号,舵机全速由A点转向B点,在这个过程中需要一段时间,舵机才能运动到B点。保持时间为Tw,当Tw=△T时,系统最连贯,而且舵机运动的最快。舵机特性线,如图3所示。
图3 舵机特性图
2 四足机器人软件系统设计
四足机器人的运动是通过单片机结合传感器模块按照设定的步态智能协调控制每条腿的各个自由度的转动角度、速度、和方向[11]。自由度通过舵机实时控制,舵机控制算法:PID经典控制算法、模糊算法、人工智能算法等。本文采用改进的PID经典控制算法对舵机控制使机器人连续性的爬行步态。软件系统设计理念是精确识别提取黑线为输入量,舵机根据输入量快速稳定准确的输出。系统程序总体控制流程:1)初始化各功能模块控制参数。2)线性CCD模块对道路轨迹进行识别。3)通过传感器模块获取四足机器人的速度,利用PID对舵机进行反馈控制。4)按设计步态结合对舵机的速度和角度的控制,使四足机器人稳定快速的爬行。系统的基本软件结构流程图,如图4所示。
图4 系统的基本软件结构流程图
2.1 步态规划
四足机器人斜面坐标系设定如图5所示,分别从机体坐标系∑α、水平面坐标系∑β、斜面坐标系∑γ分析并且均为右手坐标系。斜面倾斜角为θ,重心(COG)到斜面的竖直高度为h。机体坐标系:∑α原点Gα位于COG,Zα轴垂直于机体向上,Xα轴指向机器人运动前方,Yα轴指向机器人左方。机器人的姿态由绕三个轴的旋转角来决定(ψbR,ψbP,ψbγ)。
图5 坐标系
水平面坐标系∑β:原点Gβ是从COG沿重力方向与和斜面的交点。Zβ轴垂直于水平面向上,Xβ轴为Xα轴在水平面的垂直投影。
斜面坐标系∑γ:原点Gγ与Gβ口重合。∑γ的坐标轴方向是∑β坐标系绕Yβ转-θ,绕Zβ转ψbγ得到。旋转矩阵设为E-jψ,和Ekψbγ。
坐标系间转换矩阵:
上式中,P(P=[0,0,-h]T)是∑α的原点到的原点的向量。旋转矩阵EkψbγEjψbPEkψbR由∑β坐标系绕Zβ转ψbγ,绕Yβ转ψbP,绕Xβ转ψbR得到的。在斜面坐标系∑γ下进行步态规划,然后转换为机体坐标系∑α控制机器人。
在控制器下模糊规划出四足机器人的整体步态,行走流程如下:
MS代表关节点(舵机),K代表转动角度,步伐构建简要过程为:左前脚抬起;左前脚向前移;左前脚放下,右前脚和左后脚向后划,右后脚抬起并向前移;右后脚放下;右前脚抬起;右前脚向前移;右前脚放下,左前脚和右后脚向后划,左后脚抬起并向前移;左后脚放下。单片机接受CCD模块和防跌落模块反馈的信号,动态协调控制每条腿的各个自由度的转动角度、速度、和方向。四足机器人自由度配置图,如图6所示。
2.2 图像识别
图6 四足机器人自由度配置图
四足机器人采用TSL1401线性CCD传感器对赛道黑线信息进行识别,线性CCD包含128个像素点,确定黑线的中心位置,首先通过实验设定阈值大小,然后选择采用从左到右读取图像灰度值,设定原点Li,若|Li-Li+3|大于阈值则重新赋予值Li+3=j,从j开始判断从j+3到该行最末一个点之间的差值大于阈值,则将Li+j/2+2的坐标赋值给黑线的中心位置[12]。对提取的图像进行二值化处理增强抗干扰能力和运算速度。通过上位机软件检验算法是否可以提取黑线。图7(a)为算法提取图像,图7(b)为二值化后的识别图像
图7 CCD采集的路况信息
2.3 PID经典控制算法
线性CCD采集前方一定距离内的黑线,从中提取相关量,用来控制舵机的转向,实现四足机器人的自动循迹。算法具体步骤如下:
1)将前方弯的平缓程度反应设置为变量valid_line(用提取的黑线数量来估定)。
2)把每行采集黑线值与中间值的差作为每行偏移量,提取5行偏移量并求平均值设为整体偏移量eveb_diff,黑线斜率设为D_differen,舵机走直线的控制中间值为Centre。
3)判断前方弯的平缓程度是否在黑线识别有效行范围内,若在有效范围内,则PD给舵机的输入量Steer=Centre+Kp×eveb_diff+Kd×D_different。即在某一小段范围内,得到的黑线位置和对应的舵机PID参照角度处理成一次线性关系。
4)对不同行的参数单独调节,确定Kp值,Kp=A+(4-valid_line)/B+speed/C;A为Kp的基础值,speed表征四足的时刻速度,B、C是速度稍高的时候调试得出合适的值。
5)最终将调试舵机的转向的Kp系数协调配合步态使四足平稳快速爬行。
3 设计结果
设计完成的四足爬坡机器人的实物如图8所示,机器人完全符合比赛规则。应用此机器人参加了中国工程机器人公开赛并获得四足爬坡项目一等奖。
图8 四足机器人实物图
4 结语
本文针“中国工程机器人公开赛”仿生四足机器人爬坡项目设计出了一款满足比赛要求的设计的机器人,提出了四足机器人的整体设计,围绕机器人爬坡要求设计了属于自己的一套行走过程,确定了以STM32F103单片机为核心的四足机器人的总体方案,改进了对腿部关节舵机的控制算法,使系统的鲁棒性增强了,实现了四足机器人稳定快速的爬行。