💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥1 概述
摘要:
我们提出了一种分布式算法,用于在有界凸环境中利用多个追捕者对多个逃逸者进行协作追捕。该算法适用于拦截受保护空域中的失控无人机等应用。追捕者不知道逃逸者的策略,但通过采用基于环境的Voronoi镶嵌的全局“区域最小化”策略,我们保证了所有逃逸者都能在有限时间内被捕获。我们还提出了这种策略的去中心化版本,适用于二维(2-D)和三维(3-D)环境,并通过多次仿真表明,它优于其他去中心化的多追捕者启发式方法。我们还进行了自主机器人和人控机器人的实验,以证明该方法的实用性。特别是,人控逃逸者无法通过该算法避免被捕获。
**摘要**:
本文研究了如何协调一组追捕机器人在凸形、有界环境中捕获一组逃逸机器人的问题。追捕者不知道逃逸者的策略,而是通过移动来最小化逃逸者的安全可达区域,从而保证捕获。我们的追捕策略受到文献[1]–[3]中二维环境中单个逃逸者追捕策略的启发,这些策略基于区域最小化策略。本文提出了三个主要结果。首先,我们将文献[1]–[3]的结果扩展到任意维度的环境中,使其适用于三维环境中的空中机器人。其次,我们提出了一种针对多个逃逸者的追捕者算法,并证明了该算法能够在有限时间内保证捕获所有逃逸者,但该算法需要全局信息。最后,我们提出了一种局部的去中心化多逃逸者追捕算法,该算法在仿真中表现与全局策略相当,并且可以实现在具有局部感知和通信能力的机器人上进行机载实施。我们的方法在追捕者之间是去中心化的,每个追捕者只需要关于自身及其Voronoi邻居的信息来计算其控制算法。仿真结果展示了我们在二维和三维环境中的算法性能。我们在运动捕捉环境中使用Ouijabots和GoPiGo机器人进行了硬件实验。在实验中,每台机器人都在其搭载的树莓派2上运行其控制策略。我们还进行了人控逃逸者的实验,结果表明逃逸者无法避免被捕获。
图1:实验使用了Ouijabot追捕者和GoPiGo逃逸者。即使逃逸者由人类操作员控制,也会被成功捕获。
在实验中,每台机器人在其搭载的树莓派2上运行其控制策略。我们还进行了人控逃逸者的实验,结果表明逃逸者无法避免被捕获。
我们的算法在许多新兴的重要应用中都有用武之地,例如安全监控、搜索救援和野生动物监测。该问题受到经典游戏“警察抓小偷”[4]、[5]的启发,其中“警察”试图捕获“小偷”,而小偷则同时试图避免被捕获。随着无人机在娱乐和工业领域的使用增加,无人机误入机场、公共建筑、保护区或其他敏感区域的上空所带来的威胁也显著增加。我们的算法为一组自主追捕无人机提供了一种实用的方法,以中和此类威胁。该算法同样适用于拦截港口中的失控船只,以及陆地上拦截车辆或可疑人员。该算法也适用于搜索救援应用,因为在这些应用中,幸存者可能不知道有人正在搜寻他们,因此搜索策略必须假设对幸存者的行为策略一无所知。该算法还可用于野生动物监测,其中追捕者是负责追踪或标记野生动物的自主车辆,而野生动物可能会将追捕者视为威胁。
在本文中,我们提出了我们的算法,用于在有界、凸形的N维空间环境中控制多个追捕者捕获多个逃逸者。我们还提出了一种分布式版本的算法,该算法在仿真中表现与全局策略相似。我们通过分布式算法驱动Ouijabots追捕GoPiGo逃逸者进行了实验。在实验中,我们加入了由人控制的逃逸者,但其无法逃脱被捕获。未来的工作将探索在包含障碍物的环境中、无界环境中以及三维空间中的空中机器人上实现对逃逸者的追捕。未来的研究将探索在包含障碍物的环境、无界环境以及三维空间中的空中机器人上实现对逃逸者的追捕。
📚2 运行结果
部分代码:
%% initialize the parameters
ts = 1; % time step
t_end = 2000; % ending time
u_a_bound = 9; % attacker's control acceleration bound
u_d_bound = 18.4; % defender's control acceleration bound
drag_coef = 1.5; % const drag coeffecient
rho_p = 45; % radius of the protected area
rho_d_int = 5; % intercepting radius, if the distance between attacker and defender <= this value, then they are seen as damaged
rho_d = 2500; % defenders' percepting region
rho_d_game = 2000; % defenders' playing region
rho_a_game = 2300; % attacker's initial position region
radius_a = 0.5; % attacker's geometric radius
radius_d = 0.5; % defender's geometric radius
radius_c = 1.5; % clustered group's radius
R_sb = 10; % string barrier's maximum length
N_a = 10; % attackers' number
N_d = 20; % defenders' number
num_c = 3; % number of clusters
num_uc = 3; % number of unclustered attackers
v_a_avr = u_a_bound / drag_coef;
v_d_avr = u_d_bound / drag_coef;
%% initialize the agents
attackers = cell(1, N_a);
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)
🌈4 Matlab代码、文章下载
资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取