机器人操作系统ROS 成发展多种应用机器人关键 智能应用 影音
D Book
231
太阳诱电microsite
DForum1017

机器人操作系统ROS 成发展多种应用机器人关键

  • DIGITIMES企划

运用ROS系统框架进行机器人动作开发,可加速开发时程。GeorgiaTech
运用ROS系统框架进行机器人动作开发,可加速开发时程。GeorgiaTech

机器人是否能投入应用场域较关键的问题在机器人的自主动作能否顺畅运行,例如,自动传感空间位置做出对应拿取或应用操作,其间环境传感、动作判断、动作执行与回馈等,都会影响机器人的实用价值,毕竟不是生产线的工站自动化工序处理,而是存在高度变化的操作运作条件差异...

机器人智能化应用中,机器人操作系统(Robot Operation System;ROS)是最关键的一环,因为机器人要能投入生活或是医疗等不同应用场景,都需面对相较生产线自动化更复杂的空间环境,有别于产线自动化的机器人仅需在定点提供自动加工服务,在智能化机器人服务范畴中,机器人本身可能有搭配运行载具或是双足配合移动,移动过程就必须仰赖环境空间进阶传感搭配自身载具导航至定点、同时判断被服务对象与机器人间的距离与环境空间限制,驱动对应手臂或是夹具提供持物或是服务,此处ROS系统的效用就等同于大脑中枢,不仅实时汇集环境变动数据,也同时分析机体与被服务对象的相对空间位置,并精准做出对应自主智能动作提供进阶服务。

不管是采轮型载具还是双足架构开发机器人载具,都需要一套导航与定位系统,提供机器人做出正确导航路径规划。KUKA

不管是采轮型载具还是双足架构开发机器人载具,都需要一套导航与定位系统,提供机器人做出正确导航路径规划。KUKA

机器人系统需随时掌控每个关节节点的数据,并对照空间建模,才能驱动手臂或动作同时进行避障处理。National Instruments

机器人系统需随时掌控每个关节节点的数据,并对照空间建模,才能驱动手臂或动作同时进行避障处理。National Instruments

发展机器人导入ROS系统可有效提升开发成功率与效率。MathWorks

发展机器人导入ROS系统可有效提升开发成功率与效率。MathWorks

发展智能机器人  ROS开发整合为其关键

智能化机器人首先需克服自主定位导航的技术门槛,也就是说机器人本体先不管驱动载具是采是多轮或是双足架构,智能机器人至少要能达到能自动导航至服务对象身旁的基本操作,当机器人运行至使用者身旁后,机器人系统ROS还需透过传感器测量服务对象的空间位置,进而提供对应服务操作,整个过程可能须在几秒内完成,产生的大量分析、判断与决策执行,就是核心ROS的运行工作。

先讨论什麽是ROS?其实ROS系统源起于2007年Stanford University与Willow Garage针对其Personal Robots Program专案开发完成最初的ROS雏形,而后Willow Garage针对此专案成果持续更深入优化发暗指,而在2012年WillowGarage公司将ROS发展团队独立,组建OSRF(the Open Source Robotics Foundation)非营利组织,进行ROS后续更新、维护,也为机器人开发社群提供更优化的开放原始码工具与应用支持。ROS目前约逐年发布新版,在系统核心为采用Linux为主。

在ROS的特性与优势方面,ROS被通称为应用于机器人的操作系统,其实ROS在整个机器人设计架构中比较像是做为通信中介软件的应用角色,同时,在一个既有的操作系统基础下组构针对机器人应用设计的完整系统整合框架,同时ROS另工具和软件库,机器人开发者可维护原有设计,甚至以原有的原始码进行新增功能扩展。

有趣的是ROS最初即考量到开发者使用程序语言存在不同系统差异,ROS将开发语言独立,并可运用如C++、python等多种开发语言进行整合。前面也提到ROS并不为开发语言设限,因此,除官方提供的开发套件资源外,ROS另可扩展使用各式开源资源,丰沛的开源资源也和ROS共同组构强大机器人整合开发生态系。

衔接丰沛开源资源  ROS发展弹性与扩展性高

ROS可应用官方甚至衔接开源开发资源的弹性颇高,但实际上ROS仍有其系统的不足与缺陷存在,对机器人开发业者来说,若导入ROS进行产品开发,较主要的效益在于可加快较耗时、耗资源的机器人导航、定位与路径规划等基础设计架构,且透过完整、可搭配开源专案的ROS核心加上SLAM(simultaneous localization and mapping)实时定位与地图建构演算法,即可加速智能机器人开发时程,也能加快雏型设计完成。但以开放源码为基础的ROS机器人操作系统,其实也存在一些问题,例如,ROS将应用功能分布在不同运行节点、节点间的信息为透过消息传递机制转送,系统耗费较多资源进行数据通信处理,导致使用ROS来实践SLAM会产生运算资源问题,例如,需更强的硬件规格因应等...,这对于嵌入式系统设计,在运算核心、存储器都会因为频繁存取数据交换导致运行效能低落。

若要在智能机器人专案中导入ROS进行雏型开发,至少须先以产品硬件性能先进行评估,如果系统硬件核心选择采小型嵌入式单芯片进行开发整合,亦即在实际整合ROS系统时可能在其运算资源、存储空间、传输界面等各个硬件条件需先进行分析确认,甚或透过平台硬件架构进行升级对应,但如此一来也会导致开发硬件平台的成本提升。

此外,若在导入ROS期待透过现成的开放资源加快产品增SLAM应用需求,其实对其效益评估要更为审慎,因为在ROS或是开源资源中,对SLAM的资源相对有限,实际进行产品应用开发扩展可能还需更深入的重构跟优化,这些二次开发成本都是无法回避的部分。

集中?分散节点控制设计各有利弊  视开发系统规划而定

而搭配机器人的动作、运作条件差异,在高自由度的产品开发中可能其功能节点也会相对增加,ROS系统架构在节点(Node)增加部份可以采行集中于一处理器进行整合,或是采分散式将处理程序分流于不同处理器或功能模块进行处理,例如,在一组支持SLAM应用的产品中,可能需透过雷射或是传感器进行空间环境传感,为提升环境感知效果还可追加具深度分析的摄影镜头支持,对于ROS下的节点增则可在不影响现有架构下进行增,对于整合或增传感功能的改动影响并不会太大,提供相对较高的设计弹性。

对智能机器人开发专案,导入ROS操作系统的目标在提供一标准化的开发框架,便于后续整合开发或相关开发资源的重复利用,透过开源资源整合自然可以缩短前期开发的摸索与试误的耗时,加速机器人雏型设计的速度、深入进行进阶演算法开发与验证程序,进而达到降低研发成本、缩短上市时间目的。

智能导航应用 解决机器人行的问题

而能让机器人或是自动化乘载平台、可在自由空间进行移动,其实需要大量传感器输入?输出、马达编码器、环境空间传感与空间座标建构、机器人各控制节点坐标转换、实时空间建图?空间定位、路径规划、传动机制等多项技术与软?硬件机?电深度整合,实现的难度相当高。

在实作上机器人的每组传感器,都必须进行各式环境数据实时撷取,先经由每个传感器的驱动程序进行取得最底层数据数据,接着将传感器数据转换成ROS可识别的信息,同时多节点的环境下也可以进行这些数据的撷取与对应处理。

另在环境空间座标、机器人各控制节点的座标转换会直接影响实际动作效果,开发中必须定义各控制节点?关节的数据数据,即关节的座标与空间几何关系,让系统可以判断空间与实际关节角度、位置关系,在机器人动作控制的设计中,也须有个随时关注个元件在现实空间的位置关系状态,才能让控制系统指示机器人做出对应的正确动作。

至于机器人的对应动作,会不会因为现实空间的限制造成设备敲击或是其他危险?其实就看传感器实时透过各端点数据汇整、建模的现实环境空间座标状态是否能接近实际现况,让机器人可以判断自己在空间中的位置、做哪些动作不会产生碰撞或危险,透过演算法也能作目的地的路径规划、透过演算法与定位信息参照处理,进而推断机器人在空间内的相对关系。

路径规划(分层导航)部份,在ROS架构下为采用分层导航形式提升机器人导航安全性,一般会采用更新率较低的全域路径进行起点与终点路径设定,同时,在系统中以更高频的节点基础进行路径,透过标定障碍物与可行进空间数值汇整为一组二元地图(binary map)后、再转成可用来引导机器人安全行进的地图与路径格式,以进行实质行进的路径规划,进行驱动与导航时,系统为根据空间建模数据与引导地图信息,进行路径规划演算,在有限的行进时限内规划相对安全的行进路径。

关键字