这是针对我目前正在研究的机器人模拟。如果您查看提供的图表,您将看到两个坐标框架。帧 A ,帧 B ; 你会找到一个点p。
坐标系A是世界坐标系,坐标系B是我的机器人的局部坐标系(其中x轴是机器人的前进方向,按照惯例)。机器人能够在世界各地旋转和行驶。
我的目标是找到点p,用框架A表示,然后用框架B重新表示它。
我用来实现这一点的标准方程如下:
point_in_frameB_x = point_in_frameA_x * cos(theta) - point_in_frameA_y * sin(theta) + t_x
point_in_frameB_y = point_in_frameA_x * sin(theta) + point_in_frameA_y * cos(theta) + t_y
wheret_x
和t_y
组成 frame B到 frame A的平移变换。
然而,这里有一些复杂的情况阻止我得到我想要的结果:
由于机器人可以旋转(其默认姿势是朝向北的方向 - 并且旋转为 0 弧度),我不知道我将如何定义t_x
以及t_y
在上面的代码中。因为如果机器人具有平行于框架A的 y 轴的航向方向(即 x 轴) ,则平移向量将不同于机器人具有平行于框架A的 x 轴的航向方向的情况。
您会注意到从框架A到框架B的转换并不简单。我使用这个约定只是因为我正在实现这个模拟器,它使用这个约定作为它的图像帧。
任何帮助将不胜感激。提前致谢。