当前位置:网站首页>Trajectory planning for multi-robot systems: Methods and applications 综述阅读笔记
Trajectory planning for multi-robot systems: Methods and applications 综述阅读笔记
2022-07-07 08:14:00 【strawberry47】
目录
1.Introduction
本文中Multi-Robot System (MRS) 并不局限于机器人,指代的是UAV和UGV
要求:安全到达指定地点,尽量选择短距离、短时间
介绍了无人机和自动驾驶:
- UAV:3D path planning,要调整飞行高度,需要考虑天气大风等影响因素
- UGV:2D,有一定局限性,因为不能像无人机一样跨过障碍;自主性更强,可以到达较远的地点
2.Multi-robots systems
- 定义:Multi-Robot Systems includes all those groups formed by two or more robots sharing the same work space. (机械臂、无人机、自动驾驶汽车等)
- 相关术语:
① Multi-Robot Systems:包含多个机器人的系统,很广的概念
② Multi-Agent System:多个能够相互交互的智能agent组成的系统,不仅仅属于机器人领域,生物学、心理学等领域也适用
③ Robotic Swarms:一般与可伸缩性,机器人间的通信有关
④ Sensor Networks:传感器网络 - 控制和决策结构:
① Centralized Architecture 中心化结构,拥有一个通信中心,通信会受到距离影响/通讯设备,一旦中心被破坏,就糟糕了
②Decentralized Architecture 非中心化结构,分为 分布式架构 or 层次架构 - homogeneous MRS 指所有机器人都一样, heterogeneous MRS 指有不同的机器人
- agent间的关系:
① Indifference:各自是独立的
② Cooperation:有一个共同任务
③ Competition or antagonism:竞争关系
3.Path Planning
(综述的名字明明是trajectory planning,但是文中全在讲path planning)
- 常用术语:
① Path-planning:找到一条连续的路 in C-space(free space & obstacle space),可能不是平滑的;侧重于提供解方案(找到就行,不要求最优) feasibility,Optimality
② Optimal Path Planning:有cost function,需要优化代价函数
③ Trajectory Planning:考虑到了车辆的动态特性,速度、加速度
3.1. Decomposition graph-based methods
将环境分解为多个网格,获取环境表示,需要识别哪些地方是起始点、障碍。相当于一张无向图啦
那么,问题就变成 找到一条从初始节点到终止节点的路径
3.1.1. Dijkstra algorithm
迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。 它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。
3.1.2. A* algorithm
A star 启发式算法,在广度优先的基础上加入了估价函数
考虑到了离目的地的距离,因此速度会快很多
- 计算节点优先级的函数: f ( n ) = g ( n ) + h ( n ) f(n) = g(n)+h(n) f(n)=g(n)+h(n);去掉 h ( n ) h(n) h(n)则退化成Dijkstra算法
- g ( n ) g(n) g(n)是节点n距离起点的代价, h ( n ) h(n) h(n)是节点n距离终点的代价(启发函数)
- h ( n ) h(n) h(n)其实只是个猜测,因为只有我们真正经过了才会知道真正的距离(中间有障碍);常用的启发函数:曼哈顿距离(只允许上下左右移动)、对角距离(允许朝八个方向移动)、欧几里得距离(允许朝任何方向移动)
3.1.3. D* algorithm
Dynamic A star;和A*类似,但是考虑的是动态最短路径
- 检测动态障碍,也用到了启发式函数
- 同A* 算法类似,D-star通过一个**维护一个优先队列(OpenList)**来对场景中的路径节点进行搜索,所不同的是,D*不是由起始点开始搜索,而是以目标点为起始(反向搜索),通过将目标点置于Openlist中来开始搜索,直到机器人当前位置节点由队列中出队为止(当然如果中间某节点状态有动态改变,需要重新寻路,所以才是一个动态寻路算法)。
3.2 Sampling based methods
基于环境的随机映射,抽样是以节点或者cell进行
就是一直不停采样,不停扩展
分类:① active method:选择最优路径 ② passive method:生成路网即可
3.2.1. Probabilistic Road Map (Passive)
路径规划: PRM 路径规划算法 (Probabilistic Roadmaps 随机路标图)
- 随机撒点,有障碍的地方去除
- 将最近的k个点连起来,如果中间有障碍物,不能连接;得到似然概率路线图
- 使用A*算法进行搜索
优点:能够以较低的计算成本探索三维空间
3.2.2. Voronoi diagram (Passive)
- Voronoi diagram解决的问题实际上就是基于一组特定点将平面分割成不同区域,而每一区域又仅包含唯一的特定点,并且该区域内任意位置到该特定点的距离比到其它的特定点都要更近。
- 个人理解:有一批定点,我们使用一个区域包裹每个定点,该区域里的任意点距离定点的距离 都小于 该任意点距离其他区域里的定点。
3.2.3. Rapidly exploring random trees (Active)
RPT通过在状态空间内随机撒点,控制路径树的生长点和生长方向:
- 分为free space和obstacle space,设定start node和end node
- 初始化一个random node,必须能与start node连接起来,查看end node是否能与其连接,有的话就结束
- 没有的话,就再次生成随机点,要求能和end节点连接
特点:
- 比RMP更有方向性
- 非最优解
- 效率低
- 在整个空间中采样
3.2.4. Artificial potential field methods (Active)
人工势场法:将目标和障碍物对机器人运动的影响具体化成人造势场。目标处势能低,障碍物处势能高。
计算复杂度低,但是并不能保证成功,也不知道何时能成功。
3.3. Mathematics model based methods
基于数学模型的方法,建立动力学和动态约束,用于建模环境和系统。
代价函数进行约束。(这部分网上能搜到的信息并不多)
3.3.1. Mixed integer linear program
混合整数线性规划(MILP)模型:基于cost函数,考虑了 运动动力学约束、最小距离、能量或环境中的威胁。
3.3.2. Mixed integer quadratic program
与MILP类似,但是需要执行目标二次函数的解析
3.3.3. Optimal control
最优控制,从一组微分方程找到state和path。
3.4. Bio-inspired methods
模拟生物学行为, not being fully deterministic, presenting parallel structures, and being adaptive
3.4.1. Neuronal network
文中给出的related work:
- CNN分析环境,DQN生成action;
- 利用MADDPG;
- WoLFPHC (Win or Learn Fast Policy Hill-Climbing):解决了学习速度慢、在未知环境难以学习等问题;每个智能体只用保存自己的动作来完成学习任务。
WolF是指,当智能体做的比期望值好的时候小心缓慢的调整参数,当智能体做的比期望值差的时候,加快步伐调整参数。
PHC是一种单智能体在稳定环境下的一种学习算法。该算法的核心就是通常强化学习的思想,增大能够得到最大累积期望的动作的选取概率。该算法具有合理性,能够收敛到最优策略。其算法流程如下 - multi-layer architecture:Q-learning 决定车辆的配置,PG保证不碰撞
3.4.2. Evolutionary algorithms
基于随机搜索,如蚁群算法、遗传算法等等
Table
边栏推荐
- The landing practice of ByteDance kitex in SEMA e-commerce scene
- [second on] [jeecgboot] modify paging parameters
- 柏拉图和他的三个弟子的故事:如何寻找幸福?如何寻找理想伴侣?
- Postman interface test V
- Appx code signing Guide
- Programming features of ISP, IAP, ICP, JTAG and SWD
- Google colab loads Google drive (Google drive is used in Google colab)
- Study summary of postgraduate entrance examination in August
- 反射效率为什么低?
- JMeter about setting thread group and time
猜你喜欢
字符串格式化
The Hal library is configured with a general timer Tim to trigger ADC sampling, and then DMA is moved to the memory space.
Embedded background - chip
HAL库配置通用定时器TIM触发ADC采样,然后DMA搬运到内存空间。
ArcGIS operation: converting DWG data to SHP data
ORM model -- associated fields, abstract model classes
The story of Plato and his three disciples: how to find happiness? How to find the ideal partner?
串口通讯继电器-modbus通信上位机调试软件工具项目开发案例
基于gis三维可视化技术的智慧城市建设
P1223 排队接水/1319:【例6.1】排队接水
随机推荐
Apprentissage avancé des fonctions en es6
Vs code specifies the extension installation location
The method of word automatically generating directory
Differences between MCU and MPU
Appx code signing Guide
Es classes and objects, prototypes
CONDA creates virtual environment offline
Bit operation ==c language 2
01 use function to approximate cosine function (15 points)
反射效率为什么低?
LLVM之父Chris Lattner:为什么我们要重建AI基础设施软件
Study summary of postgraduate entrance examination in August
mysql插入数据创建触发器填充uuid字段值
电表远程抄表拉合闸操作命令指令
【华为机试真题详解】高矮个子排队
SQLyog数据库怎么取消自动保存更改
Chris Lattner, père de llvm: Pourquoi reconstruire le logiciel d'infrastructure ai
IPv4套接字地址结构
学习记录——高精度加法和乘法
Programming features of ISP, IAP, ICP, JTAG and SWD