输入:body和一些封闭空间。身体和空间表示为网格(或者BReps,如果您愿意的话)。最初,身体并不与空间的边界相交。
问题是找出物体可以移动的所有可能方向。例如,在下面的图片中,主体只能向(-1,0)到(0,1)的方向移动。如果物体有一个圆(或球面)面--可以用某个步骤返回方向(例如,对于下面的图片,输出可以是(-1,0),(-pi/4,pi/4),(0,1),步骤= 3)。

Output:一组物体可以移动的方向。
问题必须在二维和三维空间中解决。
发布于 2012-03-22 21:01:52
您希望在配置空间中工作。基本上根据你身体的形状来增加你的边界大小,然后把身体当作一个点物体。剩下的是身体的所有有效位置。当然,如果你的身体不是一个圆,可以旋转,那么你的配置空间不再是2D或3D。它的维度和你的身体有自由度一样多,所以对于一个能够平移和旋转的刚体来说,6维。
这是机器人运动规划中一个众所周知的问题。谷歌用于“配置空间”或“c空间”和“运动规划”。
这是卡内基梅隆大学的一堂课上的一组幻灯片:组态空间讲座。
发布于 2012-03-22 20:20:51
用表示要测试的方向的向量(非常小的幅度)替换对象(暂时)。然后在对象和环境之间运行碰撞检测算法。
如果没有碰撞,那么物体就可以朝这个方向移动。如果有碰撞,那就不可能了。
https://stackoverflow.com/questions/9829271
复制相似问题