木子呢 发表于 2021-8-5 10:13:20

【Mind+Huskylens趣味AI入门】系列课程—02 垃圾分类

垃圾分类
2.1 项目介绍

2.1.1背景导入

垃圾分类可以提高垃圾资源的利用水平,给社会、经济和环境带来效益。陆续在上海、成都等地展开后,逐渐成为了大家的生活习惯之一。但是扔垃圾仍然存在着诸多不便,送入回收站后还需要经过二次分拣,消耗人力。


设想一下,如果将干垃圾、湿垃圾、有害垃圾和可回收垃圾分类扔进不同颜色的环保垃圾袋内,到了回收站后机器人能够区分出不同颜色再分拣到对应种类的垃圾桶里,是不是方便极了!

2.1.2任务拆解

使用Mind+和Huskylens的颜色识别功能,模拟识别颜色丢垃圾的过程。建立垃圾回收站的舞台场景,机械臂不断运送垃圾袋,垃圾袋的颜色随机出现,代表不同种类的垃圾。当Huskylens识别到垃圾袋的颜色,且垃圾袋移动到对应垃圾桶上方时,将垃圾丢入桶内。

STEP1: 使用Huskylens的颜色识别功能,学习垃圾袋的不同颜色。

STEP2: 调整角色的位置和大小,设置垃圾回收站的舞台场景。

STEP3: 改变角色位置令机械臂运送垃圾,使用随机指令切换垃圾袋颜色。

STEP4: 当Huskylens识别到不同颜色ID时,垃圾袋滑行到对应垃圾桶的位置,实现分拣垃圾的效果。


(目标功能实现效果示意)

2.2 项目准备

2.2.1 软件设置

打开Mind+软件,确认软件为“实时模式”。点击“扩展”,在“功能模块”里加载“Huskylens教育版”。点击“返回”到主界面可以看到功能模块添加成功。


2.2.2 硬件连接

用USB线把Huskylens连接到电脑,接着点击扩展功能旁的橙色感叹号,进行连接。连接成功后感叹号会变成绿色对勾(如下图),“返回编辑器”就完成连接啦。


2.3 程序思路

“垃圾分拣”的程序共有机械臂、垃圾袋和垃圾箱三个角色。

先在三个角色的程序中进行舞台场景初始化:


然后在机械臂和垃圾袋的角色中实现机械臂运送垃圾和垃圾识别分拣:



2.4 功能实现

2.4.1 Huskylens颜色识别


使用Huskylens的颜色识别功能,对垃圾袋以红蓝黄绿的顺序进行颜色学习,分别为ID1、ID2、ID3、ID4。(Huskylens学习颜色的使用方法参考【Mind+Huskylens趣味AI入门】系列课程—01会唱歌的画


2.4.2 Mind+舞台场景布置

(1)添加背景

把鼠标移到“背景库”,点击“上传背景”,打开文件夹上传背景文件“背景”。


在“背景”模块里编辑背景图片大小和位置,让背景覆盖整个画布。


(2)添加角色

删除默认的mind+角色。在“角色库”选择“上传角色”,打开本地文件夹选择“垃圾桶”、“机械臂”、”垃圾袋“,完成上传。注意图片中心要与舞台中心点重合。

只需要上传一个垃圾袋角色,打开“造型”模块,将其余垃圾袋作为


角色造型上传。以红蓝黄绿的顺序,命名为1、2、3、4。


调整角色大小和位置,舞台场景布置完成效果如下图所示:


(3)设置角色初始位置

垃圾桶-实现效果:点击绿旗,设置垃圾桶在舞台最右侧,然后让垃圾桶在1.5秒内从初始位置滑行到舞台中央。显示在最前面,避免遮挡。


机械臂-实现效果:当绿旗被点击,先把机械臂隐藏,等待1.5秒,当垃圾桶出场结束后,让机械臂移动到舞台初始位置。


垃圾袋-实现效果:同样,当绿旗被点击,等待1.5秒,让垃圾袋移动到机械臂相同的位置。


2.4.3机械臂运送垃圾

机械臂-实现效果:当按下空格键,不断从右向左移动效果。当机械臂移出舞台时将角色隐藏,并广播事件。


使用”移动X步“模块控制角色的移动,向左移动时X坐标逐渐减小,所以在移动步数前加”-”。使用”重复执行直到“模块设置移动循环的结束条件。根据舞台坐标范围,当X坐标小于-250时,角色处于画面最左侧,可以视为机械臂移出舞台。

垃圾袋-实现效果:当按下空格键,垃圾袋与机械臂同时移动。当接收到机械臂的广播消息,随机切换垃圾袋造型,运送新的垃圾。


<知识延申>

为什么要使用广播消息?

广播消息可以实现舞台或角色间的互动。事件的触发角色通过”广播消息”发送消息给所有角色及舞台,和这个消息相关的角色则需要使用”当接收到消息”在接收到广播后做出相应的反应。点击”消息1“后面的三角,可以创建新的消息并重新命名。





2.4.4垃圾识别分拣

机械臂运送垃圾功能实现后,还需要实现垃圾颜色识别,并分拣到对应垃圾桶。这里我们模拟在机械臂上安装Huskylens,识别到不同颜色垃圾袋的ID时就将垃圾扔到对应颜色的垃圾桶中。

因为每个颜色垃圾桶在舞台区位置不同,需要找到垃圾桶对应的X坐标。只有当垃圾袋移动到垃圾桶上方的一定范围内时,才能够触发扔垃圾的动作。


垃圾桶舞台坐标图示


以红色垃圾袋为例,当Huskylens识别的颜色为红色,即ID=1时,判断垃圾袋X坐标是否在红色垃圾桶上方范围内。逻辑“与”运算符可以实现设置坐标范围:当满足两个或多个条件时,返回条件为真。用同样的方式判断识别结果为蓝色、黄色和绿色的情况。



垃圾分拣的功能我们就已经实现了。注意运行程序时要将Huskylens对准垃圾袋,避免误识别到背景或其他的颜色。还可以给你的程序添加背景音乐、音效哦,动手试一试吧。(完整程序见附录)

2.5 总结拓展

2.5.1 知识小结

硬件知识:Huskylens的颜色识别功能

编程知识:随机数程序指令的应用;广播消息功能

2.5.2 项目拓展

测试过后有没有发现,Huskylens有时会识别到垃圾袋以外的背景、机械臂或是垃圾桶的颜色,导致垃圾分拣进了错误的垃圾桶。那么如何通过优化代码,避免错误识别的情况发生呢?

可以在设置颜色识别判断条件时,同时判断垃圾袋当前造型与Huskylens识别到的颜色是否匹配。只有当识别到颜色ID和造型编号对应时,才把垃圾扔到垃圾桶中。


2.6 拓展阅读

2.6.1垃圾分拣机器人

随着垃圾分类的开展,居民已经逐渐建立起垃圾分类、物尽其用的意识。但是我国垃圾分类的系统和技术还处于初期阶段。经过分类的垃圾还需要送入分拣站,进行二次细化分类。庞大的垃圾量需要消耗巨大的人力,甚至可能对工作人员造成伤害。于是,大家就打起了机器人的主意。



垃圾分拣机器人利用视觉系统和人工智能智能技术,从繁杂的物品中,精准快速进行分拣。视觉系统相当于机器人的眼睛,即便垃圾快速一闪而过,也能被一个不差地记录在案。获得视觉信息后,下一步便是利用人工智能对物品进行鉴别,根据物品的形状、材质和品类来确定分拣的优先级,确保取得最优结果。判断完毕后,机械臂便可进行分拣。

分拣机器人保证效率高和误差低的同时,更能减少工人们的工作量,保障工人们的身体健康。由于分拣机器人还无法快速普及,我们更应该从自身做起,把垃圾做好分类,从根源解决问题。

(部分图片来源于网络,只为课程内容配图,不做商用。如果发现文章内有侵犯您知识产权的作品,请直接私信我们,我们会及时修改或删除。)

附录

附录1:程序指令



附录2:程序示例



资源下载:


页: [1]
查看完整版本: 【Mind+Huskylens趣味AI入门】系列课程—02 垃圾分类