Apollo9.0 PNC源码学习之Planning模块—— 碰撞检测 AABB、OBB(C++ 代码实现)

1 前言

继前面文章Lattice所讲常用的碰撞检测算法AABB、OBB,本文用C++简易实现,用visualizations_msgs可视化碰撞检测的效果

AABB通常用于粗检测,快速剔除不可碰撞的对象;OBB是更精确的碰撞检测算法

Bounding Box
在这里插入图片描述

2 AABB碰撞检测流程

  • 首先,确定两个包围盒,分别为A,B
  • 对于每个包围盒,检查它们在每个坐标轴的投影是否重叠
  • 如果两个包围盒在每个坐标轴上的投影有重叠,那么它们就可能发生碰撞,需要进一步检查
  • 进一步检查需要判断A包围盒的顶点是否在B内部,有,那么发生碰撞
  • 如果两个包围盒的顶点都没有在另一个包围盒的内部,也可能发生碰撞,需要进行更加精细的检查
  • 更精细的检查需要用更高级的算法,例如分离轴定理

3 AABB代码实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值