RVO2-CS 多智能体避障:从跑通 Demo 到自定义策略的 3 个改法
RVO2-CS 多智能体避障从跑通 Demo 到自定义策略的 3 个改法【免费下载链接】leaked-system-promptsCollection of leaked system prompts项目地址: https://gitcode.com/GitHub_Trending/le/leaked-system-prompts三个智能体在十字路口同时加速谁该让谁手工写规则三个人就是三套 if。RVO2-CS 是一个 C# 多智能体避障库把谁让谁变成一次几何计算。它到底在解决什么问题ORCA最优互惠碰撞避免的直觉只有一句话每个智能体只改自己的速度双方各让一步。对每个邻居它在速度平面上画出一个不许撞上的半平面约束所有约束取交集就是安全速度区。最后用线性规划一类求最优点的数学方法在安全区里挑最接近原方向的速度。谁也不推谁自然不推挤不震荡。RVO2-CS 多智能体避障的 ORCA 速度约束示意没有 RVO2-CS你会怎么手写邻居搜索、速度约束、线性规划、积分和线程一样都不少。ORCA 的原始出处是论文加一份 C 参考实现自己啃下来几个月起步。RVO2-CS 把整条链路封装成可直接调用的 C# 库仿真循环、邻居搜索、速度求解开箱即跑。跑通第一个 Demo端到端整条链路只有三步拉代码、编译、运行 Circle 示例。一条终端流走完git clone https://gitcode.com/GitHub_Trending/le/leaked-system-prompts cd leaked-system-prompts cmake -B build -S . cmake --build build # 没有 CMake 就打开 RVOCS.slnx cmake --build build --target Circle ./build/Circle # 示例入口在 Circle/ 目录Circle 是最轻的示例一圈圆形墙中间摆几条线段障碍几十个智能体从中心出发互相让路。它的主入口在Circle/目录下核心循环就一句话拿到 Simulator.cs 的实例AddAgent加人然后循环调DoStep。RVO2-CS Circle 示例多智能体避障运行画面你应该看到什么黑窗口里一堆彩色圆点从中心散开。彼此靠近时自动减速、转向碰到线段障碍就绕行最后均匀铺满圆形区域不再移动。全程没有任何一行手写碰撞代码。一次避障决策的完整旅程把镜头对准智能体 A它在 (10, 5)正前方 2 米处是 B (12, 5)。这一帧里A 的决策分四步走完。1. 邻居发现。A 先问一句5 米内还有谁。答案来自 KdTree一种空间索引树把平面切成小块查询不用扫全场——范围查询O(log n) 级。对应 KdTree.cs。2. 约束构建。B 变成速度平面上的一个半平面A 朝左偏一点或朝右偏一点都算安全。每段障碍线也各贡献一个不许朝线那侧穿越的半平面。所有半平面取交集得到一个凸多边形这就是 A 的安全速度区。约束的组装在 Agent.cs 内部完成。3. 求解。在凸多边形里找离 A 原本偏好速度最近的点这是个小规模线性规划。解出的速度往往带侧向分量绕行动作从这里来。求解同样由 Agent.cs 在每帧调度。4. 写回。新速度写回 A下一帧循环用它乘以时间步长更新 A 的位置。A 和 B 各自重复这套流程双方都偏移一点碰撞自然消失。互惠两个字就体现在这一步。三个如果我想……扩展场景A如果我想让某些智能体优先通行思路把让路量摊给对方——低优先的把timeHorizon碰撞预测时间调小避让更急高优先的调大更从容。一行改动lowPriority.timeHorizon 0.8f; // 优先级的差异全靠这一个参数B如果我要加一个多边形障碍物思路多边形拆成首尾相连的线段每条边注册一次Simulator.cs 会把它和智能体同等对待。一行注册simulator.AddObstacleSegment(new Vector2(x1, y1), new Vector2(x2, y2)); // 多边形 N 条这样的边C如果 1000 智能体开始掉帧思路先把并行度拉满再检查邻居搜索半径是不是贪心。一行关键simulator.SetNumWorkers(8); // 邻居搜索与线性规划并行跑掉帧先解决一半搜索半径翻倍KdTree 的查询开销会明显上涨。能压到 5 米就压到 5 米。容易踩的坑3 条现象高速智能体直接穿过障碍再弹回来。原因时间步长太大一步位移超过半径等于穿透。修复时间步长从 0.5 降到 0.25。现象智能体贴脸才转向像撞了才反应。原因邻居距离设得太小2 米外互相看不见。修复邻居距离调到 5 米以上。现象速度忽快忽慢轨迹一顿一顿。原因偏好速度长期超过最大速度上限每帧被截断。修复偏好速度控制在最大速度以内。延伸阅读项目文档doc/复杂障碍物示例Blocks/上游 C 实现RVO2/【免费下载链接】leaked-system-promptsCollection of leaked system prompts项目地址: https://gitcode.com/GitHub_Trending/le/leaked-system-prompts创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考