学习使用NI的LabVIEW Robotics实现复杂的嵌入式设计

发布者:彭和阔发布时间:2016-03-22浏览次数:218

学习使用NI的LabVIEW Robotics实现复杂的嵌入式设计

机器人技术是发展最快的工程领域之一,也是最具有挑战性的一个领域。几乎所有的机器人,都有不同的操作环境,行为或任务也不同,连接的传感器和执行器也不同。因此,人们经常在不同的硬件平台上使用不同的开发工具来开发机器人。一个工程师开发的成功用于某个机器人的可用控制系统很难再用于另一个机器人,因为应用于传感、自治和电机控制的应用程序接口(API)在语法上是不同的。

在设计、原型开发和部署机器人应用时,面临三个最大的挑战:集成传感器和执行器,实现自治以及部署确定性的控制算法至嵌入式硬件。为了应对这些挑战, LabVIEW Robotics提供了一整套全新的机器人专用传感器和执行器驱动,以及实现复杂导航运算的新代码库。而且,有了LabVIEW,开发人员只需要使用一个软件开发环境就可以设计控制算法,连接实际I/O,以及部署至确定性硬件目标。

1. 集成传感器和执行器

如果设计者可以得到实际的传感器输入以及控制实际执行器,比如马达的能力,那么他们就能加快机器人的原型开发。LabVIEW Robotics包含新的VI选版来配置、控制和获取自主车辆中的一些最常用的传感器的数据,其接收到的数据可以使用。无论是低成本的红外线传感器还是高分辨率的光定向和测距(LIDAR)传感器,LabVIEW Robotics都可以让使用者快速地检索传感器数据,从而使他们能更加关注于高级智能和控制的实现。另外,无论是无刷马达,有刷直流马达,还是步进马达,LabVIEW Robotics都提供了多种连接、控制马达的方法。

学习使用NI的LabVIEW Robotics实现复杂的嵌入式设计

图1. LabVIEW Robotics包括一整套针对自治系统中最常用的传感器的新驱动。

美国弗吉尼亚理工大学设计的盲人驾驶车辆是一个典型的依赖于传感器的反馈和执行器的控制的机器人例子。这个半自动车辆有一个基于触觉的人机界面,可以让盲人驾驶员做出驾驶决定。传感器根据车辆的状态来采集重要信息,比如通过霍尔效应传感器采集速度信息,通过弦丝电位计采集转向角。光定向和测距(LIDAR)传感器扫描驾驶环境,然后确定障碍或者交通路标。­­学生们可以快速采集这些传感器获得的数据,然后在LabVIEW中使用NI CompactRIO内嵌式平台的高速现场可编程门阵列(FPGA)进行直接处理。

处理完这些传感器数据后,学生们使用LabVIEW和CompactRIO来控制大量的晶体管和继电器,以不同强度开动驾驶员身上穿的马甲中的马达。驾驶员可以使用触感式马甲对速度进行调节,从而自如的驾驶直至到达速度上限,速度达到上限时,马甲会提示驾驶员需要多大的刹车力度来使车辆回到安全速度。学生们在FPGA上使用LabVIEW实现这种电机控制,从而极大地缩短了从探测到障碍,到马达全速振动之间的时间,对于驾驶员来说,这在紧急情况下是至关重要的。

学习使用NI的LabVIEW Robotics实现复杂的嵌入式设计

图2. 弗吉尼亚理工大学的盲人驾驶车辆使用LabVIEW和CompactRIO完成与传感器、执行器的通信,算法开发以及部署。阿迪•哈根,16岁,驾驶盲人汽车,带着弗吉尼亚理工大学的设计师格雷格•加纳曼(乘客座)出去兜风。

仅仅用了两个学期,9名大学生就完成了设计,盲人驾驶员可以安全地实现基本的驾驶任务。

“LabVIEW具有直观的图形化操作界面,LIDAR等传感器的驱动也是现成的,这对由机械工程专业大学生组成的团队来说,可以让我们快速、有效的搭建定制的嵌入式软件。”——格雷格•加纳曼,弗吉尼亚理工大学的学生,团队队长。

2. 自治代码库

实现机器人的自治是一个既有挑战,又非常重要的任务。对于像导航这样的任务,算法越来越复杂,这往往需要软件开发人员具有计算机科学方面的背景知识。另外,如果不能实现代码的重复利用,每开始一个新项目,工程师总要从底层对算法进行开发。

为了帮助机器人工程师进行算法开发,NI定义了一些在自治系统中最常用的算法,并将这些算法打包,这样,即使工程师没有计算机科学的背景知识,也可以让他们实现机器人的自治。LabVIEW Robotics包括一些新的VI和例子,比如基于传感器反馈的避障算法,计算开始位置和目标位置之间的最短距离,以及将一个标准的或者可度量的空间变换成可搜索的网格,从而使移动机器人实现导航。

学习使用NI的LabVIEW Robotics实现复杂的嵌入式设计

图3. LabVIEW Robotics可以实现高级的自治算法,比如A*搜索路径规划。

LabVIEW Robotics中的算法都是模块化的,他们被细分为一些独立的任务。这种模块化使得开发人员可以轻松地修改现有的代码,或者在多个项目中重复利用同一套代码或算法。这样一来,开发者就可以在从最底层算法开发上节省时间,从而可以把更多时间用在针对特定应用的高级或者自定义算法上。

3. 部署控制算法至确定性硬件

机器人所使用的算法从设计到实际在硬件中执行是一个很困难的过程,这需要机器人开发人员在两者之间建立一个桥梁。对于像导航和定位这样的任务,现代机器人需要高响应的控制。许多工程师首先使用高级数学软件对算法进行建模和测试,然后再将算法植入到C语言嵌入式系统中,再对低成本、低档次的硬件进行汇编编程。这经常需要在嵌入式硬件上对控制算法进行重新实现和测试。

LabVIEW改进了这个过程,将与硬件的通信抽象化,从而使在嵌入式实时和FPGA目标上访问分析、数学、自治代码库和在台式电脑上访问这些库函数一样方便。这使得工程师可以将理论的算法设计与实际的数据结合在一起,从而更准确的对结果和行为进行核实及确认。

学习使用NI的LabVIEW Robotics实现复杂的嵌入式设计

图4. LabVIEW连接了原本传统的工具在设计和部署之间的鸿沟。

使用NI的产品,开发人员可以轻松地将LabVIEW Robotics和实时以及基于FPGA的硬件结合在一起,从而获得高响应的控制。这些产品包括坚固的CompactRIO嵌入式平台,低成本且只有单板的Single-Board RIO。有了这种可重复配置I/O(RIO)硬件架构,机器人开发人员可以使用FPGA逻辑来实现硬件接口,信号处理,以及任何对时间确定性要求比较高的控制算法;从而使处理器腾出时间来处理像导航或任务规划这样的高级任务。

学习使用NI的LabVIEW Robotics实现复杂的嵌入式设计

图5. NI基于FPGA的实时硬件CompactRIO和Single-Board RIO

通过使用LabVIEW这种图形化编程环境和NI的Single-Board RIO,由来自加州大学圣地亚哥分校(UCSD)的本科生和研究生组成的团队,开发了一款地面无人车辆,它可以穿越复杂的地形,比如瓦砾和楼梯,同时保持一个小的外形格局用于密闭空间导航。仅用了几个月的时间,学生们就可以实现所有的底层编程和调试,并能够把他们的软件部署到机器人中进行测试。软件使用的是复杂的控制和估计算法,能够获得不同的运动模式,其中包括保持平衡。

“LabVIEW和Single-Board的结合使我们可以在车辆的运行过程中调整增益系数,并且实时监控它的性能表现,这大大减少了控制系统的开发时间。硬件与软件的无缝整合让我们能把时间更多的用在控制算法上,而不是用在连接传感器和执行器上。” ——尼克•马洛卓斯基,机械工程专业博士研究生,“弹簧刀”项目团队队长。

学习使用NI的LabVIEW Robotics实现复杂的嵌入式设计

图6. 多模式机器人“弹簧刀”,由UCSD的学生使用LabVIEW和NI的Single-Board 设计

4. 总结

从革命性的医疗器械到尖端机器人和工业机器,图形化系统设计可以帮助开发人员进行快速原型设计和开发,并且部署至嵌入式系统。LabVIEW图形化开发环境和基于FPGA的嵌入式实时硬件之间的无缝结合可以让开发人员快速的设计,原型开发,以及部署他们的系统。加上最近加入NI平台的LabVIEWRobotics模块,开发人员现在已经有了设计精密的机器人或者自治系统的所有工具。

附加资源

关于LabVIEW机器人软件的更多资源请访问:LabVIEW 2009机器人模块概述

文章来源:NI官网