服务机器人应用开发(中级) 课件 项目11 让机器人听令前行识物_第1页
服务机器人应用开发(中级) 课件 项目11 让机器人听令前行识物_第2页
服务机器人应用开发(中级) 课件 项目11 让机器人听令前行识物_第3页
服务机器人应用开发(中级) 课件 项目11 让机器人听令前行识物_第4页
服务机器人应用开发(中级) 课件 项目11 让机器人听令前行识物_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

让机器人听令前行识物项目3CONTENT目录项目导入01项目任务02学习目标03知识链接04项目准备05任务实施06任务评价07任务拓展08项目小结09项目导入01综合语音、运控和视觉的组合应用具有实用性和迫切性41项目导入声音识别和对象检测技术在新冠疫情肆虐的当下更具有实用性和迫切性CONTENT目录项目导入01项目任务02学习目标03知识链接04项目准备05任务实施06任务评价07任务拓展08项目小结09项目任务02当用户发出语音指令“开始”后,机器人开始前行前行10步,然后左右转动头部不断识别眼前对象CONTENT目录项目导入01项目任务02学习目标03知识链接04项目准备05任务实施06任务评价07任务拓展08项目小结09学习目标03知识目标职业素养目标技能目标了解YanAPI接口的定义与功能了解异步函数的定义,包括

asyncawait等关键词的含义理解YanAPI接口调用返回数据的结构理解全局变量和局部变量的定义和差异了解利用模型识别图像的结果数据结构理解事件循环在异步调用中的作用了解进程、协程和线程的定义及差异。知识目标:知识目标、技能目标、职业素养目标9学习目标3能设计多协程并发程序能编写Python类,并创建实例,使用实例方法能应用MobileNet-SSD模型进行图像识别能在树莓派架构下通过摄像头获取视频帧能在视频流中识别物体并显示结果。技能目标:培养学生严谨、细致、规范培养学生团队协作及表达沟通能力培养学生跟踪新技术及创新设计能力培养技术标准意识、操作规范意识、服务质量意识等。职业素养目标:CONTENT目录项目导入01项目任务02学习目标03知识链接04项目准备05任务实施06任务评价07任务拓展08项目小结09知识链接04YanAPI软件开发工具包进程、线程与协程Python之面向对象编程Python中实现线程编程的基本模式MobileNet+SSD模型简介语音、视觉、运控综合应用程序设计YanAPI软件开发工具包12知识链接4YanAPI:提供获取机器人状态信息、设计并控制机器人表现的能力等一系列API。只有Python3.5.0及以上版本才可调用YanAPI。机器人本体使用YanAPI接口只需在程序文件开头引入下句:importYanAPI机器人外部使用YanAPI接口:需保证机器人与电脑在同一局域网中调用YanAPI前需使用机器人IP地址初始化SDK,如下图所示;获取机器人IP地址的方法有三种,请同学们跟随老师一起练习。通过yanshee移动端App连接机器人获取;通过HDMI线连接机器人和显示器,打开Terminal终端通过指令获取;通过HDMI线连接机器人和显示器,点击桌面网络图标获取。YanAPI接口说明134知识链接YanAPI中的部分语音相关接口及功能:YanAPI中的部分动作相关接口及功能:YanAPI说明链接:/#/zh。Python之面向对象编程(一)144知识链接类定义语法:类的属性引用:如下例,MyClass.i

MyClass.f和

就是有效的属性引用,将分别返回一个整数、一个函数对象和所属类的文档字符串。Python之面向对象编程(二)154知识链接继承:isinstance(object,classinfo):用于判断对象object是否是classinfo类型issubclass(class,classinfo):用于判断class是否是classinfo的子类多基类继承:多层级继承:搜索从父类所继承属性的操作是深度优先、从左至右的,当层次结构中存在重叠时不会在同一个类中搜索两次。因此,如果某一属性在DerivedClassName中未找到,则会到Base1中搜索它,然后(递归地)到Base1的基类中搜索,如果在那里未找到,再到Base2中搜索,依此类推。进程、线程与协程164知识链接进程:计算机中运行的程序线程:操作系统能够运算调度的最小单位协程:计算机程序的一类组件,它推广了协作式多任务的子例程,允许执行被挂起与被恢复基本概念线程的创建较为容易,进程需要复制其父进程,开销较大。线程共享创建其进程的地址空间,而进程使用进程自己的地址线程可以直接访问进程的数据,进程可以使用其父进程数据的副本。线程可以同其进程中其他线程直接通信,进程与同级进程通信必须使用进程间通信(inter-processcommunicate,IPC)机制。线程开销较小,而进程开销较大。线程可以控制相同进程的其他线程,进程只能控制其子进程。对于主线程的修改(如:优先级修改等)可能会影响其他线程对于父进程的修改不会影响其子进程。多进程、多线程相比单线程在速度上整体而言有很大提升。进程与线程的差异协程是协作式多任务的,而线程是抢占式多任务的。在协程之间切换无需涉及任何系统调用或者任何阻塞调用。线程和协程的差异Python中实现线程编程的基本模式174知识链接threading模块:多线程可以用threading模块实现。该模块提供的常用方法和常量有以下一些:threading.enumerate():返回一个包含正在运行的线程的list。threading.activeCount():

返回正在运行的线程数目。threading.TIMEOUT_MAX

是threading模块提供的常量,可以用来设置threading全局超时时间。Thread类的常用属性有:name:线程名;ident:线程标识符;daemon:该线程是否是守护线程。Thread类的常用方法有:start():启动线程;run():执行线程方法;join(timeout=None):启动线程终止以前,一直被挂起,除非给出timeout;isAlive:该线程是否存在;isDaemon():该线程是否是守护线程;setDaemon(boolean):改变线程守护标识。线程同步机制:包括互斥锁(Lock)、递归锁(Rlock)、Condition锁等技术。MobileNet+SSD模型简介184知识链接深度神经网络的传统结构:主干网络+全连接网络。但全连接网络对目标的位置识别较弱,于是有人逐步提出Mask-Rcnn、SSD、YOLO等来替代全连接网络。MobileNet:凭借其出色的网络结构优化,在更少参数量和计算量的前提下,准确率反而超过了部分主流的神经网络。MobileNet适用于移动端和嵌入式设备。SSD:全称是SingleMultiBoxDetector,是一种在2016年提出的目标检测分类算法,它分类的过程只需要一步,运行速度得到了大大提升。语音、视觉、运控综合应用程序设计194知识链接三个协程协同实现:任务启动协程:机器人听到“开始”后,往前行走、致敬;(语音、运控)图像帧采集协程:不断采集机器人摄像头的视频流图像帧;(视觉)对象识别协程:进行实时视频流图像帧的物体识别,并标记物体且播报物体名称。(视觉、语音)程序整体处理流程204知识链接整体处理流程:创建RobotMotion类的对象my_robot并启动事件循环new_loop;将三个协程提交到事件循环

new_loop;创建线程t;通过线程t启动事件循环new_loop。程序运行过程的时序图214知识链接总体业务场景的时序图如下:CONTENT目录项目导入01项目任务02知识链接04项目准备05学习目标03任务评价07任务拓展08项目小结09任务实施06项目准备05硬件条件软件条件24项目准备5硬件条件1.一台电脑;2.一台yanshee机器人。1.电脑上安装PythonIDE环境(推荐PyCharm软件)2.Python环境中配置多种常见模块,如numpy、sys、cv2、time、picamera和threading等25项目准备5软件条件CONTENT目录项目导入01项目任务02知识链接04任务实施06学习目标03任务评价07任务拓展08项目小结09项目准备0506任务实施确认已给的demo1源码包复制源码包到机器人端创建与编写voice_object_detection运行

voice_object_detection程序

确认已给的demo1源码包28任务实施6如下图所示,依次检查:1.images文件夹中包含test.jpg图片;2.model文件夹包含了已训练好的模型MobileNetSSD;3.脚本文件MobileNetSSD20,该脚本文件用于调用模型

MobileNetSSD识别该目标图片中的物体。296任务实施创建与编写voice_object_detection(一)步骤:1.创建voice_object_detection.py文件;2.在上述文件中导入所需库并定义变量。306任务实施创建与编写voice_object_detection(二)步骤:1.定义类RobotMotion,使其具有如下图所示方法。316任务实施创建与编写voice_object_detection(三)步骤:1.编写与task_thread协程对应的异步函数task_thread();2.编写语音识别函数voiceRecognizeWaitCmd()函数;3.定义第一个任务函数executeFirstRecognizeFirstPass()326任务实施创建与编写voice_object_detection(四)步骤:1.定义与协程camera_thread对应的异步函数camera_thread()。336任务实施创建与编写voice_object_detection(五)步骤:1.定义与协程objectdetection_thread对应的异步函数objectdetection_thread();2.定义物体识别函数object_detection()。346任务实施创建与编写voice_object_detection(六)步骤:1.定义协程循环函数start_loop();2.定义主函数main();3.定义程序入口。356任务实施复制源码包到机器人端366任务实施运行voice_object_detection程序(一)步骤:1.用HDMI线将机器人与电脑显示器连接;2.打开机器人,用命令查看程序包demo1目录结构:cddemo/ls-la376任务实施运行voice_object_detection程序(二)步骤:1.给用于调用已训练好的模型MobileNetSSD的脚本赋予访问权限:chmod777MobileNetSSD202.运行程序;3.观察识别结果。CONTENT目录项目导入01项目任务02学习目标03任务评价07项目准备05任务实施06知识链接04任务拓展08项目小结09任务评价07自我评价教师评价小组评价40任务评价7自我评价小组评价与教师评价41任务评价7CONTENT目录项目导入01

温馨提示

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

评论

0/150

提交评论