[论文阅读笔记] Reciprocal n-body Collision Avoidance(ORCA/RVO2)

2023-05-16

[论文阅读] Reciprocal n-body Collision Avoidance(ORCA/RVO2)

文章目录

  • [论文阅读] Reciprocal n-body Collision Avoidance(ORCA/RVO2)
    • 论文地址
    • Introduction
    • Previous Work
    • Problem Definition
    • Reciprocal Collision Avoidance
    • n-Body Collision Avoidance
    • Experimental Results
    • 收获

论文地址

Optimal Reciprocal Collision Avoidance (ORCA) (unc.edu)

Introduction

本文讨论多个agent相互避障的方法(agent与agent之间,而非agent与障碍物之间避障),并提出ORCA-即最优的多体碰撞回避算法。每个agent为了避障,速度空间中有一些部分是不可选的,通过解线性规划为每个agent选出当前的最优速度(每个agent的计算可并行),假设每个agent完全清楚其他agent的速度。在人群密度高的情况下,线性规划可能没有解,此时通过三维线性方程选择“最安全的速度”。

Previous Work

  • VO

    1998年P. Fiorini, Z. Shiller. Motion planning in dynamic environments using Velocity Obstacles,不可达区域是圆锥形的;两个moving agent相互避障,避障路径容易产生抖动oscillate

  • RVO

    2008年gamma :Reciprocal Velocity Obstacles for Real-Time Multi-Agent Navigation (unc.edu),agent在避障时,假设对方也会使用RVO,而非保持原来的速度矢量匀速运动,即二人共同避障,从而解决VO的抖动问题;但RVO避障时所有agent都假设对方只考虑自己,在特定情境下(比如二对一相向)还是会产生抖动

  • ORCA

    优化VO模型,不再采用锥形,而是使用有向平面来分隔空间

具体的分析可以看:

论文笔记《Reciprocal Velocity Obstacles for Real-Time Multi-Agent Navigation》 | 陪你度过漫长岁月 (meltycriss.com)

Problem Definition

数学化、形式化地定义了“Reciprocal n-body Collision Avoidance”问题。并作假设:

每个agent的当前位置、当前速度、半径属于外部变量,可以被其他agent观测到;最大速度、偏好速度(如当前位置到目标的连线)属于内部变量,无法被其他agent观测到。

Reciprocal Collision Avoidance

定义和求解ORCA。

一个agentA对agentB的可行速度空间: V B V_B VB V O A ∣ B t VO_{A|B}^t VOABt的minkowski空间和

ORCA:选包含最多与 v A o p t v_A^{opt} vAopt接近的速度的集合(半平面)

ORCA论文解读 - 知乎 (zhihu.com)

证明:论文笔记《Reciprocal n-body Collision Avoidance》 | 陪你度过漫长岁月 (meltycriss.com)

n-Body Collision Avoidance

ORCA怎么应用在实际人群仿真中。

对于每一个其他agent,分别计算与其避障的ORCA半平面,联立r=最大速度的圆形约束,通过解线性规划问题获取当前agent的可选择速度空间。在可选择速度空间中,选择与偏好速度最近的,然后更新位置。

( v A m a x + v B m a x ) t (v_A^{max}+v_B^{max})t (vAmax+vBmax)t 之外的agent可以认为绝对不会碰撞,不需要计算其ORCA。查找需要计算的ORCA可以使用KD-tree。

解线性规划时算法使用 M. de Berg, O. Cheong, M. van Kreveld, M. Overmars. Computational Geometry: Algorithms and Applications. Springer-Verlag, 2008中的方法,时间复杂度O(N),N为方程数目。

  • 如何选择 v A o p t v_A^{opt} vAopt

    1. v A o p t = 0 v_A^{opt}=0 vAopt=0,那么可行速度空间一定有解,但是这样只考虑了其他agent的位置,没有考虑其他agent的速度,在人群密度高的情况下容易deadlock
    2. v A o p t = v A p r e f v_A^{opt}=v_A^{pref} vAopt=vApref,在人群密度比较低的情况下,会工作的很好。 但是稠密环境下容易无解,因为agent速度一般比较大;而且其他agent的偏好速度在假设中属于内部变量
    3. $ v_A^{opt}=v_A$,设置最优速度等于当前速度,是前两者的一个折中,当前速度根据情形自动适配的,也有可能无解
  • ORCA线性规划无解的情况:dense situation

    选择的新速度是在同时与多个ORCA半平面的欧式距离最大化时的速度中,选择一个长度最短的速度。这种情况下,和 v A o p t v_A^{opt} vAopt没有什么关系,agent“goes with the flow”

  • 关于静态障碍

    对于静态的障碍物,我们设置 v A o p t = 0 v_A^{opt}=0 vAopt=0 ,这可以保证总存在一个有效的速度使得机器人可以在 t 时间内避开障碍物。对于障碍物的t一般设置的比对于agent的t小,所以为了避障,agent会“更加敢”靠近障碍物。

Experimental Results

1000agent圆环经过圆心交换到对面;撤离办公室(类迷宫)

OpenMP多线程并行计算 2.66GHZ intel XEON

迷宫场景-5000人8核,125FPS解线性规划;64FPS update

(迷宫场景使用的framework也是gamma的,ClearPath:Highly parallel collision avoidance for multi-agent simulation,主要idea似乎是RVO+并行)

收获

  • 形式化的数学表述

  • 严谨的论文阐述过程:定义的提出、推广、实现……

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[论文阅读笔记] Reciprocal n-body Collision Avoidance(ORCA/RVO2) 的相关文章

  • UART、RS232 、RS485 区别

    UART RS232 RS485 区别 UART RS232 RS485这些物理层的串口通信 xff0c 它们都是在同一时间发送一位 RS232 RS485只是串口通讯的变种 xff0c 理解了UART串口通讯 xff0c 那么RS232和

随机推荐

  • 在STM32中使用printf()的方法(可直接复制粘贴)

    1 使用printf的方法 1 1 重定向 在使用printf之前添加重定向代码 xff1a span class token macro property span class token directive hash span span
  • 【字符串】字符串长度与字节长度

    字符串长度 xff1a 字符串在遇到 0 之前一共有几个字符 字节长度 字符串里出现的所有元素 例如 xff1a char str 61 123abc 0123 字符串长度 xff1a 6 字节长度 xff1a 11 PS xff1a 如果
  • C语言-字符串拼接(不用strcat函数)

    include lt stdio h gt int main char str1 100 char str2 100 int i 61 0 j 61 0 printf 34 请输入字符串1 xff1a n 34 gets str1 prin
  • Qt(十四)——实现机器人完整导航功能

    Qt xff08 十四 xff09 实现机器人完整导航功能 目录 1 ui 设计2 核心代码 1 ui 设计 2 核心代码
  • vector容器存放自定义数据类型及指针

    include lt iostream gt using namespace std include lt vector gt class person public person string a int b name a age b s
  • unreal 启动报错:运行引擎需要D3D11兼容GPU(功能级别11.0,着色器模型5.0)处理

    问题 AMD核显电脑 xff0c 突然有一天开机后显示器显示效果发白 xff0c 刚开始没在意 xff0c 后来某天想使用Unreal时发现启动不了了 xff0c 弹窗报错 xff1a 运行引擎需要D3D11兼容GPU xff08 功能级别
  • Win10 RealSense L515 ORBSLAM2 配置全攻略

    目录 背景简介Step 1 准备 SDKStep 2 连接设备Step 3 测试例程Step 4 配置环境Step 5 相机标定Step 6 编写入口Step 7 实地运行附录A xff1a 获取内参代码附录B xff1a yaml 参数文
  • rviz仿真底盘移动与云台击打

    rviz仿真底盘移动与云台击打 底盘与云台通过坐标轴来模拟 xff0c 目标方块与子弹可视化通过marker仿真 其中底盘与云台固连 xff0c 底盘xy方向移动云台会同步移动 xff0c 云台可进行pitch和yaw轴旋转 xff0c 通
  • 机器视觉中坐标系转换

    机器视觉 立体视觉等等方向常常涉及到四个坐标系 xff1a 世界坐标系 相机坐标系 图像坐标系 像素坐标系 整体预览如下 1 世界坐标系和相机坐标系 世界坐标系 xff0c 也称为测量坐标系 xff0c 它是一个三维直角坐标系 Xw Yw
  • 机械臂DH参数总结

    DH参数 DH参数 xff08 Denavit Hartenberg parameters xff09 是一个用四个参数表达两对关节连杆之间位置角度关系的机械臂数学模型和坐标系确定系统 DH选的四个参数都的含义如下 xff1a link l
  • 机器人正解和逆解

    正解FK 给定机器人各关节的角度 xff0c 计算出机器人末端的空间位置 逆解IK 已知机器人末端的位置和姿态 xff0c 计算机器人各关节的角度值 挖个坑待完善
  • LeetCode—232 用栈实现队列 Cpp&Python

    LeetCode 225 用队列实现栈 Cpp amp Python 一 方法与思路二 C 43 43 代码三 Python代码 一 方法与思路 使用栈实现队列的下列操作 xff1a push x 将一个元素放入队列的尾部 pop 从队列首
  • E: Unable to locate package解决办法

    问题 xff1a E Unable to locate package 解决 xff1a sudo apt span class token operator span get updade
  • Yolo框架简介

    YOLO xff08 You Only Look Once xff09 是一种基于深度神经网络的对象识别和定位算法 xff0c 其最大的特点是运行速度很快 xff0c 可以用于实时系统 现在YOLO已经发展到v4版本 论文地址 xff1a
  • Ubuntu下编辑权限只读文件的方法

    首先要注意的是只读文件一般都是系统文件 xff0c 或者软件配置文件 xff0c 修改时要尤其谨慎 本文提供两种方法 xff1a 方法一 首先安装一个插件 span class token function sudo span apt sp
  • Ros下Aruco模块的使用

    生成ARUCO ROS MARKER 链接 http chev me arucogen 首先启动ros roscore 打开相机节点 xff0c 在此提供usb相机与Realsense D435i的启动方法 xff1a roslaunch
  • 脚气、灰指甲治疗实验方案

    脚气 xff08 已临床实验 xff09 脚气 xff0c 又叫足廯 香港脚 糜烂性脚气 症状 xff1a 80 都是这种类型 常见于多汗人群 角质层被汗水浸软 xff0c 发白了以后 xff0c 走动不断摩擦表皮脱落 xff0c 露出鲜红
  • VS2015显示“正在从以下位置加载符号“的解决办法

    解决方法 xff1a VS 工具 选项 调试 符号 看到 MicroSoft符号服务器 xff0c 去掉方框中的 xff0c 确定即可 xff0c 之后就不会再调试时加载
  • 【面包】STM32学习笔记(二) --- USART 串口通信学习总结

    tip xff1a 如有错误 xff0c 希望指出 xff0c 非常感谢 xff01 目录 简介一 USART是什么 xff1f 二 问答通信方式1 USART和UART区别2 单工 半双工 全双工区别 三 代码实验1 说明2 代码初始化配
  • [论文阅读笔记] Reciprocal n-body Collision Avoidance(ORCA/RVO2)

    论文阅读 Reciprocal n body Collision Avoidance ORCA RVO2 文章目录 论文阅读 Reciprocal n body Collision Avoidance ORCA RVO2 论文地址Intro