越来越多的技术公司进入到人工智能(AI)领域,将AI应用到其产品和应用中。可以看到,AI已经融入我们的日常生活,有时我们甚至并不知道,和我们打交道的设备正在使用AI技术。这些AI应用包括:智能音箱中的语音交互,手机上的人脸识别,以及交通出行中的辅助驾驶等等。
AI技术的演进也在影响着机器人(Robotics)领域的应用。
德国宇航中心(DLR)开发的“Agile Justin”机器人就采用了AI技术,利用立体视觉来观察周围环境,利用触觉传感器来感知物体,执行类似人类的行为动作/任务。
在工业领域,机器人正在被大规模的应用于工厂自动化、仓储物流等场景,AI技术在其中发挥着重要的作用。
机器人这样的自主系统,一般由传感/感知,规划/决策,以及控制这样几个核心部分组成。传感/感知领域,是目前AI应用最多的地方。
日本安川电气在开发机器人Motoman(MotoMINI)——一种抓放(pick-and-place)机器人时,使用语音驱动的控制技术,实现人机交互,其中的语音识别,就利用了AI。
作为本身包含非常丰富信息的图像,也经常被机器人系统用于对物体的感知和识别。安川电气的研发团队将深度学习DL应用在计算机视觉上,帮助机器人实现基于图像的物体检测。
另外,视觉信息还可以在AI的帮助下,用于检测工业场景中的工件异常。
武藏精密,一家全球化的工业公司,利用AI技术,开发了一款用于汽车制造的自动视觉检查机器人,自动化的执行每月上百万工件的缺陷检测任务。
随着3D视觉处理技术和低成本深度传感器的飞速发展,在不断提高的计算机算力的支持下,3D视觉图像的获取和处理越来越方便,在机器人领域已经有很多3D视觉的应用案例,比如,可以将RGB-D图像数据应用于机器人的环境感知和三维目标识别。
香港应用科技研究院(ASTRI)开发的机器人,基于3D视觉,利用深度学习DL对被操作工件的位置和方向进行估计。
在决策和控制方面,AI技术同样也能发挥作用,其中,强化学习(Reinforcement Learning, RL)是工业机器人方向的一个研究热点。
RL以“试错”的方式进行学习,通过与环境进行交互获得的奖赏来指导行为,使机器人自主的发现并优化特定的行为模式。通常来说,RL支持机器人处理解决非常复杂的问题,比如让足类机器人通过使用视觉信息来沿着特定路线直立行走的问题、抓取类机器人对操作物体的平衡问题等。
在工业环境下应用RL虽然还在探索阶段,但已经有很多的原型系统被开发出来,从中我们发现,仿真技术是RL产业化应用的一个重要支撑。
机器人系统是一个包含机械、电子、电气、软件等的复杂多域系统,而AI技术本身也具有很高的复杂性,涉及AI模型的设计、训练和部署。将二者结合起来,开发出可在工业场景下使用的机器人应用系统,对机器人领域的工程师和专注AI算法的数据科学家们都提出了很大的挑战。
MATLAB/Simulink集成了对机器人和AI的支持,是开发基于AI的机器人系统的理想工具。
下面我们就来看看开发基于AI的机器人系统的基本流程,同时也了解一下MATLAB/Simulink提供的典型功能。
基于AI的机器人系统开发通常可以简要概括为四个阶段,即:数据准备,建立AI模型,机器人系统仿真与验证,以及应用部署。
下面我们以pick-and-place抓放机器人的开发为例,看看这四个阶段都会涉及哪些关键问题,以及如何在MATLAB/Simulink中来处理。
这个机器人的主要任务是,基于视觉感知来识别PVC工件形状,完成对PVC工件的分类拣选。
丰富的、高质量数据是开发AI应用的前提。
数据采集和数据合成是我们获取数据的两种主要手段。
数据采集下的图像,能够真实的体现整个环境对数据的影响,必然包括噪声。对于那些包含很大噪声、质量不佳的图像/数据,我们要采用适当的图像增强(滤波)技术,对其进行预处理,生成可用于AI模型训练的高质量图像/数据。
考虑到采集的成本和效率等因素,数据合成是丰富AI模型训练集合的一个有效补充。在仿真环境下,工件形状、光线条件、工件背景等都可以由脚本程序灵活控制,这样就可以非常小的人力投入,获得非常丰富的数据(内嵌真值标注信息)。
由于我们的任务是AI工程应用,所以通常在这个步骤并不需要从零开始设计AI算法,而是可以借用已有的研究成果,从大量可用的AI算法中选用符合任务需求的AI模型,进行裁剪定制,利用高质量的训练数据集对其进行训练,从而得到我们想要的AI模型。
建立AI模型的过程是迭代的、复杂的。
MATLAB/Simulink可以为这项任务提供很多帮助:
在仿真环境(MATLAB/Simulink)中,构建包括AI算法模型的整个机器人系统模型,来对AI算法模型的有效性和性能等方面进行确认和验证。
可以看到,除了应用了AI的感知部分,整个机器人系统还包括传感、规划、控制等,这些部分的嵌入式系统开发可以使用基于模型设计的方法来开展。
有了仿真环境的支持,我们可以很方便的获取机器人系统各个处理环节的输出结果,从而基于这些中间处理结果对各环节的算法或程序进行评估和改进。
首先根据项目需求(如成本、性能等)选择合适的处理器(GPU/FPGA/CPU)作为目标处理器,然后编码实现这个经过验证的AI模型,最后将可执行代码部署到目标处理器中。
AI应用属于计算密集型应用,需要很大的计算资源和存储资源的支持,调用和管理这些资源、将AI算法通过软件来实现,是一个非常耗时耗力的任务。
MATLAB/Simulink提供的代码生成工具,将大大减少应用部署的工作量,支持根据经过验证的AI模型自动生成可部署到目标处理器/环境的可执行代码。
了解更多使用MATLAB/Simulink开发机器人的信息:请百度搜索MathWorks
作者背景: 宋胜凯,MathWorks中国行业市场经理,负责MathWorks中国在工业自动化与制造行业的业务拓展,推广MATLAB/Simulink及基于模型设计在工业类客户研发效率提升和技术创新上的价值。毕业于北京交通大学,工学硕士
文章为MathWorks版权所有