自主飞行机器人的蜂拥算法
文章目录
- 2. Realistic model of a flying robot
- 3. Self-propelled flocking model
- 3.1. Short-range repulsion
- 3.2. Velocity alignment of neighbours
- 3.3. Boundaries and shill agents
- 4. Collective target tracking
- 5. Results and discussion
- 5.1. Simulation of the flocking algorithm
- 5.2. Simulation of the target tracking algorithm
文章来自:《Flocking algorithm for autonomous flying robots》
引用格式:Virágh, Csaba, Vásárhelyi, Gábor, Tarcai N , et al. Flocking algorithm for autonomous flying robots[J]. Bioinspiration & Biomimetics, 2014, 9(2):025012.
2. Realistic model of a flying robot
在本节中,我们提出了飞行机器人的模型,该模型被广泛的应用在许多真实的机器人系统中。 在这样的系统中,机器人的运动由低级算法控制,例如, 基于速度的PID控制器。 该低级控制算法通常将实际机器人的期望速度作为一个输入变量。 在群飞行期间,第iii飞行器寄予时间的期望速度可以由其他飞行器的位置xix_ixi和速度viv_ivi来定义:
vid(t)=fi({xj(t)}j=1N,{vj(t)}j=1N)v_{i}^{d}(t)={{f}_{i}}(\{{{x}_{j}}(t)\}_{j=1}^{N},\{{{v}_{j}}(t)\}_{j=1}^{N})vid(t)=fi({xj(t)}j=1N,{vj(t)}j=1N)
Note:fi()f_i()fi()表示控制函数,即通过其他飞行器的位置和速度来改变第i个飞行器的位置。将一系列用来动态改变ttt时刻第iii个飞行器速度的算法,统一用函数fi()f_i()fi()表示。
其中NNN是集群总飞行器的数量,fif_ifi函数包含控制动态的任意特征。 在理想的情况下,第iii个机器人的速度可以在ttt时刻迅速的变为vid(t)v_{i}^{d}(t)vid(t)。然而,机器人系统永远不是理想的,在建模时应该考虑它的一些实际的缺陷:
惯性:机器人不能迅速的改变他们的姿态或者速度。通常情况下,渴望的速度是低级控制器的输入。我们假设在最优设置中,系统可以以指数收敛达到期望的速度,具有特征时间τCTRL\tau_{ CTRL}τCTRL。PID控制算法就是满足此行为的简单控制器算法。同时,加速度的大小也限制在最大值amaxa_{max}amax。
内部噪声:我们必须考虑提供相对位置和速度信息的传感器的不准确性。 例如,GPS设备测量的位置和速度的不确定性可以建模为随机函数ηis{\eta^s_i}ηis。 该函数可以用标准偏差σs\sigma_sσs表征。 注意,“内部噪声”可以指实际机器人系统中使用的任何类型的传感器的不准确性。
传感器刷新频率:传感器的输入的刷新率从根本上定义了机器人的反应时间和敏捷性。 我们考虑传感器的刷新率有限:每个单元更新传感器数据的频率为ts−1t^{-1}_sts−1。 在我们当前的模型中,ts−1t^{-1}_sts−1是固定值。
通信局限:机器人之间的通信具有有限范围rcr_crc,因此如果两个机器人之间的距离大于rcr_crc,则它们不能相互交互。 换句话说:只有满足∣xj−xi∣<rc|x_j-x_i|<r_c∣xj−xi∣<rc时,函数fif_ifi才依赖于参数xjx_jxj。
时间延迟:当一个机器人接收或者处理来自其他机器人的位置、速度数据时,由于数据处理和传播会造成一些时延。最简单的解决方法是可以将时时间延迟定义为一个固定值tdelt_{del}tdel。
常见噪音:具有标准偏差σ\sigmaσ的delta-correlated外部噪声项ηi(t)\eta_i(t)ηi(t)被加到单元的加速度上,该项是不可预测的环境影响的模型,例如低级控制算法中的风补偿的波动。
考虑上述问题,我们使用集合{τCTRL,amax,rc,tdel,ts,{ηj(t),ηjs(t)}j=1N}\{{\tau}_{CTRL},a_{max},r_c,t_{del},t_s,\{{{\eta}_{j}}(t),{{\eta}^s_{j}}(t)\}_{j=1}^{N}\}{τCTRL,amax,rc,tdel,ts,{ηj(t),ηjs(t)}j=1N}表示真实的系统。时间延迟和通信范围难以测量并且可随机变化并,对稳定性的影响很大。 因此,所有的函数fif_ifi都考虑tdelt_{del}tdel和rcr_crc。
综上,每个飞行器最终的模型是定义每个飞行器加速度的等式:
ai(t)=ηi(t)+fi(…)−vi(…)−vis(…)∣fi(…)−vi(…)−vis(…)∣⋅min{fi(…)−vi(…)−vis(…)τCTRL,amax}{{a}_{i}}(t)={{\eta }_{i}}(t)+\frac{{{f}_{i}}(\ldots )-{{v}_{i}}(\ldots )-v_{i}^{s}(\ldots )}{|{{f}_{i}}(\ldots )-{{v}_{i}}(\ldots )-v_{i}^{s}(\ldots )|}\cdot \min \{\frac{{{f}_{i}}(\ldots )-{{v}_{i}}(\ldots )-v_{i}^{s}(\ldots )}{{{\tau }_{CTRL}}},{{a}_{\max }}\}ai(t)=ηi(t)+∣fi(…)−vi(…)−vis(…)∣fi(…)−vi(…)−vis(…)⋅min{τCTRLfi(…)−vi(…)−vis(…),amax}
fi(…)=fi({xj(t−tdel)+xjs(t−tdel)}j≠1,xi(t)+xis(t),{vj(t−tdel)+vjs(t−tdel)}j≠1,vi(t)+vis(t)){{f}_{i}}(\ldots )\text{=}{{f}_{i}}({{\{{{x}_{j}}(t-{{t}_{del}})+x_{j}^{s}(t-{{t}_{del}})\}}_{j\ne 1}},{{x}_{i}}(t)+x_{i}^{s}(t),{{\{{{v}_{j}}(t-{{t}_{del}})+v_{j}^{s}(t-{{t}_{del}})\}}_{j\ne 1}},{{v}_{i}}(t)+v_{i}^{s}(t))fi(…)=fi({xj(t−tdel)+xjs(t−tdel)}j̸=1,xi(t)+xis(t),{vj(t−tdel)+vjs(t−tdel)}j̸=1,vi(t)+vis(t))
其中ηi(t)\eta_i(t)ηi(t)是常见噪声,{…}i≠j{{\{\ldots \}}_{i \ne j}}{…}i̸=j表示迭代器的集合i≠ji \ne ji̸=j
3. Self-propelled flocking model
在本节中,我们提出了一种最小算法,它能够驱动集体机器人系统走向稳定,无碰撞,相关的f蜂拥状态。 该算法基于动物群的早期模型[2] [3]。 我们将Agents定义为具有优选速度VflockV_{flock}Vflock的自推进粒子:
viSPP=vflockvi∣vi∣v_{i}^{SPP}={{v}_{flock}}\frac{{{v}_{i}}}{|{{v}_{i}}|}viSPP=vflock∣vi∣vi
3.1. Short-range repulsion
为了避免碰撞,我们定义了一个局部线性排斥速度:
vijrep=D(∣dij∣−rs)∣dij∣dijθ(rs−∣dij∣)v_{ij}^{rep}=\frac{D(|{{d}_{ij}}|-{{r}_{s}})}{|{{d}_{ij}}|}{{d}_{ij}}\theta ({{r}_{s}}-|{{d}_{ij}}|)vijrep=∣dij∣D(∣dij∣−rs)dijθ(rs−∣dij∣)
其中dij=xj−xid_{ij}=x_j-x_idij=xj−xi,DDD是排斥力的力度,rsr_srs相邻飞行器之间的平衡距离。我们认为由内部噪声引起的测量位置的波动幅度可以与rsr_srs在相同的范围内。 在这种噪声系统中,简单的线性排斥优于高阶项,因为测量位置的误差不会导致输出中的突然变化或奇点。 如果机器人能够更准确地测量它们的位置,可以使用更高阶项,如Lennard-Jones势能[13]。
3.2. Velocity alignment of neighbours
现实控制算法中任何一种速度对齐项都应满足三个假设:它应该
i)减小彼此接近的单位的速度差;
ii)是局部的
iii)即使当飞行器之间的距离接近于零(具有排斥项)时也具有上阈值。
鉴于这些,我们实现了具有类似粘性摩擦的相互作用项的对齐规则,类似于[14]和[15]:
vijfrict=Cfrictvj−vi(max{rmin,∣dij∣})2v_{ij}^{frict}={{C}_{frict}\frac{{{v}_{j}}-{{v}_{i}}}{{{(max\{{{r}_{\min }},|{{d}_{ij}}|}\})}^{2}}}vijfrict=Cfrict(max{rmin,∣dij∣})2vj−vi
其中CfrictC_{frict}Cfrict是对齐的强度,rminr_{min}rmin定义了一个阈值,以避免除以近距离。
这一项是考虑到粒子/机器人对准其运动方向的趋势的特定实用选择。 在某种意义上,它是粘性摩擦项的离散对应物,它在粒子/机器人运动的过程中持续存在。
在上述公式中,如果∣Cfrict∣≪vflock∣dij∣2/(∣vj−vi∣)|C_{frict}| \ll v_{flock}|d_{ij}|^2/(|v_j-v_i|)∣Cfrict∣≪vflock∣dij∣2/(∣vj−vi∣),则vijfrictv^{frict}_{ij}vijfrict的大小相对于∣viSPP∣|v^{SPP}_{i}|∣viSPP∣而言是微不足道的(即)。速度viv_ivi和vjv_jvj的大小是有限制的,因此通过选取最佳vflockv_{flock}vflock和CfrickC_{frick}Cfrick来保证局部粘性摩擦项的效果。
3.3. Boundaries and shill agents
蜂拥行为的一个重要原则是使用某种全局位置约束来帮助群体实现的完整性。 在模拟中,位置约束的这个特征可以通过使用周期性边界条件地替代。 这是检查系统的大规模统计特性的有效方法。 在实际实验中,可以通过将飞行器约束在低纬度空间中来模仿周期性边界条件,例如, 进入一个环形的舞台[17] [18],但在三维场景中这些限制根本不实用。
为了通过模拟研究蜂拥模型,我们将单元放置在具有排斥壁的方形的场地中(后面称为竞技场)。 我们将墙的排斥定义为虚拟的“shill”[19]Agents。 如果这些飞行器在墙外,那些shill agent会尝试协调这些飞行器,将其速度对准竞技场的中心,使其逐渐进入竞技场中心:
viform=Cfrom⋅s(∣xa−xi∣,R~(xi,xa,R),d)(vflockxa−xi∣xa−xi∣−vi)v_{i}^{form}={{C}_{from}}\cdot s(|{{x}_{a}}-{{x}_{i}}|,\tilde{R}({{x}_{i}},{{x}_{a}},R),d)\left( {{v}_{flock}}\frac{{{x}_{a}}-{{x}_{i}}}{\left| {{x}_{a}}-{{x}_{i}} \right|}-{{v}_{i}} \right)viform=Cfrom⋅s(∣xa−xi∣,R~(xi,xa,R),d)(vflock∣xa−xi∣xa−xi−vi)
CshillC_{shill}Cshill是墙壁排斥力的强度,xax_axa是竞技场中心的坐标。定位s(x,R,d)s(x,R,d)s(x,R,d)为S形曲线,它可以平滑地降低竞技场内的排斥强度:
s(x,R,d)={0x∈[0,R]sin(πd(x−R)−π2)+1x∈(R,R+d]1x>R+ds(x,R,d)=\left\{ \begin{matrix} 0 & x\in [0,R] \\ \sin \left( \frac{\pi }{d}(x-R)-\frac{\pi }{2} \right)+1 & x\in (R,R+d] \\ 1 & x>R+d \\ \end{matrix} \right.s(x,R,d)=⎩⎨⎧0sin(dπ(x−R)−2π)+11x∈[0,R]x∈(R,R+d]x>R+d
R~\widetilde{R}R是关于竞技场形状的函数(在本文中指的是一个边长为RRR的方形场地)。
注意,竞技场的墙壁在模拟中是全局预定义的,但是排斥项仅取决于相对坐标xi−xax_i-x_axi−xa,因此在真实的机器人系统中,竞技场可以在本地被感知,与感知相邻飞行器的方式相同。
上面定义的三个术语的总和是蜂拥行为的最小先决条件。
vid=viSPP+∑j≠i(vijrep+vijalig)θ(rc−∣dij∣)v_{i}^{d}=v_{i}^{SPP}+\sum\limits_{j\ne i}{(v_{ij}^{rep}+v_{ij}^{alig})}\theta ({{r}_{c}}-|{{d}_{ij}}|)vid=viSPP+j̸=i∑(vijrep+vijalig)θ(rc−∣dij∣)
4. Collective target tracking
在本节中,我们论证交互项vijrepv_{ij}^{rep}vijrep和$v_{ij}^{frict}可以包含在其他任务特定的控制算法中。 我们使用先验定义的固定目标点创建了集体目标跟踪算法。 该算法允许单元在两个稳定状态之间执行平滑过渡:蜂拥状态(飞行器远离目标时)和集体悬停状态(飞行器在目标周围时)。 在目标点附近的这种过渡期间,速度的优选幅度必须平滑地接近零,并且应该保持群体的一致性和稳健性而没有干扰或振荡的迹象。
想象一个群体朝着目标位置(质量中心,meta-agent)移动,速度为v−0v-0v−0。 每个单元必须完成两个任务而不会发生冲突:
i)接近这个meta-agent足够接近以实现蜂拥
ii)与meta-agent平行移动以到达集体运动的目标。
根据我们的定义,机器人之间的通信是局部的, 因此计算全局质心在物理上是不可能的。 然而,机器人可以根据其通信范围内的可用信息(在半径为rcr_crc的球形环境中)计算局部质心(CoM)。 因此,朝向目标点的吸引力定义为:
其中v0v_0v0是优选速度的大小,xtrgx^{trg}xtrg是目标的位置,xiCoMx^{CoM}_ixiCoM是从第i个飞行器的角度看的局部质心的位置,rtrgr_{trg}rtrg是目标区域的半径, rCoMr_{CoM}rCoM是球形meta-agent的半径。s(x,R,d)s(x,R,d)s(x,R,d)是前一节中定义的S形函数。注意,(4)中定义的粘性摩擦项的局部性取决于该算法中的v−0v-0v−0和CfrictC_{frict}Cfrict的值。
目标跟踪项的大小饱和于v0v_0v0:
算法计算出的最终所需速度为:
5. Results and discussion
在本节中,我们提出了真实的模拟和机器人实验结果。
5.1. Simulation of the flocking algorithm
首先,我们证明了即使在通信中存在大的延迟以及存在内部和外部噪声的情况下,也可能出现典型的蜂拥模式。 可以用顺序参数表示蜂拥状态的稳定性
其中vi(t)⋅vj(t)v_i(t)\cdot v_j(t)vi(t)⋅vj(t)是两个速度矢量的标量积。在理想的蜂拥状态下,Ψscal≈1\Psi_{scal}\approx1Ψscal≈1,在无序(不稳定)状态,Ψscal≈0\Psi_{scal}\approx0Ψscal≈0。 根据图1,在较低的C值下,不能观察到具有高标度ψ的相关植绒行为。 较高的CfrictC_{frict}Cfrict保证即使存在噪声和大的时间延迟,出现的蜂拥状态也是稳定的。
5.2. Simulation of the target tracking algorithm
本小节的目的是表明通过我们选择的植绒算法中使用的交互项,可以保证目标跟踪算法的稳定性。 为了研究稳定性,我们分析了系统的两种可能的准稳态:植绒状态(大速度,远离目标位置)和悬停状态(零速度,靠近目标位置)。 请注意,我们的目标是显示交互项对稳定性的影响,因此其他参数(v0,rCoM,Rtrg,d)(v_0,r_{CoM},R_{trg},d)(v0,rCoM,Rtrg,d)设置为固定的默认值。 优化参数选择以保证目标跟踪任务的稳定完成,在理想情况下在植绒和悬停状态之间平滑过渡。
自主飞行机器人的蜂拥算法相关推荐
- VIO:飞行机器人单目VIO算法测评
泡泡图灵智库,带你精读机器人顶级会议文章 标题:A Benchmark Comparison of Monocular Visual-Inertial Odometry Algorithms for ...
- 年薪20-65W|瓦特曼3D感知、图像、机器人、无人机算法工程师等岗位招聘
瓦特曼智能算法研发岗位火热招募中 公司官网:www.wattman.cn 福利待遇: 入职七险一金(全额基数),绩效奖.项目奖.年终奖.员工评优.期权激励通通都有,年假.司龄假.孝亲假也都齐全,除此之 ...
- 机器人学习--定位算法AMCL全局定位方案
ROS中已经集成了AMCL(自适应蒙特卡洛定位)的解决方案,按照要求测试一般都没问题. 源码或者相关细节分析参考:机器人学习--定位算法AMCL详解_GGY1102的博客-CSDN博客_amcl定位 ...
- a算法和a*算法的区别_机器人路径规划算法,全局路径规划与局部路径规划究竟有哪些区别?...
若步智能 移动这一简单动作,对于人类来说相当容易,但对机器人而言就变得极为复杂,说到机器人移动就不得不提到路径规划,路径规划是移动机器人导航最基本的环节,指的是 ...
- 基于光流传感器定位和导航的自主飞行无人机
基于光流传感器定位和导航的自主飞行无人机 An Autonomous UAV with an Optical Flow Sensor for Positioning and Navigation 注: ...
- [论文]自主水下机器人垂直面路径跟踪静态输出反馈控制设计
自主水下机器人垂直面路径跟踪静态输出反馈控制设计 摘要 介绍 水下机器人建模 参考系 垂直面模型 摘要 提出了一种用于自主水下机器人的输出反馈控制器的设计,以实现垂直平面内的路径跟踪任务.使用车辆运动 ...
- 基于计算机视觉原理的自主足球机器人位置计算
1 前言 计算机视觉系统是目前人工智能研究最重要的工具, 也是自主足球机器人的主要研究内容之一. 其内容包括根据一幅或多幅视平面图像计算出视点到目标物体的距离.目标物体的运动参数.以及目标物体的表面特 ...
- 机器人空间采样算法研究现状简述
[文末提供原文PDF免费下载(期刊论文版式)] 摘要:运动规划是移动机器人自主导航系统中的重要模块之一,相关算法研究成果层出不穷,本文将空间采样算法拆解为四个子类算法:PRM类算法.RRT类 ...
- 模拟天地飞7接收机的无人机自主飞行,基于51单片机实现
笔者参加了2018年武汉中国地质大学的机器人比赛,虽成绩不理想,但是基于51控制飞行器的程序开发过程可以分享给大家,比赛经验也可以分享给大家. 本科生基于自主飞行的较少,主要是研究生参与,而且可以使用 ...
最新文章
- puppet recurse 导致的性能问题一例
- MySQL数据库root账户密码忘记两种处理方法转载
- 【效率】如何有效提问
- bootstrap-wysiwyg: 迷你的Bootstrap的所见即所得的HTML富文本编辑器
- FreeSWITCH 学习笔记(一)
- 2021-01-07 matlab数值分析 插值法 拉格朗日插值法 牛顿插值法
- python程序操作的核心_python核心编程-第五章-个人笔记
- 不能在计算机网络上共享的打印机驱动程序,打印机已经共享,可是当别的电脑安装共享的打印机驱动程序时提示 windows 没法连接到打印机。拒绝访问??...
- [转] 暴风影音被挂马 已有28000网民遭侵袭
- 八皇后-韩顺平java
- flash提示版本过低导致无法安装解决方法
- 微端要用什么样的服务器
- PyCharm 的调试功能
- 红帽子企业Linux 5安装序列号
- 华为公司面试新员工的有关计算机网络的题目和答案
- 如何建立起一套有效的APP监控体系
- 谁说前端不能搞红黑树,用这55张图拿JS一起手撕红黑树
- solidworks装配体改为柔性_软件技巧:大神整理的SolidWorks技巧总结
- Hi3516开发笔记(三):Hi3516虚拟机基础环境搭建之交叉编译环境境搭建以及开机启动脚本分析
- 使用Pycharm设置python脚本文件头
热门文章
- Debian11安装及Clojure配置记录
- 网络安全课程day1
- 做个合格的数据库管理员(DBA)
- 电脑远程开关机=中控客户端设置说明
- RT Thread利用STM32CUBEMX和RT Thread studio来创建模板工程
- 菜鸟调错——Jboss与jdk版本不兼容导致WebService调用出错
- 【建议收藏】靠着这些学习方法,我入职了世界五百强——互联网时代的“奇技淫巧”
- 小米8融合位置服务器,小米融合云组崔建伟 - 小米融合云实践
- 如何让 Nginx 动态负载均衡
- 大量免费的高质量PPT、个人简历模板