中国知网查重 高校在线论文查重入口

立即检测
  • 58 元/篇
    系统说明: 知网职称论文检测AMLC/SMLC是杂志社专用系统,针对投稿论文、评审论文、学校、单位职称论文的学术不端重复率检测系统。
  • 328 元/篇
    系统说明: 知网本科论文检测PMLC是最权威的大学生毕业论文检测系统,含“大学生论文联合对比库”,国内95%以上高校使用。检测结果和学校一致!
  • 498 元/篇
    系统说明: 此系统不支持验证!可用作研究生初稿检测,相比知网VIP5.3缺少“学术论文联合对比库”,检测结果有5%左右的误差!(论文中若参考往届研究生论文,重复率误差会较大)
  • 128 元/篇
    系统说明: 大分解论文检测系统,对于想检测学术不端文献检测系统,而又价格便宜的同学可以选择,限每篇2.9万字符,结果与大学生PMLC、硕博VIP定稿系统有出入!
  • 68 元/篇
    系统说明: 知网论文小分解检测系统,适合中国知网初稿查重,数据库和定稿查重不同。结果与本科PMLC,研究生VIP5.3有出入,限每篇1.4万字符!
  • 3 元/千字
    系统说明: 学术家论文重复率检测系统,支持学位论文、毕业论文、投稿论文、职称评审论文,提供全文对照,word标红报告,性价比超高!
论文写作分析-基于手势识别机械手臂运动控制设计
时间:2021-04-09 13:46:57

  生活的日新月异也伴随着科技的发展,近几年各种样式多元化的机械人慢慢的映入了群众的视野,这都得益于自动化技术的蓬勃发展,机器与人类一样也到了需要互相沟通互相了解的阶段。那么问题是机械人怎样才能像人与人之间沟通交流不会受到更多的阻碍。这个问题是本文研究的重点,即人机是通过什么样的方式进行交互的。近年来,人们都在想方设法的研究机械怎么才能人性化和简单化,大家都在朝着这个方向努力。传递信息的方式有很多种,我们经常发出的声音、蜜蜂采蜜的过程、当然也有我们所谓的肢体语言。而手势是含有庞大信息量的一种人体语言,天生就给人一种亲切、自然、友好的感觉,这些与生俱来的优势在机器与人之间充当着越来越重要的角色。

  在目前人机的交流方式比较机械化不够灵便。即使是借助外部工具数据手套,交互也达不到便捷自然的层次,而且数据手套比较昂贵。计算机视觉系统特别容易受到光线条件和背景环境的影响,所以我们使用传感器对手部信息进行深度处理来避免误差的出现。为实现机器与人的便捷交互,基于手势识别机械手臂的研究就显得意义重大。

  本文使用Leap Motion传感器作为手势采集设备,并且整个系统的核心就是手势对机械臂的控制。在系统中主要是对手部姿势提取,在此状态下,无需借助任何外部工具,对环境也没什么太多的要求。本文最后是对客户端程序和服务器程序的编写,然后通过试验,验证手势识别机械手臂在实际工作中的可行性和可用性。

  1.1课题的背景及研究意义

  随着时间的流逝、时代的发展,工业在现代的细分领域已经获得了快速蓬勃的发展,而人工智能的出现,大大解放了人们的双手,使得人们不会像以前一样任何的作业都要亲历亲为,而在工业发展中机械手臂的作用是尤为显著的。在工业现场常常会有一些危险,那么机械手臂在其中就发挥着巨大的作用,人们也会越来越依赖它。机械手臂相较于人手来讲,它的行动速度更快,精度更高,效率更高,性能更稳定,完全可以代替人工从事一些单一重复性作业,例如喷漆、点焊、装配和搬运等。不止这些,还有更高级的手势识别机械手臂,也就是通过识别人手的动作特征进一步来操作机器,这些在大大小小的行业愈来愈扮演着更加重要且必不可少的角色,例如微电子行业、汽车行业以及核工业领域都有它们的一席之地,而且都发挥着非常大,不可替代的作用。

  到现在人类对深海和外太空领域都充满着好奇与期待,所以也在不断的探索之中,以及在工业领域,尤其是在核工业和生化工业这两方面的迅猛发展,为此人工远程控制机械手臂让其完成所需的操作,因此手势识别机械手臂逐渐成为了热门课题在人工领域方面。

  近期随着自动化技术的发展,机器人技术在生活、工业生产等各个领域得到了广泛的重视和应用,人与机器的交互作用日益增强,传统的机器操作单调、流程繁琐,人与机器的交流效率低下,这就对人机交流提出了新的挑战。哑巴会通过手语完成人与人的交流,在道路交通中有交警手势指挥交通,他们都是摆出规定的手势,大家通过学习了解交警手部动作是想要表达什么意思,进而是利用识别手手部的动作而完成工作。手部动作的展示是一种方便、快捷且自然直观的沟通方式,动作相较于语言更具有视觉效果的冲击,给人更深的印象,使人能够快速记忆,手势识别更能得到人们的关注。以人类为识别对象的视觉视觉可以分为人脸识别和指纹识别,对于机器而言,手势控制相对于表情控制更加准确、简单、也更实用。

  手势识别机械手势之所以发展的如此快速,是因为远程操作机械手臂可以代替人类做一些重复且单一的作业,或者是对人类身体会造成伤害更甚至是人类无法达到的环境下进行作业,特别是在有辐射危害、爆炸危险这些研究方面,具体如在生化研究、远程医疗、战地作业等方面、而在太空、深海等一些缺氧且随时会有生命危险等领域进行探测,手势识别控制机械手臂的研究刚好能够克服这些

  问题。通过人工操作干预机械手臂自己长时间自己单一重复的工作,具有更高的准确性和多功能性,做到了多元化功能更丰富,也极大地提高了其纯粹机械手臂智能操作和其作业效率,人工手部与机械手臂的结合最重要的是对人身安全提供了可靠的保障以及对现代化生产方面有着及其重要的意义。

  如今,非自动化机械臂是机器人技术领域中实践中使用最广泛的机械臂,并且几乎存在于所有行业中,包括工业制造,娱乐服务,医疗、军事等领域,慢慢我相信在我们生活中也会接触到这些来服务我们的日常。而现在我们需要做到的就是让机械手臂更能清晰、快速、准确的接受指令,而手势识别控制机械手臂将会更加方便人类。

  1.2国内外发展现状

  1.2.1国外发展现状

  在上个世纪40年代就开始了机械臂方面的研究,最开始是美国的Argonne&Oak Ridge国家实验室发明的一种简易操作的遥控机械操作手,这是机械手臂历史处的开端,在当时是专门用来理具有放射性的化学物质。

  在国外,Hill和Park在1979年提出了给予视觉反馈的机械手臂眼协调操

  控,是利用机器视觉功能为机械手臂末端控制器的运动提供手部状态和空间位置,用这样的方法构成对机械臂完整的闭环控制,然后根据目标物体具体特征,以此来观察目标并且进行运动跟踪,获得了特征值信息之后就可以求出目标物体的深度信息进行抓取。

  德国探索研究机械臂实在20世纪七十年代后,刚开始主要应用于工业制造的研发,尤其是在焊接、装载和吊装等领域,它被用来提高性能和生产力。日本作为一个不可替代的重要国家,是世界上发展最快、成本最高、覆盖面最广的工业发展中国家。虽然日本的人口数量很少,但它在世界上的工业生产水平排名第一。日本的机械臂行业发展迅速,为全世界的行业提供了坚实的基础。这个体系不能脱离高科技机器人的研究和开发,也不能脱离所有领域对机器人的要求。

  拥有全球最多机械臂的地方也是日本,在汽车制造行业和电子消费制造行业当中所属的技术要求是最为成熟且应用最广的。

  可移动机械臂的快速发展是在21世纪之后,在运输、航天和反恐排爆等方面也有广泛应用。

  1.2.2国内发展现状

  (1)在国内,对机械臂的研究起步都相对较晚。但是最近几年,这些研究都受到了重视,大家也都加入了研究机械臂的大家庭中。夏群峰等人针对工厂流水线上机械臂僵硬和操作误差大等问题,故引入了机器视觉系统,工业机械臂完成工件的搬运通过视觉引导来完成作业。机器人技术的快速发展已经持续了近40年,广泛应用于汽车工业、电子工业、冶金、造船等领域。机器人的广泛普及减轻了人类的工作负担,提高了效率。更重要的是将人们从繁重的工作和危险的工作环境中解放出来。机器人最重要的部分是机械手,机械手能够完成大部分动作。尤其在工业生产中,一个机械手臂就可代替一个人来完成工作。因此,如何对机械手臂的动作进行控制是研究的重点。

  我国最开始的的研究地是哈尔滨工业大学,是计算机系的高材生高文和王双林的杰作,要研究手势识别目标则需要选定它的特征点,我们选取的就是目标边缘的特征值与它与众不同的干扰性差等特点,首先要对链接码进行区分,对不同的多个通道和多阈值滤波进行深度的清理,从中获得能够清楚表达目标物体不变的特征值,最后完成对十几种不同手势的记录和识别。在后来丁国富等人利用手套传输数据,并清楚表达手部姿态的几何关系,然后使用很多不同的角度来描述手部的轮廓,当然还需要通过计算机建立空间模型,在当时就提出了一种新型的手势识别方法,那就是通过BP神经网络来完成。吴江琴等人也提出了一种崭新的手势识别方法,那就是利用隐马尔可夫模型,而他同样是是哈尔滨工业大学的计算机科学与工程系的优秀人才。在这之后又提出了高斯混合模型,相当于对哑巴沟通交流更好的方法就是手语,也就是中国手语识别系统,这套系统的传输途径是通过手套识别输入,精度非常高、训练速度也是屈指可数,在进行试验时它的准确度达到了九十八以上。与此同时清华大学的学者任海兵等人做出了模型参数,是将手部的运动状态信息与人体的肤色信息分析综合之后手势分割,具体的参数是颜色、形状和运动姿态。运用了各种的模型以及高科技技术,主要有动态手势的空间表观、动态时空的规整。

  而在手势识别控制机器人方面的领域,肖南峰在研发中取得了显著的成果,作为华南理工大学的教授提出了仿生技术和特征值获取之后数据的映射,并针对这方面设计实现了仿生机械手的控制系统

  1.3手势识别机械手臂的应用

  手势识别机械手臂在很多行业都有应用,其主要在人类不能或者不能够到达的狭小、危险的环境下进行作业,特别是在生化研究、远程医疗、战地作业等具有空间限制的条件下,太空探索、深海探测等人类随时会发生危险的环境中,对机械手臂进行人工操作的干预,能够极大地提高了作业的准确度以及展示出极高的智能水平。下面介绍几类应用领域:

  1.3.1机器人示教

  机器人示教技术中运用手势识别技术,通过手势指示机器人能够运动,它允许机器人移动和执行机器人指令,以给定的位置作为指令点,将位置信息转化为机器人的运动控制指令。

  1.3.2医疗行业

  将手势识别技术应用到医疗行业。通过手势来控制,让机器人进行人工医疗康复检查,对患者进行康复训练,并对效果进行记录和评价;此外,远程手术控制可由手术机器人手操作。

  1.3.3工业、航空领域应用

  工业安装。特殊情况下,工业装配中通过手势安排手动装配机器人进行工作。

  在航空领域的运用。有效降低空间站宇航员的风险和挑战。在这种情况下,航天员可以通过人工操作代替或帮助航天员完成舱外任务机上的机器人;

  1.4研究内容和章节安排

  1.4.1主要研究内容

  (1)以单片机为核心,设计手势识别机械手臂的应用程序。Arduino开发板是本项目的核心硬件,完成本系统需要对Arduino进行二次开发,Arduino是一款开源电子平台,它具有便捷灵活、方便上手的优点。它的优越性在二次开发过程中是不可替代的。

  (2)设计硬件电路。学习单片机编程语言。通过传感器与APDS-9960模块配合实现对手势的识别以及机械臂运动路径的规划。在进行手势识别过程中,利用手势传感器对机械臂下达指令,使机械臂只对手势指令进行操作。最后实现机械臂对于所有不同手势的识别。

  1.4.2章节安排

  本文通过对单片机传感器、驱动模块等相关知识进行手势识别机械手臂运动控制的设计,设计分为6章进行。

  第1章为绪论,阐述了课题的研究背景意义,概述了手势识别的应用方向,介绍了目前国内外对该课题及相关技术的研究现状,对该课题研究内容和结构的研究。

  第2章为总体规划手势识别机械手臂的原理介绍和设计方案。

  第3章为系统的硬件设计,其中主要包括单片机电路如何连接,光电传感器原理的介绍和电机驱动电路图的展示等主要内容。

  第4章为系统的软件设计,主要介绍的是机械臂控制系统组成。

  第5章为系统的调试,确保机械手臂能识别手势完成作业。

  第6章是对本论文所有知识点的总述,并提出对未来的期许与展望。

  2系统结构设计与硬件选型

  本章讨论了系统的结构设计、设备选型和运动分析。分析了系统的功能需求、手动设备识别机械手和主控板、机械手模块和设备手势识别模块这一系列系统设计。

  2.1系统整体结构设计

  2.1.1功能需求

  在危险环境和人类禁区中工作或者比较单一重复的工作,例如在高温高压的房子,反恐排爆的情况下,在这种情况下,人们的长期的工作行为往往是有害的,需要使用机器,但没有人的操控很难从事准确、独立的工作。

  在本次论文设计中根据手势识别机械手臂运控控制系统,主要用于重复工作或环境危险时的操作。在一定条件下可进行更精确的远距离抓捕作业。因此,本项目的具体功能如下:

  机械手有一定的自由度,铰链部分要有足够的柔性,为了允许多个柔性旋转角度,机械手必须夹紧,有一定的力度,爪必须有足够的摩擦力才能进行钻孔作业。

  运动识别元素必须足够精确,为了获得更高的精度和实时响应,需要捕获子节点,使操作者的手和机械手快速匹配。

  系统应配备视频记录和接收模块、车载摄像机和手动操作说明,及时更新手势,以便实现更精确的功能。

  2.1.2系统整体设计

  系统主要采用手动传感器模块。利用摄像机和红外传感器捕捉操纵人精细的手部动作和运动轨迹,用Leap Motion这一软件分析手动操作和转换,发送的方向舵指令传达给Arduino主控板从而实现机械臂的运动。控制流程图如图2.1所示。

  →↓

  ↓

  ↓

  ↓

  →

  →↓

  图2.1手势识别机械臂的控制流程图

  根据功能的需要,最终确定出具体的设计方案如图2.2所示。

  ↓

  ↓

  ←→

  ↓

  图2.2系统整体设计方案框图

  如表2.1所示,在确定系统的整体设计方案之后,就需要统计系统的具体数据指标。

  机械臂模块重量1.3Kg

  材料硬铝合金

  臂长大臂20cm、小臂15cm

  自由度六个自由度

  抓举力度1Kg

  关节转动范围0°-180°

  手爪张开范围0°-180°

  电池续航时长3h

  表2.1系统具体参数指标

  2.2机械臂结构设计与硬件选型

  2.2.1机械臂结构设计

  本设计是通过手势识别而控制机械臂运动,从而实现人机交互的机械臂。机械手还需要一定的自由度,实现整个机械手的旋转,增降的大小臂的运作、手腕的旋转和爪部的机械张力,然后模拟手的运动。

  关节式机械手运动相对自由灵活,可进行各种旋转、张力、升降等动作。因此,关节机械手更适合系统的使用。

  在机械手的底板上安装一个类似人体肩部关节的转向器,实现机械臂肩部180度的完全水平旋转。在模拟轴运动的四个转向机的顶部,人的手肘,手腕和爪子动作都可以模仿。

  如图2.3所示,这就是手势识别机械臂,机械臂产品结构如图2.4所示。

  图2.3机械臂整体图

  图2.4机械臂产品结构

  图2.3机械臂整体图

  图2.4机械臂产品结构

  2.2.2机械臂的硬件选型

  机,硬铝片有着较强的硬度和较轻的质量,比上臂的连接部分间的是硬铝片,具体厚1.5mm、宽20mm,较方便实惠且价格也较实惠此。

  舵机采用的是金属齿数码舵机(型号为TBS2701),该数码舵机的功能非常多,这其中包括快速响应、高扭矩、精确角度、无振动旋转和安全阀,它还有机会保持摇臂旋转,防止火花塞燃烧造成损失。舵机实物如图2.5所示。

  图2.5舵机实物图

  它具体的特殊性能

  (1)进口齿轮:金属制品,无杂质,更坚硬,精度更高;

  (2)双滚珠轴承;防堵,低噪音;

  (3)金属输出轴:25T输出齿轮外径6MM内径3MM;

  (4)数字舵机:角度精确,反应只需零点几秒,大扭力,双轴承,内阻小,不堵舵、堵转保护功能。

  2.2.3机械臂运动学分析

  在本文设计的系统中,机械臂类型是固定结构,各角度活动自由,分析使用方法为正运动学。手指的位移数值还需要用运动学的方程进行具体计算,求出手指光线在摄影机前位移的方向和光影面积的大小,系统就可控制机械手臂运动的方向与姿势。每个位置对应于六个操纵器特定关节的位置。

  根据设计,六自由机械手,采用坐标参数法,在结构图中设置各关节的坐标系,从而计算出模型的矩阵变换。最后进行运动分析及相关操作。

  当手动识别机械手臂孔系统充电的时侯,机械手立即进入运动起始阶段(底座、大臂、小臂、手腕、手爪在同一条直线上且垂直于地面),在此状态下机械手臂各个关节的角度位置分别为水平90°。这时,机器人开始采集人工驾驶数据的跳跃运动。经过多次实验,可以理解,当操作者的手掌和跳跃运动表面在其上方近20cm处重新组合时,操作者的位置与运动开始时的位置相同。当手开始移动时,操纵器也相应地开始移动。

  根据上述简要说明,该模型基于标准参数:

  (1)底板的坐标系建立在底板的水平面上。要求坐标系在地面上相对静止,起点为机械臂的水平坐标轴,向外和向上垂直。机械手臂相互关联、相互牵制、相互作用,底座、大臂、与手爪方向一致。

  (1)根据标准参数法进行建模后,可以知道它们的六支连杆活动的角度范围都是0°~180°。

  (2)根据得到的参数,连接主变换矩阵,得到一个公式,计算网格将坐标系变换到任意相邻环节之间,就可以得出本机械臂所在空间的坐标系其次变换。

  (3)本设计中机械手臂的机械爪的位置姿态矩阵和基底坐标之间的相互转换。

  用参考坐标系代替机械爪位置矩阵给出的具体参数,得到变换矩阵。将六个不同角度杆的机械臂空间位置矩阵进行变换,计算出机械臂运动的实际结果。因此,最后三个数据值是操纵器坐标系的起点。三维坐标系的尾部应指出机械爪在参考坐标系中的位置是由手腕、小臂和大臂的关节组合决定的。在靠近末端的两个旋转铰链上,可以在不改变机械爪位置的情况下改变机械爪的位置。

  2.3控制模块与通信模块硬件选型

  2.3.1控制模块

  Arduino多功能控制板是基于一个单片机系统,具有多功能和低廉的价格,可开发,因此在大多数管理系统中得到了广泛的应用。本次设计中应用的控制模块就是Arduino控制板,其主控芯片为Atmel Mega328,实物如图所示。

  图2.6控制板与芯片实物图

  表2.1中为Arduino多功能控制板的相关数据,在本设计中Arduino控制板负责控制机械臂。

  控制板Arduino控制板

  主控芯片Atmel Mega328

  开源代码完全开源

  PWM舵机6路接口

  总线舵机2路

  控制方式手柄/手机APP/电脑

  调试方式PC图形化

  代码编程

  脱机运行代码编程

  稳压模块板载稳压

  动作存储无

  拓展接口有

  低压报警支持

  表2.1 Arduinoban6相关参数

  Arduino主要特点为:

  (1)具有串口的切换功能;

  (2)扩展性强;

  (3)有短路保护;

  (4)可接多种类型传感器

  2.3.2通信模块

  手势识别机械手控制使用APDS-9960模块,APDS-9960光学模块,集成的红外LED和用于检测器的接近传感器,以及提供与I2C接口和所有程序兼容的环境亮度传感器。为环境提供用于色彩测量的照明设备,接近无接触手势的检测和识别。借助RGB和手势传感器,您可以控制计算机,整体,机器人,可应用环境光及RGB色彩感应、接近检测、手势检测中。并支持识别手势向上,向下,向左,向右,靠近和远离它们的运动;您还可以显示对象的坐标,对象的大小和对象的亮度,确定约20厘米的距离,快速响应,快速识别,高度了解以及为电池供电的低功耗;串行配置模块的参数(例如,确定距离,灵敏度等)。模块的尺寸最小(宽14.5*16*2.8毫米),可以方便地焊接到焊接线,焊接针或直接连接到PCB上插入高价值的产品中;带部门的模块对于用户来说尤其困难,通过IO识别结果,将输出和串行端口映射,以便输出形式的顺序识别结果,用户不需要太多复杂的传感器感应计算,就可以接受conf寄存器urats,校准,我的音调,XiaoYan,PCB我的音调使其工作繁琐,减少开发时间,显着中断产品开发周期,负担得起的51微控制器,arduino,STM等待开发,串行通信端口兼容的销售最多的微控制器。控制继电器,LED,可控硅等

  手势控制机器人手臂控制电路使用W5500网络模块。该模块是集成到TCP/IP协议栈中的以太网模块,不需要编写用于实现TCP/IP协议的基本以太网代码,它可以为单片系统提供更方便的连接,支持10/100mbps的传输速率,还支持休眠的网络激动。在本项目中,Leap Motion通过转换W5500芯片和WiFi无线发射机,采集由个人计算机处理的运动数据。释放到Arduino控制板上,进而完成手势动作对机械臂的控制。

  2.4本章小结

  本主要介绍了手势识别机械手臂控制系统的结构设计、硬件选型以及运动学分析。并在符合设计要求的基础上,选择性能更加良好的舵机、电机、控制板和无线通信芯片等。

  3系统的硬件设计

  本章节主要介绍了系统硬件的重要组成部分,当机械手臂的外形结构设计完成和控制模块选择完毕后,就进入了核心部分。主控系统芯片、单片机电路的设计以及处理系统,是手势识别机械手臂的成功作业最重要的一部分。

  3.1系统的硬件组成

  系统选择主控芯片为Atmel Mega328,LeapMotion通过无线蓝牙与控制器相互连接进行通讯,传输手势信息;具有六个自由度的机械臂由六个自由度和六个转向机的运动控制,并且在控制器输出处的六个PWM信号分别控制六个转向机的旋转。

  具有六个自由度的机械臂模仿人的手的结构,包括肩膀,肘部,腕部的运动和旋转,因此能够模拟出人类手臂的各种姿势,起重夹取装置模拟的是人的手部抓取动作。

  机械臂由六个伺服转向机构和一个铝合金支架组成。转向机可以基于等于零的PWM信号的大小相对于相应的角度旋转,然后精确停止。控制系统将从LeapMotion传感器提取的手的坐标转换为零,从而控制机械手的各个关节的运动和位置。由于控制机械臂的伺服转向机的运动,该编程可以轻松地在机械臂的位置和转向齿轮的角度上投射信息,从而可以执行机械臂随机械臂的运动而具有的功能并具有更高的精度,同时显着简化控制系统设计提高了控制系统的稳定性。

  3.2单片机电路设计

  3.2.1单片机功能描述

  微控制器是集成电路芯片,这是一种超大集成电路技术人员,能够处理中央处理器,随机存取存储器,仅I/O,侵权存储器和中断系统,计时器/计数器功能(所有其他功能都可以显示电路驱动器),有广泛的电路模块化,模拟器多路复用器,电路的A/D转换器)集成件,根据Dan census分布的跟踪图像进行编译:微计算机系统得到了些微改进,该行业在行业中得到了广泛的应用。从1980年代开始,从当时的4位和8位单位计算机开始,目前它们已切换到高速单充电器300M。

  单片微控制器,也称为简单微控制器,不是具有逻辑功能的芯片,而是将计算机系统集成到芯片上的芯片。相当于一台微型计算机,与一台计算机相比,它只有一个输入/输出设备。简而言之:芯片变成了计算机。它体积小,质量轻且价格低廉,为设计,使用和开发提供了适宜的条件。

  3.2.2单片机处理系统

  本设计选用的是Arduino二次开发板。Arduino是一个单片机系统,核心是

  ATMEGA系列的单独编译器可以安装某些设备,然后安装在印刷电路板上,可以独立执行特定设计的某些功能。单板arduino可能与寄存器的硬件结构和设计没有任何关系,只是知道其端口如何工作。下图3.1是单片机Atmel Mega328的处理系统:

  单片机处理系统

  图3.1单片机处理系统

  3.3光电传感器模块

  3.3.1光敏传感器模块

  光阻模块敏感于对周围的照明设备,日常生产生活中用于检测环境中的光亮度,从而导致诸如单个或中继模块之类的模块。本设计模块成功识别是判断明暗空间的比例,利用手部在光敏传感器上面在被扫描的世界范围内扫描的阴影决定了手向哪个方向移动,而当环境的亮度未达到阈值时,模块在DO输出处输出高电平,而当环境的亮度超过阈值时模块在DO输出处输出低电平;DO的输出侧也可以直接与整体块相关,整体块使用整体块确定高低水平,从而确定环境照明的变化;DO导出端可以直接控制存储中继模块,从而可以创建光控开关。可以使用AD转换将小板连接到AD模块,并且可以获得更适合环境的数值。

  3.3.2红外传感器模块

  当有模块障碍物检测信号时,绿色电路会在绿色照明水平下发出信号,同时在端口外部继续输出弱信号,模块的检测距离为2-30 cm,检测角度为35°,可调电位器的检测距离为常规电位器顺时针方向,检测距离;逆时针检查缩小的距离。传感器会主动检测红外辐射,因此物体的速度和形状是检测距离的关键。在最短距离处检测到的黑人最多,而白人则最多。小物体位于很短的距离,大物体位于大物体上。传出传感器模块的输出端口可以直接连接到IO单元,也可以直接在5V继电器上进行控制。连接方式:VCC

  3.4本章小结

  本小结主要设计了机械手臂的硬件系统,其中包括传感器模块、核心控制模块、机械臂运动原理和逻辑。为机械臂软件系统部分作下铺垫,提供编程的理论依据。

  4系统的软件设计

  本章节主要介绍了关于手势识别程序软件的程序设计。当具有了手势识别传感器和六自由度的机械臂、无线WiFi信息传递信息组以及无线机械手的控制可以通过开发程序代码,通过动态的手动操作,用合适的软件控制机械手来实现。

  4.1软件设计的流程

  STC89C52是目前应用最为广泛的单片机,最适合编译和C语言两种语言。本项目使用的编程语言为C语言[15]。该程序的模块结构可以设计成便于系统从软件和优化中删除,其他系统可以理解和读取。因此,为使流程更加直观,更容易理解软件设计,就要用模块化结构来包装软件结构。机械手臂的主程序流程图如图4.1所示。

  ↓

  ↓

  ↓

  ↓否

  ↓

  ↓

  图4.1主程序设计流程图

  4.2手势识别程序设计

  4.2.1 Processing手势程序

  上位机处理软件是因为它有一个非常强大的交互模式与图形编辑器,是简单的,一个编辑程序的界面。

  软件选用Java语言环境,利用devoimplus leapmion存储功能和以太网软件的其他网络处理功能,获取信号管理数据并动态手动操作导入软件。动态定位数据是手动传输的。相关程序如图4.2所示。

  1 import Processing。net*;//以太网库函数

  2 import de.voidplus.leapmotion.*;//Leap Motion库函数

  3 int port=10002;//端口号

  4 Server server;//新建服务器对象

  5 LeapMotion Leap;//新建手势控制对象

  图4.2两个重要的库函数

  有65536个计算机端口在每一台电脑上,1-1023个端口对固定用途特别重要,这些端口只能在1023个端口之后使用。本次毕业设计采用了10002号端口。通过W5500芯片和WiFi信号发射器进行信号通讯。这些信息描述了通过socket软件的IP地址和端口。

  当以上步骤建好之后,那么就需要建立一个在PC端的动态手势识别的控制程序,为了动态初始化由服务器控制的对象和动态手势支持对象分别是serve和leap,服务器初始化后使用的地址是计算机IPV4地址。具体的程序如图4.3所示。

  //创建PC端的动态手势控制界面

  void setup()

  {

  size(800,500,P3D);//形成一个800*500mm的手势操作界面

  Background(255);

  noStroke();

  Fill(50);

  textFont(createFont(“SanSerif”,16));

  Server=new Server(this,port);//初始化状态,本机的IP地址就是服务端的地址

  Leap=new LeapMotion(this);//初始化手势控制对象

  }

  图4.3创建控制界面并初始化对象

  当一个对象通过动态手势控制启动时,摄像机必须提取动态手势特征的必要值。就需要对手部重要的关键点进行定位跟踪,通过对机械手在不同工位的运动数据进行采集和分析,实现对机械手位置的跟踪;通过分析得到的数据,实现对机械手关节和爪运动的控制。在该设计中,则需要获取左手或者右手的手掌掌心的骨骼点、大拇指指尖的骨骼点、食指指尖的骨骼点,一部分的程序如图4.4所示。

  Hand.draw();

  PVector hand_position=hand.getPosition();//掌心位置特征值

  PVector Thumb=null,Inder=null;//大拇指和食指特征值

  Thumb=hand.getThumb().getPosition();//大拇指指尖位置

  Index=hand.getIndexFinger().getPosition();//食指指尖位置

  Float dir=hand.getRoll();//掌心方向特征值

  Float dist=dist(Thumb.x,Thumb.y,Thumb.z,Index.x,Index.y,Index.z);

  图4.4相应特征值的获取

  在这种结构中,总共需要六个六自由度的舵,这意味着在处理程序中需要读取六种动态手势数据当中的六个信息数据。然后你可以分别控制六个方向舵。六种姿势的数据如下:它对应于手掌x轴、手掌Y轴上的骨骼点和手掌z轴上的骨骼点的值,以手骨旋转的角度,顺时针和逆时针旋转值,食指和拇指在空间中的距离数值。当有这些数据时,所有这些信息通过map函数转换成0-180的范围值,包含了距离、坐标以及转动角度的数值,以手掌掌心骨骼点所对应的坐标值为例,相关的数值转化的程序如图4.5所示。

  if(hand_position.x<-300)//x坐标值小于-30cm

  {

  hand_x=0;

  }

  Else if(hand_position.x>=300)//x坐标值大于30cm

  {

  hand_x=180;

  }

  else//x坐标值在-30cm与30cm之间

  {

  hand_x=map(hand_position.x,-300,300,0,180);

  //坐标值到舵机1所对角之间的映射

  }

  图4.5手掌掌心骨骼点的X坐标的处理

  在使用者的手部动态动作实时反射到摄像头之后映射到机械手臂的控制的过程当中,在本次毕业设计中map()函数在六个动作中都有重要作用,本设计map()函数功能包括,方位包含X、Y、Z轴正负的六个方向,手腕和逆时针角度的范围,拇指和食指之间的距离范围,方向舵角度内的线性显示范围值(0-180)。

  4.2.2 Arduino舵机控制程序

  上层数据处理端口访问完成后,ArduinoIDE客户端必须安装相应的程序并进行编写。要求先将计算机作为服务器,然后设置相应的端口号进行处理,然后根据以太网客户端的要求创建一个新的主机名,根据到ISO端口的网络连接,选择w5500和六条平行光线路IO口并且根据情况连接电路。

  定义好电路所需的各个模块端口号,之后建立客户端对象,就需要对客户端的对象进行初始化,当服务器准备好了之后,服务器将访问就绪状态信息并且发送给客户端。运输需要连接到新的舵机对象和实际舵机之间。

  在上机位软件安装过程中,对0-180数据进行了修改,改变了6个手部骨架点的运动范围。只需要一个角度就可以将这些数字信息转换为等效值。

  除此之外,为排除Processing中数据因为一些其他原因带来影响,因此将手部信息的六个数据,对应传递到下机位的Arduino当中,并且将六个调节舵机角的数据变为绝对值。以手掌支架点在X轴上所对应的坐标作为例子,如图4.6所示,这就是数值处理程序。