根据MATLAB的官方介绍,它是「 科学计算的语言」,是「灵感与创新的工具」,可以帮助用户更好的「开拓思维」以及「付诸实践」。机器之心对MathWorks北美教育科技市场部程邺博士进行了专访。程邺详细介绍了MATLAB等产品的用途,尤其是在人工智能、机器人领域的应用,以及MathWorks公司的理念之一:让更多的人掌握与机器交流的通用「语言」,让更多非专业的人们能够享受技术带来的乐趣和益处,从而提升自己的教育、工作和生活。
1、关于MathWorks
MathWorks一直以来非常重视学校和教育,多年来一直在支持各种领域的学生大赛。这与公司的基因和发展历程是分不开的。1979年,Cleve Moler教授在斯坦福大学教一门叫做数值计算的课程,为了让学生把精力更多地投入到学习数学概念,而不是编程语言上,他引进了自己前些年编写的高级语言,来代替Fortran。这门语言就是MATLAB。学生们非常喜欢MATLAB,并为它找到了很多Moler教授自己都没有想到的应用方向。MATLAB就在斯坦福学生和他们的朋友圈中传开了。其中的一个年轻人就是Jack Little。Jack将MATLAB的功能又拓展了一些。1984年,MathWorks公司成立,MIT买了第一个软件。所以,虽然MathWorks产品已演化成工业界科学计算和基于模型设计的标准平台,但是它会一直重视在教育界的深深根基。学生课内外用MATLAB,不仅仅是在学编程,而是在通过这门高级的语言理解专业知识,把想象付诸实践,甚至是在学习一种全新的表达自我的方式。
2、MATLAB:帮助学术界和工业界良好结合
MATLAB是MathWorks的主要产品之一,它不仅是一个编程语言,同时也是一个多元化的平台。另一大产品家族是Simulink,一个面向多域仿真并和基于模型设计的框模块图环境。除了这两种主要工具以外,还有上百种工具包来适应不同的行业需求。比如说,有专门做物理模型的Simscape和SimMechanics。例如用户需要仿真一个人类关节,利用工具箱里自带的基础模块,可以很快地组装并模拟关节的运动及系统动力学。
MATLAB可以将很抽象的东西现实化,有助于学生的理解和学习。全球5000多个大学都在教学和科研中应用MATLAB。同时,在工业界,MATLAB渗透于航空航天、汽车、生物制药、电子、能源、金融、人工智能等领域。 教育和工业的同时渗透,使MathWorks处在一个独特的地位:帮助科研合作、建立学校教育和工业界需求的桥梁。比如,工业界早已选取仿真和实验的结合,采用自动代码生成。但在学校里面可能还是一些比较传统的教育方法,学生最后学到的知识就可能太书本了,很难产业化。MathWorks致力于通过产品的通用性和工程师的服务来弥补这一鸿沟。
3、MathWorks和RoboCup机器人世界杯的故事
RoboCup是国际上最大型、级别最高、最受国际认可的机器人大赛。每年有来自世界各地的200多个团队参加,大会的目标是让机器人在2050年击败人类世界杯冠军。
这是一个很振奋人心的想法,2050年离现在还有35年,可以说这个目标是挺有野心的。但是你要回想35年之前,我们想不到信息科技和机器人会有如此的发展,所以我对这个目标还是满怀信心的。虽然叫做机器人世界杯赛,足球是最主要的一个项目,但还有其他多种比赛,比如说救援机器人、物流机器人和工业上的车间机器人等。
这个比赛分为很多组,有面向大学生的成人组,还有以初中高中生为主的青少年组。根据机器人大小又可以分成小型组和中型组;还有标准平台组,是基于同一款机器人上开发应用 ; 此外还有类人组和仿真组(没有实体机器人,只是在电脑上做二维和三维的模拟)。
我们能为这些团队,为这个大赛做些什么?首先,给团队提供免费的软件,同时,提供技术支持,帮他们解决难题,实现设计目标。比赛进行中,所有判断全是机器人自己做出的,没有人类干扰,所以前期的算法设计和实行有很多挑战,涉及到图像识别、机器人控制、运动平衡、路径优化、策略选择,以及团队协作等等方面。这些都是MathWorks工具的强项。
4、MATLAB让更多的人掌握通用语言,让编程更好玩
就像人类说人类语言,计算机说机器语言。MathWorks的软件相当于是创造了一种更接近人类语言的语言,使机器能够「听懂」,让我们更好的与机器进行交互。这可以理解成翻译,我们在人类语言和机器语言之间进行翻译,在高级机器语言和低级机器语言之间进行翻译。
最近有一种趋势,叫做计算语言素养,就好像是传统的识字、文学语言素养,学习的却是计算机语言。人人学习计算机语言,并不是说人人都要成为软件工程师,而是要懂得现今的技术社会是怎样运作的,培养基本的逻辑思维。如今人手都持有多个智能电子产品,Internet of Things(IOT)、Smart Things等渗入于普通人生活的各个方面,能够对这些物品最基本的运作方式有些了解,甚至能和机器进行更好的交流,在逐渐变为一种素养。连前纽约市长、彭博集团总裁Michael Bloomberg都将学习编程作为新年志愿。一个亿万富翁为什么要学会编程呢?他真的觉得这件事情很重要,让他有一种新的视角来理解世界。
MathWorks工具被广泛应用于教育业以及工业界,它的容易上手并且功能强大的特点也同时被很多业余爱好者和创客们接受。他们把自己的想象力和创造力用MATLAB、Simulink和其它工具箱很快的实现起来。有人做了会自动解魔方的机器人、智能手环、心率监测仪。有人自制家庭控温系统,行动监测器、天气探测器,声控灯。创客们之所以能快速将自己的想象现实化,因为MATLAB和Simulink提供很多与低成本硬件(比如Arduino,Raspberry Pi、 BeagleBoard等)的连接支持,并且有强大的图像处理、数据采集、信号处理、控制等等的工具箱。几行代码、几个模块,不用是专业的工程师或者程序员,大众也可以享受的MATLAB的应用和乐趣。
5、MathWorks在人工智能和机器人领域发挥的作用
在给机器人编程时有一些非常复杂的数学模型,开发者可以用比较低级的语言一点点写,这会花很多时间。但MATLAB的平台上已经提供很多工具箱和自带算法,一行MATLAB函数,也许需要几十行C语言。自动代码生成大大缩短研发时间、并减少了手动代码的出错率。
除了机器人大赛,MathWorks也非常关注机器人领域的发展。 2015年推出了一个新的工具包 - Robotics System Toolbox,对于仿真机和硬件机器人都有提供直接的接口,还包含地图、路径规划、图像识别、自动控制等多种算法,为机器人领域的研发提供了一个更好的软件平台。
以一个工业焊接的机械臂为例,它是让焊接枪沿着一定轨迹运动,这其实是一个相当复杂的 动力学及控制问题。因此,要想让手臂末端指向空间一点或者沿一轨迹运动,需要列出并解 决很多很复杂的数学公式,每个关节的运动轨迹、速度、以及促使运动需要的力和力矩等都 是要计算的未知量。没有计算机的帮助,靠手算是基本不可能的。MATLAB和Simulink是高级的计算和建模工具,可以大大节省设计、仿真、和跟硬件结合的时间。在使用这些工具时, 所有的部件、关节和约束等都是模块化的。用户可以直接选择一个SimMechanics工具箱自带的模块,比如定轴转动模块,设好其约束,机器人手臂的肩膀关节就做成了。用同样的方式很快便能组成整个机器人手臂的模型,并且模拟其运动,实时计算各关节需要的力矩。如果靠人自己推倒公式,或者用C语言来从零开发,工作量将成几何倍增加,使用MATLAB和 Simulink进行建模和仿真的方式则大大降低了研发成本和时间,这就是为什么工业界会采用这种标准流程。
人工智能方面,拿人脸跟踪来说(程邺演示了一个小程序,使摄像头能够自动识别人脸并进行跟随),程序首先需要的就是人脸识别,在MATLAB里,我们只需输入命令「识别一双眼睛」,然后系统就找到了眼睛。因为后台做了很多数据库,做人脸识别是需要针对数据集进行训练的。我们并不是人脸识别专家,但是用这一句MATLAB语言就可以使用这个功能。
MathWorks关注教育、关注工业、关注金融等各行各业的背后,是对人类技术和创新的不断追求,是对于人类与机器沟通的向往。你会说MATLAB吗?