已知:
1
Scorp 2023-02-17 22:37:01 +08:00
问题描述不大清楚。首先,什么叫可以调节前后、左右、上下?如果是指轨道自身可以上下左右前后移动,那这里就完全没有旋转自由度。以及你说的矫正,是要求计算货物矫正后相对于矫正前的相对旋转还是什么东西?
对这个问题,如果是我理解的平面传送带,对于规则物体其实可以转化为平面问题解决。但我没想通平面传送带怎么调整物体姿态。 |
2
necomancer 2023-02-18 02:20:09 +08:00
提问有点不明确,我按照我自己理解试试:把一个任意摆放的箱子“放正”,也就是箱子的取向与某个给定取向平行,并且放在一个特定的点上。那么有两个自由度,你需要定义 1.箱子的取向向量,2.箱子的位置。规则立方体是指正方体还是长方体?如果按照一般长方体处理,那么操作首先需要定义一个确定的向量,例如箱子质心到某个顶点的向量,以一个面(例如俯视面)一个对角之间的向量,假设向量为 u=p-q ,向量中心坐标可以当作质心处理,假设为 v=(p+q)/2, p,q 是平面上两个对角的坐标。那么你要做的是求一个旋转矩阵 R 使 u 对齐,例如前方,一个平移向量 a,使得 a+v 等于你要摆放的位置。以摆放位置为(0,0),前方为(0,1)为例,a=-v ,也就是求出 v 直接做平移即可,二维旋转比较简单,以正方形俯视面为例,对角线与( 0,1 )呈 45 或 135 度角时,中轴向前,你只需要求出 u 和( 0,1 )的夹角,我记得有个 arctan2 函数,值域是 0 到 2pi,所以直接 arctan2(u_x, u_y)(与 y 夹角)即可,然后根据对称性,求出旋转角 theta,使得 R(theta)u 最靠近 45/135/225/315 即可,这样可以保证旋转操作每次角度最小。如果是一般情况,即长方 /正方混在一起,那你需要俯视识别 4 个顶点,需要根据边长比算出“放正”的夹角,通常 phi=arctan(边长 1/边长 2 ),然后按照 phi,phi+90,phi+180,phi+270 处理。再进一步,如果你有长短边向前的要求,那么那选取相应的对角向量 u,按 phi,phi+180 处理。
|