引言
1956年,恩格伯格和乔治迪沃尔发明了第一个真正意义上的机器人,Unimate,可以执行存储在磁鼓存储器中的系统任务。到1961年,Unimate已经被成功应用于压铸件的运输和焊接,传统上这样的工作由工人担任——冒着因排出气体中毒或丧失肢体的风险。 Unimate是机器人用于危险任务场合的早期例子,如今,机器人系统已经被广泛应用于工业、农业、军事、航空航天、教育等各个领域。
机器人分类复杂且关键技术众多,从广义范畴上说,通常所说的机器人主要包括教育机器人、移动机器人、工业机械臂三大类。机械臂发展时间早,产业化程度高,相对已经有了成熟的行业解决方案,特别在汽车制造等领域,机械臂已被广泛的运用于产线装配。移动机器人构成复杂、应用灵活,目前商业化程度还不高,相对处于前沿研究的阶段,因此一直以来都是科学家和工程师们关注的重点。 本文将主要探讨移动机器人及无人驾驶车的研究和开发。
图1 机器人系统的分类
尽管移动机器人构成复杂且关键技术众多,但具有某些共同的构架和组成部分,是一个融合了众多机电系统和子系统的综合体系,并通过这些组成部分与子系统的有机结合协调工作,虽然部分子系统已有现成的软硬件工具和解决方案,但如何快速地把各子系统集成在一起、进行早期的整体功能性验证,就成了决定机器人设计成败的关键性环节。
图形化系统设计——机器人设计的前沿方法
在Google X PRIZE机构、FIRST组织(科学技术的启示与认知组织)、RoboCup以及美国国防高级研究计划局(DARPA)之间展开的竞争推进了机器人学领域的创新。富有创新思维的开发者们将机器人学的前沿方法推进到了图形化系统设计。在LabVIEW图形化编程平台下,机器人学的领域专家能够对复杂的机器人方案进行快速的原型设计。这些创新工作者能够不用关心底层的实现细节,可以将注意力集中到解决手上的工程问题中去。
机器人设计通常包含以下部分的工作内容,如图2所示:
感知系统- 连接到陀螺仪、CCD、光电、超声等传感器,获取并处理信息决策规划- 相当于机器人的‘大脑’,根据算法进行控制决策,完成管理协调、信息处理、运动规划等任务
执行控制- 根据具体的作业指令,通过驱动控制器、编码器和电机完成机器人的伺服控制与运动执行
网络通讯与控制- 机器人各子系统间的通讯网络,完成分布式控制与实时控制
图2 移动机器人的设计平台
过去,由于在每个领域中必须使用各自的传统工具,其中涉及的知识具有较大的纵向深度,机械工程师、电气工程师以及程序员团队都各自领导机器人学的开发。LabVIEW和NI硬件提供了一个独特的、功能多样的平台,它提供了一套标准的可供所有机器人设计人员使用的工具,从而使机器人开发得到了统一。
来自弗吉尼亚理工大学机器人学与机械实验室(RoMeLa)的工科学生,在Dennis Hong教授的领导下正在进行智能动态拟人机器人(DARwin)的双足类人机器人的开发和研究,目的是对假肢进行研究和开发。DARwin使用NI LabVIEW图形化系统设计平台,能够实现全范围运动,并且能够准确地模拟人类运动。学生使用LabVIEW分析动态双足运动、设计并开发机器人控制系统的原型。如果开发的原型能够令人满意地工作,他们就将控制算法部署到运行LabVIEW实时模块的PC/104单板计算机上。
通过LabVIEW,设计人员无需成为计算机专家或程序员,就可以开发高级机器人。例如,一位只有有限LabVIEW和机器视觉经验的学生在短短几个小时之内,就设计了一个让机器人利用它带有的IEEE 1394相机和NI机器视觉开发模块跟踪一个红球的算法。工程师们使用LabVIEW和NI硬件,就可以使用功能强大的图形化编程语言快速地设计并开发复杂算法的原型;并通过代码生成方便地将控制算法部署到PC、FPGA、微控制器或实时系统之中;还可以与几乎所有的传感器、执行器进行连接。此外,通过LabVIEW和NI硬件平台,可以支持CAN、以太网、串口、USB等多种接口,方便地构建机器人系统的通讯网络。现在,领域专家不仅仅能够完成机械工程师的工作,还能够成为机器人设计者。
实例分析1:南洋理工大学使用NI LabVIEW设计救生机器人蜘蛛
南洋理工大学开发了一个用于支持营救工作的六足机器人蜘蛛。它是一个尺寸较小、可移动的智能机器人,在搜寻被陷的受害者时,它可以越过障碍并到达通常难以触及的地方。替代如清扫雷区使之无雷化等危险任务中的工作人员也是机器人蜘蛛的另一个潜在应用领域。
他们设计了一个高度可移动的行走方案,它由六只独立的下肢组成,可以任意方向移动机器人,即使在机器人移动通常不可行或过于危险的地带。行走与旋转均属于模仿六足昆虫而得的基本的高层次运动模式。通过三条下肢移动而另外三条下肢抬高,机器人可以达到期望的行走速度,并提供恶劣地带所需的足够平衡。爬行时,机器人可以挤压通过紧凑的空间和狭缝。单下肢的低层次运动步态是3D空间内的几何原语,如长方形或圆形轨道。
图3 基于NI LabVIEW设计的救生机器人蜘蛛
1. 24个自由度的多功能机电系统及智能运动控制
下肢结构与运动控制构成了机器人蜘蛛关键特性的一部分。24只智能DC有刷电机共同驱动这些下肢,并充当行走结构中不可或缺的关节。这样得到了一个坚固的轻型结构,从而降低了功耗并改善了运动动态特性。
除了这些下肢,机器人蜘蛛的特性还在于典型的自主机器人子系统,其中包括机器视觉、远程测量和无线通信。机器人坚固的壳体内包含有嵌入式硬件、两节7.2伏的锂聚合物电池和电量测量装置。任务参数、I/O设置和新的运动步态均可以通过无线通信或可移动存储介质传递。
机器人蜘蛛的低层次运动有赖于运行时计算的复杂数学模型。凭借ADI公司的Blackfin处理器的高级嵌入式计算能力和LabVIEW的确定性实时性能,机器人的运动表现得有力而平稳。基于NI LabVIEW嵌入式模块的程序连续运行一个逆动力学算法,算法包含三角函数和矩阵运算,求解恰当的关节角Θ1与Θ2,以沿着3D空间内的期望轨线精确移动末端执行装置。
所有六足的关节角度的计算并行完成以确保动态运动,相应地也得到了连续计算所得的24个电机的设置点。这些设置点通过一个串行RS485网络传递至每只电机,并由分散PD控制器转换为实际执行动作。通过同样的网络,完成所有24只执行装置的位置、反馈和温度读数的采集。
2. 图形化的实时系统设计平台
机器人蜘蛛应用软件是利用面向Blackfin处理器的LabVIEW嵌入式模块编程实现的。LabVIEW为高层次编程、图形化调试、图形化多任务处理和确定性的实时行为,提供了一个理想的嵌入式软件平台。面向对象的设计模式有助于进一步控制图形化层次上的复杂度。例如电机或传感器等主要对象,通过LabVIEW中表示类的功能性全局变量加以抽象。
主要的应用框架由以下多个任务组成:
• 顶层主循环对由一个经典状态机表示的动作进行规划,而状态机通过软件队列和同步方法(如信号量)与其它循环连接。通信任务保持一个与外部世界的无线数据连接。
• 视觉任务负责低层次的图像处理和距离读数。
• 运动控制任务管理高层次的运动模式与低层次的肢体控制,并监测马达的位置与状态。
• 日常任务充当一个通用错误处理器。检测事件与异常,并将其及时间记录到可移动的存储介质,以供后续读取。
通过采用LabVIEW嵌入式模块所提供的图形化编程环境,以及Blackfin处理器的高处理器性能,开发周期也大为缩短。基于LabVIEW的图形化快速调试模式在算法的工程实现过程中非常有用,缩短了5倍的开发时间。
实例分析2:弗吉尼亚理工大学使用NI LabVIEW设计全自主地面车参加DARPA 城市挑战赛
DARPA城市挑战赛需要设计一辆全自主地面车能够在城市环境中自动导航行驶。在整个赛程中,全自主车需要在6小时内穿越60英里,途经道路、路口和停车场等各种交通状态。在比赛开始时,参赛者会拿到任务档案公路网地图,并指定需要按一定顺序访问的检查站。车辆需要考虑所选道路的车速限制,可能的道路堵塞,以及其他交通状况。车辆在行驶中必须遵守交通规则,在十字路口注意安全驾驶和避让,妥善地处理与其他车辆之间的互动,以最高30英里的时速避让静态和动态的障碍物。
来自弗吉尼亚理工大学的团队需要在12个月开发出全自主地面车,他们将开发任务分成四个主要部分:基础平台、感知系统、决策规划和通讯架构,如图4所示。每一部分都基于NI的软硬件平台进行开发:通过NI硬件与现有车载系统进行交互,并提供操作接口;使用LabVIEW图形化编程环境来开发系统软件,包括通讯架构、传感器处理和目标识别算法、激光测距仪和基于视觉的道路检测、驾驶行为控制、以及底层的车辆接口。
图4 无人驾驶车Odin的系统构架
他们的参赛车Odin是2005年福特翼虎(Escape)混合动力型越野车,并为自主驾驶做了一定程度的改装。NI CompactRIO系统与翼虎操控系统进行交互,通过线控驱动(drive-by-wire)的方式控制油门、方向盘、转向和制动。学生们利用LabVIEW控制设计与仿真模块开发了路径曲率和速度控制系统,并通过LabVIEW实时模块和FPGA模块部署到CompactRIO硬件平台加以实现,从而建立了一个独立的车辆控制平台。与此同时,学生使用LabVIEW触摸屏模块和NI TPC - 2006触摸屏构建用户界面并安装在控制台。
LabVIEW平台提供了一个直观,易于使用的调试环境,可以让开发团队实时地监测源代码的运行,从而方便的实现硬件在环调试。通过LabVIEW开发环境,团队快速可以构建系统原型并加快设计的往复周期。此外, LabVIEW与硬件的无缝连接,对于执行某些关键操作如传感器处理和车辆控制是至关重要的。由于城市挑战赛问题复杂且开发时间很短,这些因素对于开发团队的成功发挥了关键作用。
总结
图形化系统设计对于继续加快机器人设计中的创新而言是必不可少的。复杂的传统工具可能会阻碍机器人技术的进步。LabVIEW提供了一个综合的、可扩展的平台,能够横跨设计、原型开发和部署阶段,因此工程师们能够不用为微小的实现细节所困扰,可以更加关注机器人本身。他们可以使用同样强大的平台,对微控制器直至FPGA等各种控制器进行编程;还可以同几乎任何传感器和执行器发送与接收信号;设计并仿真动态控制系统;以及实现进行远程监视或控制机器人的接口。LabVIEW图形化系统设计平台通过为所有机器人设计者提供一个统一的平台,鼓励设计更为精妙的机器人。