基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构

本文研究的六轮差速移动机器人 (Six-Wheeled Differential Mobile Robot
SWDMR) 为了满足资源站到资源站点对点的物资运输,对机器人的跨越障碍能力
有较高的要求。对比传统的四轮移动机器人,六轮移动机器人能够提供更强的驱动
力,而且六轮与四轮相比整车分散到单个车轮的负荷更小了,进而使得车轮的电机
需要的驱动力矩更小,这样更有利于电机选型;对比八轮移动机器人,虽然八轮移
动机器人车轮比六轮更多,所能提供的总体驱动力矩更大,但是增加了控制的难度,
提高了移动系统的搭建成本。移动机器人自身结构舍弃传统的集中式驱动结构采
用分布式驱动结构,分布式结构没有传统车辆上的传动、差速及变速等系统,能够
减轻车辆自身重量,而且每个车轮作为独立的执行器可以做到独立控制,提高整车
控制的灵活性。
SWDMR 作为本文的研究重点先对其层级结构做一个初步的划分。机器人在
复杂环境中运动需要感知环境信息以及自身的状态信息,以确保机器人能够更好
地适应环境,因此少不了一系列的传感器比如雷达、摄像头、 IMU 等组成的感知
层;机器人通过不同的传感器获取到环境信息和自身状态量传送给中央处理器,结
合规划算法计算出机器人未来的运行轨迹,进一步保障机器人的运行安全,这一层
为规划层;中央处理器将规划出的轨迹下发给底层,驱动单元执行规划出的运行指
令,运动控制算法辅助校正机器人的运动轨迹为控制层。
基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构_第1张图片
本章主要对机器人运动控制层的基础硬件搭建和机器人软件设计做一个全面
的介绍,同时涉及部分感知层的硬件选型测试。
3.1 整车关键点分析及器件选型
3.1.1 整车硬件组成分析
首先是机器人的核心处理器,为了满足控制算法的算力需求,采用工控机作为
机器人的控制单元。为了得到机器人的横摆角、 X,Y 轴的加速度等信息需要安装一
IMU 。为了使分布式结构更加简洁,采用机电一体化的轮毂电机作为机器人的
驱动单元。同时为了满足人与机器人的远程交互,使操作手能够在远端的控制台也
能介入机器人的运动,机器人本体上需要搭载对应的数据传输模块和视频传输模
块。最后为了给机器人本体上的各个模块提供动力源需要安装一个具有一定容量
的电池。
3.1.2 动力分析
一般对纯电动的移动机器人驱动力估计都是通过计算机器人在纵向通过 35°
坡时电机所需要的驱动力矩,在该工况下,机器人的驱动力需要大于滚动摩擦力和
坡道阻力之和。假设机器人的重心位于自身的几何中心,那么爬 35° 坡所需要的电
机扭矩 T 可以通过式计算得到:
基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构_第2张图片
上式中: 表示驱动电机数,取 6 ; 表示驱动系统效率,取 90% ; 表示机器人
的重量,取 100kg ; 表示重力加速度,取 9.8 m/ 2 ; 表示滚动阻力系数,取 0.025
表示最大坡度,取 35° ; 表示车轮半径,取 0.13m 。根据所取参数计算得到
,所以在选型时单个轮毂电机的额定转矩应该大于这个估计值。
3.1.3 关键器件选型
(1) 机器人核心 处理器:工控机
工控机的选择主要指标为成本低,性能高,低功耗,大小适中,重量合适。综
合比较下来工控机 信迈科技的 MEC-5071 具有上述优点,它能够支持多种 Intel 酷睿处理器,
支持 Linux Win8 Win7 等操作系统,各模块板之间通过高可靠连接器对接,运
行环境可靠,具有良好的防尘、散热、抗震性能,对于在野外工况工作的机器人比
较适配。
基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构_第3张图片
此外 MEC-5071 有多种外设接口,包含串口,网口, USB GPIO 以及 PCI
展口,可以挂载多种外设以满足实验需求,各个接口功能如表 3.1 所示。
基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构_第4张图片

基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构_第5张图片

(2) 数据传输链路: LORA 数传电台
数传电台工作时需要两个电台进行点对点传输数据,一端作为移动端搭载在
机器人上接收控制端发出的信息并上报机器人自身的状态信息,另外一端作为控
制端接收机器人上报的参数反馈给工控机计算处理,将工控机计算得到的控制信
息发送给移动端用以控制机器人运动。
基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构_第6张图片
在数传电台的选择上应该考虑通信的稳定性和抗干扰能力,亿佰特旗下的产
E90-DTU(400SL37) 能够满足实验需求 , 该产品广泛应用与工业物联网、环境监测、
无线控制等领域。 E90-DTU(400SL37) 支持高速连续传输,工作频段在 410.125
493.125MHz 之间,发射功率为 37dBm ,空中速率在 0.3K 62.5kbps ,传输距离
在无遮挡的通视条件下距离可达 20km ,同时还具有主动监听信道环境噪声功能,
当噪声超过阈值延迟发送,极大提高在恶劣环境下的通信成功率。 E90-
DTU(400SL37) 通信接口为 RS232/RS485 ,通信方式为半双工通信,缓存容量有 1000
个字节,可通过指令分包成不同字节的数据帧传送数据。
(3) 视频传输通道 大功率网传
实现视频传输的大功率网传选择的是腾远智拓公司生产的 ST5801GB-M 系列
产品,其采用 HTOFDM 调制技术,工作频率在 4900 6100MHz ,传输速率可达
351Mbps ,发射功率可达 26dbm ,传输距离在通视条件下有 50km 。在每均有 RJ45
网口,可通过 TCP/IP 实现产品与电脑的通信。根据其产品描述,此产品有基站模
式、用户站模式、一对一桥接功能、 mesh 自组网功能四种通信模式,因为本文研
究的轮式机器人系统只有一个移动端和一个操作端,所以在使用时根据需要选择
一对一桥接模式。
基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构_第7张图片

(4) 机器人驱动单元:轮毂电机及其驱动器
在动力分析小节通过计算得到了电机的额定转矩的估计值,结合电机尺寸,价
格以及电机的额定转矩等条件最终选择了 LSDB 系列的伺服轮毂驱动器及电机。
该系列产品具有 IP67 防护等级,对于野外环境能够轻松应对,且有较高的扭矩。
所选的 LSDB4830-CAFC-ASM5 驱动器通信类型为 CAN+UART UART 波特率
115200bps ,支持上位机控制, CAN 波特率有 500kbps/1Mbps 可供选择,驱动器具
有过压保护、欠压保护、电机过热保护、短路保护、驱动器过热保护等功能。WS80L-
15A110C-MUCA03 型号电机的轮子直径为 200mm ,额定扭矩为 15Nm ,最大扭矩
可达 24Nm 。轮胎硬度等级为 A68 ,对于差速转向的机器人来说可谓为福音。
基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构_第8张图片
驱动器带有电流闭环,速度闭环,能够准确跟踪下发的力矩指令或速度指令。
查看所选硬件的使用手册,得到各个硬件供电以及通信方式,最终的硬件图可以用
3.7 表示:
基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构_第9张图片

3.7 中橙色线为电源线,蓝色为信号线。工控机通过一个 TCP/CAN 模块与
轮毂电机驱动器进行数据交换,六个驱动器挂载在 CAN 总线上;数传通过 USB 口
与工控机进行数据交换; IMU 通过 USB 口将机器人的状态信息上报给工控机;大
功率网传通过 TCP/IP 将视频信息传送给工控机。
3.2 关键器件测试
在各个模块安装前需要对其做功能性和稳定性测试,因为实验场景大多数是
校园环境,有较多的树木和房屋遮挡,且车流量较大,人口流动也比较频繁,如果
数据传输通道出现阻塞或者断开连接等状况,在没有保护措施的情况下机器人与
上层控制断开通信很容易发生危险事故。
(1) LORA 通信测试
LORA 通信测试主要测试数据传输通路在遮挡条件下的稳定性和通信距离。
测试的方案为两个实验人员分别将 LORA 的移动端和操控端与自己电脑的
USB 口连接,打开串口调试助手模拟节点收发数据,传输频率设置为 100ms, 串口
波特率设置为 115200 。通过步行模拟机器人的运动,期间移动端和操控端相互发
送测试指令,每 50 米为一个节点,达到 50 米时统计一次移动端和操控端的收发
指令帧数,计算出对应的丢包率,如此重复实验,不断拉开移动端和操作端的距离,
当出现明显的丢包现象时停止实验。
3.3 六轮差速移动机器人软件设计
机器人软件是基于机器人操作系统 (Robot Operating System,ROS) 进行设计开
发的,通过创建不同的功能包实现不同的功能,功能包之间可以通过话题发布或话
题订阅的方式进行数据交换,这种模块化的设计方式可以使得多人并行开发,提高
软件的设计效率。
根据图 3.1 轮式机器人的层级结构可以将软件分为感知模块、规划模块、控制
模块;还需要有能够记录机器人状态信息,记录数据日志的服务模块;同时,为了
满足机器人与人的交互,还需要人机交互模块。根据各个模块之间的关系得到机器
人软件的总体框图如图 3.10 所示。
在这一小节中主要是对机器人底盘软件进行设计,所涉及的模块主要是机器
人的控制模块,如图 3.10 中标红的部分。机器人自身的软件重点工作有两个:一
是解算上层规划层给出的运动指令下发给驱动单元,二是机器人接收遥控器数据
下发控制底盘运动,并通过数传通道反馈自身状态信息给监控端。具体实现流程如
3.11 所示。
3.11 为机器人底盘的控制流程。当底盘节点开启时,程序会循环检测控制
输入信号。当有控制输入时,判断输入信号是否为遥控话题发布的数据,如果为遥
控数据,机器人数据链路切换到人机交互链路;如果不是遥控话题发布数据,保持
机器人自主运行的正常通信链路。将控制信号输入到 SWDMR 的映射矩阵中将控
制信号转换成各个电机的驱动信号(如果电机为速度模式,则为轮速信号;如果电
机是力矩模式,则为电流信号),控制机器人的运动。判断机器人是否到达目标位
置,如果未到达,进入下一个循环;如果到达目标位置,则结束控制流程。
基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构_第10张图片
3.4 六轮差速移动机器人落地测试
3.4.1 六轮差速移动机器人遥控测试
软件框架设计完成将所有的硬件模块部署在机器人本体上,调试信号通道,进
行落地测试,初步验证软件的正确性,并暴露出机器人当前可能存在的一些问题。
基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构_第11张图片
落地测试验证了 SWDMR 的遥控通道的稳定性,紧急停止,差速转向等功能。
测试过程中发现当只给机器人某个方向的运动指令时,机器人的实际运动轨迹会
不断往一个方向发生偏移。分析产生这种现象的原因可能是车身结构的问题或者
路面不平整导致了在不改变遥控指令的情况下机器人偏离期望轨迹。将实验场地
选在路面较为平整的室内,还是会出现室外测试的现象,排除了路面因素导致机器
人的偏移。经过检查发现是因为机器人左前轮悬架安装位置有所偏差,最终使得机
器人在运行时会产生一个横向的力矩,使得机器人不断向一边偏移,形成一个螺纹
式的运动曲线。机器人某时刻的运行状态如图 3.13 所示:
基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构_第12张图片
3.4.2 基于 PID 的纠偏调节
根据前一小节的测试发现的问题,设计辅助控制器以减小这种系统误差产生
的影响,使得机器人能够较好的执行控制指令。选取机器人的横摆角作为性能指标,
通过加入 IMU 闭环补偿使得车辆有一定的纠偏能力。纠偏控制框图如图 3.14
示:
基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构_第13张图片
采样控制输入时刻机器人的实际横摆角度值,以此横摆角的值为起始横摆角,
IMU 测得的机器人横摆角反馈给辅助控制器,起始横摆角与机器人执行控制输
入时的横摆角做差,将差值输入到外环 PID 控制器,实现对横摆角的控制。为了
使得机器人的调节更加平滑,将外环 PID 控制器的输出作为内环 PID 的输入,并
通过 IMU 得到机器人调节过程中的横摆角速度,将两个变量做差输入到内环 PID
控制器实现横摆角速度的控制。下一采样时刻,重复上述过程。
基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构_第14张图片

3.15 是在室内测试时记录的曲线,蓝色曲线为横摆角速度响应曲线;黑色
曲线为横摆角响应曲线;红色虚线为横摆角设定曲线,上升沿时刻表示将当前机器
人的横摆角设置为参考值。在 0-15s 这个时间段处于待机状态,测试通信是否均为
正常;在 15-30s ,机器人在无纠偏控制下向前运动,因为有横摆角速度的存在,角
度误差一直在累积;在 30-35s 为处于待机状态;在 35-55s, 机器人回退到起点并手
动调整机器人车身位置,保证机器人与无纠偏状态下的初始位置一致;在 55s 之后
是进行纠偏实验, 58s 设定当前 IMU 上报的横摆角度位置为目标方向,纠偏控制
接入, 75s 给速度指令让机器人运动,角度值基本上与设定值保持一致, 140s 结束
实验。下面对横摆角速度进行分析:
3.16 为室内测试时机器人横摆角速度响应曲线,根据实验数据可以得到机
器人在没有纠偏控制时,前进时会有一个 -0.016rad/s 左右的横摆角速度存在;后退
时有一个 0.044rad/s 左右的横摆角速度,加入纠偏处理后,横摆角速度基本上稳定
在了 0 附近。
基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构_第15张图片

3.17 为室外测试时机器人的横摆角变化。在不加纠偏直行时,图 3.17(a)
示的 75-110s 时间段:机器人行驶 7m 左右车身方向就偏移了 32.9° 。控制机器人回
到初始的位置并手动调整底盘位姿,保持与开始实验时位置一致,纠偏控制介入,
如图 3.17(b) 所示纠偏过程中,机器人的航向角调节始终维持在目标值附近,最大
误差为 0.8° ,平均误差仅为 0.01°
基于X86六轮差速移动机器人运动控制器设计与实现(一)软件与硬件架构_第16张图片
3.5 本章小结
本章主要工作是搭建六轮差速移动机器人,首先对机器人可能需要用到的硬
件做了初步的分析,对驱动单元的额定转矩做了预估;接着是对基础硬件做了选
型及测试,验证了硬件的功能并测试出在遮挡条件下数据传输的稳定行,最大的
通信距离;然后对机器人软件设计的整体框架做了介绍,着重介绍了控制模块的
控制流程;最后是对机器人的搭建,并在搭建完成之后做了落地测试,同时根据
测试的效果设计了纠偏控制器作为运动控制的辅助控制器,使得机器人能够更为
准确的执行上层下发的控制指令。

你可能感兴趣的:(机器人控制器,硬件架构)