论文部分内容阅读
机器人从最初的工业机器人,军用机器人、服务机器人,发展到娱乐机器人和教育机器人领域。教育机器人目前多用于竞赛,而用于教学的却较少。目前人工智能的发展方兴未艾,面向青少年的人工智能的教育需求越来越急迫,因此,需要针对此需求开发以教学为功能的教育机器人。因此,本文设计了一款可以教授人工智能算法的教育机器人。这款机器人旨在为初学者提供帮助,通过人机交互,学生可以了解人工智能算法的思想。教育系统选用KNN算法进行教学,这是最简单有效的分类算法,简单且容易实现。由于其简单高效的特性,很适合教导刚接触人工智能的学生,在教导的过程中初学者也能更容易理解和学习。机器人能够对KNN(k-NearestNeighbor)分类算法进行详细地拆分讲解,通过人机交互,使学生参与算法的每一步。同时提供了KNN图片分类的实例,通过实例进行学习学生能将算法理解得更透彻。由于ESP32性能稳定,能实现无线通信并具有超低的功耗的特点,因此在ESP32嵌入式系统上进行教育机器人的KNN算法开发与实现。本文的主要研究内容如下:(1)KNN教学框架的设计与实现。KNN的教学框架由PC端和ESP32的结合。KNN算法是有监督的学习算法,也就是利用一组已知类别的样本调整K的参数,最终可以得到较高的准确率。因为教育机器人面对的现实环境比较复杂,一般将需要分类的图片呈现在机器人视觉系统前,通过视觉系统提取待分割图片信息。本文采用了TwoPass算法进行图片分割,将目标从复杂的背景环境中提取出来。PC端设定了三个界面,类别选择界面、图片分割界面和分类界面,分别用于为训练样本提供类别信息,采集训练集和显示分类结果。图片分割界面会显示分割的效果和得到的训练样本的效果。在系统设计的时候,将训练集的采集过程放在PC端,能避免在ESP32进行大量计算。训练集采集分割完毕后,发送到ESP32对应的Flash内,在ESP32上进行分类计算,由此可以在机器人端进行独立分类。分类的过程中会让学生参与距离的计算,增加人机交互,达到更好的教学效果。(2)系统的升级和硬件的检测的附加功能。由于硬件的推陈出新的速度很快,我们设计了系统硬件的自动检测和无线升级功能。硬件检测采用多线程的方式检测ESP32的PID和VID。升级采用OTA的方式对ESP32进行升级,从浏览器上下载bin文件,自动更新。(3)系统性能优化。针对分割速度比较慢从而导致视频卡顿的问题,本文从边缘计算的角度分析了如何提升分割速度。将本地的计算任务发送到边缘服务器端,通过边缘服务器较高的计算性能达到降低计算时间的目的。因为大量的计算放置在边缘服务器,本地仅负责发送数据,因此极大地降低了本地的能耗。本文对如何进行边缘服务器的资源分配进行了详细的讨论,对按数据量和按优先级分配边缘服务器的计算资源以及本地计算三种不同方案进行比较,最终给出了仿真的结果以说明了边缘计算所来带的性能提升。