内容正文:
智能机器人项目实现
—项目设计
目 录
1.了解无人驾驶汽车的的项目思路。
2.掌握无人驾驶汽车的输入、计算和输出过程。
3.完成无人驾驶汽车的的硬件拼搭和软件编程。
要想更深入了解智能机器人的工作过程,可以自己尝试完成制作一个机器人。但是智能机器人的种类多种多样,工作过程也稍有差异,本节课,我们就以餐厅中的送餐机器人为例,通过项目的实现来加深对智能机器人的了解吧。
同学们,你们见过送餐机器人吗?它们一般长什么样子,有哪些功能?
项目思路
制作送餐机器人之前,先来梳理一下整个项目的思路,明确送餐机器人的工作场景、功能目标及结构设计等问题,如表所示,项目场景如图所示。
项目准备
正式开始项目之前,需要将用到的材料一一备齐,从而更好地实施整个项目。材料主要包括传感器、执行器、结构件,以及其他辅助材料等,送餐机器人的材料清单如表所示。
课堂活动
请同学们根据材料清单准备好项目所需材料。
对于送餐机器人,你们还有其他想要增加的功能吗?实现这些功能需要额外添加哪些材料?请同学们将相关信息填写在中。
增加的功能 需要添加的材料
结构设计
传感器、执行器与主控板之间连接的引脚,以及这些元器件安装的方向,都影响到具体的程序编写,因此,明确硬件的接线方式很有必要,如图所示。
项目实施
结构设计
同时,对机器人的外观结构有个初步的构想,在编写程序的时候也会更加得心应手,如图所示。
项目实施
课堂活动
同学们,你们的送餐机器人初步设计的结构是怎样的?各个元器件的接线是怎样的?将你们的想法绘制在图中。
我的机器人外观结构图
硬件连接图
训练识别餐牌号的模型
送餐机器人的功能之一是能识别出餐牌号,才能将食物准确地送到对应的桌位上,所以要先训练一个能够识别出餐牌的模型。以图3.3.4所示的餐牌为例,可以将其分别打印出来,拍摄多张不同角度、不同场景、不同光照条件下的照片,作为训练的数据集。
项目实施
项目实施
加载训练数据集的过程如下。
(1)在Python模式下,单击“扩”“添加”选项,在“pythonAI扩展”中安装并加载分类训练相关的指令,如图所示。
项目实施
(2)添加数据集图片,选择数据集类型,有三个不同的餐牌号,因此选择三分类,如图所示。
项目实施
(3)依次选择三分类中的子类型,把准备好的图片选中并上传,每类至少10 张图片。例如,子类型A中加载全部餐牌号1的图片(10张以上),子类型B中加载全部餐牌号2的图片(10张以上),以此类推,如图所示。
项目实施
接下来编写训练模型的程序,如图3.3.8所示,程序的编写思路如下。
(1)加载Keras深度学习框架,然后利用MobileNet模型创建一个基础模型。MobileNet 模型是一个在大量数据集上预训练过的模型,我们可以在该模型的基础上训练识别餐牌号的模型,这样只需较少的数据集就可以达到不错的效果。
(2)设置分类器的输出类别数及训练过程中的一些参数,餐牌号有三种,因此这里的分类数设置为3。以上全部设置好以后,对模型进行编译,配置学习过程,包括设置模型优化器等。
(3)开始训练模型,可更改训练轮数。一定范围内,训练轮数越多,识别准确率越高,们可以分别设置不同的训练轮数,查看准确率的变化,从中选择一个较好的模型。
(4)将模型保存下来,并且将模型的格式转化为kmode格式,这样才能在后面的项目中使用。
项目实施
项目实施
单击菜单栏中的“运行”按钮,即可开始训练。训练结束后,在控制台区域会出现“tflite转换为kmode模型成功!”及“执行完毕”的提示,之后单击菜单栏中的“代码”按钮,切换为代码模式,在左侧项目空间即可看到一个名
为“traffic.kmodel”的文件,这个就是我们
需要的模型,如图3.3.9所示(如果没有,在
项目空间空白处右击,在弹出的快捷菜单中
选择“刷新目录”)。
选中该文件后右击,在弹出的快捷菜单中
选择“打开文件位置”,将其复制到AI摄像头
的SD卡里,之后就可以运用它识别图像了。
课堂活动
请同学们自行设计餐牌号,或者网上查找餐牌号的图片,然后训练出能够识别餐牌号的模型。
循迹部分的程序
机器人沿着黑色轨迹行走,被称为循迹,如图3.3.10所示。循迹的程序可结合循迹传感器的检测状态和差速转向的原理来实现,如图3.3.11所示。当两个循迹传感器都检测为黑,说明机器人在轨道中间,设置两个车轮速度相同,直行即可;当左侧检测到白色,右侧检测到黑色,说明机器人向左侧偏离,此时设置左侧车轮速度快,右侧慢,由于两侧有速度差,机器人会右转回到轨道。机器人向右侧偏离也是同理。两个电机的速度,要根据机器人在轨道上实际测试的效果不断进行调整。
项目实施
项目实施
项目实施
识别餐牌部分的程序
在机器人开始送餐之前,可以通过触摸相应按键的形式告诉机器人要送往哪个餐桌,程序如图所示。
项目实施
识别餐牌部分的程序
机器人开始送餐之后,沿着黑线行走,同时不断识别摄像头拍摄到的图像,一旦识别出要送达的餐桌号,它会停下一段时间让客人自行取餐,然后继续前进,程序如图所示。
项目实施
课堂活动
请同学们按照程序编写的思路,编写送餐机器人的程序。
应用与优化
每个项目的成功实现都不是一蹴而就的,程序、机器人的宽度、长度、重量、重心等都可能会对机器人的行走情况造成影响,需要不断地实地测试并对程序和机器人的机械结构进行优化,从而使机器人的功能更加稳定。
请同学们把编写的程序刷入机器人中运行,观察机器人的表现,记录问题,分析问题成因,思考解决方案,然后不断重复这些过程,直到机器人达到较为令人满意的效果,将优化过程记录在表3.3.4中。
拓展阅读
拓展阅读
谢 谢 观 看
$