0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于LPC2114处理器实现人形机器人控制系统的设计

电子设计 来源:电子产品世界 作者:席东河,申一歌, 2021-04-13 15:42 次阅读

作者:席东河,申一歌,杜娟,高吉珍

1 系统方案设计

人形机器人控制系统包括机器人控制器和机器人遥控器两部分。其中控制器以飞利浦公司ARM7处理器为核心,包含17个舵机控制驱动电路接口、串口通信调试电路、遥控接口、电源等。通过串口下载和传输控制信息。机器人遥控器使用无线模块向机器人控制器发送指令,控制机器人完成规定动作。

2 硬件设计

人形机器人控制器主板由控制核心LPC2114、电源及检测电路、外部晶振、JTAG调试接口、串口模块、遥控模块、舵机接口、LED指示灯等组成,组成框图如图1所示。

基于LPC2114处理器实现人形机器人控制系统的设计

LPC2114基于一个支持实时仿真和跟踪的32位ARM7TDMI-S CPU,并带有128 k字节的高速Flash存储器,非常小的LQFP64封装、极低的功耗、2个32位定时器、4路10位ADC、PWM输出、46个GPIO以及多达9个外部中断使它们特别适用于工业控制、医疗系统、访问控制和电子收款机(POS)等[2]。

较高的功能集成度和强大的端口驱动能力使得机器人控制器主板电路的核心部分非常简洁,基本上实现了单芯片的设计,如图2所示为LPC2114控制器电路和4个舵机的驱动接口电路,其余13个舵机驱类同。

o4YBAGB1S9eAZhEVAAKFeKJNch4279.png

考虑到教育机器人的运动平衡控制,将PCB电路板按图3(a)所示位置布局。该布局除了处理器最小系统,以及必要的指示和控制电路外,最重要的就是17个舵机驱动接口,这里使用弯角3排针连接,保证链接的紧凑和可靠。17个舵机接口分为5组,与下载接口按照左右各9个布局,其中人形机器人的头包含1个舵机接口,负责左右运动,左胳膊包含3个舵机接口,分控肩、肘、腕3个运动自由度,左腿包含4个舵机接口,分控胯的左右/上下、膝盖及脚腕4个自由度。右胳膊与右腿的分控接口和功能与机器人控制器左半部分对称[3]。

o4YBAGB1S96ATFG2AAF7SXzQSWw798.png

最后将控制器与7.2V电芯并列装配到铝合金外壳中,作为机器人的躯体,同时作为运动平衡的重心,良好的布局对机器人的运动至关重要[4]。

考虑到人形机器人的自重和动作力度,设计采用FUTABA系列产品中的S3050大力矩车用、船用竞赛型金属齿轮数字舵机,如图3(b)所示。该舵机自重48.8克,尺寸小,在6V电压下工作,能够达到0.16秒/60度的转速,力矩大小为6.5千克/厘米。

17个舵机按照前述的分组和人体关节结构对称排列布局,头部1个舵机,左右胳膊各3个舵机,分别做为肩、肘、腕关节,左右腿各5个舵机,分别为髋关节的左右运动1个、前后运动1个、膝关节1个、踝关节前后运动1个、左右运动1个,其中2个肩关节舵机和2个髋关节的左右运动的舵机,上下左右对称紧凑安装,作为身体的一部分,所有其他舵机使用铝合金支撑固定成紧凑的人形结构[5]。

3 软件设计

软件设计主要包含软件架构设计、程序流程设计和驱动控制函数的设计。

3.1 软件架构

该人形机器人控制系统原理是:当机器人控制器接收到遥控器发出的指令后,ARM处理器根据指令要求,将要执行的动作参数分解成一系列宽度不等的PWM信号,并通过驱动电路输出到舵机接口,外部舵机根据占空比不同的PWM信号转动相应的角度,多个舵机不同的转动角度构成了不同的机器人瞬时动作,多个动作连贯执行就完成与外部命令相应的响应动作。软件架构如图4所示。本文主要对关键驱动函数进行说明。

o4YBAGB1S-WAFBDrAACS8HQrKd8952.png

3.2 舵机驱动程序设计

驱动脉冲与舵机转动角度如表1所示,不同的高电平时间对应着舵机不同的输出位置。因此可以使用LPC2114内部定时器模拟出17路以20ms为周期、高电平宽度与位置时序对应的PWM波形,来分别驱动控制17个舵机转动的角度,配合完成机器人的相关动作[6]。

o4YBAGB1S-yALgFAAADBAqkpPUg010.png

o4YBAGB1S_iAVtswAACOnXPE0KI359.png

多个舵机的驱动需要依据机器人的姿态数据计算出转动时间,将其时间数据按一定算法进行排序,并在CPU的控制下设置各舵机的运动和停止时间。

3.3 机器人舵机整体驱动函数 ManMoveFrame()设计

函数功能:将输入的各伺服器角度转换为各伺服器的高电平时间,按照17个伺服器高电平时间从短到长依次调用对应伺服器驱动。共18个入口参数,17个是伺服器角度,1个是动画停留时间,转换关系:1度约为0.00814ms。

函数定义:void ManMoveFrame(int16 Head_Angle,int16 Larm1_Angle,… ,,int16 Rleg5_Angle,uint8 t)

{uint8 i,t1; int HeadTime,Larm1Time,Larm2Time, … ,Rleg4Time,Rleg5Time;/*与角度对应的时间变量*/

int MotorTime[17]; /*各舵机驱动脉冲时间数组*/

MotorTime[0]=HeadTime=Head_0+Head_Angle*Angle1;/*头部驱动脉冲时间*/

/*MotorTime[1]至MotorTime[16]略;*/

qsort(MotorTime,17,sizeof(int),Compare); /*对MotorTime数组快排序,使其值从小到大重排*/ …

for(i=0;i机器人姿态数据输入驱动函数ManMoveKeyframeData()设计

机器人动作的关键姿态是由各舵机转动位置决定的,需要参照机器人的体态对17个舵机的自由度关系数据进行设置,驱动函数将如表2所示设置的参数转换为驱动信号,控制17个舵机的转动,从而完成机器人行走的动作。表格空白的地方默认数据为0。

o4YBAGB1TACAZZaeAABx-OpZmTo846.png

函数功能:初始化各伺服器角度/时间数组,将机器人每姿态动作的各舵机角度数据输入给各伺服器数组。共19个入口参数:1个关键帧号、17个伺服器角度、1个动画停留时间。

函数定义:void ManMoveKeyframeData(uint16 ID,int16 H_Angle, …,int16 RL5_Angle,uint8 t){

ID_Max++;/*动作帧数,全局变量,记录动作帧数,每加入1帧,ID_Max的值就增1*/

H[ID]=H_Angle;/*头的角度*/ … RL5[ID]=RL5_Angle; /*左肩的角度*/

T_Key[ID]=t;/*帧动作完成的时间长度*/ }

3.5 机器人动作控制驱动函数ManMoveKeyframeToFrame()设计

主要功能:把动作幅度较大的姿态关键帧数据结合其下面紧挨的姿态关键帧数据转换为时间均匀的普通帧驱动参数,供整体驱动使用。入口参数:无。出口参数:无。

函数定义:void ManMoveKeyframeToFrame(void)

{uint16 id,h,la1,la2,la3,ra1,ra2,ra3,ll1,ll2,ll3,ll4,ll5,rl1,rl2,rl3,rl4,rl5;uint8 t,k;/*帧号、舵机时间临时变量*/

for(id=0;id机器人程序流程

机器人根据接收到的遥控命令自行判断并完成动作,工作流程如图5所示。因为人形机器人使用电池,工作比较耗电,所以在运动前要先检测工作电压,如果达到工作要求就接着工作,否则不执行动作并报警,工作电压不满足要求会造成机器人因动力不足而摔倒,接收到结束命令就停止运行,不再响应外部所发来的遥控命令,如果完成一个动作就恢复到立正站立状态[7]。

o4YBAGB1TAaAUzenAADyX5TmaBY644.png

需要指出的是,在机器人运动时,程序对其外部的伺服器控制要进行分时分批控制,以减轻处理器功耗压力,达到可靠驱动的目的。

4 结论

按照机器人的运动体态完成运动数据的设计,经过测试,该控制系统可以完成包括前滚翻、后滚翻、俯卧撑在内的多种体操运动。课题组计划进一步封装函数,并设计可视化图形编程界面,以便可以在电脑上更加直观地生成运动数据,积木化编程,降低操作难度。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18251

    浏览量

    222079
  • 控制器
    +关注

    关注

    112

    文章

    15200

    浏览量

    171120
  • 机器人
    +关注

    关注

    206

    文章

    27015

    浏览量

    201361
收藏 人收藏

    评论

    相关推荐

    LPC2106在足球机器人控制中的应用设计

    LPC2106在足球机器人控制中的应用设计足球机器人融合了计算机视觉、模式识别、决策对策、自动控制、无线通信、多智能体合作等多项摘要 技术,
    发表于 03-28 14:03

    为什么人形机器人更讨人喜欢?

    、生活习惯等兼容,可以更多地利用为人专门设计的方方面面,因而在人类世界中更得心应手。谷歌CEO桑达尔·皮查伊 人形机器人集机、电、材料、计算机、传感控制技术等多门学科与技术于一体,
    发表于 05-12 09:55

    基于ARM处理器的吸尘机器人硬件设计

    包括传感模块,电机驱动模块,红外遥控接收模块、LED 指示灯和液晶显示模块。采用ARM Cortex-M3处理器作为机器人控制系统的核心,主要是低成本、小管脚数和低功耗,并且具有极高
    发表于 11-06 16:01

    如何设计智能灭火机器人控制器

    性能与可靠的机械控制性能的同时保证,才能在短时间内准确寻找到火源并灭火回家。在此以ARM9处理器为核心,对基于嵌入式系统的智能灭火机器人进行了设计。本文将从硬件和软件方面讲述智能灭火
    发表于 07-31 06:23

    如何实现移动机器人的设计?

    ,导航技术,计算机技术,人工智能等多个领域,因而对移动机器人控制部分提出很高的要求,特别是视觉传感的出现,要求控制系统不仅存储量大,而且处理
    发表于 11-23 15:08

    机器人控制系统

    1、机器人控制系统控制”的目的是使被控对象产生控制者所期望的行为方式。 .“控制”的基本条件是了解被控对象的特性。 “实质”是对驱动
    发表于 09-13 08:40

    什么是机器人控制系统

    什么是机器人控制系统机器人的运动控制系统包含哪些方面?机器人控制系统的基本功能有哪些?
    发表于 10-11 09:38

    LPC2114设计实现车辆检测系统控制

    控制单元CCU组成,本文采用PHILIPS公司最新推出的ARM7内核微处理器LPC2114设计实现了车辆检测系统控制单元部分,并且和5个L
    发表于 10-13 06:30

    如何用LPC2114的一个引脚输出高低电平控制蜂鸣器间歇鸣叫

    一:系统功能:用LPC2114的一个引脚输出高低电平,控制蜂鸣器间歇鸣叫二:硬件原理( 1)用LPC2114的一个引脚P0. 7控制晶体管Q
    发表于 02-07 07:35

    通过多轴工业机器人来聊聊机器人控制系统以及控制器实现

    机器人控制系统当中。那么今天,我们就通过多轴工业机器人来聊聊机器人控制系统以及控制器
    发表于 02-24 17:05

    请教高手lpc2104和lpc2114外部晶振的接法

    请教高手,lpc2104 和 lpc2114 外部晶振接法。原来我用 LPC2104 做的板子,外部晶振接到 X1 时不可用.后来接到 X2 上时好象可以用,但这与资料上的说法好象有点出入.现在我想换
    发表于 03-09 09:57

    LPC2114替换LPC2104的话,我的程序还需要做哪些变动?

    LPC2114 替换 LPC2104 的话,我的程序还需要做哪些变动 哪些内部专用寄存的地址是否变动还有,我原来设计电路用的是 LPC2104 的次要 JTAG 口,现在换到
    发表于 03-09 10:41

    lpc2114处理器电路图 LPC2114 pdf 封装以及

    lpc2114电路图 LPC2114 pdf
    发表于 12-20 13:27 22次下载

    基于LPC2114的农用种子包衣机嵌入式控制系统设计

    基于LPC2114的农用种子包衣机嵌入式控制系统设计
    发表于 03-28 09:50 23次下载

    实时操作系统μCOS_II在LPC2114上的移植

    实时操作系统μCOS_II在LPC2114上的移植:介绍了实时操作系统!C/ OS- II 的特点和内核结构, 并实现了!C/ OS- II 在Philips 嵌入式
    发表于 01-04 12:24 40次下载