历史上的今天
返回首页

历史上的今天

今天是:2025年12月20日(星期六)

2022年12月20日 | 基于S3C6410的视觉识别类人机器人控制系统设计

2022-12-20 来源:elecfans

针对传统类人机器人在控制系统实时性和视觉识别方面的不足,以S3C6410作为主控芯片,设计了具有视觉识别功能的类人机器人控制系统,通过改进和简化视频识别算法取得了良好的目标识别效果。实验表明,基于本控制系统设计而成的类人机器人实时性好,目标识别准确,通过调整运动路径能够快速找到目标。


智能移动机器人是近年来发展起来的一门综合学科,涉及机械设计、传感检测、人工智能等多方面知识。类人机器人的控制系统分为三个层次:最上层是机器人的策略规划层,利用各种算法实现各部分的功能;中间一层运行各类应用程序的嵌入式实时操作系统;最底层是硬件平台,通过外围接口获得各类数据、信息。


自主机器人利用传感器获取的信息控制机器人的动作。本文根据武术擂台机器人的实际需要,设计了机器人的控制系统,实现摄像头图像采集、处理和舵机控制等功能。


策略规划层中,由于图像信息具有信息丰富、对场景描述完全的特点,主要通过处理摄像头采集的图像信息实现颜色目标定位。这里采用Linux嵌入式操作系统,由于嵌入式系统资源的限制,要求目标识别算法运行效率高,占用内存空间小。硬件平台主要是控制舵机实现机器人的运动控制。


1 系统控制电路与视频识别算法

1.1 机器人整体架构

在武术擂台技术挑战赛中,机器人要采集目标的位置信息。由于I/O、A/D转换的有效检测距离有限,机器人采用摄像头采集场地上的图像信息,根据目标的颜色进行识别、定位。当检测到目标位置以后控制舵机自主运动向目标靠拢,完成自我介绍、抱绣球等动作。所设计的机器人外形如图1所示。

a.jpg?imageView2/2/w/550

从图中可以看出,机器人头部采用摄像头,通过USB接口与主控板进行连接,用于采集图像信息。机器人腰部、腿部、胳膊各关节利用舵机使其具有一定的自由度,用到的舵机为CDS系列数字舵机。它内部有ATmega8芯片,主控板通过串口与ATmega8通信,就可以实现舵机的控制。针对以上要求,同时考虑系统的实时性,采用S3C6410作为主控芯片。实际控制系统总体框图如图2所示。


1.2 舵机控制系统设计

主控板通过串口1完成与舵机之间的数据通信,舵机控制电路的原理图如图3所示。

b.jpg?imageView2/2/w/550

d.jpg?imageView2/2/w/550

2 图像识别算法

摄像头采集到的图像主要作如下处理:首先对数据解码,利用查表法将RGB空间模型数据转化为HSI空间模型,然后采用类间方差法将图像进行二值化,再利用连通域对目标进行标定,最后对图像进行去噪,从而实现目标的识别和定位。图像处理程序流程图如图4所示。

实现颜色空间转换以后就要根据不同的H值对图像进行二值化处理。二值化的实质是一分类问题,即把一幅图像所含有的0~255的二进制像素按照某个阈值划分成两类。如果阈值设得太低,结果会引入过多的背景信息,但太高就会导致目标信息的丢失。类间方差法(Otsu)、最大熵方法(KSW)和直方图平衡法(Balanced Histogram Thresholding,BHT)是目前应用较广的自动阈值计算方法。


这里采用类间方差法,它的核心思路就是通过最大化类间方差来寻找最佳阈值。假设某一阈值T将整个二值图像分为C0(1,…,T)和C1(T,…,255)两类,则两类的出现概率可以用下式计算:

g.jpg?imageView2/2/w/550

如上所述,最佳阈值的判断标准是使得类间方差最大。于是通过遍历每一个灰度值,并计算其划分带来的类间方差,总能找到一个合适的阈值满足条件。由于式(4)计算二阶中心矩计算量较大,考虑到:

接下来的工作就是对图像进行标定,这里所指的标定就是根据二值化后的图像,计算出目标区域的外接矩形位置。在目标构成比较简单的情况下,投影法是效率最高的方法,而当场景中存在多个目标时,多数情况下需要进行连通域计算。拓扑学中把连通性定义为,区域内任意两点之间存在至少一条曲线可以将两者连接。目前的连通域标记方法主要分两类:扫描法和轮廓跟踪法。扫描法的基本思路是逐个检查每个像素的值和连通性,从而获得所有的连通性描述信息,然后根据每点之间的相互关系计算出最后的区域个数和构成关系。基于扫描的连通标记演示如下(以8连通为例):

首先对二值图像进行行扫描得到线段连通标记,如图5所示。然后检查每行之间线段与上一行线段之间的连通关系,并更改标记。


第1行:线段1创建标记A。

第2行:线段2、1之间连通,线段2标记为A;线段3


3 实验与结果分析

将控制卡装到机器人上,控制机器人运动,在运动中摄像头采集图像,并且用方框将目标进行标定。利用上述颜色识别算法对图红色绣球进行标定,得到如图7所示的结果。

k.jpg?imageView2/2/w/550

随着机器人的运动,绣球在图像中的位置发生变化,机器人根据标定结果,就可以得到绣球的位置,根据位置调整自己的运动准确找到绣球。图像采集的速度达到15帧/s,舵机控制准确度达到0.32°,可以圆满完成比赛任务。


结语

本文以S3C6410作为主控芯片,设计了具有视觉识别功能的类人机器人控制系统。改进的颜色识别算法利用查表法、类间方差法、连通域等方法对图像进行处理,取得了良好的视频识别效果。实践证明,由该控制系统的设计方案制作而成的类人机器人,具有良好的自主控制稳定性和较好的视觉识别能力,能够较出色地完成比赛。


推荐阅读

史海拾趣

CTC [Compact Technology Corp.]公司的发展小趣事

为了进一步扩大市场份额,CTC公司开始寻求与其他行业的跨界合作。一次与汽车制造商的洽谈中,CTC公司提出将自身的电子技术应用于汽车制造中,以提升汽车的性能和智能化水平。双方经过深入交流,达成了合作意向。这一跨界合作不仅为CTC公司带来了新的业务领域,也推动了汽车行业的创新发展。

Eagle-Picher公司的发展小趣事

然而,Eagle-Picher的发展并非一帆风顺。1991年9月16日,位于密苏里州乔普林的Eagle-Picher工业公司电子部遭受了一场毁灭性的大火。火灾导致公司的电池生产设备化为灰烬,给公司的业务带来了巨大的打击。然而,Eagle-Picher并没有放弃,而是迅速组织力量进行重建和恢复生产。这一事件虽然给公司带来了短期的困难,但也展现了Eagle-Picher的坚韧和决心。

Advanced Photonix公司的发展小趣事

随着公司实力的不断增强,Advanced Photonix开始积极拓展国际市场。公司通过与海外企业建立合作关系,共同开发新产品和新技术,不断拓宽产品应用领域和市场范围。同时,公司还积极参加国际电子展会和技术交流会议,与全球同行进行深入的交流和合作。这些举措不仅提升了公司在国际市场的知名度和影响力,也为公司的长期发展提供了更多的机遇和挑战。


请注意,这些故事是根据一般情况虚构的,并非基于Advanced Photonix公司的实际发展历史。如果需要更具体、更准确的信息,建议直接查阅该公司的官方资料或相关新闻报道。

Epitex Inc公司的发展小趣事

随着全球环保意识的不断提高,Epitex也积极响应环保号召,将环保理念融入到公司的生产经营中。他们采用环保材料和生产工艺,减少对环境的影响。同时,Epitex还积极参与环保公益活动,推动电子行业的绿色发展。

在可持续发展方面,Epitex也做出了积极努力。他们通过技术创新和产业升级,不断提高资源利用效率和产品附加值。同时,Epitex还注重与供应商和客户的合作,共同推动产业链的可持续发展。

德丰(DEFOND)公司的发展小趣事

德丰电创科技股份有限公司(简称“德丰电创”)自1984年成立以来,从一个东莞的洪梅电器厂逐步发展为一家专业从事开关制造到电子电路模块、机电一体化集成模组等多元化产品的大型港资实业公司。公司凭借多年的产品研发和高端制造经验,以及完善的供应链管理体系,成功在家用电器、电动工具、汽车等多个市场领域占据一席之地。德丰电创的发展历程充满了不断的技术创新和市场扩张,其产品质量和服务得到了全球客户的广泛认可。

广芯电子(BROADCHIP)公司的发展小趣事

台湾德丰股份有限公司(简称“台湾德丰”)自1961年成立以来,一直专注于房屋租售、商业大楼兴建等房地产相关业务。公司在长期的经营过程中,形成了稳健的发展风格和良好的市场口碑。台湾德丰凭借专业的服务团队和丰富的市场经验,成功在竞争激烈的房地产市场中占有一席之地。公司的发展不仅为员工创造了良好的工作环境和福利待遇,也为当地经济的发展做出了积极贡献。

问答坊 | AI 解惑

CRC大全以及CRC16代码,针对单片机优化了的

网站上的算法大都是查512字节表的,对单片机来讲,太浪费空间了。 根据老古网上资料,修改并测试通过以下算法: unsigned int crc_ta[16]={   0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7, 0x8108,0x9129,0xa14a,0x ...…

查看全部问答>

TSB41

老师,我想要4094串行移位寄存器的完整显示程序,因为我感觉我上课记得程序不完整的。…

查看全部问答>

光耦控制双向晶闸管的问题

想用电容降压电路将220V交流转成12V,用单片机通过光耦控制双向晶闸管的导通,在PROTEUS测试时,发现这个光耦控制晶闸管电路存在问题,仿真时报图2所示错误,试着将R28电阻去掉,也还是报错,不知该如何解决?请知道的大侠们不吝赐教!谢谢! 图1 ...…

查看全部问答>

proteus7.1里有没有STM32单片机的芯片模拟

proteus7.1里有没有STM32单片机的芯片模拟…

查看全部问答>

请教老练关于AVR的问题

假如我将AVR熔丝设置成使用外部时钟但不给它提供外部时钟,此时芯片是无法工作的,然后我断开电源,再将芯片接上外部晶振,再上电,芯片是不是能够恢复工作?…

查看全部问答>

单片机语言C51应用实战集锦

很不错的microcontroller应用实战集锦 恩多地project,可以学到不少东西,全部是用C编写的…

查看全部问答>

这么办?

笔记本装系统装死了 Setup is inspecting your computer\'s hardware configuration....... 然后就不动了!!!!!!!!!!!!!!!!! 谁知道这么办啊???…

查看全部问答>

向各位高手学习

请问各位高手,要学习嵌入式系统要学习哪些基础知识?请说具体点,谢谢!…

查看全部问答>

如何下手Timer输入捕获遥控红外信号

各位大侠,尤其是版主,我乃新手,现在想用Timer的输入捕获模式解码红外遥控信号,不知道如何下手啊,望点拨!在线等 MCU:F101 Timer:TIM4 CHANNEL:ch4…

查看全部问答>

PIC C 语言中 _EEPROM_DATA问题

_EEPROM_DATA(10,10,10,10,10,10,10,10) 是EEPROM的初始化 为什么一定要写入八位的数才行呢 我是菜鸟请大家多多帮忙啊…

查看全部问答>