资讯
展览资讯 大型展会 灯光节 大型盛典 赛事 中标捷报 产品快讯 热门话题 艺术节 活动 演出 新闻 数艺报道 俱乐部签约
观点
大咖专访 观点洞察 书籍推荐 吐槽 设计观点 企业访谈 问答 趋势创新 论文 职场方法 薪资报价 数艺专访
幕后
幕后故事 团队访谈 经验分享 解密 评测 数艺访谈
干货
设计方案 策划方案 素材资源 教程 文案资源 PPT下载 入门宝典 作品合集 产品手册 电子书 项目对接
  • 0
  • 0
  • 0

分享

如何利用Unity快速搭建训练机器人数字孪生?

原创 2021-11-04

Unity 的人工智能与机器学习高级副总裁 Danny Lange 博士曾表示:“目前,多种新技术、多种新理念相互碰撞结合,终将引发一场新革命。我们正处于这场革命的临界点。”


这场革命的具体形态尚未确定,但可以确定的是,这是一场打破现实与虚拟次元壁的革命。


比如“野生钢铁侠”、华为天才少年、AI 算法工程师稚晖君的作品《我把自行车做成了自动驾驶!!》中,就在 Unity 引擎中构建了一个虚拟的物理环境,引擎中的模拟自行车有着真实的质量,他将自行车的“自行”的过程算法在虚拟环境中可视化了出来,模拟过程没有问题后他才将仿真过程搬到现实。


在Unity中进行模拟

或许在不远的未来,现实中的产品在投入使用之前,都会在虚拟空间里先“演练”一番。


Unity 内部的 AI 团队一直致力于为机器学习、计算机视觉和机器人等领域打造工具,帮助所有需要 AI 和实时 3D 环境的行业加速项目开发。


在今年的 OpenCV Spatial AI 竞赛中,Gerard Espona 及其 Kauda Team 的参赛作品中包含了多个使用 Unity AI 工具和软件包制作而来的实例,充分利用了 Unity 的机器人、计算机视觉、强化学习和增强现实技术:Perception Package 被用于辅助训练计算机视觉模型,ML-Agents 工具套被用于训练机器学习模型及机械臂的 sim2real 演示。


我们采访了 Gerard,了解他们是如何利用 Unity,在现实世界和虚拟世界中搭起一座桥梁。



Kauda Team 的队名是从哪来的?


Kauda Team 由 Giovanni Lerda 和我(Gerard Espona)两人组成,队名来自 Giovanni 开发的可 3D 打印、电脑主机大小、免费开源的五轴机械臂:Kauda。这款机械臂能由任何人用 3D 打印设备制作,我们也用它开展了项目的远程协作。



Unity 中的 Kauda 数字孪生是怎样制作的呢?


我们专门开发了一个 Unity 应用:Kauda Studio,来驱动 Kauda 的数字孪生。软件提供了一个功能齐全、精确的 Kauda 模拟,带有反向运动学(IK)控制、USB/蓝牙连接,还支持多个 OpenCV OAK-D 摄像机。


什么是 OAK-D 摄像机,它如何在 Unity 中使用?


OAK-D 摄像机由两个立体深度摄像机、一个带有内置处理功能(由英特尔 MyriadX VPU 驱动)、可自动识别多种特征的 4K 彩色摄像机组成。在参赛期间,我们为 OAK 设备创建了一个 Unity 插件,并且也想在 Unity 中为其制作一个数字孪生。


OAK-D 的 Unity 数字孪生集成了一个虚拟的 3D 摄像机,其精确的模拟能力可用于收集合成数据。摄像机还支持将虚拟图像传输到真实设备上,我们能用 Unity Perception Package 和模拟的 OAK-D 摄像机收集合成数据、训练项目。


Unity中的OAK-D摄像机模型


在制作过程中,使用了 Unity 的哪些功能?


我们可以使用数字孪生为 Kauda 开发更多的功能。通过 Unity 的增强现实(AR)功能在现实环境中与虚拟的机器人进行互动,比如在无机器人实物的情况下学习机器人维护,或者使用虚拟但精确的机器人模型来无代码地编写连续性任务。


数字孪生还使得强化学习(RL)训练成为了可能。RL 的训练周期普遍较长,如果训练不是极其简单的例子,模拟的使用就会非常必要。在 Unity 中制作出 Kauda 模型后,我们使用了 ML-Agents 工具套来进行操控相关的 RL 训练


我们还在 Unity 中使用机器人与摄像机来检测人类在工作区域内的位置,用于实验人机协作和安全程序。如果一个大型机器人在运行中发生故障,就很可能会对人造成伤害,因此这种实验非常有必要。模拟环境能让我们在不冒危险的情况下开展测试。


项目怎样是用到 ML-Agents 工具包的?


RL 是一个强大的机器人框架,而 Unity ML-Agents 是工具套能让数字孪生学习并执行复杂任务。由于时间有限,我们的目标是实现一个简单的“触碰”任务,并让模型在 OAK-D 设备有能力进行推理。在 ML-Agents 的帮助下,机器人习得了最佳运动路径,可借助 IK 来灵活地触碰检测到的 3D 物体。



为了达成这一目标,我们首先使用 spatial tiny-YOLO 开发了一个 3D 物体检测器。RL 模型(PPO)使用检测结果和IK控制点的位置作为观测输入,动作输出则由 IK 控制点的 3 轴运动实现。在模型的奖励机制中,每一步运动都会带来少量的惩罚,而触碰到物体则会带来大量奖励(1.0)。为了加快训练速度,我们使用了多个智能代理同时训练,成倍地生成 spatialtiny-YOLO 的训练数据。


在训练完成后,我们接着使用 OpenVino 工具包将模型转换为 OpenVino IR 和 Myriad Blob 格式,方便在 OAK-D 设备上加载模型并运行推理。最后一道流程是结合 spatial tiny YOLO 与 RL 模型。多亏我们的 Unity 插件,我们能够在 Unity 内比较 ML-Agents 和 OAK-D 代理的推理成果。

 


合成数据在项目中起了什么作用?


我们开发流程的第一阶段制作一个 3D 物体检测器,这也是 AI 计算机视觉和机器人开发的常见起点。这里,我们使用 Unity Perception 软件包来训练 tiny YOLO v3 模型识别自定义的物品类型。Perception 包能够在几分钟内生成大量的 3D 合成数据,还能自动标注出参考边界框,如果人工来收集数据和添加标注会耗费大量时间。支持生成丰富的数据集,以及转向、光照、纹理等多种随机化选项是一个很大的优势。



你们有遇到什么困难吗?


虚拟物品与现实物品的同步时机有时会出现偏差。不过幸亏 Unity 支持 ROS(Robot Operating Syetem,机器人操作系统),我们可以在以后使用 ROS 来解决这个问题。


了解更多详情


很高兴看到 Unity 的工具在开发者手中发挥作用。如果你也想为自己的 Unity 项目加入人工智能,可以前来学习我们的示例项目与教程!你也可以使用 Unity Perception Package 在 Unity 中轻松生成合成数据。而 Unity Robotics Hub 上的教程和资源包可帮助初学者快速入门 ROS 集成和机器人模拟。最后,ML-Agents 工具套带有的多个训练环境也能让强化学习入门更为简单。


[1] Unity Perception Package:

https://plastichub.unity.cn/unity-tech-cn/com-unity-perception

[2] Unity Robotics Hub:

https://plastichub.unity.cn/unity-tech-cn/Unity-Robotics-Hub

[3] ML-Agents工具套:

https://plastichub.unity.cn/unity-tech-cn/ml-agents


长按关注

Unity 官方微信

第一时间了解Unity引擎动向,学习最新开发技巧



 每一个“在看”,都是我们前进的动力 

阅读原文

* 文章为作者独立观点,不代表数艺网立场转载须知

本文内容由数艺网收录采集自微信公众号Unity官方平台 ,并经数艺网进行了排版优化。转载此文章请在文章开头和结尾标注“作者”、“来源:数艺网” 并附上本页链接: 如您不希望被数艺网所收录,感觉到侵犯到了您的权益,请及时告知数艺网,我们表示诚挚的歉意,并及时处理或删除。

数字媒体艺术 虚拟次元壁 人工智能 视觉模型 虚拟物品

30727 举报
  0
登录| 注册 后参与评论