一种三轮全向移动机器人的设计与实现

2019-05-16 07:39王吉芳
关键词:移动机器人运动学激光雷达

曹 栋,王吉芳

(北京信息科技大学 机电工程学院,北京 100192)

0 引言

国外对于移动机器人技术的研究起步很早,在20世纪70年代就研制出了自主移动机器人 Shakey。80年代就出现了一大批研制移动机器人平台的世界著名公司,如美国通用电气、日本本田、索尼等[1]。国内对于移动机器人技术的研究虽然晚于国外,但经过多年发展,也有了一大批国内知名研究机构和科技企业对其进行研究,如中国科学技术大学、哈尔滨工业大学、百度、京东等。移动机器人作为服务机器人中的一大类,目前已经在社会服务中取得了巨大进步,广泛应用于各种服务行业,如工厂仓库中的物流运输车,餐厅中的上菜机器人,酒店、商场中的引导机器人,家庭中的保洁和娱乐机器人。而轮式移动机器人作为室内服务机器人的一个重要代表,相对于腿式机器人和履带式机器人,其移动机构相对灵活简单,运动控制实现容易,能够在一个平面环境里平稳、精准、高速地运动,因此是未来应用型服务机器人中首选的机器人种类[2]。对于轮式移动机器人的研究,是具有很大实际意义的。

1 机器人硬件平台设计

1.1 机器人结构设计

本文采用三轮全向运动机构形式且以三轴互成120°作为机器人的底盘结构。将机器人外形设计成等边三角型形式,减少搭建材料的使用量,并采用铝型材作为主体结构材料,大幅度减轻机器人的整体重量,减少机器人惯性对其运动控制的影响,最终移动机器人样机如图1所示。

图1 移动机器人样机

1.2 机器人运动模型

为了简化机器人运动学数学模型,现做如下假设:全向轮三轴线互成120°角,且到中心距离完全一致;所安装的各驱动轮与驱动电机各项性能指标参数完全相同;地面有足够的摩擦力,全向轮在主动运动方向上不会产生打滑现象。机器人的运动学分析如图2所示。其中V1、V2、V3分别为3个全向轮1、2、3的线速度,Vx为机器人整体的沿X轴方向线速度,Vy为机器人整体沿Y轴线速度,ω为机器人整体的角速度,方向以机器人整体的逆时针方向为正方向。θ=120°为全向轮轴线间的夹角,R为全向轮到机器人中心的距离。

首先分析机器人正运动学模型,即已知机器人的整体线速度Vx、Vy和角速度ω,求解3个驱动轮的线速度V1、V2、V3。根据平面运动过程的速度分解与合成关系,可建立如下运动学方程关系[3]:

(1)

在ROS系统中,机器人坐标系是以其前进的方向作为X轴正方向,Y轴正方向位于X轴左侧,逆时针旋转是它的正方向,如图3所示。

图3 ROS系统下机器人坐标系

其中Vxr、Vyr分别表示ROS系统坐标系下机器人沿X轴、Y轴的线速度,ωr表示ROS系统坐标系下机器人整体的角速度,逆时针为其正方向。对比图2的机器人运动分析图,可得到2种坐标系下速度间的等式关系:

(2)

综合式(1)和式(2),可得到基于ROS系统坐标系下机器人整体速度和各轮线速度之间的正向运动方程:

(3)

机器人逆运动学模型,是正向运动学求解的逆过程,即已知各轮的线速度V1、V2和V3,求解机器人整体的线速度Vxr、Vyr和角速度ωr。根据前面已经得到的运动学方程式(3),通过求逆可推导出机器人逆运动学模型:

(4)

1.3 机器人控制系统

本文中机器人采用上、下位机两级控制体系[4-5],其控制系统如图4所示。

图4 机器人控制系统

图中上位机为nvidia的TX2硬件平台,里边安装了kinetic版本的ROS系统。下位机是ST公司的STM32F407开发板。激光雷达采用的是上海思岚的A2系列。整个系统控制流程如下:激光雷达检测环境信息,给机器人构建环境地图或者自主导航时提供测量数据。TX2平台ROS系统接受激光雷达传感器发来的环境测量数据和下位机开发板发来的里程计信息,经算法处理后得到机器人的速度控制指令,通过RS232串口下发给下位机。下位机将得到的速度指令,通过机器人运动学正向模型,分解成3个电机转速下发值,通过CAN总线将每个电机速度值发送到相应的电机驱动器;同时,下位机将每个驱动器发送来的电机实际速度值,通过机器人运动学逆向模型,合成机器人的实际速度,得到里程计信息,再通过串口发送给上位机ROS系统。电机驱动器通过PID方式控制电机转速,使电机在给定的速度下运转;同时,驱动器通过读取电机编码器将电机的实际转速反馈给下位机,使系统获得机器人实际速度的反馈信息。在各个控制平台和传感器的协调工作下,机器人最终实现了整个硬件控制系统的正常运行。

2 机器人软件系统

机器人软件系统采用的是开源机器人操作系统(ROS)。它主要的数据通信方式是通过各个独立节点间进行话题的订阅和发布来实现不同节点间的数据传递。软件系统的核心功能是SLAM建图和定位导航。

2.1 SLAM建图

在 ROS 中使用较为广泛的地图构建方法是占用栅格地图法,它是一种基于粒子滤波器且能同时定位与构建地图的算法。它的优点是运算速度快并且精度高。ROS 中集成了利用此方法进行地图构建的功能包 gmapping,该功能包主要利用了里程计信息和激光雷达传感器的信息,然后利用RB粒子滤波算法,最终创建并输出基于概率的二维栅格地图[6],该功能包的总体框架如图5所示。

图5 gmapping功能包总体框架

gmapping功能包节点间通讯关系如图6所示。

图6 gmapping节点间通讯关系

图6中节点/rplidarNode代表了激光雷达传感器,话题/scan代表了激光雷达所发布的环境扫描数据;节点/joint_state_publisher和/state_publisher以及它们所发布的话题/joint_states和/tf_static用于发布机器人模型中车轮坐标系的转换数据;节点/base_frame_laser和话题/tf用于发布激光雷达传感器坐标系和车体坐标系间的转换数据;节点/teleop_twist_keyboard代表了发布机器人运动速度的键盘控制设备,话题/cmd_vel代表了控制设备所发布的机器人运动速度数据,节点/serial_node代表了下位机,它接受所发布的速度控制指令数据,控制机器人运动,同时,又通过话题/tf发布实际运动后机器人坐标系与地图坐标系odom间的位置变换数据;节点/slam_gmapping最终通过订阅各个话题,获得节点间发布的数据,生成环境地图。

2.2 定位导航

作者设计的机器人采用了自适应蒙特卡洛定位(amcl)算法。它是一种非参数定位算法,用粒子集来表示机器人位姿的置信度,能够近似模拟多种概率分布,比传统的采用高斯滤波技术的定位算法适用性更广。另外,自适应蒙特卡洛算法通过在粒子集重采样阶段不断加入新的随机粒子,使得该算法还具有一定程度的定位失效恢复能力。

机器人路径规划分为全局路径规划和本地实时规划。全局路径规划采用了Dijkstra算法,它是一种最短路径算法,生成机器人总体行进路径。本地实时规划采用了Trajectory Rollout和 Dynamic Window Approaches算法,为机器人规划每个周期应该行驶的具体路线。在ROS系统中定位算法和路径规划算法,分别集成在amcl功能包和move_base功能包之中。定位导航时节点间通讯关系如图7所示。

图7 定位导航节点间通讯关系

图7中有一些节点名称和话题名称与图6中完全一致,功能含义也相同。不同的是新增加了/amcl节点、/map_server节点和/move_base节点。/amcl节点代表了自适应蒙特卡洛定位(amcl)算法,它接受激光雷达节点/rplidarNode发来的环境检测数据和机器人关节状态发来的/tf坐标变换数据,实现机器人在实际环境中的定位,并向节点/move_base发送机器人坐标系和地图坐标系的运动转换数据。节点/map_server代表地图服务器,它以/map话题形式发送由SLAM建图得到的环境地图信息。节点/move_base代表了机器人路径规划算法,它结合/map地图信息,/tf位置变化信息和/move_base/goal给定目标位置信息,规划出最优行进路径,并将路径点速度/cmd_vel发送给下位机/serial_node执行,最终实现机器人准确到达目标位置,完成自主导航。

3 实验

3.1 构建二维占用删格地图

本次实验以作者所在实验室部分环境作为slam建图的实际环境。占用栅格地图分辨率越低,对计算机硬件存储要求越高,建图时间也越长,因此本次实验将地图分辨率设置为5 cm,这样既能满足导航要求又能提高建图效率。启动gmapping功能包,通过无线键盘设备,控制机器人在实验室运行一圈,所建二维栅格地图如图8所示。图中精确地建出了实验室墙壁、桌子等物品位置信息,图中物品位置尺寸与实际尺寸的偏差小于1.5 cm。

图8 二维栅格地图

3.2 自主导航实验

机器人的系统误差对于路径规划的精度有很大影响,因此在实验前先对机器人直线运动误差和旋转运动误差进行测量统计,统计结果见表1和表2。根据表1、2数据可计算出机器人直线运动1 m均值误差为15 mm,旋转90°机器人均值误差为1.78°。实际误差值会因轮子实际打滑情况与运转状态会有所不同。

表1 直线运动误差统计 mm

表2 旋转运动误差统计 (°)

通过ROS中可视化工具Rviz,在地图中给定机器人导航目标位姿,观察机器人导航情况。实验过程如图9所示。

图9 自主导航过程

图9中长线条为机器人的实时规划路径,箭头代表机器人的目标位姿。实验结果:机器人实际导航位置与目标点位置距离偏差150 mm,角度偏差5°。在由低成本结构和传感器组成的系统下,机器人取得了良好的导航效果。

3.3 自主避障实验

在环境地图中随机给定机器人一导航目标点,在机器人行进的路线中,加入一个地图中未构建障碍物(纸箱),观察机器人实时避障情况。实验过程如图10、11所示。

图10中箭头代表了机器人导航目标点位姿,弯曲的长线条是机器人检测到障碍物后,自主生成的新的路径,机器人左上侧的一小段横线是检测到的障碍物外形信息。图11为机器人实际避障过程图,图中机器人与纸箱保持着一定安全距离,运动过程没发生碰撞接触。

图10 自主避障路径规划图

图11 实际避障过程图

实验结果表明,设计的机器人在激光雷达检测到障碍物信息后,能够在Trajectory Rollout和 Dynamic Window Approaches路径规划算法下实时调整行进路线,规划出新的路径,控制机器人准确无碰撞地躲避障碍物(纸箱)。

4 结束语

本文设计的基于ROS系统的三轮全向移动机器人,成本低廉,结构简单,控制容易,且不存在最小转弯半径,更加适合复杂的室内空间环境。通过建立正逆运动学模型,进行机器人速度的合成与分解,得到了机器人优良的运动控制性能和较小的系统运动误差。同时,经过实验验证了所设计的机器人在ROS系统下环境地图构建、定位导航和自主避障性能。用gmapping算法所建环境地图信息精确,尺寸误差小于15 mm,能满足机器人定位导航使用。用amcl定位算法并配合Dijkstra、 Trajectory Rollout和 Dynamic Window Approaches路径规划算法获得了良好的自主导航效果。另外,所设计的机器人在有未建模障碍物进入环境时,能够做出快速反应,及时调整行进路径,自主躲避障碍物。

猜你喜欢
移动机器人运动学激光雷达
轿车前后悬架运动学仿真分析
移动机器人自主动态避障方法
激光雷达实时提取甘蔗垄间导航线
基于粒子滤波的欠驱动移动机器人多目标点跟踪控制
法雷奥第二代SCALA?激光雷达
移动机器人路径规划算法综述
融合激光雷达与超声波数据的障碍物检测方法
Ouster发布首款全固态数字激光雷达
复合切割机器人的运动学分析与仿真研究
移动机器人技术的应用与展望