工控网首页
>

应用设计

>

机器人在前进:机器人平台与开发工具

机器人在前进:机器人平台与开发工具

2013/10/8 15:15:23

  机器人技术正在获得成为一种工程学科的动力。现在有多种平台和工具为它提供支持。本文是探讨这一主题的两篇动手项目文章之一。

  要 点
  设计者现在可以使用一些机器人技术开发平台。
  机器人技术平台的开发工具正在成熟;在某些情况下,它们还落后于最先进的传统嵌入式软件开发工具数年时间。
  参考设计与系统级开发工具使设计者能够跳过传统机器人项目中的很多定制创建和集成步骤。

  机器人引人遐想。随着低成本开发平台变得日益唾手可得,人们将机器人用于教育与最终应用的机会也在不断增加。不过,“机器人”这个词汇是一个要加以定义的东西,因为人们通常会把这些装置拟人化,将它们看作仆人或宠物。大多数人能在第一眼时就认出一台机器人,但你会发现很难找到一种能够适用于所有或大多数机器人的定义。例如,iRobot把自己的Roomba叫做吸尘机器人,很多人毫无疑问会叫它机器人。另一方面,多数人很难把自动汽车叫做机器人,如今年DRAPA(美国国防部高级研究计划局)城市挑战赛上的那些车。这些功能近似的系统之间究竟有什么区别?更重要的是,一名设计者在建立这些类型系统时,他所使用的设计方案与开发资源有何差异?一个嵌入式自动或

半自动子系统的设计(如高档汽车中的刹车与牵引控制系统),与多数人认为的机器人设计之间有何区别?

  所幸,机器人社区中越来越多的设计资源并不担心这些差异,并且他们每天都在向更广阔的人群打开机器人技术与自动化子系统的天地。这种进入非常重要,这些类型的系统是由大量通用型与专业型专家组成的跨学科团队的成果。机器人技术开发平台为这些团队提供了一个启动点,他们不需要成为传感器、机械与电机控制专家,就能开始自己的项目。用于这些系统的软件开发工具不断成熟,为行业专家的工作赋予了更强的动力,去完成这些系统的规格、设计、测试与部署。

  本次动手项目的第一部分是项目的简单说明,然后主要涉及我准备用于项目实现的平台与开发工具。第二部分预计发表在EDN 2008年2月7日一期上,将描述用选定硬件与软件平台实现该项目的详细情况。本次动手项目将尝试满足多个目标。第一个目标是揭示那些能让开发团队立即开始建立自动化系统的资源,无论它们是嵌入式或独立式,也不管它们是全自动还是部分自动。另一个目标是揭示那些支持它们的最新平台与开发资源;重要的是要了解清楚,这些开发资源是否(或在多大程度上)处于或超出了早期使用者的完备水平。

  第三个目标是表示一种在移动平台(而不是固定平台)上探测世界的概念。我看到过很多演示,尤其是在视觉探测方面,设计者将传感器安装在一个刚性架子上,以尽力消除在数据捕捉期间的任何运动可能性。似乎这种类型的系统正在用更多的计算负荷补偿一个牢固、稳定平台所不能获得的数据。在做自动汽车时,我的团队特意在探测场景中引入了运动,帮助我们识别和过滤掉传感器的异常情况,更容易判别出我们试图找到的东西。本项目是首次作运动辅助探测的灵活性测试,以最终降低正在增长的计算负荷,从而在探测中获得更好的数据识别与模式识别结果。对于这个项目,我尝试建立一个双耳探测系统,并证明它是一个双话筒、运动辅助、声音定位机器人。换句话说,机器人将尝试用两只话筒来互相定位,并用机器人的能力协调移动、指点并最终判别出声源的位置。

  本项目并非试图彻底鉴别现有的机器人开发资源,因为这种技术还在不断发展之中;本项目的目标是对考虑用于本项目的几个移动机器人平台作出鉴定,也包括现有支持它们的开发资源。有关机器人开发资源请见博客文章《嵌入式机器人技术》(本文省略)。现在,让我们研究一下我为此项目准备的平台和开发资源。

  平台

  从1990年起,iRobot公司就一直在提供机器人,完成从清洁地板到清除爆炸物等各种工作。该公司使用自己专利的Aware机器人智能系统,可在家具之间导航行走,以及在废弃建筑物内搜索。该公司2005年10月以后制造的iRobot Roomba包含有iRobot Roomba SCI(串行指令接口)的电路与软件,使开发人员能够控制或修改自己Roomba的性能,并远程监控其传感器。Roomba SCI协议通过一个miniDIN连接器的外接串行端口,为Roomba提供了一个控制链路。SCI包含了控制Roomba所有促动器的命令,如电机、LED与扬声器,并能向系统内部的所有传感器请求数据。

图1机器人制造商iRobot用Create建造了公司的Roomba吸尘机器人可供教育者爱好者和开发人员添加到自己的软硬件中作平台控制


  2007年初,该公司推出了iRobot Create,这是一个预装的移动机器人平台,有32个内置传感器、促动器以及串行接口,现在起价为129.99美元(图1)。Create基于Roomba核心技术,并兼容Roomba的可充电电池、遥控器和其它附件。该平台包括一个开放式载荷仓,一个25针扩展口以及可以在机器人上安装市售传感器、促动器和其它第三方电子部件(如摄像头、臂和无线连接)的螺纹安装孔。

 

  用户可以通过串行连接,从台式机下载数字命令脚本对平台编程,或将程序装入到命令模块。命令模块中的处理器为20 MHz、8 bit Atmel ATMega168微控制器。WinAVR开源开发工具套件支持用C或C++对命令模块的编程。开发工具包括一个编辑器、一个编译器以及命令模块的下载器。开发人员还可以用微软的Robotics Studio(微软于2006年11月推出)完成机器人的编程工作。RoboDynamics的Roomba DevTools工具可以使开发人员通过蓝牙、USB或串行接口,从自己的计算机控制Roomba平台。

  命令模块手册包含了低级编程技巧和实例(参考文献1)。编程技巧包括尽可能地用8 bit值作计算,以避免浮点算法,以及使用整型和右移位代替除法。这些技巧的一个例子是向寄存器或端口写入位屏蔽,以清除、启动和读取ADC,因为现在还没有功能调用的API(应用编程接口)。另一个技巧是如何用定时器延迟函数防止按键输入的反跳。完成复杂的自动控制会带来一个相当大的学习曲线,除非iRobot为工具集增加一个对该层作抽象的API框架,如微软的Robotics Studio那样。

  Segway提供RMP(机

器人技术移动平台),它基于Segway的PT(个人输送机);RMP现有用于人体尺寸机器人应用的耐用包(图2)。Segway RMP包含了在各种地形紧凑空间内移动重型负荷的配置。Segway RMP电机可以连续提供2hp功率,必要时可达4hp~5hp峰值功率,足以移动一个人体尺寸大小的负荷。Segway RMP有多种型号,包含各种电池与轮胎/车轮的组合,提供最远15英里范围和400 lbs的承载能力。Segway RMP采用1个~4个NiMH(镍金属氢化物)电池或锂(锂离子)电池块。任何能提供52V电压的电源均可为Segway RMP供电。也可以将Segway RMP接在一个紧凑型气体发生器上,在使用中为电池充电。

图2Segway用RMP制造自己的个人运输产品现有多种配置支持不同的负荷与地形场合


  Segway RMP带一个板上充电系统,系统可以通过USB或CAN(控制器局域网络)串行总线接口进行控制。据Segway称,USB电气接口隐藏了CAN接口,因为该公司发现,提供USB前端大大缩短了开发人员与平台衔接的学习曲线。如果他们愿意,开发人员也可以直接在CAN级上工作。该公司正在考虑增加其它通信接口,如以太网。另外,他们还在考虑改进机械接口,包括增加用于安装支架的螺孔。有些型号带有用于客户探测设备的支架和计算硬件,静态稳定运行的脚轮,或不同Segway RMP互连的连接点。有些开发人员没有采用安装孔和安装架,而是成功地用工业级Velcro测试和连接其平台的原型部件。

  该公司的开发支持包括使用开源的开发工具,并能使用公司支持的多个算法,以管理平台上重量与均衡的配置。Segway与微软最近宣布了Robotics Studio对平台的支持。微软的Robotics Studio是一个端到端的Windows环境,支持机器人应用的创建,这些应用的目标是可以处理基于.NET REST(具象状态传输)面向服务的运行时环境的硬件平台,如Windows CE和Windows移动设备。运行时(runtime)部件支持各种机器人的开发,如仿真机器人,通过与台式计算机直接链接(比如通过串行口、USB或蓝牙)控制的机器人以及带有板载控制处理器的机器人。开发环境亦包括了可视化创作与仿真工具。多家公司均已正式声明他们的产品支持微软Robotics Studio,包括iRobot、Lego和Segway(参考文献2)。

  根据微软的《Robotics Studio用户指南》,运行时环境包括了CCR(并发与协调运行时)与DSS(分散软件服务)部件,而这些部件必须满足下列需求集(参考文献3):必须能监控状态;当应用运行时能与部件交互;能发现、创建、终止和重新启动部件;能并发地处理多个传感器的输入,并将这些输入组织为任务,而不会有这些任务之间无意干扰的风险;能通过网络同时处理本地与远程的自动与受控机器人应用;运行时重量必须足够轻,从而能在广泛的环境中执行;应用环境必须为可扩展,并有足够的灵活性,以适应各种硬件与软件环境的交互。

  CCR通过一个面向信息的编程模型支持异步与并发操作,该模型可以自动揭示出并行硬件与协议信息,而无需使用手工线程、锁定或信标。这种方案使设计者能够建立起更松散耦合的软件模块或部件。独立的CCR .NET DLL可以从任何面向.NET 2.0 CLR(公共语言运行时)的语言中访问。微软在CCR上建立了DSS运行时,且DSS并不依赖于微软Robotics Studio中的任何其它部件。它为管理服务提供了一个主控环境,以及一组架构服务,可以用于服务创建、发现、记录、调试、监控与安全。DSS支持一种轻量级的面向服务应用模型,它结合了传统REST基于Web的架构,以及部分Web服务架构。DSS定义了一个应用模型,它建立在REST模型上,通过它们的状态和对该状态的一组统一操作而展示服务,但通过增加结构化数据操作、事件通知以及服务组织扩展了HTTP(超文本传输协议)应用模型。

  DSS的主要目标是提供服务之间的互操作性,不管这些服务是否运行在相同结点或网络上。DSS用HTTP和DSSP(分散软件服务协议)作为服务间交互的基础。基于DSSP的轻量级SOAP(简单对象存取协议)支持结构化状态与事件模型的操作,这改变了结构化状态的驱动。

  微软VPL(虚拟编程语言)图形编辑开发环境采用一种数据流编程模型,而不是控制流模型。一个VPL数据流包括一个连接的动作序列,数据流将其表示为带输入和输出的块,可以将它们连接到其它动作块上。动作可以表示为预构的服务、数据流控件、函数或其它代码模块;动作也可以包含其它动作的组合。VPL面向初级程序员,但该编程语言也吸引高级程序员用作快速原型开发或代码开发。

  Robotics Studio仿真运行时包含了仿真引擎服务、受控物理引擎封装器、原生的物理引擎库,以及与物理引擎和在仿真世界中表示硬件与物理对象的渲染引擎

接口的部件。仿真引擎服务负责渲染实体、加快物理引擎仿真时间。它跟踪整个仿真的状态,为仿真提供一个服务/分布前端。受控物理引擎封装器将用户从低级物理引擎API中抽象出来,为物理仿真提供一个受控接口。原生物理引擎库通过Ageia PhysX技术实现硬件加速,这是通过Ageia PhysX技术处理器支持硬件加速,该处理器现用于台式计算机的PhysX Accelerator附加卡。微软的Robotics Studio带有一些预定的实体,它们具有与仿真硬件的高级接口,隐藏了物理API的使用。

  开发人员可以选择只与受控物理引擎API交互,而不用任何可视化。但为了简化对仿真代码的状态检查、调试和保持,微软建议开发人员总是使用仿真引擎服务,以及定义关闭了渲染的定制实体。渲染引擎使用了图形加速卡的可编程流水线,遵从DirectX9的像素/顶点着色器标准。

  Lego公司的Mindstorms NXT是该公司最新一代机器人技术工具套件,它开始于1998年商用的Robotics Invention System;NXT则于2006年8月推出。支持这个平台的内置资源、第三方资源和专业级开发工具日益增多,如National Instruments公司用于Lego的LabView工具包。大量支持掩饰了可能的最初印象,即NXT不过是一个玩具(图3)。事实上,Lege的NXT标准块方案使该平台具备机械灵活性,可能使之适用于快速原型制作,以及传感器和运动部件多种物理配置的探索。

图3NationalInstruments提供的LabView支持LegoMindstormNXT的开发


  NXT标准块依赖于一个32 bit ARM7处理器,为平台提供自动控制器。基本的系统包括三个有精密控制功能的内置旋转传感器的伺服电机、一个用于运动探测的超声波传感器、一个支持声音模式识别与音调识别的声音传感器、一个探测颜色和光强的光传感器、一个触摸传感器,以及支持第三方资源开发与集成的USB 2.0与蓝牙无线接口。访问Mindstorms网站可以获得丰富的用户资源与开发资源,包括开源的NXT固件、软件及硬件开发包和一个蓝牙开发包。基本系统的建议零售价为249.99美元。

  将LabView用作NXT的开发工具正好赶上去年NXT平台的推出,并且随着微软Robotics Studio支持平台数量的增加,这些工具组件可能预示着支持与工具的一次爆炸性增长。一方面,这种爆炸性增长将通过较高级别的抽象,向更多开发人员展开机器人编程平台的天地。另一方面,它能获得更高的生产率,并能够充分利用第三方开发者的工作,完成日益复杂和重要的机器人设计。这些目标的实现将通过一种强健的机制,帮助开发者封装、保护和分发机器人子系统设计。LabView工具包对NXT的编程要求用LabView 7.1、8.0或8.20,为NXT软件建立原生块需要LabView 7.1。

  LabView图形开发环境带有一个内置编译器,支持实时的数据采集与仪器控制,并带有创建控件与测试应用的图形化演示工具。它通过一个允许结点间数据流动(而不是文本的连续行)的数据流编程模型,以确定代码的执行顺序,从而支持一个通用编程环境的特性,如数据结构、循环结构、事件处理以及面向对象的编程。该方案使开发人员能够建立起捕获多任务或多线程部件的块图,并可以在有适当硬件情况下,并行地执行多个运算。

  开发者可以扩展LabView的功能,方法是使用处理软件优化、数据管理与可视化,以及对各种硬件目标(包括FPGA)作部署的插件。其它插件则用于信号处理与分析、自动化测试、图像采集以及机器视觉,还有控件设计与仿真工业控件。数百个第三方插件都可与第三方工具(如MathWorks的Simulink环境)接口,从而对设计建模和仿真。


  所有这些平台有一个公共主题,那就是对可扩展性的支持,不仅是对定制与第三方软件模块,还是对硬件接口与子系统。各种平台都提供了对我本次动手项目所期望的移动性,但我需要对这些平台作软、硬件扩展,增加双耳探测功能,以及响应音频输入,引导平台的动作。

  与iRobot Create和Lego NXT不同,Segway RMP包括了探测其方向与惯性运动的能力,我认为这是在量产产品中实现声音定位的基础。不过,本次动手项目是作概念验证,目的是看是否最粗略的运动控制与双耳控测的结合也能更加容易处理声音的定位问题。另外,对一个原型概念验证项目而言,为RMP建立硬件部件接口和软件控制的长期学习曲线似乎是使用RMP要支付的一个巨大成本。这个问题使Create和NXT成为了平台候选者。

  我最开始的目标是iRobot平台,因为我在一个早期项目中购买过一个Roomba(参考文献4),也因为Roomba有在房间内不确定位置的物体之间导航的算法。挑战来自于要寻找一些能够快速设置的模块,它能汇集音频输入,发出指令,并从Roomba控制器接收响应。我发现了两

个评估平台可能成为项目候选者,用于声音的探测和高级控制器子系统。

  其中之一是德州仪器公司的eZ430-RF2500开发工具,它包括两个U盘大小的开发板,支持相互间的无线连接(图4)。无线连接对我有吸引力,因为很多年来我都希望用它做一个项目,并且,似乎为一个设计增加无线功能,最后就能实现为系统增加模块,而不必自己从头搭一个。一块开发板从USB连接的主控计算机上获得供电,另一个板子则连接到一个电池盒,获得能源。该板采用一个16 MHz、16 bit MSP430F2274微控制器,它提供充足的处理能力,还有一个10 bit、200k采样/秒的ADC,其速度足以采集音频输入。

图4德州仪器公司的eZ430-RF2500开发工具可用作扩展板候选部分原因是它采用模块化无线通信方案


  另一个平台是来自Silicon Labs的C8051F064-EK评估包,它采用一个25 MIPS、8 bit C8051F064微控制器,带有两个16 bit、1M采样/秒ADC,可同时从两个音频输入采样(图5)。该评估板可以通过USB连接从主机接受电源,并带有一个BNC和前端电路,调整来自两个模拟输入的模拟信号。但是,为了能同时使用这些板子,我必须为话筒建立硬件接口和软件驱动,并通过Roomba的串行口通信。

图5Silicon Labs的C8051F064EK评估套件可用作扩展板候选部分原因是它使用了双ADC可以同时从两只话筒得到采样


  当探讨将National Instruments公司的LabView用于Lego NXT时,我发现National Instruments的一位工程师最近把NXT用在一个类似电子“牧羊犬”的验证应用,它可以根据听到的声音完成一个动作,如向左或向右转、止步或前进。这个功能不同于完成运动辅助的声音定位,但了解该项目的详情后,我可以将其作为一种参考设计,这样在完成此次动手项目的设置时就节省了宝贵的时间。

  我选择NXT系统的另一个原因是,立即可以得到确认能与NXT系统接口的恰当模块。将National Instruments公司的Speedy 33(一个采用德州仪器公司TMS320VC33的DSP板)与LabView DSP模块和一个来自HiTechnic公司的传感器原型板相结合,就得到了一个包含此项目全部适用硬件的结构。Speedy 33集成了两个相距约5英寸的话筒,48 kHz采样,并用LabView DSP模块,可存取一个数据采集与分析虚拟仪器库,用于时域与频域信号处理(图6)。HiTechnic原型板在Speedy 33与NXT之间提供一个物理链路,并且在NXT的传感器存储模块中提供了一个逻辑映射。

图6NationalInstruments的Speedy 33信号处理模块带有两个内置话筒和驱动器以及处理采样数据的虚拟仪器


  这次动手文章的第二部分预计登在本刊的下一期上,将仔细研究使用NXT平台和开发资源,以及用运动辅助双耳采样作声音定位的工作详情。在时间和空间许可的情况下,我还会尝试使用微软的Robotics Studio建模与仿真功能,并分享自己的体验。

参考文献
1. iRobot Command Module Owner’s Manual.
2. “Microsoft Robotics Studio Partners.”
3. Microsoft Robotics Studio User Guide.
4. Cravotta, Robert, “Rummage through a Roomba: Sensor-packed vacuum robot attracts hacks,” EDN, March 15, 2007, pg 32.

投诉建议

提交

查看更多评论
其他资讯

查看更多

自动化机床的故障排除技术浅析

安川焊接机器人编程

ABB机器人控制软件RobotWare应用手册SafeMove(英文)

ABB IRB7600 机器人维护信息

ABB IRC5P机器人培训教材