曾维阳
(国网福建南平市建阳区供电有限公司,福建 南平 354200)
变电站是连接各个城市高压输配电网的中心节点,变电站运行设备巡检能有效预防电网事故的发生[1-2]。传统的变电站运行设备巡检需要变电运维人员人工巡检,通过人工发现设备异常情况,并判断运行中的设备是否出现故障。但在变电站的巡检过程中,存在人工无法准确观察高空电力设备详细情况的问题,而使用移动机器人能有效解决该问题[3]。同时,使用移动机器人巡检还能减少变电运维人员的工作负担,具有广阔的应用前景。
但是,移动机器人各模块的通信配置,过程过于冗杂,而使用机器人操作系统(ROS)能有效解决移动机器人各模块之间的通信问题。同时,在ROS中集成众多功能包,能提高代码复用率与规范性。
在变电站中,移动机器人要进行移动,往往需要采集变电站三维环境信息,并建立三维变电站环境模型,从而完成避障及目标识别。常见的三维信息获取方法有双目相机拍照耦合、单目相机运动拍照耦合、RGBD摄像头通过红外光反射。在变电站中,常使用RGBD摄像头提取三维信息,与其他视觉相比,RGBD摄像头能直接获取三维点云信息,不需要复杂的数据处理,具有直观性、简易性。基于ROS的移动机器人可以采用ORK功能包与linemod算法及其改进算法相结合或通过对PCL(Point Cloud Library)点云库数据处理的方法识别目标。
摄像头(以Kinect为例)采用光编码(Light Coding)技术获取三维数据,获取场景的三维信息以640×480像素分辨率、每秒30帧成像。获取三维信息在ROS中的Rviz可视化工具内成像如图1所示。
(a)墙体部分轮廓三维数据 (b)窗户整体特征三维数据
点云库数据处理是指基于ROS的移动机器人在机器人操作系统上的PCL点云库建立一个常见物体模型数据库,采用一种基于颜色和法线的分割方法对Kinect点云图像进行分割,并通过点云提取、点云分割、滤波、特征描述等处理后,实现对物体的实时识别与定位。
使用PCL点云库进行三维点云数据处理前,首先要将目标物点云数据提取到点云库中,并进行预处理和三维重建,获得三维点云图,以方便后期的数据处理。在获取点云数据并预处理之后,点云数据将存在于点云库中,之后需要进一步处理。
LineMod算法由Hinterstoisser等[4-6]提出,通过使用Opencv+LineMod算法,将获取的三维视觉信息与模型库中的模型进行匹配,从而识别目标。该算法可以解决复杂背景下3D物体的实时检测与定位,可以应对无纹理的情况,且不需要冗长的训练时间。Patch-LineMod算法则是针对LineMod算法不能解决的多目标重叠物体复杂场景下的识别问题进行了改进,使LineMod算法能实现多目标重叠物体在复杂场景下的识别。CT-LineMod算法由Zhang等[7]提出,针对Patch-LineMod算法识别机制不够合理,特征分类形成模板的过程依据不够充分的问题,进行进一步改进,这在一定程度上解决了复杂场景重叠物体的识别问题,并提升了识别率和准确度。
测试评估LineMod、Patch-LineMod、CT-LineMod算法在3种场景下的召回率,结果如图2所示。LineMod对咖啡杯的召回率为5%,Patch-LineMod对咖啡杯的召回率为41%,CT-LineMod对咖啡杯的召回率为44%;LineMod对果汁盒的召回率为25%,Patch-LineMod对果汁盒的召回率为44%,CT-LineMod对果汁盒的召回率为46%;LineMod对咖啡杯和果汁盒混合的召回率为1%,Patch-LineMod对咖啡杯和果汁盒混合的召回率为37%,CT-LineMod对咖啡杯和果汁盒混合的召回率为38%;LineMod的平均召回率为11%,Patch-LineMod的平均召回率为41%,CT-LineMod的平均召回率为43%。
图2 比较结果
在变电站中,安全工具的分拣与倒闸操作可以通过控制机械臂来实现[8],而三维视觉移动机器人可以使用ROS进行机械臂控制,无需再采购机械臂配套的控制系统,可采用通用的机械臂功能包完成对机械臂的控制,降低了采购和更换机械臂的费用,在成本方面具有优势。基于ROS的三维视觉移动机器人机械臂抓取控制常使用ROS中的MoveIt!功能包,将SolidWorks三维视觉移动机器人模型转换成URDF文件格式导入MoveIt!功能包中,并通过MoveIt!功能包生成各种配置文件,实现物品抓取、运动规划,解决物品碰撞规避问题。MoveIt!功能包结构框架如图3所示,机械臂通过MoveIt!功能包在Rviz中进行机械臂路径规划并抓取盒子中目标的规划如图4所示,在Gazebo中进行真实仿真模拟如图5所示。目前,使用ROS中的MoveIt!包的机器人有65种,MoveIt!功能包也能独立作为一个软件使用。
图3 MoveIt!功能包结构框架
图4 MoveIt!功能包在Rviz中进行机械臂路径规划
图5 MoveIt!功能包在Gazebo中进行真实仿真模拟
在进行电力设备巡视时,当前的移动机器人无法同时进行移动与检查电力设备运行情况,而基于ROS的三维视觉移动机器人可通过路径规划与SLAM(simultaneous localization and mapping)同时进行移动并检查电力设备运行情况,节约电力设备巡视时间。基于ROS的三维视觉移动机器人智能运动底盘控制常使用Move_base功能包与Navigation导航功能包进行智能运动底盘的路径规划,同时使用Gmapping、ACML、Hector、Cartographer等算法包进行SLAM即时定位与地图构建,从而获取周围环境信息,完成三维视觉移动机器人底盘运动控制。通过路径规划、导航相关功能包在Rviz中进行智能运动底盘运动控制仿真实验,如图6所示。
图6 智能运动底盘运动控制仿真实验图
基于ROS的三维视觉移动机器人智能运动底盘控制常使用Move_base功能包、Navigation导航功能包进行智能运动底盘的路径规划,Move_base功能包架构如图7所示。
图7 Move_base功能包架构
基于ROS的三维视觉移动机器人智能运动底盘控制常通过使用Gmapping、Rgbdslam、ORB_SLAM、Hector-slam、Cartographer等算法包进行SLAM即时定位与地图构建,获取周围环境信息进行移动与避障。运用Gmapping算法包在Rviz中进行SLAM建图如图8所示。
各算法包的优势与局限性如表1所示[9-10]。
图8 运用Gmapping算法包进行SLAM建图
表1 SLAM算法比较表
在变电站中,由于电网可靠性下降及电网风险预警等原因,需要对不同的设备进行特殊巡视,但当前的移动机器人无法很好地与其他型号的移动机器人保持足够的安全距离,往往需要等待之前的移动机器人完成巡视任务后再进行特殊巡视。而ROS机器人操作系统提供了通用的通信系统,可以在变电站中使不同型号的移动机器人并保持足够的安全距离,在避免事故发生的同时,提高了巡检的工作效率。以多台三维视觉的移动机器人协同工作为例,多台无人机系统在Gazebo中起飞如图9所示,多台机器人在Rviz中进行导航与编队如图10所示。
图9 多台无人机系统在Gazebo中起飞
图10 多台机器人在Rviz进行导航与编队
基于ROS的三维视觉移动机器人研究领域的快速发展,为三维视觉机器人在变电站应用时的识别与抓取控制提供了高效的解决方案,实现了机器人系统化控制,但在变电站实际应用过程中存在一些挑战。一是ROS的系统内置功能包虽然强大,但是在实际开发中开发者往往只使用部分功能包。因此,会造成系统过于庞大、冗余;二是ROS中依赖关系复杂,基于ROS的三维视觉移动机器人内置功能包往往因为缺少某个所依赖的第三方库或功能包就无法运行;三是ROS的实时性差,发布指令后,需要延迟一段时间三维视觉移动机器人才开始执行任务。
针对目前基于ROS的三维视觉移动机器人在变电站中应用的研究过程中存在的挑战,提出以下对策建议。一是裁剪冗余的功能包,开发专用的系统;二是进一步合并功能包和库函数,减少所需依赖;三是采用DDS或其他技术手段改善ROS的实时性问题。
RGBD摄像头与激光雷达的配合运用,在未来三维视觉移动机器人的发展中的重要作用日益体现,基于ROS的移动机器人具有其他移动机器人识别物体所不具有的简易性、直观性,将在能源电力领域发挥重要作用。