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

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

3天内不再提示

基于S3C2410芯片和μC/OS-Ⅱ实现智能机器人控制系统的应用方案

电子设计 来源:电子技术应用 作者:郝卫东,陈亮,曹德 2021-04-11 10:24 次阅读

近年来,机器人技术的应用开始从制造业向非制造领域扩展,如宇宙探索、海底探查、管道铺设和检修、医疗、军事、服务、娱乐等,基于非结构环境、极限环境的先进机器人技术及应用研究已成为机器人技术研究和发展的主要方向。同时,随着嵌入式处理器的高度发展,嵌入式系统在体积、价格、功耗、性能、稳定性等方面表现出明显的优势。如果将嵌入式系统很好地与机器人技术融合,前景不可估量,因此,研究在嵌入式条件下的机器人技术也更有现实意义。

本设计将嵌入式技术应用于机器人系统,采用基于ARM920T核的S3C2410芯片作为主控CPU,使用实时嵌入式操作系统μC/OS-Ⅱ作为操作系统,并集成必要的中间件μC/GUI和相应的驱动程序与应用程序,构建成一个完整的智能移动机器人系统,完成周围环境的图像、声音等信息的采集,实现机器人的越障等功能。系统具有广阔的发展空间和应用前景,将来可用于在恶劣条件下的军事侦察攻击及反恐防爆等领域。

1 智能机器人系统机械平台的搭建

对国内外移动机器人及仿生机器人的研究发现,智能移动机器人系统机械机构大致分为三类,分别为轮式、履带式和腿式,这三种机械模型各有优缺点。其中,轮式移动机器人以其地面适应性强、运行可靠和控制方便而成为移动机器人首要的选择方案,也是本文所介绍机器人采用的结构。

该机器人由前部机构、主体机构、侧向机构、后部机构四部分组成。系统共配有6个车轮,每个直径均为100 mm,均为主动轮。其中,前后轮上各安装有两个电机,一个电机驱动转向,另一个驱动机器人的前进后退;其余四个车轮分布在主体的两侧,每个轮上各有一个电机驱动前进后退。

机器人前部为一四杆机构,使前轮能够在一定范围内调节其高度,主要功能是在机器人前部遇障碍时,前向连杆机构随车轮上抬,而遇到下凹障碍时前车轮先下降着地,以减小震动,提高整机平稳性。在主体的左右两侧,分别配置了平行四边形侧向被动适应机构,该平行四边形机构与主体之间通过铰链与其相连接,是小车行进的主要动力来源。利用两侧平行四边形可任意角度变形的特点,实现自适应各种障碍路面的效果。改变平行四边形机构的角度,可使左右两侧车轮充分与地面接触,使机器人的6个轮子受力尽量均匀,加强机器人对不同路面的适应能力,更加平稳地越过障碍,并且更好地保证整车的平衡性。主体机构主要起到支撑与连接机器人各个部分的作用,同时,整个机器人的控制系统就安装在主体之中。后部机构与主体刚性连接,配备有电机驱动车轮,主要起支撑作用,并配合前轮实现转向。

2 智能机器人控制系统硬件结构设计

2.1 控制系统总体硬件结构

智能机器人控制系统的硬件系统方案设计如图1所示。远程监控端由台式PC主机通过RS232网络接口连接无线收发模块,完成图像、语音的收集和显示播放再现,监视现场机器人的周围环境,必要时可以通过无线收发模块发送控制命令,完成控制任务。由于研制的进度,本部分即虚线框内的功能正在开发,是今后研究的重点;现场机器人控制端由核心控制板模块、视频采集模块、语音采集模块、人机交互模块、程序下载模块、电机驱动模块、电源模块、无线收发模块等组成。

基于S3C2410芯片和μC/OS-Ⅱ实现智能机器人控制系统的应用方案

2.2 语音视频采集模块

因为机器人需要收集周围环境的信息,监听周围的情况,提供与图像信息同步的语音信息,以便控制人员准确地掌握周围所发生的情况,及时做出决策,所以设计了语音采集模块以完成此项功能。本设计采用了Philips公司的UDA1341TS芯片与微处理器S3C2410相连,提供了完整的语音录制和播放功能。S3C2410提供了IIS接口,能够读取IIS总线上的数据,同时也为FIFO数据提供DMA的传输模式,这样能够同时传送和接收数据。在S3C2410处理器中,音频数据的传输可以使用两个DMA通道。如声音播放,先将数据送到内存,然后传到DMA控制器通道2,再通过IIS控制器写入IIS总线并传输给音频芯片,而通道1则主要用于录音功能。

本系统采用基于CMOS图像传感器直接输出数字信号的方案设计视频采集模块。此方案具有模块简单、外围电路少、直接输出数字信号、不用经过中间转换就可以提供进一步的图像处理的诸多特点。本课题选用C3188A摄像头构成视频采集模块。C3188A是1/3″镜头的彩色数字输出的摄像头模块,摄像头芯片采用OmniVision公司的CMOS图像传感器OV7620。C3188A摄像头模块采用数字和模拟信号输出接口,并提供8/16的数据总线宽度,通过I2C串行通信协议,可以对OV7620内部的寄存器进行编程,如修改曝光率、白平衡、窗口大小、饱和度、色调和图像输出格式等。

2.3 电机驱动和电源模块

驱动部分是机器人的重要组成部分,它和电机组成机器人的执行机构,完成机器人行走运动。直流电机具有良好的线性调速特性、简单的控制功能、较高的效率、优异的动态特性,被广泛应用在控制系统中。本系统将采用4片L298N电机驱动芯片驱动8个直流电机,采用PWM调速原理控制直流电机达到控制机器人的速度。

为了消除电机运转对系统核心开发板SBC2410的干扰,从核心开发板的控制引脚输出的信号,经过16路光电耦合器(需4片TLP521-4)进行信号隔离,脉宽调制PWM控制光电耦合器的开关,以达到控制L298N驱动芯片的目的,并驱动电机按照所需的速度运转。

在电源方面,设计的系统电源主要供给核心控制板模块、电机驱动模块、人机交互模块所用的640?鄢480TFT/LCD显示器、视频采集模块、无线收发模块(预留扩展)和语音采集模块。系统最终选用12 V的电瓶供电,可直接给电机驱动芯片和LCD显示器供电。但由于系统模块多,所需电流大,所以在提供12 V转5 V电压时,选择开关电源芯片LM2576作为电压变换核心器件,它能承受最大3 A的电流输出。

3 智能机器人控制系统软件结构设计

机器人控制系统的实时性好坏对于整个机器人系统的性能极其重要,控制系统的实时性越强,机器人处理异常情况的能力越强。由于μC/OS-Ⅱ是一种源代码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统,所以本设计就采用μC/OS-Ⅱ提供多任务支持,再整合人机界面μC/GUI和底层驱动程序及应用程序等构建机器人软件控制系统,实现对整个机器人的实时控制,完成智能控制任务。

3.1 控制系统总体软件结构

软件系统主要由应用软件、内核、系统服务、驱动程序等组成。其构成示意图如图2。

pIYBAGBubBCAUGsqAAA--EBuM2s783.png

图2中硬件平台是指核心控制模块及其外围扩展模块,如视频采集模块、语音采集模块等;驱动程序是指系统对LCD、直流电机、摄像头模块、语音采集模块等程序;内核是指嵌入式操作系统,本系统采用的是μC/OS-Ⅱ操作系统;系统服务是指图形界面μC/GUI和文件系统等;应用程序是指为完成控制系统所规划的任务等程序。

3.2 基于μC/GUI的界面设计

本设计中,在嵌入式GUI方面选择了Micrium公司开发的通用的嵌入式图形用户界面软件μC/GUI,它是μC/OS-Ⅱ的专用GUI,可以实现与μC/OS-Ⅱ实时操作系统的完美结合。使用它可以方便地定制自己的图形用户界面,完成各种应用程序的开发。

中间件μC/GUI界面应用程序向用户提供了丰富的API接口函数,为窗口设计提供了方便。在设计中,为了绘制一幅背景图片,首先使用位图转换工具把bmp格式的位图转换成μC/GUI支持的C文件,供μC/GUI函数调用。然后根据μC/GUI提供的API函数设计系统界面。用到的API函数主要有位图显示函数、窗口创建函数、窗口客户区句柄获取函数、按钮创建函数、文本框创建函数和滑动进度条创建函数等。设计的界面最终在8英寸LCD液晶屏上显示。本系统设计的窗口主要由两个子窗口组成:上方窗口主要用于视频显示,可以通过触摸屏点击开始或结束,视频数据将自动存入规划好的内存图像存储区,以便进一步处理利用,并可选择机器人所处环境的特定算法程序,且运行相应的程序;下方的窗口工具条主要完成机器人现场音频数据的收集、播放及停止采集,录制的音频信息将自动存入规划好的内存音频数据存储区Sound_Buffer中,而播放的音频数据放在内存Play_Buffer中,它们采用的都是内存映射技术。

3.3 用户任务设计

基于μC/OS-Ⅱ的任务管理机制,根据系统的功能要求,划分为6个系统任务,并设置每个任务的优先级,如表1所示。

o4YBAGBubB6AHLxEAAB37wJXngI364.png

(1)Motor_Drive_Task——定时中断节拍进行计时,在任务循环块中,接收图像处理控制算法中形成的电机驱动参数,即Image_Analyze_Task任务中产生的电机驱动参数,更新PWM输出,完成机器人所需运动轨迹姿态的调整,随后挂起自身。

(2)Image_Analyze_Task——获取在内存循环队列中的图像数据,在任务循环块中检测图像信号量。如果没有在一定时期内进行任务调度,则挂起自身;若有则对获取内存循坏队列中的图像数据进行分析处理,得出电机驱动参数并发送该信息至消息队列中,然后释放图像信号量,再挂起自身。

(3)Sound_Record_Task——用于采集、存储机器人周围环境声音信息数据到声音队列中。

(4)Sound_Play_Task——定时从内存声音播放存储处,即Play_Buffer中提取数据放到队列中进行播放。

(5)Image_Collect_Task——建立窗口界面,在任务循坏块中检测图像信号量。如果没有在一定时期内进行任务调度,则挂起自身;如果检测到图像信号量,则采集一幅图像到图像存储循坏队列中,采集完成,再释放图像信号量,挂起自身。

(6)GUI_Update_Task——按照μC/GUI手册规定,当其使用窗口回调机制,建议把它设为最低优先级别的任务,用来更新回调信息,并且该任务必须实现,且要定期调用。

4 试验研究分析

设计并完成装配的机器人的样机如图3所示,其中A为摄像头模块,B为麦克风,C为液晶屏,D为喇叭,E为12 V电瓶。摄像头离地的高度为450 mm,摄像头光轴与水平面角度为60°。

o4YBAGBubCWANb-hAAEPOOWq6iU320.png

4.1 视频图像采集试验

由于本文采用的核心控制板的I/O口资源有限,因此,对图像采集的控制信号线用普通的I/O口,而不是用中断I/O口与其摄像头模块相连,因此只能用软件实时检测I/O的电平状态,决定何时采集开始,何时读数据,何时结束。为了能够采集到图像数据并能分辨出来,必须能够跟踪控制信号的变化状态,如果不对摄像头模块进行降频处理,则由于I/O口电平的变化频率远低于摄像头控制信号的变化频率,将导致I/O口无法跟踪控制信号变化,即将无法判断帧、行、点何时开始与结束这些状态信息。当摄像头的最高频率(点像素频率最高)降到1 MHz左右,系统就能跟踪并完整地采集到图像信息,并进一步处理之后完好地显示出来。采集到的实验数据如表2所示(示波器采用x10档)。

pIYBAGBubC2AGN6XAACKuLnxb0c211.png

从以上的图与表可以清楚地看出:系统的控制信号非常完整和稳定,没有出现毛刺、变形等情况,给检测读取带来了方便。Y0数据信号也很规整,其他数据信号,如Y1~Y7也是如此。Y0的波形图中有些段是低电平,出现的位置不一样,这是因为摄像头移动的时候,环境光发生了变化,引起整个Y数据变化,从Y0数据也可以清楚看出这一点,并且从图像上也能很明显地感到图像在实时移动变化着。

4.2 直线爬坡试验

对于移动机器人来说,在非结构化环境中,最典型的情况就是平地、斜坡与台阶,对其走直线与爬坡的试验如图4所示。

pIYBAGBubDmAAibYAACI_4uKT_E561.png

实验场地是绿色毛毯状物质。机器人上电工作之后,就开始在控制算法下运行电机控制任务,输出控制信号,驱动电机运行,机器人就沿着直线方向以0.17 m/s(理论计算值最高可达0.183 m/s)的速度前进。反复进行10次路径长为5 m的直线行走实验,发现最大偏差为0.25 m,最小偏差为0.08 m,平均偏差为0.184 m。分析其原因,是由于电机的负载能力、启动特性、机械结构、机器人的重心位置及轮子与地面的摩擦阻力等因素所造成的。

在爬坡实验中,主要测试的是机器人单侧爬坡的能力和效果。斜坡的倾斜角度是可调整的。对其进行了9次的爬坡实验,角度从20°~60°的范围变化,发现随着角度每增加,爬坡的难度将变得越来越困难。当在36°左右时,机器人还能够保持整体结构平衡,能够沿着斜坡运动前进并能越过障碍,而在41°左右时就无法前进。这些结果显示,机器人爬坡能力较强,能够翻越比较大的斜坡。但有些地方需要改进,如运动轮子摩擦不够,轮子宽度较窄,后轮驱动力稍有不足,与其相连的机械结构臂刚度不够等。今后需对其进行仿真优化。

4.3 智能巡线试验

机器人的巡线可用于机器人比赛、自动化无人工厂、仓库、服务机器人等领域,因此研究巡线实现过程有一定的现实意义。试验如图5所示。

pIYBAGBubECAAyssAACQfT5RgHE707.png

实验场地是绿色毛毯状物质,其中白线宽度为30 mm。在启动试验平台之前要调整摄像头视角,如果视角太大,则循线精度很难保证,甚至会脱离预期的轨迹。经过试验验证,当摄像头光轴与地面夹角大约为60°左右时,其循线可靠性及精度能够得到很好的保证。

(1)控制算法描述:机器人的动态巡线过程,需要提取并能检测判断机器人相对白线的位置情况,形成控制策略,完成机器人的运动姿态调整。其算法实现流程如图6所示,巡线偏移情况如图7所示。

pIYBAGBubEeAINxPAAD4tEs7lc8101.png

(2)特征匹配:图像匹配技术是数字图像处理领域中的一项重要研究,基本原理就是根据已知模式(模板图),到另一幅图中搜索相匹配的子图像,该过程被称为模板匹配。通常,图像的模板匹配技术可以分成直接基于灰度值的方法以及基于特征提取的方法两大类。

这两种算法共同的缺陷是时间复杂度高,不利于实时操作,特别是在在线检测、机器人视觉伺服等需要从大量视频信号实现数字处理海量图像的匹配场合。由于本课题采用的处理器S3C2410硬件不支持浮点运算,无法采用上述方法识别机器人相对于白线的位置是左偏还是右偏。为此,结合机器人应用环境的特殊情况,对二维图像匹配算法进行了改进与简化,其基本思路和实现过程如下:

①在现场采集一幅图像,如图8(a)所示(理想情况),大小为320×240像素。

pIYBAGBubFyARLCkAACli7IVwug287.png

②把图像分成三个图像带:A0,像素从L0~L1;A1,像素从L2~L3;A2,像素从L4~L5;再把每个带分成左右两半,其像素从中间开始向两边递增,即从p0~p159,并分别给出权值,求其每点的灰度值与相应点权值并求出总和,其表达式为:

Sj=V1*1+V2*2+…+Vi*i+…+Vn*n

(Vi为灰度值,i为权值;0≤n≤159,n为整数;L0≤j≤L1或L2≤j≤L3,j整数)

③用Ai右边区的总和减去Ai左边区的总和的差值,看是否落在误差的允许范围[-δ,δ]之内,即表达式为:

Tm=(Sj右-Sj左)∈[-δ,δ] (m=0、1、2)

④根据Tm值的大小就可以确定机器人的位置是左偏、右偏,或在误差范围之内,随之就能产生机器人的控制策略。

由于本图像识别是特定情况的应用,图像处理数据量少、处理快、巡线稳定、可靠性高,经过现场的实验验证,相对于模板在整个搜索图中搜索匹配效率高,避免了复杂的运算,具有很高的实时性。

实验结果表明,本课题设计的机器人能够很好地实现直线爬坡、巡线行走等功能,并可以实时采集声音和图像信息。在数据处理上,采用ARM9核的S3C2410处理器,数据处理快、实时性强、稳定可靠、效率高。本文所设计的嵌入式智能机器人系统,对研究嵌入式技术和机器人技术有一定的参考意义。该技术也可以应用于机器人比赛、自动化无人工厂、仓库、服务机器人等领域。

责任编辑:gt

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

    关注

    4963

    文章

    18160

    浏览量

    286540
  • 机器人
    +关注

    关注

    206

    文章

    26831

    浏览量

    201032
  • 接口
    +关注

    关注

    33

    文章

    7574

    浏览量

    148207
收藏 人收藏

    评论

    相关推荐

    s3c2410 datasheet 中文数据手册

    s3c2410 datasheet 中文数据手册 s3c2410采用了ARM920T内核,0.18um工艺的CMOS标准宏单元和存储器单元。它的低功耗,精简和出色的全静态设计特别适用于对成本和功耗
    发表于 11-13 12:10

    LCD基础及S3C2410 LCD控制

    LCD基础及S3C2410 LCD控制
    发表于 08-17 20:56

    基于S3C2410控制器的金融税控机的设计与实现

    基于S3C2410控制器的金融税控机的设计与实现
    发表于 08-20 09:26

    s3c2410 触摸屏

    s3c2410 触摸屏资料
    发表于 04-28 01:02

    S3C2410处理器

    S3C2410处理器通过GPD端口连接LED1-4四个灯,试着画出其电路连接图,并变成实现其逐一点亮功能。
    发表于 11-23 21:50

    智能扫地机器人解决方案

    。2. 方案功能(1)手机远程控制。用户可以通过手机微信对扫地机器人进行远程操控。(2)智能语音系统。可以通过语音
    发表于 05-27 13:31

    AD7888与S3C2410的SPI接口及Linux下嵌入式驱动的实现

    应用的集成系统,为了降低整个系统的成本,S3C2410还包括下面的部分:LCD控制器(STN&TFT)、NANDFlash引导装入程序、系统
    发表于 06-19 05:00

    μCOS-Ⅱ在芯片内Flash存储器运行的关键问题分析

    控制系统的开发中,出现了智能化挖掘机轨迹控制系统不按照预先设定好的轨迹运行和嵌入式实时多任务操作系统μC
    发表于 07-24 08:24

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

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

    如何用Allegro对s3c2410的BGA封装布线?

    如何用Allegro对s3c2410的BGA封装布线?
    发表于 04-26 06:49

    什么是机器人控制系统

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

    如何使用树莓派开发智能机器人控制系统

    树莓派和其他机器人控制器有何不同?如何使用树莓派开发智能机器人控制系统
    发表于 12-23 06:55

    基于S3C2410的黄金矿工游戏的设计资料分享

    系统整体描述(1) 系统开发及运行平台① 硬件平台:PC机,S3C2410 ARM9芯片② 软件平台:Linux环境,windows环境(2) 系统
    发表于 12-24 06:20

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

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

    基于S3C2410的电话远程家电智能控制系统

    利用双音多频编解码技术实现了电话远程控制家用电器的智能控制系统。该系统采用S3C2410
    发表于 12-09 02:52 17次下载