上海交通大学学报

期刊导读

基于分布式控制的小车编队方法研究

来源:上海交通大学学报 【在线投稿】 栏目:期刊导读 时间:2021-05-23

在电子信息、计算机、以及AI等领域发展下,车辆集群已经受到了众多学者关注。浙江理工大学学者提出了一种分层式的智能小车软件系统框架设计与路径规划方法研究,上海交通大学学者研制了CvberC3智能车,实现了基于视觉、磁传感器、激光雷达等传感器导航的实验验证。

本文以创乐博出品的小车平台作为研究对象,采用话题订阅作为车-车通讯协议,同时采用WIFI和互联网进行远端到主机的信息传输,使用PID算法实现小车的控制。实现小车集群的通讯、控制、协同等,为未来进一步的现实测试提供理论和实践基础。

1 ROS小车编队运动模型

小车基于室内全向移动机器人技术通过ROS STM32驱动板控制,测量小车状态。使用了ROS Ubuntu mate 16.04系统控制主板,传输信息,可视化界面,计算位置等功能。小车编队由1辆领航者和2辆跟随者组成。每辆小车都有左右两个履带马达,一台激光测距模块和互相之间通讯的Wi-Fi模块。PC端与领航者使用ROS实时通讯,领航者与跟随者使用ROS创建话题进行实时通讯。最后通过PC平台分析小车传回的数据,验证并实现了小车编队。

1.1 小车运动学模型

如图1所示,此模型使用[x,y,θ,ω]来确定小车的运动状态。其中,[x,y]为小车质心在笛卡尔坐标平面的位置坐标,θ为小车在水平方向的方向角,ω为小车的两个轮子速度。由于小车是双轮差分驱动。通过双轮差动机器人曲线算法,可以使用如下计算小车的速度为:

其中v为车相对于地面的速度,ωL为左轮的线速度,ωR为右轮的线速度;小车的角速度为(左转,即当ωL<ωR时):

其中ωC为小车的角速度,l为小车两轮间距。

本文主要研究了轮式机器人楔形队列编队实现,为了能形成特定队形,小车编队需要确定队形参考点。本文使用领航者作为参考点,基于领航者的位置决定参考点位置。

图1 双轮差分驱动小车运动模型

图2 小车编队拓扑结构

图3 小车楔形编队

如图2所示,PC创建一个话题,将设定的目标点(x,y,θ)生成std_msgs通过topic发送到领航者节点。通过领航者内置导航模块,并实时获取小车位置信息(x1,y1,θ1)由此计算出跟随者1,跟随者2的位置坐标(x2,y2,θ2)和(x3,y3,θ3)将其生成std_msgs通过topic发送到跟随者1节点和跟随者2节点。

1.2 编队实现PID算法

控制结构是远端指挥小车集群的主要方式,控制结构主要关心远端-主车(远端控制器)向一台人为设置的,功能更加完善的主车发送消息,指定集群要到达的位置或完成的目标的交互和主车-从车(主车将远端下发的任务拆解为一个个从车需要执行的动作,并通过内部联络机制进行通讯、分发和确认)的交互,如果是以分布式系统为主要控制结构的小车集群,则是远端-集群的控制方式,即远端作为集群网络的一个节点,直接向网络发送指令,逻辑上靠近远端或先收到指令的小车解析指令并转化为自身执行的动作,并将该指令转发给其他节点。

本文利用ROS_TOPIC实现无人车通信控制,并利用/odom与/cmd_vel实现无人车的移动控制功能。采取控制算法是分布式PID算法。本文采用了分布式PID控制算法,每个小车仅使用其邻居的相对距离误差作为控制反馈,实现协同控制,通信拓扑如图2所示。控制算法如下:

2 分布式ROS小车编队实验

实验环境地点为北方工业大学智能仿生感知联合研究中心,实验时间为15:00,实验场地无遮挡,且地面光滑平坦。智能编队系统采用了消费级IMU,型号为MPU-6050,其角速度全格感测范围为±250、±500、±1000与±2000°/sec,敏感度为131 LSBs/°/sec ,以数字输出6轴或9轴的旋转矩阵、四元数欧拉角格式的融合演算数据。激光雷达型号为RPLIDAR-A1,测量频率为8000/s,扫描频率为5.5HZ。本实验中智能无人车的编队基于ROS的底层通讯,利用ROStopic从主机端传输ros_msg到从机端,如图3所示,实验中,通过控制主车沿正方形路径进行移动,并返回起点。运动过程中,主车不断地发送自身的位置信息,两辆从车根据接收到的主车运动位置的变化,会跟随主车进行协同运动并保持队形不变。从实验结果表明,基于ROS的小型无人车智能协同编队表现情况优异,可应用于实际中。

3 结论

本文在传统ROS小车激光导航的基础上增加了小车间通信的模块,实现车辆实时的信息传输。并借此使用领航者-跟随者模型实现了小车编队间坐标传输。分别实现了一字编队与楔形队列的算法。在未来研究中,可以基于此模型进行更为复杂的六边形编队,以及实现对个别车辆的运动状态进行微调。