一种新型人工智能机械手教具

2024-05-08 00:00高山
中国科技教育 2024年2期

教具研发背景

2020 年修订版《普通高中信息技术课程标准》提出,要通过典型的应用实例,了解数据采集、分析和可视化表达的基本方法。基于新课程标准,以开源硬件树莓派作为控制系统,研发一套基于人工智能技术的机械手教具;同时,利用Arduino 开源硬件控制舵机的工作,从而控制机械手的动作。使用Python 语言编程可实现机械手手指及手臂转动,并通过图像或语音识别技术实现对机械手的控制。本教具以机械手为平台,让学生在解决问题的过程中,将所思、所想在机械手平台上进行操作,通过问题提出与问题分析,最终实现智能机械手的控制,提高学生的人工智能学习质量,培养学生的创新思维能力,提升学生利用数字技术解决实际问题的能力。

问题提出

人工智能教育对中小学教师和学生都是一项挑战。在课堂中,教师需以生动、形象的方式向学生讲授人工智能课程,但因教学平台的局限性,使得中小学的人工智能课程仍以计算机编程为基础,缺乏生动有趣的情境和项目,教学易脱离生活,导致学生逐渐失去兴趣。目前,中小学还没有系统的、专业的人工智能教学平台,虽然一些学校尝试使用智能硬件进行教学,但整体上还无法满足学生的需求。因此,本教具将从学生学段特点和教师特点出发,开发适合中小学人工智能教育教学的技术平台。这一平台将利用人工智能机械手培养学生对于人工智能技术的兴趣,帮助他们掌握人工智能知识。

设计目标

通过三维设计软件设计手掌和手指零件,并进行零件模型的装配和3D 打印,验证手部结构的合理性;控制系统采用树莓派4B,驱动部分选用Arduino 开源硬件控制舵机的运动;使用开源的Linux 图形化系统,采用Python 语言进行程序设计。最终完成系统与百度智能云平台资源的对接,实现智能化手势识别和语音识别。

研发过程

机械手结构设计方案讨论

方案 1. 线控机械手

手指运动依靠电机控制丝线完成(图1)。线控机械手结构简单,易控制,但在使用中容易脱线松动,长时间使用易损坏,因此,未选用此种方案。

方案 2. 舵机连杆直驱结构

通过连杆结构控制手指的伸直与弯曲,利用舵机实现手指的不同弯曲角度,可高质量模仿人手的动作,而且实现起来简单、耐用,可使用3D 打印技术打印结构件。

平面连杆机构机器人的动力主要来自于电机或舵机,电机或舵机的运动是圆周运动,很多时候机器人要做上下或左右的往复运动,这时就要利用连杆机构,将圆周运动转变为上下或左右的往复运动。

最终,通过3D 打印技术打印机械手指,安装测试后,选择连杆结构制作的机械手指,以达到学生反复使用与长时间教学的功能。

机械手三维设计与制作

手指模型设计

使用SolidWorks 软件进行手指的三维设计,模拟人手特点,完成手指的设计和装配(图2)。

机械手主要部件设计

使用三维设计软件,分别设计智能机械手的手掌、手指,整体机械手共有6 个自由度(图3)。机械手零部件设计完成后,利用3D打印机制作手部结构,并进行组装。

手腕转台的结构设计方案

第1 代手部旋转结构使用齿轮传动,舵机驱动小齿轮带动大齿轮,可有效进行减速,减速齿轮比为24 ∶ 40,大齿轮转动带动手部的整体转动。第2 代则利用舵机直接控制云台转轴转动,转动距离精确,可平稳运行,且结实耐用。

控制系统与动力部件

主控系统——树莓派

智能机械手采用树莓派4 作为主控制系统,速度快、成本低,使用Linux 图形化操作系统。同时,使用Arduino 开源硬件作为下位机控制舵机的运行,配备显示器和USB 接口等外部设备,可方便连接鼠标和键盘。

控制系统——Arduino 控制器

Arduino 主板是一种开源硬件(图4),使用方便,如果有足够的技术,还可对其进行改造。其主要组成部分包括:①数字口D0—D13, 共14 个; ② 模拟口为A0—A5,共6 个;③板载LED 灯,TX和RX 指示灯; ④ 1 个复位键;⑤ 下载接口; ⑥ 外接电源接口。Arduino 控制主板体积小、重量轻,使用ATMEGA328P 单片机,这款单片机是8 位处理器,拥有32 KB闪存与2 KB 内存。

基于树莓派和Arduino控制器,完成控制系统搭建,通过220 V 转5 V 的电源实现整体系统供电,同时还进行了摄像头、电子屏幕等设备的安装与调试,控制系统如图5 所示。

动力部件——舵机

手腕的云台舵机使用高扭力金属齿舵机,手指连杆驱动舵机使用9 g 铜齿舵机。舵机与Arduino 连接示意图如图6 所示。

在控制系统上,机械手采用先进的树莓派作为上位机,Arduino作为下位机,功能强大,成本较低,舵机采用金属齿轮,高扭力的数字舵机控制机械手指和云台,可重复使用,持久力长。

机械手的软件实现

利用机器学习实现手势识别

手势识别技术利用机器学习原理,通过对手势的大量采集,将样本数据在机器学习的算法模型中训练,得到训练后的手势识别模型,模型经过验证后就可进行应用,如图7 所示。

基于 Python 语言编程实现手势识别

为了更好地结合信息技术国家教材,特使用Python 语言进行程序设计。手势识别的程序需要以下5 个步骤实施。

◆加入手势分析模块

f r o m a i p i m p o r t AipBodyAnalysis

◆连接百度大脑,输入ID 号和密码

app_id='ID 号'

api_key='api key '

secret_key='secret_key'

g e s t u r e _ c l i e n t=AipBodyAnalysis(app_id,api_key,secret_key)

◆编写摄像头采集图片程序

Serial()

Camera()

Window("cap",320,240)

threading.Thread(target =Dynamic_Show).start()

◆主程序代码

图8 是一段简短的程序,可识别4 种手势,机械手模拟做出相应的手势动作。本教具可识别15 种常见手势。

◆程序运行结果

当程序运行后,屏幕上弹出图像采集小窗口,学生可进行手势识别,如图9 所示。学生做出手势动作后,智能机械手会模拟学生的手势,控制舵机摆出相同的手势,如图10 所示。

在本教具研发中,利用“百度大脑”中训练好的手势和语音识别模型,可高质量识别人的手势和语音,教师在教学时可提前为学生注册账号,课上学生直接编写程序实现人工智能机械手的任务。编程一般过程为:注册账号—编写程序(引入模块、关联智能平台、编写主程序代码)—运行程序。

智能机械手配套课程

配合机械手教具,设计了让机械手具备“智能”的大单元课程,学生由浅入深,逐步学习人工智能知识,通过在机械手教具上编程、实验,激发他们对于人工智能的学习兴趣。

本文系北京市教育学会“十四五”教育科研2023 年度一般课题“大中协同共育人工智能拔尖创新人才的实践研究”(DC2023-002)成果。

该项目获得第37 届全国青少年科技创新大赛科技辅导员科技教育创新成果一等奖■