自主移动机器人培训教材_第1页
自主移动机器人培训教材_第2页
自主移动机器人培训教材_第3页
自主移动机器人培训教材_第4页
自主移动机器人培训教材_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

自主移动机器人培训教材全自主移动机器人第1页,课件共29页,创作于2023年2月全自主移动机器人深圳市鸥鹏科技有限公司简介深圳市鸥鹏科技有限公司(Open

Technology

Ltd)

是一家专业从事机电一体化和专业机器人创新产品研究、开发、生产和销售的高新技术企业,开发的具有自主知识产权的机电一体化和专业机器人集成技术及产品不仅可以广泛的应用于工业自动化领域,而且还可以广泛的应用于普通高等院校和职业技术学院的自动化和机电一体化等相关专业的实训、教学和研究。本手册主要围绕普通高等院校和职业技术学院的数控原理与数控技术、专业机器人和控制原理和控制工程等综合创新实验室的建设来介绍产品,但这些产品并不仅仅限于教学应用,他们的大多数产品都可以直接应用于工业领域。

更详细信息请登录:第2页,课件共29页,创作于2023年2月全自主移动机器人自主移动机器人简介Robocup足球机器人世界杯是目前世界上规模最大的智能机器人联盟。Robocup中型组足球机器人是目前Robocup足球机器人比赛中最富挑战性的课题之一,博得许多机器人研究机构和大学的青睐。DM-B系列智能机器人系统既能够面向RobotCup中型组足球机器人竞赛提供一个标准比赛任务。能够用于如实时计算机视觉、多机器人协作算法等其他多种研究。

还可以满足机电,自动控制等课程的教学演示、工程实训,以提高学生的综合创新能力。

可扩展成工业领域和服务领域的智能无人小车和智能服务机器人。第3页,课件共29页,创作于2023年2月全自主移动机器人DM-B系列智能机器人标准配置DM-B200:DM-B400:第4页,课件共29页,创作于2023年2月全自主移动机器人自主移动机器人整体外形图第5页,课件共29页,创作于2023年2月全自主移动机器人自主移动机器人机械模块机械外壳驱动轮全维视觉安装架踢球机构传感器安装位第6页,课件共29页,创作于2023年2月全自主移动机器人自主移动机器人电气控制模块直流伺服电机电源系统运动控制器螺线管第7页,课件共29页,创作于2023年2月全自主移动机器人自主移动机器人传感器模块全维视觉前向视觉电子罗盘(可选)红外传感器(可选)超声波传感器(可选)第8页,课件共29页,创作于2023年2月全自主移动机器人自主移动机器人使用接口连线笔记本启动机器人上电硬件模块测试硬件模块测试硬件检查第9页,课件共29页,创作于2023年2月全自主移动机器人自主移动机器人软件模块运动控制模块视觉模块策略模块WindowsXPProfessional操作系统需要摄像头驱动程序运动控制动态链接库TML_lib.dll,视觉动态库omni_vision.dll,决策动态库decision_making.lib和控制动态库control.lib。推荐运行在PCCPU800MHz以上,256M以上内存环境。软件运行环境:第10页,课件共29页,创作于2023年2月全自主移动机器人程序模块划分及工作流程一运行于BlackGen上的程序从结构上可以分为4个主要模块:视觉模块决策模块运动控制模块通信模块除BlackGen之外,还有一个教练(Coach)程序用于远程控制和查看当前信息。BlackGen运行在机器人的笔记本中,Coach运行在场外的计算机里面,一个Coach程序可以控制多个BlackGen程序。第11页,课件共29页,创作于2023年2月全自主移动机器人程序模块划分及工作流程二第12页,课件共29页,创作于2023年2月全自主移动机器人程序模块划分及工作流程三BlackGen整个进程由5个线程组成:视觉线程,决策线程运动控制线程通信线程另外还有一个主线程,它是程序的入口,它先为整个进程作一些必要的初始化,如:初始化摄像头,读取配置文件等。然后创建另外4个线程,接着就等待键盘输入和处理指令,键盘输入的指令有start(开始),stop(暂停),end(程序结束)。第13页,课件共29页,创作于2023年2月全自主移动机器人程序模块划分及工作流程四第14页,课件共29页,创作于2023年2月全自主移动机器人视觉模块第15页,课件共29页,创作于2023年2月全自主移动机器人视觉模块主要完成以下任务a)基于Camera类的视频采集。b)基于CBaseVision类及其子类(CFrontVision和COmniVision)的图像分析处理。c)两个视觉的信息融合(updateWorld函数)。第16页,课件共29页,创作于2023年2月全自主移动机器人基于Camera类的视频采集Camera类表示摄像头设备,主要用来初始化摄像头和从摄像头中获得的图像原始数据,通过摄像头获得的是24位RGB格式的图像数据。RGB(red,green,blue)是在三基色理论基础上开发的相加混合颜色空间,这也是在图像处理中通常采用的颜色空间,其中在320×240的图像上每个象素点用3个Byte表示其RGB值。主要采用了directShow技术进行视频捕捉。Camera类的接口很简单,为了方便使用,只有两个公共函数:boolInit(intdev_num,char*pBuffer);执行初始化摄像头,在第一次从设备读取图像原始数据(RGB颜色模式)之前,一定要执行初始化。第一个参数dev_num表示该设备的在当前操作系统中的枚举值;第二个参数pBuffer表示存放图像原始数据的缓冲区,该缓冲区大小至少为3×320×240个BYTE。voidCaptureImage(char*pBuffer);捕捉图像原始数据,参数pBuffer表示存放图像原始数据的缓冲区。第17页,课件共29页,创作于2023年2月全自主移动机器人基于CBaseVision类及其子类的图像分析处理软件在识别中使用颜色分割的方法,软件中需要识别八种颜色,我们通过对H、I、S三个数组都设成BYTE型,每一为为代表一种颜色,如果某个颜色分量的某个值属于某中颜色,则对应与该颜色的此颜色分量数组中的相应位设为1,否则设为0,这样通过用某个象素的H、I、S值作为H、I、S三个数组的索引对三个值进行位与即可得到当前象素属于的颜色,也成为“8通道”的方法。这样效率比较高。此部分已经被封装成vision.dll在程序中通过加载dll实现。其中的大部分文件的源代码是开放的。第18页,课件共29页,创作于2023年2月全自主移动机器人CBaseVision类图像处理的典型步骤第19页,课件共29页,创作于2023年2月全自主移动机器人CFrontVision类中图像处理实现过程第20页,课件共29页,创作于2023年2月全自主移动机器人两个视觉的信息融合软件有两个摄像头采集视频,采用的是不同的图像处理方法,因此在视觉融合方面需要做一些工作。即不论所得的有效信息是从全维视觉得到还是从前向视觉得到,在决策模块认为是一致的。boolupdateWorld(CFrontVision&frontVision,boolfrontOK,COmniVision&omniVison,boolomniOK,World&w)更新信息函数。该函数为上面的结构体中变量赋值。第一个参数frontVision指向前向视觉对象。第二个参数frontOk,true表示前向视觉参与视觉融合,false表示不参与。第三个参数omniVision指向全维视觉对象。第四个参数omniOk,true表示全维视觉参与视觉融合,false表示不参与。注:在软件中主要是通过经验来融合两个视觉的信息。该部分应该根据具体情况考虑修改。并且没有写单独一个视觉的情况,如果需要可自己添加。第五个参数w,World对象中包含Vision2Player成员,该成员会被赋值。第21页,课件共29页,创作于2023年2月全自主移动机器人决策模块决策模块的输入是视觉模块的输出,是球场上各个对象的信息,如球相对于机器人的坐标,两个球门中心点相对于机器人的坐标等等。决策模块的输出是具体的运动参数,如左右轮速,它们将成为运动控制模块的输入。在这里面运动控制模块所做的是根据过去部分的和当前的视觉信息判断出当前状态,根据这个状态使用对应的算法计算出适合的运动参数。决策模块主要是通过一个有限状态自动机来完成决策过程的。而这个状态机是通过读取配置文件来构建的。BlackGen在初始化的时候先读取这个配置文件并在程序中构建出一个状态机供决策使用。用户可以根据自己的需要针对不同情况编写不同的配置文件。第22页,课件共29页,创作于2023年2月全自主移动机器人决策模块的原理第23页,课件共29页,创作于2023年2月全自主移动机器人决策模块的原理找球(FindBall)就是当视觉没有在图像上识别出球时所处的状态,机器人采用自转的方式找球,如果看到球,跳到拿球状态。拿球(GoToBall)就是机器人看见球了,但是球还没进入机器人的带球机构,这个状态的动作需要一个具体的算法,一个已知目标点求左右轮速的算法。当看不见球了状态跳到找球,如果球进入机器人的带球机构时跳到带球状态。带球(DriveToGoal)就是球在带球机构中,而球门并不在机器人的射程中所处的状态,机器人针对对方球门的位置算出不同的左右轮速,同样这里也需要一个特定的算法。如果球不见了状态跳到找球,如果球脱离了带球状态跳到拿球状态,如果对方球门看不见则跳到找球门的状态,如果对方球门进入射程范围就跳到射门状态。找球门(FindOppGoal)就是球在机器人的带球机构中,但是机器人看不见对方球门,机器人需要带着球找对方球门。这里我们直接设置左右轮速(25,40)走圆弧来完成这个工作。射门(Kick)是球在带球机构中,对方球门又在射程中,机器人打开踢球机构把球弹出。同样如果球不见了就跳到找球状态。第24页,课件共29页,创作于2023年2月全自主移动机器人具体决策线程的流程第25页,课件共29页,创作于2023年2月全自主移动机器人教练与通信模块通信模块的主要作用就是监听网络等待教练程序发过来的指令。在这里我们只定义了两种指令:‘s’(小写s)代表start开始,‘S’(大写s)代表stop暂停教练程序与通信模块是通过数据结构Referee2Player来完成的。structReferee2Player{charcmd;roleTyperole;};其中cmd为指令(即‘s’和‘S’),role还没有实际的用途。第26页,课件共29页,创作于2023年2月全自主移动机器人运动控制模块BlackGen机器人采用TECHNOSOFT公司的IPM100运动控制板作为运动控制器,用来将上位机指令转换为运动输出。BlackGen采用运动控制动态链接库TML_lib.dll来完成对IPM板的控制,而控制工作主要在ipm类里面实现。第27页,课件共29页,创作于2023年2月全自主移动机器人运动控制模块接口说明主要成员函数:boolIpm::initIpm()初始化控制板。intIpm::readASPD()读取实际的左右轮速并把结果保存在R_ASPD和L_ASPD这两个成员变量中。

boolIpm::DetectBlock(doublelwset,doublerwset)判断机器人的左右轮是否处在堵转状态,输入为lwset和rwset实际向IPM板发送的左右轮速。函数给bLBlocking和bRBlocking两个成员变量赋值,这两个变量分别代表了左右轮是否堵转。第一个参数lwset为发到IPM板上的左轮速第二个参数rwset为发到IPM板上的右轮速boolIpm::LoadConfig(constchar*filename)读取配置文件,得到初始化参数。第一个参数filename为IPM板相关的配置文件,默认为《ipm.cfg》voidIpm::axisOff()让机器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论