【多智能体博弈】拦截失控机器人:一种用于多追捕者捕获多个逃逸者的算法(Matlab代码实现)

简介: 【多智能体博弈】拦截失控机器人:一种用于多追捕者捕获多个逃逸者的算法(Matlab代码实现)

      💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

    或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

💥1 概述

摘要:  

我们提出了一种分布式算法,用于在有界凸环境中利用多个追捕者对多个逃逸者进行协作追捕。该算法适用于拦截受保护空域中的失控无人机等应用。追捕者不知道逃逸者的策略,但通过采用基于环境的Voronoi镶嵌的全局“区域最小化”策略,我们保证了所有逃逸者都能在有限时间内被捕获。我们还提出了这种策略的去中心化版本,适用于二维(2-D)和三维(3-D)环境,并通过多次仿真表明,它优于其他去中心化的多追捕者启发式方法。我们还进行了自主机器人和人控机器人的实验,以证明该方法的实用性。特别是,人控逃逸者无法通过该算法避免被捕获。

**摘要**:  

本文研究了如何协调一组追捕机器人在凸形、有界环境中捕获一组逃逸机器人的问题。追捕者不知道逃逸者的策略,而是通过移动来最小化逃逸者的安全可达区域,从而保证捕获。我们的追捕策略受到文献[1]–[3]中二维环境中单个逃逸者追捕策略的启发,这些策略基于区域最小化策略。本文提出了三个主要结果。首先,我们将文献[1]–[3]的结果扩展到任意维度的环境中,使其适用于三维环境中的空中机器人。其次,我们提出了一种针对多个逃逸者的追捕者算法,并证明了该算法能够在有限时间内保证捕获所有逃逸者,但该算法需要全局信息。最后,我们提出了一种局部的去中心化多逃逸者追捕算法,该算法在仿真中表现与全局策略相当,并且可以实现在具有局部感知和通信能力的机器人上进行机载实施。我们的方法在追捕者之间是去中心化的,每个追捕者只需要关于自身及其Voronoi邻居的信息来计算其控制算法。仿真结果展示了我们在二维和三维环境中的算法性能。我们在运动捕捉环境中使用Ouijabots和GoPiGo机器人进行了硬件实验。在实验中,每台机器人都在其搭载的树莓派2上运行其控制策略。我们还进行了人控逃逸者的实验,结果表明逃逸者无法避免被捕获。  

image.gif 编辑

图1:实验使用了Ouijabot追捕者和GoPiGo逃逸者。即使逃逸者由人类操作员控制,也会被成功捕获。  

在实验中,每台机器人在其搭载的树莓派2上运行其控制策略。我们还进行了人控逃逸者的实验,结果表明逃逸者无法避免被捕获。  

我们的算法在许多新兴的重要应用中都有用武之地,例如安全监控、搜索救援和野生动物监测。该问题受到经典游戏“警察抓小偷”[4]、[5]的启发,其中“警察”试图捕获“小偷”,而小偷则同时试图避免被捕获。随着无人机在娱乐和工业领域的使用增加,无人机误入机场、公共建筑、保护区或其他敏感区域的上空所带来的威胁也显著增加。我们的算法为一组自主追捕无人机提供了一种实用的方法,以中和此类威胁。该算法同样适用于拦截港口中的失控船只,以及陆地上拦截车辆或可疑人员。该算法也适用于搜索救援应用,因为在这些应用中,幸存者可能不知道有人正在搜寻他们,因此搜索策略必须假设对幸存者的行为策略一无所知。该算法还可用于野生动物监测,其中追捕者是负责追踪或标记野生动物的自主车辆,而野生动物可能会将追捕者视为威胁。

在本文中,我们提出了我们的算法,用于在有界、凸形的N维空间环境中控制多个追捕者捕获多个逃逸者。我们还提出了一种分布式版本的算法,该算法在仿真中表现与全局策略相似。我们通过分布式算法驱动Ouijabots追捕GoPiGo逃逸者进行了实验。在实验中,我们加入了由人控制的逃逸者,但其无法逃脱被捕获。未来的工作将探索在包含障碍物的环境中、无界环境中以及三维空间中的空中机器人上实现对逃逸者的追捕。未来的研究将探索在包含障碍物的环境、无界环境以及三维空间中的空中机器人上实现对逃逸者的追捕。

📚2 运行结果

image.gif 编辑

image.gif 编辑

image.gif 编辑

image.gif 编辑

image.gif 编辑

部分代码:

%% 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);

image.gif

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)

image.gif 资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取【请看主页然后私信】

相关文章
|
11月前
|
Ubuntu 机器人 Linux
|
3月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:路由、中间件、参数校验
Gin框架以其极简风格、强大路由管理、灵活中间件机制及参数绑定校验系统著称。本文详解其核心功能:1) 路由管理,支持分组与路径参数;2) 中间件机制,实现全局与局部控制;3) 参数绑定,涵盖多种来源;4) 结构体绑定与字段校验,确保数据合法性;5) 自定义校验器扩展功能;6) 统一错误处理提升用户体验。Gin以清晰模块化、流程可控及自动化校验等优势,成为开发者的优选工具。
|
2月前
|
人工智能 测试技术 Go
Go 语言的主流框架
本文全面解析了 Go 语言主流技术生态,涵盖 Web 框架、微服务、数据库工具、测试与部署等多个领域。重点介绍了 Gin、Echo、Beego 等高性能框架,以及 gRPC-Go、Go-Micro 等微服务组件。同时分析了 GORM、Ent 等 ORM 工具与测试部署方案,并结合场景提供选型建议,助力开发者构建高效稳定的 Go 应用。
694 0
Foo
|
存储 Prometheus 监控
拥抱开源生态:阿里云InfluxDB集成Prometheus查询
前言 Prometheus是CNCF的毕业项目,其生态已成为云原生监控领域的事实标准。Kubernetes集群的指标通过Prometheus格式暴露,很多新项目也直接选择Prometheus格式暴露指标数据,传统应用(比如MySQL, MongoDB,Redis等)在开源社区都有Prometheus Exporter来接入Prometheus生态。 Prometheus内置的tsdb适合存储短
Foo
2470 0
拥抱开源生态:阿里云InfluxDB集成Prometheus查询
|
29天前
|
数据采集 存储 NoSQL
终于有人把数据血缘讲明白了
数据在系统中流转最终变成报表上的一个数字,但你知道它从何而来、如何加工、出错找谁吗?数据血缘就像数据的“族谱”,记录其来源、加工过程与最终去向,帮助你清晰掌握数据的来龙去脉,提升数据治理效率,保障数据质量与合规性。
终于有人把数据血缘讲明白了
|
10月前
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
前言 最近开始接触到基于DDS的这个系统,是在稚晖君的机器人项目中了解和认识到。于是便开始自己买书学习起来,感觉挺有意思的,但是只是单纯的看书籍,总会显得枯燥无味,于是自己又开始在网上找了一些视频教程结合书籍一起来看,便让我对ROS系统有了更深的认识和理解。 ROS的发展历程 ROS诞生于2007年的斯坦福大学,这是早期PR2机器人的原型,这个项目很快被一家商业公司Willow Garage看中,类似现在的风险投资一样,他们投了一大笔钱给这群年轻人,PR2机器人在资本的助推下成功诞生。 2010年,随着PR2机器人的发布,其中的软件正式确定了名称,就叫做机器人操作系统,Robot Op
355 14
|
10月前
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
【11月更文挑战第4天】ROS2的学习过程和应用,介绍DDS系统的框架和知识。
549 1
|
算法 数据可视化 机器人
ROS2教程01 ROS2介绍
本文是ROS2(机器人操作系统的下一代)的介绍教程,内容包括ROS2的诞生背景、核心功能、特点、框架以及与ROS1的比较。文章涵盖了ROS2的通信系统、框架和工具、生态系统、全球性社区支持、完全开源、跨平台特性、多机协同能力、实时系统支持和更强的稳定性。此外,还提供了ROS2架构的详细介绍资源链接,适合对ROS2感兴趣的读者学习和了解。
1468 1
|
数据可视化 前端开发 JavaScript
基于Echarts实现可视化数据大屏大数据可视化的方法和流程
基于Echarts实现可视化数据大屏大数据可视化的方法和流程
883 0
|
JSON Java API
【Springboot】无法获取API请求的Json数据
Springboot使用 @RequestBody KDView data 实体类获取是,因为大小写获取不到数据。
927 0
【Springboot】无法获取API请求的Json数据