请教一个空间几何问题

2023-02-17 18:35:40 +08:00
 niceTeen84

已知:

  1. 货物在传送轨道上但是不一定放正(放正指:货物的中线和轨道的中线平行);
  2. 传送轨道可以调节前后、左右、上下调节;
  3. 货物是规则立方体可以取到顶点坐标(大地坐标系参考); 如何矫正放歪的货物与轨道平行。
1176 次点击
所在节点    数学
2 条回复
Scorp
2023-02-17 22:37:01 +08:00
问题描述不大清楚。首先,什么叫可以调节前后、左右、上下?如果是指轨道自身可以上下左右前后移动,那这里就完全没有旋转自由度。以及你说的矫正,是要求计算货物矫正后相对于矫正前的相对旋转还是什么东西?
对这个问题,如果是我理解的平面传送带,对于规则物体其实可以转化为平面问题解决。但我没想通平面传送带怎么调整物体姿态。
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 处理。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/917018

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX