删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

雾计算使能的移动机器人编队跟随研究与设计

本站小编 Free考研考试/2021-12-25

沈国锋1,2, 周明拓1,2, 李剑1, 王华俊1, 李凯3, 杨旸3
1. 中国科学院上海微系统与信息技术研究所, 上海;
2. 中国科学院大学, 北京 100049;
3. 上海科技大学, 上海 201210
2019年10月9日 收稿; 2020年1月21日 收修改稿
基金项目: 上海市科学技术委员会项目(18511106500)资助
通信作者: 周明拓, E-mail: mingtuo.zhou@mail.sim.ac.cn

摘要: 多机器人系统中的跟随控制一直是研究热点,新兴的雾/边缘计算技术为机器人系统设计提供了新思路。本文提出无需全局定位信息的机器人编队控制方案,在系统实现上引入雾计算技术,卸载机器人计算任务。雾计算节点提供无线网络接入,运行跟随控制程序。跟随控制方案中,利用领航者航速信息计算期望跟随轨迹;通过视觉测量方法得到实时跟踪误差;采用航速重放和PD型迭代学习控制相结合的方法实现轨迹跟踪控制。原型实验表明,雾节点提供的网络可以满足实时控制需求,跟随控制程序的卸载降低了机器人本地算力要求,并节约了25%的计算能耗。3次场试中,编队平均跟踪误差在0.05 m以内,具有较好的精度。
关键词: 雾计算机器人编队容器化视觉测量
Research and design of fog computing-enabled mobile robots fleet tracking
SHEN Guofeng1,2, ZHOU Mingtuo1,2, LI Jian1, WANG Huajun1, LI Kai3, YANG Yang3
1. Shanghai Institute of Microsystem and Information Technology, Chinese Academy of Sciences, Shanghai;
2. University of Chinese Academy of Sciences, Beijing 100049, China;
3. ShanghaiTech University, Shanghai 201210, China


Abstract: Tracking control in multi-robot systems has always been a research hotspot, and the emerging fog/edge computing technology provides new ideas for the design of robot systems. A novel robot formation control scheme that requires no global positioning information is proposed in this article. Fog computing technology is also introduced to offload computing tasks when implementing the system. A fog node is responsible for providing wireless network and executing the tracking control program. As for the tracking control scheme, the desired tracking trajectory is calculated utilizing the speed information of the leader robot, and the real-time tracking error is obtained by vision based measurement. The trajectory tracking control is implemented by a combination of speed replay and PD-type iterative learning control method. The experimental results of our prototype system shows that the network provided by fog node can meet the needs of distributed real-time control applications. Local computing power requirement can be eased and 25% of computing energy is saved due to task offloading. The mean tracking error of the system is less than 0.05 m during field tests.
Keywords: fog computingrobot formationcontainerizationvision measuring
目前移动机器人已在各领域广泛应用,在很多场景中,需要多个机器人编队运动[1-2]。例如,在运输作业中,多个机器人组成车队,队首领航者配备功能齐全、性能优越但价格相对昂贵的传感器进行自动导航,编队成员装备基本的传感器,跟随领航者行驶,这样可以降低整个系统的成本。
对于领航-跟随模式的机器人编队任务,编队控制算法的设计是硬件需求、限制条件和执行性能多方面的权衡。已有文献中,一些编队控制的理论研究工作将已知各机器人的精确全局定位信息作为前提条件,例如文献[3-5]提出的基于模糊PID、滑模控制、PD-滑模等方法的编队控制理论。在实际应用时,这些依赖全局定位信息的方案在室外场景下要求每个机器人配备GPS接收机或三维激光雷达,室内则需要部署全局视觉定位[6]、无线电定位[7]、声波定位等辅助设施,因此在运用范围和系统成本上存在不足,研究工作也多止步于仿真模拟。另有一些编队控制的研究提出利用多机器人的相对位置信息,以解除全局定位的依赖。例如,Lü等[8]通过超宽带(ultra-wideband, UWB)测距获取机器人的相对姿态,实验室环境下定位均方误差约0.13 m,若要实现0.10 m以内的定位精度,设备成本将大幅上升。Chueh等[9]提出基于行为暗示模型的机器人跟随,跟随者通过视觉持续观察领航者的行为并预测其运动位置,引导跟随者到达该位置。该方法可以实现跟随控制,但跟踪误差较大。Wang等[10]提出一种自适应的跟踪控制器,通过多个任意位置无需校准的相机数据和一个全局参考相机的数据来测量机器人位置,但该方法中的全局相机还是限制了机器人编队的运用范围。
另一方面,日益复杂的机器人应用对板载处理器性能以及数据交互提出了更高的要求,使得机器人系统的复杂度和造价增加。为此“云机器人”的概念被提出[11]:机器人仅装备基本的计算板卡,借助云端的算力和共享数据执行任务。Du等[12]提出服务导向(service-oriented architecture, SOA)的机器人系统架构,调用位于Google App Engine的服务,提高了机器人中心(robots center)的效率。类似地,Kehoe等[13]使用Google物体识别引擎来实现机器人抓取。Miratabzadeh等[14]提出基于OpenStack和Hadoop框架的云机器人架构,并通过合作SLAM应用展示了其优势。但由于从终端到数据中心的网络性能并不可控,传统云计算架构只适用于部分类型的服务,而无法部署时延敏感的实时控制类应用。
针对目前机器人编队控制和“云机器人”模式的不足,本文提出基于雾计算的机器人编队跟随系统。编队控制方案利用领航者的航速信息和跟随者的视觉信息实现相对定位,降低系统复杂度并拓宽了运用范围。利用雾计算技术在网络边缘构建小型虚拟化平台[15],借助就近的算力及低跳数的网络连接,将时延敏感的编队控制程序卸载到边缘节点,克服了云计算的局限。
本文主要贡献在于:1)提出一种无需全局定位设施的移动机器人编队跟随控制方案,2)系统实现方面引入雾计算技术,降低机器人硬件成本和计算能耗。本文设计的系统架构中,软件定义的无线网关作为雾计算节点,为移动机器人提供无线网络接入,运行容器化的跟随控制程序。跟随控制程序通过领航者的航速信息获取期望跟踪轨迹;利用跟随者的车载摄像机数据解算相对位姿,进而得到跟随者的实时跟踪误差;采用航速重放和PD型迭代学习控制(PD-type iterative learning control,PD-ILC)相结合的策略,实现了轨迹跟踪控制。通过实验论证控制方案的有效性,雾计算模式的可行性以及任务卸载带来的优势。
1 雾计算使能的机器人跟随系统1.1 系统组成本文提出的雾计算使能的机器人跟随系统由雾计算节点和多个移动机器人组成,如图 1所示。其中,雾计算节点(雾节点)是基于通用处理器平台的无线接入网关,为机器人提供网络接入能力及计算能力。机器人通过LTE网络与雾节点互联。执行编队跟随任务时,多个移动机器人组成队列,追踪队列首部领航机器人的航迹行驶。该队首领航机器人配备激光雷达、惯性测量单元(inertial measurement unit, IMU)等传感器,可由导航模块控制自动行驶,也可由人工遥控行驶。各机器人的尾部均搭载用于视觉识别的标志板。队列中的跟随机器人装备了单目相机,用于测量与被跟随机器人的相对姿态。
Fig. 1
Download: JPG
larger image
图 1 雾计算使能的机器人跟随系统组成 Fig. 1 The components of fog computing-enabled robot tracking control system
图 1 雾计算使能的机器人跟随系统组成

Fig. 1 The components of fog computing-enabled robot tracking control system -->

多机器人编队通过级联扩展实现,分解为两两之间的领航-跟随控制。运行在雾节点上的跟随控制应用(控制App)负责数据处理和编队保持控制。领航和跟随机器人分别向控制App发送航速信息和相机视频流数据;控制App利用这些信息计算得到跟随者应执行的航速指令并下发到机器人。上述数据流也表示在图 1中。
1.2 机器人运动模型移动机器人在二维平面上运动,每个单位时间Δt内由二元组航速指令(v, ω)控制,其中v为线速度,ω为角速度。机器人在每个Δt时间内作圆弧或者直线运动。图 2展示了2Δt时间内机器人l的运动轨迹。
Fig. 2
Download: JPG
larger image
图 2 机器人的运动模型和坐标系 Fig. 2 Robot moving model and the coordinate system
图 2 机器人的运动模型和坐标系

Fig. 2 Robot moving model and the coordinate system -->

以机器人初始航向为y轴,建立全局坐标系;对于第k个Δt时间产生的子轨迹,以上一时刻机器人航向为y轴方向,建立局部坐标系Xk-1-0-Yk-1。例如,图 2显示了全局坐标X0-0-Y0和局部坐标X1-0-Y1X2-0-Y2。在坐标系Xi-0-Yi中,kΔt时刻机器人x的位姿记为px, i(k)=[xx, i(k), yx, i(k), αx, i(k)]T,其中xx, i(k), yx, i(k)是二维位置坐标,αx, i(k)是航偏角。简化起见,在全局坐标系X0-0-Y0中,机器人x的位姿px, 0(k)记为
$\boldsymbol{p}_{x}(k)=\left[x_{x}(k), y_{x}(k), \alpha_{x}(k)\right]^{\mathrm{T}}.$ (1)
航迹计算
领航者机器人(leader,l)每隔Δt发布一次航速(v, ω)。控制App中保存了领航者最近N点历史航速信息$\boldsymbol{u}_{1}(k)=\left[v_{1}(k), \omega_{1}(k)\right]^{\mathrm{T}}, 1 \leqslant k \leqslant N$
根据历史航速信息ul,可以求得领航者在全局坐标系X0-0-Y0中的航迹pl(k), 1≤kN。具体的计算方法推导如下:
1) 在第kΔt时间内,根据航速信息ul(k),可以得到领航者在坐标系Xk-1-0-Yk-1下的单步运动位置$ \boldsymbol{p}_{1, k-1}(k)=F\left(\boldsymbol{u}_{1}(k), k\right)$,函数F(·)的定义为
$\left\{\begin{array}{l}x_{{\rm{l}}, k-1}(k)=r_{1}(k)\left(\cos \left(\theta_{\rm{l}}(k)\right)-1\right) \\y_{{\rm{l}}, k-1}(k)=\left\{\begin{array}{l}r_{\rm{l}}(k) \sin \left(\theta_{\rm{l}}(k)\right),\left(\omega_{\rm{l}} \neq 0\right) \\v_{\rm{l}} \Delta t,\left(\omega_{\rm{l}}=0\right) \end{array},\right.\\\alpha_{{\rm{l}}, k-1}(k) =\theta_{\rm{l}}(k)\end{array}\right.$ (2)
其中$\theta_{1}(k)=\omega_{1}(k) \cdot \Delta t, r_{1}(k)=\frac{v_{1}(k) \cdot \Delta t}{\theta_{1}(k)} $
2) 根据各子坐标系之间的仿射变换关系,得到pl的递推关系式
$\begin{aligned}\boldsymbol{p}_{\rm{l}}(k+1) &=\boldsymbol{D} \cdot \boldsymbol{p}_{{\rm{l}}, k}(k+1)+\boldsymbol{p}_{{\rm{l}}}(k) \\&=\boldsymbol{D} \cdot F\left(\boldsymbol{u}_{{\rm{l}}}(k), k\right)+\boldsymbol{p}_{{\rm{l}}}(k).\end{aligned}$ (3)
其中,
$\boldsymbol{D}=\left[\begin{array}{ccc}\cos \left(\theta_{0, k}\right) & \sin \left(\theta_{0, k}\right) & 0 \\-\sin \left(\theta_{0, k}\right) & \cos \left(\theta_{0, k}\right) & 0 \\0 & 0 & 1\end{array}\right]^{-1},$ (4)
$ \theta_{i, j}=\Delta t \sum\limits_{l=i+1}^{j} \omega_{i}$是坐标系Xj-0-Yj相对于Xi-0-Yi的旋转角度。根据式(3)即可计算得到领航者的航迹pl(k)。
1.3 基于视觉的跟踪误差测量如图 3所示,机器人尾部搭载了ArUco标记板,中心轴上安装有单目相机。标记板到底盘中心的位移记为dm-l,底盘中心到摄像机的位移记为df-c,领航者和跟随者机器人的历史运动轨迹分别为plpf。在轨迹跟踪任务中,设跟随者机器人当前的期望轨迹点为pl(-Nint),并以此为原点建立坐标系,则此时领航者在坐标系中的位姿为pl_c=pl(0),跟随者的位姿为pf_c=pf(0)。
跟随者相机与领航者标志板之间的相对位姿pv通过视觉测量方法得到。对相机进行标定后,通过求解透视n点定位(perspective-n-point,PnP)问题,获得相机旋转矩阵和平移向量,组合得到pv。文献[16]描述了基于ArUco标志板的视觉测量技术,文献[17]给出一种O(n)复杂度的PnP求解算法。结合前述变量可得到跟随者与当前期望轨迹点的偏差
$\boldsymbol{p}_{\mathrm{e}}=\boldsymbol{p}_{\mathrm{f}\_\mathrm{c}}=\boldsymbol{p}_{\mathrm{l}\_\mathrm{c}}-\left[\boldsymbol{d}_{\mathrm{m}-1}, 0\right]^{\mathrm{T}}-\boldsymbol{p}_{\mathrm{v}}-\left[\boldsymbol{d}_{\mathrm{f}-\mathrm{c}}, 0\right]^{\mathrm{T}}.$ (5)
图像延迟补偿
图像通过网络传输存在不可避免的延时,这使得视觉测量结果pv并非实时值,进而影响跟踪误差pv的准确性。基于视觉的位姿估计算法需要利用时间戳消除这一负面影响。
记图像延迟为tdelay,则t时刻收到的图像实际拍摄于t-tdelay时刻,如图 3所示,拍摄时领航者机器人的位姿为$ \boldsymbol{p}_{\mathrm{l}\_\mathrm{c}}^{\prime}=\boldsymbol{p}_{1}(-n)$,跟随者机器人位姿为$ \boldsymbol{p}_{\mathrm{f}\_{\mathrm{c}}}^{\prime}=\boldsymbol{p}_{\mathrm{f}}(-n)$,测得相对姿态$ \boldsymbol{p}_{\mathrm{v}}^{\prime}=\boldsymbol{p}_{\mathrm{v}}(-n)$,其中$n=\operatorname{round}\left(t_{\text {delay }} / \Delta t\right) $。因而由式(5)计算所得的跟踪误差$ \boldsymbol{p}_{\mathrm{e}}$实际为n个轨迹点以前的跟踪误差$ \boldsymbol{p}_{\mathrm{e}}^{\prime}$=$ \boldsymbol{p}_{\mathrm{e}}$(-n)。图像延迟的补偿利用跟随者历史航速信息$ \boldsymbol{u}_{f}(k), -(n-1) \leqslant k \leqslant 0$,以及领航者历史航速信息$ \boldsymbol{u}_{1}(k), -(n-1) \leqslant k \leqslant 0$,预测pf(0),从而计算当前的实际跟踪误差$ \boldsymbol{p}_{\mathrm{e}}$。计算步骤为:
1) 根据式(3),利用历史航速信息uf(k),由领航者t时刻位姿pl(0)计算t-tdelay时刻的位姿p'l_c=pl(-n);
2) 利用p'v=pv(-n)、p'l_c=pl(-n)根据式(5)计算得到t-tdelay时刻跟随者的位姿p'f_c
3) 根据式(3),以p'f_c为起始点,利用uf(k)计算得到t时刻跟随者实际位姿pf_c=pf(0),t时刻的跟踪误差即为$ \boldsymbol{p}_{\mathrm{e}}$=pf_c
以下伪代码描述了视觉测量模块的实现。
Table
算法1 ??视觉跟踪误差测量
输入Img: 图像矩阵
??Img_Stamp: 图像采集时间戳
输出pe: 当前跟踪误差
0) 准备
??相机标定,得到内参A和畸变系数dist
1) 映射点提取
??处理Img图像, 提取ArUco标志板角点,获得4组世界坐标-像素点映射关系P'c-Pi
2) 求解透视n点定位
??利用A, dist, P'c-Pi,解PnP问题,获得旋转矩阵R和平移向量T,组合得到pv=[t1, t3, θy]T
3) 图像延迟补偿
??计算${{\boldsymbol{p'}}_{\rm{l}{\rm{\_c}}}} = {\boldsymbol{p}_{\rm{l}}}( - n) $=pl(-n);
??根据式(5)计算p'f_c
??计算pe=pf_c
Return pe


1.4 轨迹跟踪控制在编队跟随任务中,机器人车队追踪头车的航迹行驶。如前文所述,多机器人的跟随可分解为两两之间的跟随控制。跟随者机器人以领航者过去Nint·Δt时间内的航迹为期望轨迹,即pd(k)=pl(k-Nint)。轨迹跟踪控制问题描述为:给定a)过去Nint个时刻的领航者航速指令$\boldsymbol{u}_{1}(k)=\left[v_{1}(k), \omega_{1}(k)\right]^{\mathrm{T}}, -N_{\mathrm{int}} <k \leqslant 0 $;b)初始状态跟随者相对期望航点pd(0)的跟踪误差$ \boldsymbol{p}_{\mathrm{e}}$,计算跟随者未来的航速指令$\boldsymbol{u}_{\mathrm{f}}(k)=\left[v_{\mathrm{f}}(k), \omega_{\mathrm{f}}(k)\right]^{\mathrm{T}}, 0 \leqslant k <N_{\mathrm{int}}$,使得跟随者的轨迹$ \boldsymbol{p}_{\mathrm{f}}(k)=\left[x_{\mathrm{f}}(k), \right. \left.y_{\mathrm{f}}(k), \alpha_{\mathrm{f}}(k)\right]^{\mathrm{T}}, 0 \leqslant k <N_{\mathrm{int}} $尽可能接近期望轨迹$\boldsymbol{p}_{\mathrm{d}}(k): \boldsymbol{p}_{\mathrm{f}}(k)-\boldsymbol{p}_{\mathrm{d}}(k) \rightarrow 0 $
当实时误差信息$ \boldsymbol{p}_{\mathrm{e}}$可用时,轨迹跟踪通过PD-ILC实现,ILC通过迭代输入控制量,可在有
限时间内追踪期望信号[18]。在大幅度转向或者障碍遮挡时,领航者可能会脱离跟随者相机视野,此时ILC无法运行,跟踪控制通过重放跟随者航速指令实现,这时令uf(Nint)=ul(0)。
图 1中提及的跟踪控制应用(控制App)设计原理如图 4所示。2个队列数据结构(FIFO)分别存储领航者的历史航速信息ul(k)和跟随者未来的航速指令uf(k)。在同步时钟的驱动下,每个时刻有来自跟随者的实时航速信息入队列,同时跟随者航速指令出队列。相机视频流信息经过视觉姿态测量、图像延迟修正,转化为实时跟踪误差信息$ \boldsymbol{p}_{\mathrm{e}}$;领航者航速队列中的信息经过航速-航迹计算模块,转化为期望跟踪轨迹。根据$ \boldsymbol{p}_{\mathrm{e}}$是否可用,选择航速重放或PD-ILC方法调整跟随者航速指令,更新到队列uf(k)。
Fig. 3
Download: JPG
larger image
图 3 基于视觉的相对姿态测量 Fig. 3 Vision-based relative pose measurement
图 3 基于视觉的相对姿态测量

Fig. 3 Vision-based relative pose measurement -->


Fig. 4
Download: JPG
larger image
图 4 跟随控制应用(控制App)的设计原理 Fig. 4 The principle of tracking control application
图 4 跟随控制应用(控制App)的设计原理

Fig. 4 The principle of tracking control application -->

迭代学习控制律设计
迭代学习控制算法(ILC)中,跟随机器人的运动指令uf(k)为系统的输入,位姿y(k)为系统输出,期望轨迹为pd(k)。为简化计算,当Δt足够小时,圆弧近似为线段,第i次迭代时,式(3)表述的机器人运动模型改写为
$\begin{array}{c}\boldsymbol{p}_{\mathrm{f}}^{i}(k+1) \approx \Delta t \cdot\left[\begin{array}{cc}-\sin \left(\theta_{0, k}\right) & 0 \\\cos \left(\theta_{0, k}\right) & 0 \\0 & 1\end{array}\right]\left[\begin{array}{c}v_{\mathrm{f}}^{i}(k) \\\omega_{\mathrm{f}}^{i}(k)\end{array}\right]+ \\\boldsymbol{p}_{\mathrm{f}}^{i}(k)+\boldsymbol{\alpha}_{i}(k)=\boldsymbol{B}\left(\boldsymbol{p}_{\mathrm{f}}^{i}(k), k\right) \boldsymbol{u}_{\mathrm{f}}^{i}(k)+ \\\boldsymbol{p}_{\mathrm{f}}^{i}(k)+\boldsymbol{\alpha}_{i}(k), \\\boldsymbol{y}_{i}(k)=\boldsymbol{p}_{\mathrm{f}}^{i}(k)+\boldsymbol{\beta}_{i}(k).\end{array}$ (6)
其中αi(k)为系统的状态干扰,βi(k)为输出测量噪声。
对于存在初始迭代误差且为固定非零值的场景,即yi(k)-pd(k)=pe, i=0, 1, 2, …,使用开环PD型迭代学习控制律,迭代形式写为
$\begin{gathered}\boldsymbol{u}_{\mathrm{f}}^{i+1}(k)=\boldsymbol{u}_{\mathrm{f}}^{i}(k)+ \\\boldsymbol{\varGamma}(k)\left\{\left[\boldsymbol{e}^{i}(k)-\boldsymbol{e}^{i}(k-1)\right]+\boldsymbol{R} \boldsymbol{e}^{i}(k)\right\}.\end{gathered}$ (7)
其中Γ(k)为学习增益矩阵,R为增益系数矩阵,ei(k)=pd(k)-yi(k)为第i次迭代后输出与期望值的误差。
若矩阵B(pf, k)有界,并满足Lipschitz条件
$\begin{gathered}\left\|\boldsymbol{B}\left(\boldsymbol{p}_{\mathrm{f}}, k\right)\right\| \leqslant b_{B}, \\\left\|\boldsymbol{B}\left(\boldsymbol{p}_{1}\right)-\boldsymbol{B}\left(\boldsymbol{p}_{2}\right)\right\| \leqslant c_{B}\left\|\boldsymbol{p}_{1}-\boldsymbol{p}_{2}\right\|,\end{gathered}$ (8)
其中bB, cB为正常数。假设
a) 干扰和噪声有界:$\max\limits _{1 \leqslant i \leqslant \infty} \max \limits_{1 \leqslant k \leqslant N_{\text {int }}}\left\|\boldsymbol{\alpha}_{i}(k)\right\|\leqslant b_{\alpha}, \max \limits_{1 \leqslant i \leqslant \infty} \max\limits _{\leqslant k \leqslant N_{\mathrm{int}}}\left\|\boldsymbol{\beta}_{i}(k)\right\| \leqslant b_{\beta} $,其中bα, bβ均为正常数。
b) 每次迭代的初始误差有界,即‖pd(0)-yi(0)‖≤b0, b0为正常数。
则运用控制律式$ \boldsymbol{u}_{\mathrm{f}}^{i+1}(k)=\boldsymbol{u}_{\mathrm{f}}^{i}(k)+\boldsymbol{\varGamma}(k)\left\{\left[\boldsymbol{e}^{i}(k)-\boldsymbol{e}^{i}(k-1)\right]+\boldsymbol{R} \boldsymbol{e}^{i}(k)\right\}$.(7)收敛的充分条件为
$\left\|\boldsymbol{I}-\boldsymbol{\varGamma}(k) \boldsymbol{B}\left(\boldsymbol{p}_{\mathrm{f}}^{i}(k), k\right)\right\|<1.$ (9)
其中运算符‖A‖为矩阵A的导出范数(induced matrix norm)
$\|\boldsymbol{A}\|=\sup \left\{\frac{\|\boldsymbol{A} \boldsymbol{x}\|}{\|\boldsymbol{x}\|}: \boldsymbol{x} \in K^{n} \text { with } \boldsymbol{x} \neq 0\right\}.$ (10)
此时,当迭代次数i→∞,系统输出yi(k)趋近于期望轨迹,‖pd(k)-yi(k)‖有界且收敛于bαbβb0的函数;若忽略干扰,yi(k)在0≤k < Nint上一致地具有
$\lim \limits_{i \rightarrow \infty} \boldsymbol{y}_{i}(k)=\boldsymbol{p}_{\mathrm{d}}(k)+\mathrm{e}^{\boldsymbol{R} k}\left[\boldsymbol{p}_{\mathrm{f}}^{0}(0)-\boldsymbol{p}_{\mathrm{d}}(0)\right].$ (11)
上述性质的证明过程见文献[19]。
在设计实现时,为满足式(9)的收敛条件,令$\boldsymbol{I}-\boldsymbol{\varGamma}(k) \boldsymbol{B}\left(\boldsymbol{p}_{\mathrm{f}}^{i}(k), k\right)=0 $。因此迭代控制律中的学习增益矩阵Γ(k)为
$\begin{aligned}\boldsymbol{\varGamma}(\boldsymbol{k}) &=\left[\boldsymbol{B}^{\mathrm{T}}\left(\boldsymbol{p}_{\mathrm{f}}^{i}(k), k\right) \boldsymbol{B}\left(\boldsymbol{p}_{\mathrm{f}}^{i}(k), k\right)\right]^{-1} \boldsymbol{B}^{\mathrm{T}}\left(\boldsymbol{p}_{\mathrm{f}}^{i}(k), k\right) \\&=\left[\begin{array}{ccc}-\sin \left(\theta_{0, k}\right) & \cos \left(\theta_{0, k}\right) & 0 \\0 & 0 & 1\end{array}\right] .\end{aligned}$ (12)
进一步地,由式(11)可见,当R的取值满足其特征值λ(R) < 0时,即使初始跟踪误差非零,迭代学习到的输入值uf(k)仍可使跟随者机器人随着时间渐进地跟踪期望轨迹。
ILC运行时,每一次迭代结果ufi(k)及时更新到图 4所示的跟随者航速指令队列中。为加快收敛速度,使用领航者的历史航速信息作为输入量的初始迭代值,即$\boldsymbol{u}_{\mathrm{f}}^{0}(k)=\boldsymbol{u}_{1}\left(k-N_{\mathrm{int}}\right) $。当pvul(k)有数据更新时,ILC使用新数据重新从第0轮开始迭代。
级联车队跟踪误差
机器人车队由若干组领航-跟随形式的两机器人级联而成。而两机器人的轨迹跟踪控制如图 4中所述,根据实时误差pe是否可用,分别采用航速重放和PD-ILC方法实现。记车队中第i组的跟踪误差为δr(i),则第k个机器人与队首领航者轨迹的误差为$ \mathit{\boldsymbol{\delta }}_{a}(k)=\sum\limits_{i=0}^{k-1} \mathit{\boldsymbol{\delta }}_{r}(i), k \geqslant 1$。前文已经分析得到基于PD迭代学习的单级跟踪误差有界且逐渐缩小。而航速重放跟踪无法缩小两机器人初始误差,且会累加系统状态干扰αi(j),此时误差的期望为
$E\left(\boldsymbol{\delta}_{r}\right)=\boldsymbol{p}_{\mathrm{e}}+\sum\limits_{j} E\left(\boldsymbol{\alpha}_{i}(j)\right).$ (13)
上述讨论表明,来自视觉位姿测量的实时误差pe可用时,通过PD-ILC可以缩小跟踪误差,而不使用pe信息的航速重放跟踪方法会保持甚至扩大跟踪误差。编队中过多的级联层数会使队末机器人的跟踪精度退化,这也成为机器人编队数量上限的制约因素。
2 系统实现我们使用3个机器人组成的编队和一个雾计算节点实现了上述机器人跟随系统。跟随控制应用打包成容器镜像,分发到雾计算节点运行。图 5展示系统实现的细节,下文作进一步说明。
Fig. 5
Download: JPG
larger image
图 5 雾计算使能的机器人跟随系统实现细节 Fig. 5 Implementation details of the fog computing enabled robot tracking control system
图 5 雾计算使能的机器人跟随系统实现细节

Fig. 5 Implementation details of the fog computing enabled robot tracking control system -->

2.1 硬件平台实验所用机器人为Rikiribot 4WD平台[20]。机器人本地计算能力来自于Raspberry Pi 3b单板电脑和STM32 MCU。前者运行上层应用并进行IP/TCP通信,后者主要负责底层硬件驱动。
雾计算节点是基于Open Air Interface项目的软件定义LTE基站[21],通过SDR模块收发射频信号。雾计算节点基于x86平台,本质上是一台通用计算机,因此可以协助运行外部计算任务。雾计算节点为机器人提供4 G网络接入和运算能力。机器人上的Raspberry Pi电脑使用USB 4 G网卡接入雾节点网络。
详细的设备参数见表 1
Table 1
表 1 实验设备详情Table 1 Details of experimental equipments
实验设备 配置项目 规格型号
移动机器人 电机 330RPM编码电机390线
车载电脑 Raspberry Pi 3b, 1.2 GHz, 1 GB RAM
MCU STM32F103
摄像头 CSI接口,500万像素,等效焦距35 mm
IMU GY-85
4G网卡 E8372
雾计算节点 CPU Intel Core i7-4700EQ 2.4 GHz
RAM 2×16 GB DDR3 1 600 MHz
SDR模块 USRP B210
OS Ubuntu 16.04 LTS

表 1 实验设备详情Table 1 Details of experimental equipments

2.2 软件设计机器人编队跟随系统的设计采用ROS框架,这是一个面向机器人领域的分布式元操作系,提供了发布-订阅的通信机制。领航者机器人foo行驶时,以5 Hz频率在foo/cmd_vel话题(Topic)上广播航速信息。跟随者机器人bar监听bar/cmd_vel话题上的消息指令,并转换为电机转速。跟随者的相机视频流在话题bar/camera_raw上发布。
图 4中的控制App使用以上话题作为接口,使用Python编写为独立的ROS Package,然后打包成Docker镜像。该控制App的镜像封装了ROS运行时环境,以及机器人编队系统的所有运算程序,包括视觉信号处理、航迹计算、跟随控制等。执行编队跟随任务时,镜像被分发到雾节点上实例化运行。编队中存在多个机器人时,一对领航-跟随关系对应一个容器实例,因此雾节点的资源一定程度上决定了编队中机器人的最大数量。
在设计细节方面另有一些额外考虑。首先,为保证指令的实时性,使用TCP_NODELAY方式订阅航速相关的topic[22]。TCP_NODELAY的原理是停用Nagle算法,在发送频繁的小分组时,牺牲网络吞吐性能换取低延迟效果[23]。需要指出,视频流数据能容忍一定的延迟而无需作此处理,因为算法中已经考虑了延时的修正。其次,控制App镜像需要有时间同步和网络穿透两个额外的组件支持。机器人和控制App上的程序依赖统一时钟,为此机器人通过雾节点上的NTP服务器定期校准时间。ROS通信机制要求可双向访问的网络,但4 G核心网和LTE网卡设备进行了两次NAT转换。为此,雾计算节点上运行OpenVPN服务器,在机器人和控制App实例之间创建了L2TP隧道。
3 性能测试实验首先测试雾计算节点的网络性能。随后,量化表征机器人控制程序卸载到雾节点获得的益处。最后,评价实验室环境下本文所设计编队跟随方案的效果。
3.1 通信能力在分布式控制系统中,网络的通信能力需要保证系统运行所需的时延和带宽指标。具体到本文的机器人编队跟随系统,在典型流量负载下,控制App与机器人之间的控制指令延迟必须小于控制间隔0.2 s。为了测试雾节点的网络性能,使用iperf工具向网络中发送UDP数据包,制造不同大小的网络流量;然后以5 Hz频率,在ROS测试话题上发送带有时间戳的简短指令消息,在上行和下行2个方向上测试消息的延迟。
实验测试了网络分别在空闲状态, 400、780、1 200 KB/s负载下,上行和下行2个方向的时延,其中780 KB/s是跟随者机器人向雾计算节点传输一路视频信号所占用的平均带宽。测试持续采样60 s,结果如图 6所示。
Fig. 6
Download: JPG
larger image
图 6 在不同网络流量下,机器人与雾计算节点的上下行延迟 Fig. 6 The up & down link time delay between robot and fog node, under different network traffic
图 6 在不同网络流量下,机器人与雾计算节点的上下行延迟

Fig. 6 The up & down link time delay between robot and fog node, under different network traffic -->

结果可见,在网络带宽以内,不同网络负载下,消息延迟均能保持在毫秒级的水平,偶尔的突发抖动在100 ms以下,网络能满足5 Hz控制频率所需的200 ms最大延迟。其原因在于:1)LTE接入方式在物理层保障了稳定的信道容量。2)控制指令使用TCP_NODELAY方式传输,在网络协议层面降低了包延迟。
3.2 任务卸载的优势相比在机器人本地运算的传统方法,雾计算将机器人控制程序卸载到边缘节点上运行,优势在于:1)降低对机器人板载电脑处理能力的需求,进而降低硬件成本;2)降低移动机器人的运行功耗,延长电池寿命;3)相对云计算而言,雾计算资源更加灵活可靠,运算任务卸载得更加彻底,机器人只负责传感和执行,完全解耦合了控制面,利于软件的维护和快速迭代。
实验首先测试跟随控制程序分别在雾计算节点和机器人板载电脑上的运行时间。其次,忽略运行性能,关注机器人功率,通过供电电压和电流测量得到控制程序卸载与本地运算2种情况下机器人板载电脑的运行功耗。
测试结果如图 7所示。图 7(a)显示控制App进行一次跟随者航速运算所需要的时间。在雾节点上计算时,单次运算时间约30 ms左右;而在移动机器人板载电脑上计算时,运算时间在400 ms以上,这对于5 Hz的控制频率来说是不可行的。图 7(b)的功耗测试结果显示,控制App从机器人本地卸载到雾节点后,机器人板载电脑的功耗从3.4 W降低到2.5 W左右,降幅约25 %。考虑到若在本地运算,实则需要更高级别的处理器才能满足算力需求,因此实际节约的功耗将会更多。上述结果证实,本系统中雾计算任务卸载的做法起到了预期效果。
Fig. 7
Download: JPG
larger image
图 7 任务卸载的优势 Fig. 7 Benefits of task offloading
图 7 任务卸载的优势

Fig. 7 Benefits of task offloading -->

3.3 实际跟随效果为验证本文中编队跟随方案的有效性,使用3个机器人的编队进行不同项目的测试。完整启动上述雾计算机器人系统后,人工操纵队首领航机器人,另外2个机器人分别由2个控制App实例自动控制,跟踪领航者的轨迹。实验在6 m×8 m的室内场地进行,测试3个项目,分别是:非零初始误差的编队修正能力、不同速度下的方形运动和长距离折线形运动。一个部署在房间顶部的摄像头采集机器人编队的运动录像,并通过离线视觉测量方法得出机器人编队在地面二维坐标系上的运动轨迹。
3次实验中机器人编队的运动轨迹如图 8所示,方形标记为起始点,三角形标记为结束点。跟随者的跟踪误差随时间变化的曲线也在图 8中一并展示。表 2进一步分析跟踪效果,包括运动距离,各级最小、最大跟踪误差,以及平均跟踪误差。其中运行过程中的跟踪误差tra_err和平均跟踪误差mean_error使用下式计算。
$\begin{gathered}\boldsymbol{tra\_err}(k)= \min \left(\left\|\boldsymbol{P}_{\mathrm{f}}(k)-\boldsymbol{P}_{1}(j)\right\|_{2}\right), j>0 \\{mean\_err}=\frac{\sum\limits_{k}\boldsymbol{tra\_err}(k)}{M}, M=\operatorname{len}({\boldsymbol{tra\_err}})\end{gathered} .$ (14)
Fig. 8
Download: JPG
larger image
图 8 在3次不同的测试下,机器人编队的运动轨迹和跟随者的跟踪误差 Fig. 8 Trajectories of robot fleets and the corresponding tracking errors, in three tests
图 8 在3次不同的测试下,机器人编队的运动轨迹和跟随者的跟踪误差

Fig. 8 Trajectories of robot fleets and the corresponding tracking errors, in three tests -->


Table 2
表 2 在不同运动轨迹下的移动机器人跟踪效果分析Table 2 Tracking performance analysis of mobile robots under different trajectories
实验类型 运动距离/m 跟踪误差/m第一级/第二级平均跟踪误差/m
最小值 最大值
非零初始误差 5.60 0/0 0.23/0.24 0.046
方形 22.54 0/0 0.11/0.06 0.030
折线形 36.16 0/0 0.14/0.09 0.031

表 2 在不同运动轨迹下的移动机器人跟踪效果分析Table 2 Tracking performance analysis of mobile robots under different trajectories

测试项目1中,编队中各机器人初始时存在约0.23 m的误差,但各级跟踪误差随时间逐步下降,最终在5 m行驶距离以内恢复到直线队列。测试项目2和3使用不同的直行、转向速度,在长时间跟踪过程中验证了方案的鲁棒型。方形轨迹和折线形轨迹测试的最大跟踪误差均在0.15 m以内,平均跟踪误差约0.03 m。当领航者在做转弯等较大幅度动作时,跟随者的视觉探测无法起作用,此时依靠控制App中跟随者航速FIFO的缓存内容和航速重放实现跟踪。当领航者重新回到跟随者视觉探测范围内时,视觉测量再次介入,跟踪误差被及时修正,跟随者回归预期的航线。测试结果证实了本文跟随方案的有效性。
4 结束语针对现有机器人编队跟随方案的不足以及云计算模式的限制,本文提出雾计算使能的机器人跟随系统。所提出的系统中,避免了全局定位和成本较高的局部定位,跟随控制方案仅需领航者的航速信息,以及跟随者的相机视频流信息。引入雾计算模式,雾节点为机器人提供无线网络接入和运算能力,降低了机器人硬件需求。原型系统实验证实了跟随方案的有效性,平均跟踪误差在0.05 m以内,跟随控制程序的卸载降低了25 % 的机器人计算能耗,具有工程参考意义。
本文实现了轨迹跟踪的编队,在此基础上扩展到更普遍的编队队形(例如基于Shape理论描述的队形[24])是下一步的研究方向。此外,单个雾节点的资源限制成为系统最大可支持机器人数量的制约因素之一,因此利用多个雾计算节点构建资源池,优化编排业务镜像是潜在的研究方向。

参考文献
[1] Lutz M, Verbeek C, Schlegel C. Towards a robot fleet for intra-logistic tasks: combining free robot navigation with multi-robot coordination at bottlenecks[C]//2016 IEEE 21st International Conference on Emerging Technologies and Factory Automation (ETFA). Berlin, Germany: IEEE Press, 2016: 1-4.
[2] Dai Z H, Wu M, Chen X. Multi-robot cooperative transportation using formation control[C]//2008 27th Chinese Control Conference. Kunming, China: IEEE Press, 2008: 346-350.
[3] Jia Q L, Xing X J, Li G W. Formation path tracking controller of multiple robot system by high order sliding mode[C]//2007 IEEE International Conference on Automation and Logistics. Jinan, China: IEEE Press, 2007: 923-927.
[4] Ouyang P R, Acob J, Pano V. PD with sliding mode control for trajectory tracking of robotic system[J]. Robotics and Computer-Integrated Manufacturing, 2014, 30(2): 189-200. Doi:10.1016/j.rcim.2013.09.009
[5] Xu Q, Kan J M, Chen S N, et al. Fuzzy PID based trajectory tracking control of mobile robot and its simulation in Simulink[J]. International Journal of Control and Automation, 2014, 7(8): 233-244. Doi:10.14257/ijca.2014.7.8.20
[6] Bishop A N, Savkin A V, Pathirana P N. Vision-based target tracking and surveillance with robust set-valued state estimation[J]. IEEE Signal Processing Letters, 2010, 17(3): 289-292. Doi:10.1109/LSP.2009.2038772
[7] Farid Z, Nordin R, Ismail M. Recent advances in wireless indoor localization techniques and system[J]. Journal of Computer Networks and Communications, 2013, 2013: 1-12.
[8] Lü Q, Wei H, Lin H C, et al. Formation control of multi robot based on UWB distance measurement[C]//2018 Chinese Control And Decision Conference (CCDC). Shenyang, China: IEEE Press, 2018: 2404-2408.
[9] Chueh M, Yeung Y L W A, Lei K P C, et al. Following controller for autonomous mobile robots using behavioral cues[J]. IEEE Transactions on Industrial Electronics, 2008, 55(8): 3124-3132. Doi:10.1109/TIE.2008.922605
[10] Wang H S, Guo D J, Liang X W, et al. Adaptive vision-based leader-follower formation control of mobile robots[J]. IEEE Transactions on Industrial Electronics, 2017, 64(4): 2893-2902. Doi:10.1109/TIE.2016.2631514
[11] Kehoe B, Patil S, Abbeel P, et al. A survey of research on cloud robotics and automation[J]. IEEE Transactions on Automation Science and Engineering, 2015, 12(2): 398-409. Doi:10.1109/TASE.2014.2376492
[12] Du Z H, He L G, Chen Y N, et al. Robot Cloud: Bridging the power of robotics and cloud computing[J]. Future Generation Computer Systems, 2017, 74: 337-348. Doi:10.1016/j.future.2016.01.002
[13] Kehoe B, Matsukawa A, Candido S, et al. Cloud-based robot grasping with the google object recognition engine[C]//2013 IEEE International Conference on Robotics and Automation. Karlsruhe, Germany: IEEE Press, 2013: 4263-4270.
[14] Miratabzadeh S A, Gallardo N, Gamez N, et al. Cloud robotics: a software architecture: for heterogeneous large-scale autonomous robots[C]//2016 World Automation Congress (WAC) RioGrande, Puerto Rico: IEEE Press, 2016: 1-6.
[15] Yang Y, Luo X L, Chu X L, et al. Fog-enabled intelligent IoT systems[M]. Cham, Switzerland: Springer, 2019: 163-184.
[16] 王营华, 宋光明, 刘盛松, 等. 一种视觉引导的作业型飞行机器人设计[J]. 机器人, 2019, 41(3): 353-361.
[17] Li S Q, Xu C, Xie M. A robust O(n) solution to the perspective-n-point problem[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2012, 34(7): 1444-1450. Doi:10.1109/TPAMI.2012.41
[18] Dai H, Lu Y M. Iterative learning control for linear time-variant continuous systems with iteration-varying initial conditions and reference trajectories[J]. Journal of the Graduate School of the Chinese Academy of Sciences, 2011, 28(3): 366-374.
[19] Bien Z, Xu J X. Iterative learning control: analysis, design, integration and applications[M]. MA, USA: Kluwer Academic Publishers, 1998: 43-45.
[20] Ykevin. Rikirobot Docs[EB/OL]. (2018-02-21)[2020-01-13]. https://github.com/ykevin/rikirobot_docs.
[21] Chen N X, Yang Y, Zhang T, et al. Fog as a service technology[J]. IEEE Communications Magazine, 2018, 56(11): 95-101. Doi:10.1109/MCOM.2017.1700465
[22] Open Source Robotics Foundation. Class Subscriber[EB/OL]. (2020-01-10)[2020-01-13]. http://docs.ros.org/api/rospy/html/rospy.topics.Subscriber-class.html.
[23] ExtraHop. Best Practices For Tcp Optimization[EB/OL]. (2019-06-29)[2020-01-13]. https://www.extrahop.com/company/blog/2016/tcp-nodelay-nagle-quickack-best-practices/.
[24] Wang Y, Cheng L, Hou Z G, et al. Optimal formation of multirobot systems based on a recurrent neural network[J]. IEEE transactions on neural networks and learning systems, 2015, 27(2): 322-333.


相关话题/计算 控制 系统 信息 视觉