基于ROS的移动机器人控制系统

2021-07-04 09:58金珍珍周卫华郑鹏飞
轻工机械 2021年3期
关键词:移动机器人树莓小车

金珍珍, 周卫华, 郑 军, 郑鹏飞

(1.台州职业技术学院 机电工程学院, 浙江 台州 318000; 2.浙江大学 台州研究院, 浙江 台州 318000)

近几年来,随着机器人技术的迅速发展,智能移动机器人在仓储物流和工业生产等领域应用广泛[1]。人工智能、传感器技术和控制理论的不断发展更是促进机器人向着越来越智能的方向发展[2]。机器人控制系统的搭建是个庞大而复杂的工程,而机器人硬件和软件资源越来越丰富,给软件开发设计人员带来更大的挑战[3]。如果能提高机器人系统各模块的复用性和可移植性,就可以在不同的机器人上分享和复用这些已经实现的功能,这将给设计人员节省了大量的重复劳动时间,可以更加便捷快速地完成工作。ROS操作系统的出现极大地解决了设计师们的难题。ROS系统的开源特性和分布式结构得到了众多机器人开发者的青睐[4-5],框架中各个功能独立存在,可独立设计、编译和运行,也可以以功能包的形式发布在ROS社区与他人共享,便于传播和分发[6]。

课题组设计的智能移动机器人以装载ROS系统的树莓派作为主控上位机,采用激光雷达和深度相机等检测设备,自行搭配嵌入式下位机,可对移动机器人实现多种方式的运动控制、定位及自主导航等功能,深度开发ROS系统,便捷增减功能模块,为进一步深入研究机器人导航算法等提供了可靠的硬件平台。

1 智能机器人控制系统方案设计

智能移动机器人控制系统采用顶层与底层控制相结合的方式来实现地图构建与自主导航[7]。顶层控制系统使用树莓派4B作为上位机,装载Ubuntu 18.04以及ROS Melodic操作系统,通过USB接口连接激光雷达,接收外界环境信息给树莓派进行处理,在移动过程中通过连接深度相机实时上传拍摄信息。底层控制系统以STM32控制器为核心,接收来自顶层控制的速度命令,输出PWM信号给电机驱动控制带编码器的电机转动,并根据电机的速度反馈回STM32控制器来实现闭环控制。同时配备了IMU加速度陀螺仪传感器来校准各种参数。另外配备蓝牙、PS2有线手柄和航模遥控等设备对机器人进行控制,并提供了串口 1 和 CAN 接口方便用户拓展控制。STM32控制器和树莓派4B之间通过串口通信来实现数据传输[8]。机器人设计框图如图1所示。

图1 机器人设计框图Figure 1 Block diagram of robot design

1.1 底层控制系统硬件设计

底层控制系统以STM32F103RCT6最小系统板为控制核心,组成一个功能完善的微型系统,硬件成本低,通用性强,使用KEIL环境开发,程序可自主设计,方便移植[9]。

STM32运动底盘上集成了型号为MPU6050的IMU传感器,该IMU集成了三轴角速度计和三轴加速度计,控制器采集IMU数据后发送给ROS[10]。

OLED显示屏主要显示当前机器人的型号和Z轴零点漂移数据、Z轴角速度、左右电机的目标值与测量值、舵机PWM控制值、控制模式、使能开关和电池电压等。

电机驱动板采用12 A/24 V双路MOS大直流有刷电机驱动器,内置过电压、欠电压和过热保护电路。机器人电机采用MD36N 35 W直流有刷电机,自带500线AB相光电编码器,可用作转速反馈以及里程计,用来控制直径为125 mm的实心橡胶轮。机器人前轮设有转向机构,后轮提供双电机提供动力,可以有效适应凹凸不平地面,实物如图2所示。

图2 智能移动机器人Figure 2 Intelligent mobile robot

1.2 顶层控制系统硬件设计

智能移动机器人的顶层控制系统的硬件核心为一台装载Ubuntu 18.04以及ROS melodic的树莓派4B,具有2 GiB内存,内含2个USB3.0接口和2个USB2.0接口。在装载相同的操作系统和ROS melodic的移动电脑上通过远程挂载的方式可远程监视和控制机器人移动状况。树莓派4B通过深度相机和激光雷达获取的环境数据进行数据处理后实现建图,并根据建好的地图实现自主避障导航。同时把底盘运动信息和传感器信息等数据通过无线路由器发送给移动电脑,移动电脑接收数据后对此进行分析和处理,并通过无线路由器向树莓派4B发送任务指令对机器人进行远程控制。

2 机器人软件设计

2.1 机器人STM32程序控制

为了实现多种模式的命令控制,STM32控制器根据任务的优先级决定任务的执行顺序,每个任务执行时间很短,等同于所有任务同时执行,期间如发生中断则去响应中断。串口2中断用于APP蓝牙控制,串口3中断用于接收ROS传过来的信息。图3所示为STM32控制器程序执行流程,其中的任务排序不代表任务优先级。

2.2 ROS设计框架

机器人的建图导航需要IMU、里程等数据,可通过树莓派直接连接并采集这些传感器的信息。为了建立可靠且高效的机器人控制系统,ROS框架建立在充分利用开源社区资源的基础上,把各个功能包和节点实时有效地组合起来[11]。

树莓派主要实现传感器的数据采集、环境地图创建、定位及导航规划及运动命令的发送等,ROS系统提供了强大的可视化工具,可远程实时观测当前机器人的状态[12-13],具体如图4所示。

图3 STM32 控制器程序执行流程图Figure 3 Program execution flow chart of STM32 controller

图4 机器人执行系统框图Figure 4 Block diagram of robot execution system

3 实验

为了测试智能小车建图和避障导航功能的可靠性,在小车制作完成后对它进行了各项功能测试。

3.1 建图测试

小车上电,移动电脑连接小车Wi-Fi,用SSH命令远程登录小车的树莓派系统,输入密码;启动建图命令。同时在远程电脑终端开启Rviz命令观测。地图构建过程中小车的运动由APP蓝牙控制。图5所示为测试环境图片。图6所示为小车构建的地图。

图5 测试实际环境Figure 5 Actual testing environment

图6中黑色线条为障碍物,灰色部分为安全区域,深色区域为未知区域。

图6 小车所建地图Figure 6 Map built by car

3.2 避障导航测试

建图后对地图进行保存,把小车放在建图时的起点位置,以起点为原点,创建一个坐标系(X轴为横轴,Y轴为纵轴),小车车头与Y轴重合。执行导航命令开启机器人底层节点和机器人导航相关节点。为了更加直观,导航目标直接使用Rviz通过鼠标拖拽设定。移动电脑终端运行Rviz命令,使用2D Nav Goal功能设定目标位置。从测试结果来看,在行进过程中,地图会为小车提供多种可能的路径,小车沿着其中的一条路径前进或倒退,而且总能有效识别环境中的障碍物,并正确规避障碍物运动。

3.3 控制精度测试

在导航测试中,随机设定8个目标点,给定目标位置的坐标值,再测量机器人到达目标位置的情况来计算机器人的导航精度。根据小车的目标位置和到达位置的数据比对,进而得到导航的平均精度。导航实验数据如表1所示。

表1 导航实验数据

由表1数据分析可得到智能移动机器人的平均导航位置精度为4.3 cm,平均角度精度为2°,基本满足设计要求。设计精度有待在以后的进一步研究中提高。

4 结语

课题组基于ROS系统设计了智能移动机器人控制系统。该系统以分层结构设计,上位机采用树莓派作为控制器,利用激光雷达和深度相机作为外界环境信息采集系统,下位机以STM32控制器为核心,能与上位机进行有效的数据交互。通过实验测试结果分析了机器人控制系统的性能,验证了系统的有效性,基本满足机器人导航算法研究的要求。相比其他控制系统,该系统控制精度高,模块化设计,功能拓展便捷,成本低,能够较好地满足复用性和可移植性的要求。本研究控制系统为移动机器人的研究提供了参考,导航算法及路径规划在后续的研究中有待进一步优化和完善。

猜你喜欢
移动机器人树莓小车
移动机器人自主动态避障方法
山间“小精灵”
——树莓
移动机器人路径规划算法综述
大车拉小车
室内环境下移动机器人地图构建与路径规划技术
基于树莓派的骑行智能头盔设计
刘老师想开小车
基于多传感器融合的机器人编队ADRC控制
两轮自平衡小车的设计与实现
去修理厂