基于云平台的全向移动机器人控制系统设计
2024-01-23王李孙
李 刚,王李孙
(广西大学 电气工程学院,广西 南宁 530004)
0 引 言
移动机器人以其具有灵活性、能够提高生产效率和改善劳动条件等优点而得到广泛应用[1]。常见的移动机器人的移动机构有很多种,包括轮式、腿式和复合式等。其中,由于轮式移动机器人的结构设计与控制方式相对简单,被广泛使用于各种工作环境[2]。而市场上的轮式移动机器人大多采用差速转向、两轮驱动的工作方式[3],虽然它们可以到达工作场景下任何方向和位置,但由于它们轮子的非完整约束特性,其运动能力受到限制,需要复杂的操作和轨迹规划[4]。
本文为了提高轮式移动机器人的环境适应性和灵活性,设计了移动机器人的四轮独立驱动转向远程控制系统。该系统可以实现移动机器人纵向直行、横向直行、斜向直行、原地旋转和四轮转向等多种行车方式;并在此基础上使用云服务器搭建物联网节点,实现远程控制。
1 远程控制系统设计
全向移动机器人远程控制系统结构如图1 所示,主要由手机应用程序、云服务器、底层控制器、电机驱动系统、监控系统组成。工作人员通过操作手机应用程序发送指令,由云服务器传达指令,底层控制器接收并解析指令,最终实现移动机器人的行走、转向等运动。
图1 总系统结构设计框图
1.1 云服务器搭建
远程无线通信的核心部分是云服务器。云服务器是基于阿里云平台以及Linux 系统搭建设计,包括消息转发服务器和流媒体转发服务器,能够确保全天24 h 无间断稳定工作[5]。消息转发服务器在确认客户端连接成功后,会自动回复“成功连接”字样。为方便管理员管理设备连接,将不同控制系统与上位机进行ID 捆绑。在数据传输时,控制系统将执行设备上的数据上传至服务器。服务器根据ID 号,将数据发至指定上位机实现数据指令的远程交互。流媒体转发服务器利用公网IP 把执行设备的实时视频流封装成一个公网可访问的RTSP 流地址。手机上只需要点开APP 内的播放器即可实现在线监视。
1.2 手机应用程序设计
远程控制中的手机应用程序是基于安卓系统平台,以JAVA语言为基础,使用谷歌公司的Android-Studio集成开发工具开发[6],其主要功能是通过手机终端与云服务器的连接实现移动机器人的远程控制,同时获取移动机器人的监测数据。程序界面设计主要包括两部分:首先,考虑到四轮独立驱动与四轮独立转向的原因,移动机器人在初次使用时需要校正车轮零位,所以单独设计了调车界面,方便工作人员根据现场自主设定初始位置,如图2(a)所示;其次,工作人员需要根据周围环境实时改变行走路径,故设计了RTSP 视频流地址播放器,如图2(b)所示,实时转播移动机器人的摄像头传输回来的视频信号。
图2 手机APP 设计页面
1.3 底层控制器设计
移动机器人的底层控制器设计采用模块化的思想[7-8],按照功能要求,主要将底层控制电路分为电源部分、通信部分、检测部分、继电器隔离部分以及主控制器,这样不仅便于安装,也便于后续升级、维修电路等。同时,考虑到车身过大,单控制器可能出现主程序运行不稳定,车身走线繁杂等问题,系统采用双MCU 结构,设计成主从式分布结构,主从板同时处理左右侧信号并通过CAN 总线进行通信和协调工作。底层控制电路结构如图3 所示。
图3 系统硬件电路设计
以ARM Cortex-M3 内核的STM32F103RCT6 控制器作为控制核心,程序存储器容量为256 KB,具有64 个引脚,支持I2C、SPI 和串口等外设[9];电源模块的60 V 输入电压由车载铅酸蓄电池提供,5 V 和3.3 V 输出电压分别由LM2596 和AMS1117-3.3 V 模块提供,为各类传感器、控制器以及电机等用电模块供电;通信模块设计包括WiFi 无线通信、CAN 总线通信,WiFi 无线通信电路负责与云服务器进行数据交互,CAN 总线通信电路负责左右两侧的单片机的数据交互;检测模块包括绝对值编码器和增量式编码器,绝对值编码器用来检测各个车轮角度,增量式编码器用来检测各个车轮速度;继电器模块用来连接主控制器与电机驱动器,以解决二者电平不匹配的问题。
1.4 控制系统程序设计
控制系统程序包括上电后各个模块的初始化、通信模块的数据发送与接收、移动机器人动作控制以及数据检测模块读取到的数据信息的处理分析。
系统的初始化包括主控的定时器、串口、SPI 总线、CAN 总线、GPIO 引脚和ESP8266 的初始化;通信模块的数据发送与接收主要包括ESP8266 与云服务器的数据传输和发送。
系统程序主要包括无线模块数据发送与接收以及叉车行走过程中的逻辑判断,包括车辆转向、轮子正位等。为防止系统出现由于信号不稳定等特殊情况造成的车辆与服务器的断开连接,在初始化阶段加入STM32 内部的窗口看门狗程序[10],若超过2 s 没有来自服务器的响应,系统将会重新发送连接指令,直到重新与服务器连接上为止。控制程序流程如图4 所示。
图4 系统主程序流程
为了实现移动机器人的动作控制,操作人员只需要点击相应按钮发送指令就可以实现移动机器人的行走、停车、转向等操作。其中指令包含状态指令、动作指令,状态指令旨在将移动机器人状态进行改变,动作指令旨在控制移动机器人在某一状态下的动作方式。另外,在一些网络状况不好的区域,为保证安全,加入报警模式,使得移动机器人在断开连接后,操作端能够及时发现问题并解决。
2 四轮独立驱动转向控制设计
2.1 四轮独立转向控制原理
作为转向模型中常用的控制手法,阿克曼原理指在忽略侧向力、倾斜等因素的理想状态下,所有车轮的旋转中心线最终交于一点,保证车辆在移动中发生转向,车轮做纯滚动而不发生侧滑[11]。基于阿克曼原理,本文设计的全向轮式移动机器人具有纵向直行、横向直行、斜向直行、原地旋转和四轮转向等多种运动状态,因此具有更高的灵活性、更小的转弯半径以及更高的环境适应能力。
目前,四轮转向技术的研究主要分为低速转向模型和高速转向模型[12],二者主要以行驶速度作为区分。高速行驶时,为防止因出现较大偏侧角而引起侧倾翻,前后轮偏转方向需要保持一致,实现同相位转向。由于本文设计的全向轮式机器人主要应用场景为一些狭窄、不方便人工直接操作的作业环境,需要限制机器人的移动速度,故仅考虑低速模型即可。低速时,前后轮偏转角度相等、方向相反,实现逆相位转向[13-15],以获得更小的转弯半径,具体实现方式如图5 所示。
图5 低速四轮转向模型
以移动机器人右转为例,依照图5 中的低速四轮转向模型中的几何关系,可以得到移动机器人4 个车轮转向时偏转角关系满足式(1)。
式中:θi(i=1, 2, 3, 4)分别为4 个直流电机的转向角大小;W为左右轮轮距大小;L为前后轮轮距大小。
根据式(1),通过设置外侧轮的转向角,则可以进一步计算出机器人的内侧轮转向角。以右转为例,左侧轮为外侧轮,则有:
由于低速四轮转向模型中,同侧车轮转向角方向相反、角度相等,因此可以得到每个控制转向的旋转角度,以及对应的旋转方向。
2.2 四轮独立驱动控制原理
在全向移动机器人的转向过程中,理论上是其围绕ICR(瞬时旋转中心)做圆周运动,内外侧轮转向半径不同,因此转向过程中内外侧轮的线速度大小也不相同。由于一般的移动机器人多是采用后轮驱动的方式,在转向过程中内外侧轮的驱动力矩相同,会产生额外的横摆力矩,容易导致轮胎发生相对滑动[16]。
为解决上述问题,全向移动机器人在四轮独立的基础上增加了四轮独立驱动控制,根据移动机器人的各个车轮转向角度以及移动机器人质心速度大小确定各轮所需实际转速,使其与传统轮式移动机器人相比具有更大的优势[15,17]。
根据上文中的低速四轮转向模型,可以得到:
式中:Ri(i=1, 2, 3, 4)为4 个车轮转弯半径;r为内侧轮到ICR(瞬时移动中心)的距离。
由V=ωr可得:
式中:vi(i=1, 2, 3, 4)分别为4 个直流电机的线速度大小;ω为转向时移动机器人的向心角速度。
根据式(4),设置外侧轮转向时速度大小,结合内外侧轮转向角度,就可以通过计算得到内侧轮转向过程中的转速大小。以右转为例,可得:
2.3 四轮独立驱动转向控制算法实现
四轮独立驱动转向具体控制策略如图6 所示。图中γi(i=1, 2, 3, 4)分别表示移动机器人4 个移动轮的给定角度;γif(i=1, 2, 3, 4)分别表示移动机器人4 个移动轮的实时检测角度;vi(i=1, 2, 3, 4)分别表示移动机器人4 个移动轮的给定速度;vif(i=1, 2, 3, 4)分别表示移动机器人4 个移动轮的实时检测速度。由式(2)和式(5)可知,控制移动机器人转向操作仅需要输入某一个移动轮的转向角度和移动速度,控制系统就可以解算出其余3 个移动轮的转向角度和移动速度。程序根据解算出来的结果,结合相应的模块控制器,从而实现移动机器人的四轮独立驱动转向的控制。
图6 四轮独立驱动转向具体控制策略
为防止因负载不一致影响各个驱动电机的转速,在原有的开环控制系统中加入PID 控制器进行闭环控制,保证移动机器人稳定运动。其中,为获取无刷减速电机实际转速,在电机上加装分辨率为2 000 P/R 的增量式旋转编码器。控制系统获取移动轮实际转速,将之与设定值一起送入PID 控制器,通过试验整定PID 参数,最后实现无刷电机的稳定驱动。相对于无刷直流电机的控制,步进电机仅需保证固定速度转向即可。但为了防止在控制步进电机转动时出现丢步,加装绝对值编码器,实时检测移动轮的角度位置。
3 实物样式与试验
3.1 系统搭建与实物样式
根据设计的总体需求,所搭建的全向移动机器人远程控制系统包括全向的移动机器人、硬件控制板、云服务器系统以及安卓APP。移动机器人实物如图7 所示。实物前后移动轮轴距1.315 m,左右轮轴距为1.490 m。
图7 全向移动机器人实物图
3.2 控制系统可靠性试验
控制系统的可靠性试验主要包括测试系统能否长时间稳定运行、测试移动机器人能否完成指令要求、报警模式响应时间以及测试控制过程中在线监视功能的延迟时间。
在测试系统能否长时间稳定运行的试验中,以电池满电到完全耗尽电量总计4 h 为标准。在一次完整的电池放电时间内,出现系统断开连接次数小于等于1 次,且在断开连接后能够在4 s 内重新恢复通信。
远程控制移动机器人进行指令完成度的测试过程中,移动机器人对于各个运动指令均能较好地实现基础要求,且响应时间小于200 ms。
报警模式响应时间的测试过程中,为判断何时网络变差,测试中人为断开网络,测量报警模式响应时间。响应时间见表1 所列。
表1 报警模式响应时间
在线监视功能的延迟时间的测试主要通过现场测试人员与手机端操作人员进行时间上的比对。分别在一次移动机器人行驶的初始时间、运行0.5 h 后、运行1 h 后以及运行2 h后四个时间点进行测试。测试结果见表2 所列。
表2 视频延时测试结果
根据表2 所测量的数据,在网络信号良好的情况下,视频延时基本稳定在1.2 s 左右,对低速运行的移动机器人的影响不大。
试验结果表明,移动机器人能够长时间地稳定运行,且对指令的完成度良好以及其在线监视功能的延时性很低。整体而言,控制系统具有较高的可靠性。
3.3 四轮转向试验
进行四轮转向测试实验时,远程控制移动机器人在运动模式下以1 m/s 的固定行驶速度低速行驶。移动机器人四轮转向测试实验中,加入前轮转向实验进行对比。转向实验的测试内容为固定移动机器人的内侧轮转向角时,测试移动机器人内侧轮的实际转弯半径。测试的6 组数据见表3 所列。表中左转为负,右转为正。
表3 转弯半径测试结果 单位:m
实验结果表明,与前轮转向相比,四轮转向极大地减小了移动机器人的转弯半径。
4 结 语
本文根据全向移动机器人的运动特点,设计开发了一套全向移动机器人的远程控制系统,实现了远程无线控制各个移动轮的行走和转向。实验结果表明,本文所设计的全向移动机器人相对于传统移动机器人拥有更小的转向半径,可以在不改变车身方向的同时进行斜行,甚至可以实现原地旋转,在不同的工作环境中有着更好的适应能力。远程控制时,该系统运行稳定、响应速度快,一定程度上降低了人力成本和人工现场作业的危险系数;也为下一步在全向移动机器人上继续搭载视觉导航等系统,实现路径规划以及无人驾驶等功能奠定了基础。