8_Collision Detection and Freespace Sampling Methods_宾夕法尼亚大学机器人运动规划专项课程【学习笔记】

障碍规划非常简单,因为它能够对位形空间障碍进行明确的描述,但通常我们没有那么奢侈,用碰撞函数【collision function】来表达障碍就行了,尽管它有点模糊。

碰撞检测函数
在这里插入图片描述

更具体地说,如果我们让x表示位形空间中点的坐标,我们通常可以定义一个叫Collision Check的函数,如果空间内无障碍则其值为0,否则为1
在这里插入图片描述

该幻灯片展示的是代表机器人的红色多边形完全位于自由空间中的情况,我们希望 CollisionCheck 函数返回0;

在这里插入图片描述

在上述幻灯片所示情况中,机器人将与一个障碍物碰撞,我们希望 CollisionCheck 函数返回1。

碰撞检测是大多数路径规划算法的关键步骤之一,它通常回归到计算一些简单几何问题的答案,看这个例子:
在这里插入图片描述
如图所示,在这里我们可以使用一系列角形来表示机器人和障碍物,机器人和障碍物是否相撞转换为机器人的任何三角形是否与任何障碍物的三角形重叠的问题。

在这里插入图片描述

这里,我们可以利用三角形是凸多边形,在这种情况下,这意味着我们可以通过检查两个三角形的所有边,并测试这些边中是否有分隔线使一三角形所有点位航该边一侧。如果在两个三角形六个边缘之间找到这样的分隔线,这样就可以证明两个三角形不相交,如果找不到分割线,三角形就相交。

寻找分隔线或平面的方法,实际上可以推广到更高的维度。例如,在三个维度上如果你有一个由凸多边形组成的机器人,比如盒子或金字塔,那就可以通过测试一个多边形上的所有面是否有分离超平面来检查碰撞。

在目前我们考虑的情况下,机器人和障碍物都是由简单的多边形组成,所以要测试碰撞的话,我们首先得根据位形空间参数对机器人进行变形,然后测试组成机器人的多边形是否会与障碍物碰撞。
在这里插入图片描述

在图示情况下,这相当于测试红色三角形是否与黑色三角形有重叠,在这种情况下。我们希望Collisionheck函数返回0,即不相交。

在这里插入图片描述

但实际上有红色三角形与黑色三角形重叠,因此Collisionheck函数应返回1。

我们可能有兴趣回答的另一个问题是:两个位形空间点x1和x2之间的线段上所有点是否都在自由空间中,有时我们很幸运,因为实际上我们可以通过分析作出肯定回答。
在实践中,如果两个点都在自由空间中,并且在给定一些合理的距离度量情况下它们彼此足够接近,那么我们倾向于假设它们之间的直线路径不会产生碰撞,但如果我们大意的话,显然,这个假设会错得很离谱。

在考虑二维规划时,我们可以对位形空间中的位置网格进行采样。对于每个网格点,我们使用CollisionCheck函数确定它是否在自由空间中,自由空间中的所有网格点都将被视为图中的节点。

此图显示了所得的采样点:
在这里插入图片描述
在此例中,我们将继续假设如果两个相邻的网格点都在自由空间中,那么它们之间的所有点也都在自由空间中。如下图所示我们通过凿刻来表示它们间的关联,其中为了保证起点和终点都是图中的两个节点,我们要进行一些选择。然后,通常我们可以使用基于图的规划中何一个算法来搜索两个节点之间的路径。在这里我们用红色来表示最终的路径。
在这里插入图片描述
感谢 B 站 up 主 Here_Kin 的翻译和分享!
【自制中英】宾夕法尼亚大学机器人专项课程二 运动规划 - Robotics:Motion and Planning

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值