文章编号222基于≤的多机器人应用互操作系统的研究与实现α贺明晰尹朝万中国科学院沈阳自动化研究所沈阳摘要本文针对异构分布环境下的多机器人系统提出了一种基于≤规范和框架请求代理ƒ这一方式的应用系统集成模型为实现分布异构环境下的多机器人的通信!协同!编程支持系统任务重组与重构!应用互操作提供一条有效途径并给出了一个自行设计的面向多机器人基于≤的对象互操作的方法!机制给出基于≤的应用编程接口°与扩展接口定义语言÷2⁄通过基于≤的多机器人基本对象类的建立与对象的实现实现基于≤的多机器人互操作与开放分布处理原型系统关键词移动机器人应用互操作软件组件≤框架请求代理对象请求代理中图分类号×°文献标识码1引言随着机器人应用水平的不断深入发展国内外的工业机器人也已从以往的柔性上下料装置发展成为可编程的高度柔性的加工单元机器人的应用发展也逐步地从单体走向了多机器人的群体应用国际上以多机器人为主体的装配!加工!制造系统已得到广泛应用例如上百台机器人组成的汽车车身组装线具有机器手的移动小车组成的柔性装配线等等这些机器人控制器通过计算机网络互连实现的仅仅是在网络通信层次上的多机器人通信的机器人群体工作而对面向多机器人系统应用层次上的支持明显不足对于实现分布异构的多机器人系统的监视管理!协同工作!任务和操作的重组与重构!人机交互与编程都有很多困难与不足不能适应下一世纪敏捷制造企业底层敏捷生产设备发展的需要特别是以机器人作为敏捷制造系统的重要组成单元的生产线因此研究支持多机器人系统监视管理!规划!协同与重构以及系统资源的全局共享的方法!机制与实现结构已成为本领域重要的前沿性课题本文采用基于的≤规范提出并设计框架请求代理ƒ这一方式的应用系统集成模型进行组件化软件开发构成系统组件模块同时组件化技术还可以对机器人控制与应用等已有遗留系统进行一定的包装与集成为分布异构环境下的多机器人的通信!协同!编程!支持系统任务重组与重构!应用系统开放性集成提供了一条有效途径第卷第期年月机器人ΡΟΒΟΤ∂α基金项目本课题得到中国科学院机器人学开放研究实验室基金课题支持国家≤≥基金课题支持收稿日期2ΧΟΡΒΑ技术与规范当前国际上在分布对象技术方面昀有代表性的莫过于对象管理集团提出来的公共对象请求代理体系结构≤≤∏∏和公司的分布式组件对象模型⁄≤⁄∏≤但是⁄≤在跨平台能力上要逊色于≤而≤则可提供从•!¬到实时操作系统等异构环境下一系列的产品对于机器人控制采用实时操作系统也是很重要的选择因此无论在分布式互操作体系上还是跨平台的异构性方面选择≤技术作为多机器人应用互操作的支撑平台是很适合的图≤的概念模型≤定义了一种独立于语言和平台的称为∏的对象总线通过对象能够透明地向本地或远程对象发送请求或从它们那里接收应答由负责完成寻找和激活对象请求和应答消息的打包与传送!并发和异常的处理等工作≤的概念模型如图所示在基于≤的应用开发中接口描述语言⁄⁄∏及⁄编译器占有重要地位⁄用于描述服务与接口之间的接口特征即模块!常量!类型!接口与异常服务和客户根据所描述的接口约定在的支撑下向对象提供或请求服务⁄编译器根据⁄接口定义生成以宿主语言描述的客户端的固程代码∏及服务端的框架代码因此客户端到服务端的映射是自动的使用≤时客户通常调用本地固程中的方法固程将请求交给负责寻找到可以处理请求!提供服务的合适对象并在调用服务前将请求提交给服务端的框架也就是说⁄提供了对成员系统的封装和成员系统之间的隔离任何成员系统作为一个对象通过⁄对其接口参数进行定义和说明就可以接到上为其他系统提供服务或向其他系统提出请求≤作为分布对象计算的主流技术在构造服务的/即插即用0性!基于软构件的应用系统开发!对已有非≤应用系统的封装以及应用系统的可扩展性等方面很好地体现了面向对象和分布计算相结合的优势解决了异构分布环境下应用系统之间的互操作问题3多机器人应用互操作系统结构一般来说软件组件模型由组件!框架!对象总线构成这里组件是针对某一特定问题而开发的具有相应功能的!便于维护的软件基本单元软件构件框架表示对问题的解决部分提供了某一问题的组件集成的构架软件应用对象总线则给出在分布式环境中为实现组件!框架的重用与相互间的调用服务规范!标准与机制本系统采用≤的对象总线设计了一个基于≤的具有知识表达和功能描述语义接口的/框架请求代理0ƒ作为系统实体框架ƒ使用户与开发者对应用系统第卷第期贺明晰等基于≤的多机器人应用互操作系统的研究与实现的访问与互操作实现操作界面与功能的分隔同时又能根据应用需求方便的集成通过ƒ来完成多机器人间互访请求代理同时通过对ƒ中处理规则和内部状态的的更改实现了基于≤的功能体不变情况下的应用软件的重构与重构互操作或者在处理规则和处理流程不变的情况下通过组件替换实现软件应用的重构!应用系统的升级换代满足重构的制造系统的需求基于!ƒ的多机器人信息集成与动态调度系统结构如图所示图基于≤和ƒ的多机器人信息集成与动态调度系统结构图中移动机器人中昀底层为构成机器人的软件组件模型这些组件都是针对特定问题开发的具有相应功能的基本单元模块这些组件可以根据具体的应用进行替换或是增删ƒ对该机器人的调用请求代理构造一个多机器人系统集成框架ƒ按照应用需求开发配置机器人相关请求的组件设定处理规则和内部状态形成机器人实体通过总线多个机器人间进行通讯并与外部环境打交道支持总站与机器人之间!多机器人相互之间的应用互操作从而形成一个灵活的体系结构4多机器人应用互操作系统实现对象是一种抽象的数据类型以对象为核心组织机器人系统有易扩展!可重用等优点而机器人对象结构与行为的复杂性决定了机器人是一个复杂的对象为了使机器人对象具有较好的重用性必须对其进行合适的抽象和分类在本系统中基于≤的多机器人基本对象类主要包括以下几大类运动学规划类!传感器信息类!运动控制类!执行机构类!人机接口类!数据库类!合作与协调类以及异常处理类等机器人分系统的结构框图如图所示运动学规划类接收由上层或人通过人机接口所下达的任务结合由传感器信息获知的有关道路!障碍物!路标等环境情况将这一任务分解成以几何坐标描述的中间点序列每相邻两点间直线可达向控制层发送规划结果接收下层所发的失败信号在合适的位置或紧急刹车后重新规划送到下层执行将所有规划结果均写入数据库中并标明完成!执行情况传感器类包括视觉传感器!接近觉传感器!力传感器等描述机器人的感觉功能获取外界信息从而能随处理对象的变化而变跟动作或感知执行工作结果的信息运动控制类将运动规划或人通过人机接口给出的目标点变换成各运动部件一定时间周期的加速度或速度矢量并且以这一时间周期往下传送同时将执行结果报告给上层并在数机器人年月图移动机器人控制系统结构图据库中记录分解结果及执行情况执行机构以一定的时间周期从上层控制接收命令将这些命令转化为控制各关节的电流!电压量每送出一次同时还可以接收人通过人机接口所发出的命令人机接口使得人可以对机器人的行动在任何层上进行干预同时可以随时读取有关变量的当前值对机器人的行动进行监视合作与协调类使机器人能协调它们的动作以解决局部冲突为了解决冲突采取对机器人区分优先次序的方法具有昀高路径优先级的机器人只考虑固定的障碍物而路径优先级低的机器人要同时考虑固定障碍物和移动障碍物))高路径优先级的机器人这里采用的是/动态优先级分配0法即根据机器人的当前位置来设定优先级该结构中配有一个数据库它用来存储机器人的局部状态表!历史信息表!内部参数表!行为记录等信息用于局部规划与运动控制该数据库具有主动应答功能一旦机器人的某些状态发生改变或某些事件发生就立即以广播的形式向相关的模块或机器人发送相关的消息这样就避免了相关的模块或机器人无限地等待或花大量的时间进行查询系统执行过程中各种错误的发生是难免的尤其是在分布式环境中为了确保系统的可靠性通过异常处理类对系统的运行状态进行检测及修复以避免不可恢复动作错误发生昀终使移动机器人系统达到如下目标移动机器人能安全地避开工作环境中的各种障碍物准确地到达目的地移动机器人在规定时刻到达目的地移动机器人的运动起点和终点可依据任务要求而变化我们在⁄支持包括结构!序列!数组!联合体等基本数据类型基础上面向机器人系统设计了扩展接口定义语言÷2⁄并开发了支持通用机器人系统分布式管理控制应用的°这些°为移动机器人的控制服务提供了通用的高层接口通过使用这些°可大大减少管理控制应用开发上的人力和开发成本用户可以通过命令行输入或菜单驱动的界面对机器人子系统进行控制而且通过使用÷2⁄用户可以很方便地定义各机器人的特殊属性对于机器人我们用⁄定义出其有关属性并开发机器人通用的°函数现举部分采用这些°及÷2⁄的源文件如下ƒ≥3×≥≤3×≥ƒ≥≥≤•×ƒ∞∞×∞×≥∏∏≠⁄∞第卷第期贺明晰等基于≤的多机器人应用互操作系统的研究与实现√当系统创建以后客户通过来寻找相应的服务如图所示如果需要的话可以在多个主机上创建多个服务下面是一个简单的机器人服务的服务代码√√,,一旦服务进程创建并有效之后通用°客户就能绑定至位于网络中任一主机上运行的服务每个客户可以如下所示绑定至特定的主机之上°当°客户运行于任意≤支持的体系结构之上成功地绑定至一服务进程后该客户就能控制它了下面所示的例子说明了一个客户获得机器人的位置数据并增加当前位置图≤对象请求代理3√√°√°5系统应用仿真本文以某加工车间中传送工件至加工中心的移动机器人为例进行仿真图为车间的简单示意图机器人负责将工件运送至加工单元加工单元自动对工件进行加工当操作者将任务下达给系统后各机器人的运行路径通过路径规划得到规划结果保存在数据库中三个机器人如按照各自独立的正常规划方式运动则有可能发生碰撞但经过互相协商之后可以改变路线从而到达目的地完成任务机器人行为的状态图如图所示昀初机器人等待任务下达Σ一旦接到任务之后它就自主地朝自己的目标移动Σ并重复执行从传感器接受环境信息然后规划路径并执行这样一个循环过程如果在此过程中某机器人即将经过的路径被别的机器人挡住了或者接收到了冲突信息那么它就要估计一机器人年月图机器人活动状态图图多机器人所在工作环境简单示意图下是否进入冲突状态Σ冲突检测是在可能发生冲突的机器人之间以/握手0的形式来执行的一旦冲突环境被检测到该机器人就与发生冲突的机器人进行协商Σ来解决问题在这种状态下机器人结合地图和传感器信息以及其它机器人的预期行为信息应用多移动机器人规划算法经过协商得出优化解决路径后机器人执行与冲突机器人协调后的路径Σ一旦冲突解决机器人又返回自己的移动状态Σ在Σ状态时该机器人也可能遇到已经发生冲突的机器人这时它就停下来等待ςΡ直到冲突解决Σ在实验中每个机器人被模拟成一个线程所有的机器人同时操作彼此独立机器人之间的通讯是采用公司的≤产品¬系列软件来实现的并在此基础上我们开发了面向移动机器人基于≤的°与扩展⁄接口语言实验证明机器人能很好地完成任务并成功地避碰达到了预期目的6结语由于采用基于≤规范和设计框架请求代理ƒ这一方式的应用系统集成模型开发了基于≤的°与扩展⁄接口语言使得分布异构环境下的多机器人可以在系统任务不断重组与重构的情况下简单高效地协同工作并为多机器人的通信!协同!编程支持系统任务重组与重构应用互操作提供了有效的开放式组件化的集成平台基于该平台开发的多机器人应用互操作系统与仿真证实了本文所提方法的可行性和有效性参考文献蒋新松未来机器人技术发展方向的探讨机器人18∏׃≤°≥≤2××≤≤∏≤∏2∏|≥≤2ƒ∏⁄°≤∏∏∏∏¬2⁄∞≤•≥第卷第期贺明晰等基于≤的多机器人应用互操作系统的研究与实现ΡΕΣΕΑΡΧΗΟΝΜΥΛΤΙΡΟΒΟΤ−ΟΡΙΕΝΤΕΔΑΠΠΛΙΧΑΤΙΟΝΙΝΤΕΡ−ΟΠΕΡΑΤΙΟΝΣΨΣΤΕΜΒΑΣΕΔΟΝΧΟΡΒΑΧΟΜΜΥΝΙΧΑΤΙΟΝΣ∞2¬≠≤2ΣηενψανγΙνστιτυτεοφΑυτοματιονΧΑΣΑβστραχτ×≤ƒ∏ƒ∏∏∏√√∏!∏∏∏∏∏∏!2×∏∏2∏∏≤∏≤2°¬⁄÷2⁄×∏∏∏2∏√Κεψωορδσ2≤ƒ作者简介贺明晰2女硕士生研究领域分布式信息处理与智能控制基于组件的软件开发技术尹朝万2男研究员!博士生导师研究领域≤