输入: body 和一些封闭空间。主体和空间表示为网格(或 BReps ,如果您愿意)。最初,主体不与空间的边界相交。
问题是找到 body 可以移动的所有可能方向。例如,在下图中, body 只能在(-1,0)到(0,1)方向移动。如果物体有圆形(或球体)表面 - 可以通过一些步骤返回方向(例如,对于下图,输出可以是 (-1,0), (-pi/4,pi/4), ( 0,1),步骤 = 3)。
输出: body 可以移动的方向集。
问题必须在 2d 和 3d 空间中解决。
最佳答案
您想在配置领域工作。基本上根据 body 的形状增加边界的大小,然后将 body 视为点对象。剩下的就是 body 的所有有效位置。当然,如果你的 body 不是圆形并且可以旋转,那么你的构形空间就不再是2D或3D了。它的维度与您 body 的自由度一样多,因此对于可以平移和旋转的刚体而言,维度为 6。
这是机器人运动规划中的一个众所周知的问题。 Google 搜索“配置空间”或“c 空间”以及“运动规划”。
这是卡内基梅隆大学类里面的一组很好的幻灯片: Configuration Space Lecture
关于algorithm - body 在某个封闭空间中可以移动的所有可能方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9829271/