三维仿真在智慧城市中的运用,机械臂智能垃圾分类

蝉姐
• 阅读 1187

前言

随着城市建设的高速发展,优化环境管理与服务一直是关注的重点,也是一项民生重要工程。不断改善市民的生活居住环境,将融入了新一代的信息技术,打造智慧城市建设。首要是解决城市垃圾作为一大难题,而且对智慧城市发展充满了诸多挑战。重要的一点是,有数据显示,我国生活垃圾产量超过4亿吨。我国600多座大中城市中,三分之二陷入垃圾包围之中,四分之一城市已没有堆放垃圾的合适场所,对于垃圾环境的治理迫在眉睫,到2019年6月25日,生活垃圾分类制度将入法。对于新基建也在紧锣密鼓地实施中,工业互联网的运用同样可以在垃圾分类的智能管理上实现,通过自动化机械臂的实现,我们可以搭载出一套应用于工业物联网的智能一体化的垃圾分类机械臂。

HT for Web 不止自主研发了强大的基于 HTML5 的 2D、3D 渲染引擎,为可视化提供了丰富的展示效果。介于 2D 组态 3D 组态上, Hightopo (以下简称 HT )的 HT for Web 产品上的有着丰富的组态化可供选择,本文将运用 HT 搭载出一个机械臂垃圾分类的案例以及垃圾分类知识趣味问答。

界面简介及效果预览

案例所体现的功能是,传送带上运输的垃圾,通过机械臂的动作将其垃圾分类至对应的垃圾桶当中,起到垃圾分类演示的作用。其次,点击对应的垃圾桶,还可以视角转移并锁定该垃圾桶,弹出提示窗口来介绍这个垃圾桶所划分的垃圾分类发范畴,起到解释说明的作用。

三维仿真在智慧城市中的运用,机械臂智能垃圾分类

预览地址:https://www.hightopo.com/demo/garbage-classification/

系统分析

垃圾分类,一般是指按一定规定或标准将垃圾分类储存、分类投放和分类搬运,从而转变成公共资源的一系列活动的总称。分类的目的是提高垃圾的资源价值和经济价值,力争物尽其用。垃圾在分类储存阶段属于公众的私有品,垃圾经公众分类投放后成为公众所在小区或社区的区域性准公共资源,垃圾分类搬运到垃圾集中点或转运站后成为没有排除性的公共资源。从国内外各城市对生活垃圾分类的方法来看,大致都是根据垃圾的成分、产生量,结合本地垃圾的资源利用和处理方式来进行分类的。

一、分类目的

分类的目的就是为了将废弃物分流处理,利用现有生产制造能力,回收利用回收品,包括物质利用和能量利用,填埋处置暂时无法利用的无用垃圾。

二、分类的好处

  • 减少占地:生活垃圾中有些物质不易降解,使土地收到严重侵蚀。垃圾分类,去掉可以回收的、不易降解的物质,减少垃圾数量达60%。
  • 减少污染:目前我国的垃圾处理多采用卫生填埋甚至简易填埋的方式,占用上万亩土地,并且虫蝇乱飞、污水四溢、臭气熏天,严重污染环境。
  • 变废为宝:垃圾中的其他物质也能转化为资源,如食品、草木和织物可以堆肥,生产有机肥料;垃圾焚烧可以发电、供热或制冷;砖瓦、灰土可以加工成建材等等。

三、分类的现状

  • 可回收垃圾:是指适宜回收和可循环再利用的物品,如纸制品、塑料制品、玻璃制品、纺织品和金属等;
  • 厨余垃圾:是指餐饮垃圾、家庭厨余垃圾和废弃的蔬菜、瓜果、花木等;
  • 有害垃圾:是指对人体健康、自然环境危害的物质,如废弃的充电电池、纽扣电池、灯管、医药用品、油漆、化学品、废弃的农药、化肥残余及包装物等;
  • 其他垃圾:是指前三项以外的生活垃圾,如惰性垃圾,不可降解的一次性用品、普通无汞电池、烟蒂、纸巾、家庭装修废弃物、废弃家具等。

三维仿真在智慧城市中的运用,机械臂智能垃圾分类

效果实现

一、机械臂动画效果

案例主要是通过动画来实现的,而其动画的核心机制是使用了 HT 内部封装的动画函数 ht.Default.startAnim(),通过启动一个动画对象来使整个动画运行起来,ht.Default.starAnim() 支持 Frame-Based 和 Time-Based 两种方式的动画,Frame-Based 的方式是用户通过指定 frames 动画帧数,以及 interval 动画帧间隔参数来控制动画效果,而 Time-Based 的方式是用户只需要指定 duration 的动画周期的毫秒数即可,HT 将在指定的时间周期内完成动画;还设定了 delay 动画延迟执行的时间来搭配动画实现的效果;easing 参数则是用于让用户自定义函数,通过数学公式控制动画,如匀速变化、先慢后快等效果;其中最重要的就是 action 动画执行函数和 finishFunc 动画结束回调函数,通过一些效果的搭配使用,可以使用户达到平滑的动画效果。

机械臂的实现是通过,对机械模型细节零件的拆分,其次通过 HT 封装的动画函数 ht.default.startAnim() 依次执行各个细节零件的动画,对应所拆分的机械模型细节零件为:

三维仿真在智慧城市中的运用,机械臂智能垃圾分类

机械臂的动作是通过一套动画流程的往复实施来实现的,而实施的机械流程为:

三维仿真在智慧城市中的运用,机械臂智能垃圾分类

机械臂的动画参考了网上许多机械臂专业的视频,学习它的运动模式和动作细节,对每个结构和部位的动画进行步骤的排序和构思。这里我挑选几处动画的实现方式来展示:

三维仿真在智慧城市中的运用,机械臂智能垃圾分类

这一段动画是机械臂从初始化状态到向下抓取的一个过程,我将每段动画分成函数来写比较方便后续管理,每一处也代表了一个步骤。这其中最复杂且细微的步骤要数液压杆的运动了,为了让动画看起来更加真实,我除了将手臂单独运动的过程中加入了延时执行下一段动画以体现机器运动的特点外,也把液压杆的部分也做了动画,如果不做处理,那么机械臂在上下移动的时候就会有不科学的效果出现。动画函数在各种应用场景中使用得最广,而且里面也包含了一些缓动函数,搭配上自己的动画需求,可以实现很多不一样的动画效果。

三维仿真在智慧城市中的运用,机械臂智能垃圾分类

这里面的拾取垃圾步骤采用了是 HT 的吸附功能,有兴趣的话可以通过 吸附 的文章介绍来了解这一机制的运用。这个方法非常的适合抓取物体的动作,通过 setHost 使节点吸附于宿主,这样就相当于子节点跟随父节点移动,此时只需要对机械臂进行偏移和旋转的操作,垃圾便会随之一起运动了,大大减少了工作量!

三维仿真在智慧城市中的运用,机械臂智能垃圾分类

二、场景的阴影效果

还有一部分更酷的属性设置给大家展示一下,可以让 3D 场景整体拥有更真实的阴影处理效果。首先我们要注意将无关的节点阴影通过 node.s('shadow.cast', false) 关闭,比如编组用的 box,背景、地板和面板等。 最后我们就把阴影的细节做下调整,达到比较好的效果:

三维仿真在智慧城市中的运用,机械臂智能垃圾分类

调整的参数如下:

gv.enableShadow(true, {
    // 投影 x 轴角度
  degreeX : 0,
    // 投影 z 轴角度
  degreeZ : -25,
    // 阴影强度,1为黑色
  intensity : 0.3,
    // low / medium / high / ultra / 4096数值,质量
  quality : 'high',
    // none / hard / soft
  type : 'soft',
    // type 为 hard / soft 时,补充的边缘厚度,用来提供更柔和的边缘
  radius : 0.2,
    // 深度浮点偏差补足
  bias : -0.003
});

三、垃圾分类知识趣味问答

除了垃圾分类的系统演示以外,我们还实现了一个关于垃圾分类的知识趣味问答,所实现的方式是借助 HT 上 2D 组态特有的矢量图标,加上一些题目库和答题反馈效果的补充而完成的,有兴趣的小伙伴可以考验一下自己对于垃圾分类的辨识能力:垃圾分类知识趣味问答

三维仿真在智慧城市中的运用,机械臂智能垃圾分类

趣味问答在垃圾桶图标的使用上是采用 HT 的矢量图标,而中间的选项则采用普通的图片 png 和 jpg 格式,其中可以明显地看出之间观感上的辨别,HT 的矢量图标本质上拥有适应不同屏幕大小而不失真的情况下存在,加上 HT 上特有的数据绑定机制,我们可以在问答点击对应垃圾桶的同时,对所点击的对象进行一系列的动画操作,例如垃圾桶的摇晃或者是答题正误的反馈,都是通过绑定 tag,并对其做一些动画数据的变动来达到的效果。

而矢量呢?在 HT 中是矢量图标的简称,常见的 png 和 jpg 这类的栅栏格位图,通过储存每个像素的颜色信息来描述图形,这种方式的图片在放大或缩小时会出现图形模糊,线条变粗出现锯齿等问题。而矢量图片通过点、线和多边形来描述图形。因此在无限放大和缩小图片的情况下依然能保持一致的精确度。所以矢量不仅仅运用在普通的案例小游戏中,在众多大屏的展示效果上也是极其完美的,搭配上 HT 的布局机制,不但在各自大屏上运用自如,在各自电脑显示终端,甚至手机端都能完美地适配。

总结

垃圾分类是对社区治理水平的一次测试,也是促进社区治理能力提升的契机。社区治理精细化,不仅需要人情味,也需要科技范儿。期待在不久的将来,每一个社区都能成为一个个神经元细胞,共同连接成智慧城市的“大脑”,让我们的生活更美好!

同样的在规范管理的同时,HT 也努力打造了许多好玩的动画流程,例如医疗站的实现,同样是运用完整的机械传输流程来介绍医疗站之间的运作关系:

三维仿真在智慧城市中的运用,机械臂智能垃圾分类

2019 我们也更新了数百个工业互联网 2D/3D 可视化案例集,在这里你能发现许多新奇的实例,也能发掘出不一样的工业互联网:https://mp.weixin.qq.com/s/ZbhB6LO2kBRPrRIfHlKGQA

同时,你也可以查看更多案例及效果:https://www.hightopo.com/demos/index.html

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这