APP下载

基于SLAM技术的双控制器智能机器人

2020-06-16蒋江红张锲石

计算机技术与发展 2020年6期
关键词:移动机器人激光雷达卡片

蒋江红,张锲石

(1.陕西师范大学 计算机科学学院,陕西 西安 710119;2.中国科学院深圳先进技术研究院 集成所,广东 深圳 518055;3.香港中文大学(深圳),广东 深圳 518055)

0 引 言

智能机器人种类繁多,目前应用比较广泛的为轮式移动机器人,其主要是由微机控制的智能车辆[1-2]。轮式移动机器人z主要应用于室内或库房的巡逻、行星探测、教学、科研以及民用运输等方面。具备在环境信息感知基础上实现路径规划和自定位成为轮式移动机器人的必备功能,同时也是此领域机器人的研究重点。在机器人运动估计和建图算法中SLAM算法起到了关键作用[3],通过优化惯性测量单元获取的机器人的位姿信息来提升SLAM算法的精度[4]。基于SLAM技术,文中设计了一个可以在陌生场景下完成环境感知、定位、地图构建、动态路径规划和运动控制等自主控制的机器人系统。不仅可以用于安防监控、危险场所巡检、外星球探测、家庭服务、自动驾驶等领域,同时为相关领域的科研工作者提供了一个完整的研究平台。科研工作者可以对每一模块的算法进行替换和改进,从而不断提升该移动轮式机器人的性能。

1 系统总体方案

整个机器人系统主要由底层运动控制器、智能控制器和移动控制终端三部分构成。为了提高智能机器人的工作效率,机器控制系统采用双控制器结构,其中Arduino控制器用于移动机器人的速度控制和传感数据的采集,负责移动机器人的移动与转向等具体动作的实现;智能控制器采用全志A31S开发板,主要负责激光雷达和摄像头数据的采集,并进行分析处理形成相应的控制指令传到运动控制器,另外结合采集的数据,利用SLAM技术来进行路径规划和地图构建并将生成的地图实时传到移动控制终端;移动控制终端用于地图的显示以及人机交互。采用这种架构可以使得设计的移动机器人在软硬件方面便于移植、裁剪和进行功能上的扩展[5]。系统的总体框图如图1所示。

图1 系统总体框图

2 系统硬件设计

2.1 智能机器人结构模型

文中设计的智能机器人为轮式移动智能小车,机器人部件包含车轮、电机、光电编码器、视觉传感器、激光雷达、电机驱动电路、电源控制模块等组件。机器人采用差速转向,利用运动学分析,对运动过程中各类参数进行调整才能使机器人在控制下进行移动[6],为了方便控制,移动速度一般在1 m/s左右[7]。综合实用性、简洁性和线路布线易实现等因素,将车轮、电机、电源控制模块、电机驱动置于车体底层,将电源、卡片电脑与摄像头置于车体中间层。根据激光雷达的工作原理,将其置于车体顶层,可以有效地提高系统定位的精度。整个系统的结构如图2所示。

图2 系统实物

2.2 传感器组成

移动机器人系统搭载了视觉传感器(摄像头)、激光雷达和惯性测量单元(IMU)等主要传感器,为了能够实现机器人在狭小空间内自主导航避障,机器人所采用的激光雷达每秒采集数据高达4 000点,采集范围达到6米,精度为毫米级。激光雷达的工作原理类似于声呐,工作时发射器发送经过调制的红外激光束,激光遇到障碍物体后会有部分激光反射回来被接收视觉采集系统接收物体与雷达中心的距离以及当前距离的夹角信息,并通过通信接口输出。激光雷达环境扫描范围如图3所示。

图3 激光雷达扫描轮廓

将激光雷达和摄像头采集的数据进行深度融合,可以避免单个传感器的局限性并有效地提高机器人定位导航的精度,通过视觉回环检测可以降低累计误差[8-9]。视觉传感器得到的环境深度信息能够匹配到激光雷达构建的2D地图上,因此可以利用激光雷达和视觉融合信息发现单个传感器所不易发现的障碍物,结合激光雷达得到的边缘深度和相机图像中的深度进行自动对齐[10],提高移动机器人的路径规划和避障性能。

3 控制系统软件设计

3.1 控制器系统开发平台的搭建

智能控制器软件平台采用操作系统Ubuntu12.04LTS,在该操作系统的基础上建立ROS框架。ROS系统提供了编译、链接和运行代码的工具与库函数[11-12],通过创建一个用Arduino控制小车动作的ROS话题,并将该控制算法提前写入Arduino中,小车在行进过程中,采用ORB-SLAM2算法[13]不断从话题中读取采集到的实时图像信息,首先定位出自身所处的位置,然后再得到实时运动轨迹并绘出所处环境的地图信息。

3.2 地图构建与路径规划

智能机器人主要通过激光雷达、视觉传感器、光电编码器,驱动电路、电机、控制器和移动控制终端等来完成整体控制。通过惯性测量单元和传感器采集到的数据,利用卡尔曼滤波器[14]和PID控制算法来实现机器人的速度控制[15]。采用卡片电脑作为智能控制平台,数据的采集主要由激光雷达和光电编码器完成,将所获得的数据通过一系列的算法完成环境轮廓扫描、地图构建和自主定位等操作。通过自主设计的机械控制与嵌入式智能控制系统相结合,可以实现高效的机器人姿态获取,从而实现精准的路径规划与导航。

使用激光雷达作为主要的环境感知途径,即使在光线条件较差的情况下仍可以工作。由于采用了高分辨率摄像头和激光雷达两种环境信息采集工具,机器人的环境适应性强,可以在黑夜与白天两种环境下正常工作。并且机器人具有数据回传功能、自主运动功能,可进行远距离自主或者人为控制下的环境探索。

整个机器人系统的工作流程为:移动控制终端发布运动控制和地图构建指令,卡片电脑接收到指令后开始工作。卡片电脑根据激光雷达点云数据实现地图构建,通过一系列算法实现定位与路径规划,而后通过USB信号总线传输控制信号至Arduino控制板,运动控制板接收卡片电脑传来的控制信号,输出脉冲宽度调制信号(PWM),控制电机驱动板输出电流,进而驱动机器人轮子转动。光电编码器利用码盘的转动实现输出脉冲电信号,经比例运算后通过Arduino控制板传到卡片电脑,实现机器人车轮运动情况的采集。机器人通过视觉传感器接收图像数据,经过信息整合与数据反馈分析,采用SLAM算法先对小车进行定位,然后生成小车所处环境的地图,最后小车可以根据地图上的路径规划行驶,避开障碍物。系统的控制流程如图4所示。

图4 系统控制流程

机器人采用栅格地图作为地图模型,由于栅格地图易于创建和维护且每个栅格的信息可以和对应的环境中的某个区域所对应,便于处理超声波测量数据和激光测量数据,适用于室内和未知环境下的地图构建。

利用激光雷达采集的二维几何信息,可以提取点云密度及距离信息,并将其存储到一个二维的栅格地图中。

图5 路径规划

基于栅格地图[16]实现路径规划的步骤为:

(1)获取智能机器人当前的位姿状态并进行采样;

(2)根据每个采样的速度来计算机器人以该速度行驶一段时间后的状态及相应的移动路径;

(3)利用一些评价标准为多条路线打分,从而选择最优路径;

(4)重复上述过程。测试效果如图5所示。

4 系统测试

文中设计的智能机器人采用的硬件平台为全志A31S卡片电脑和Arduino控制板,其中卡片电脑主要用于地图构建和路径规划算法的实现,Arduino用于控制智能小车的前进、后退和转向。为了便于后期智能机器人功能的扩展,Arduino开发板主要用于机器人电机控制以及超声波传感器等数据的采集;将Arduino利用USB接口连接至卡片电脑,卡片电脑通过ROS操作系统读取Arduino开发板采集到的机器人速度信息和传感器数据,从而控制机器人的电机,使机器人执行相应的动作。机器人通过激光雷达和视觉传感器扫描采集周围环境信息,通过卡片电脑运行的SLAM算法来实时构建地图,并将构建的地图及时上传至移动控制终端,通过移动控制终端可以观察构建的地图并与机器人进行交互。根据在实际环境下对智能机器人的功能进行测试,移动机器人能够实现在陌生环境中自主探索导航,主动避障到达目标点。在黑夜环境中,普通的视觉导航机器人无法实现环境分析与导航功能,红外成像也是无法做到的。此时激光雷达机器人便能充分发挥它的优势,在环境光线极低的情况下也能正常工作,与视觉导航机器人形成互补关系。实际测试效果如图6所示。

从图中可以看出,在小车的运行过程中,ORB_SLAM2会通过不断在地图中标注出自己的轨迹并根据周围的环境来控制小车的行驶路径。

5 结束语

设计了一种利用卡片电脑和Arduino开发板搭建的双控制器智能机器人模型,并且使用SLAM算法实现了智能机器人的定位和在未知环境下的地图建模,能够根据生成的地图来对小车的路径进行规划和自动导航。实验表明设计的智能机器人能够有效实现小车在未知环境中的定位和实时地图构建,具有较高的稳定性且易于扩展。

猜你喜欢

移动机器人激光雷达卡片
移动机器人自主动态避障方法
激光雷达实时提取甘蔗垄间导航线
基于粒子滤波的欠驱动移动机器人多目标点跟踪控制
卡片排一排
法雷奥第二代SCALA?激光雷达
移动机器人路径规划算法综述
融合激光雷达与超声波数据的障碍物检测方法
Ouster发布首款全固态数字激光雷达
健忘卡片
水往高处流