- 0.基于右手坐标系
- 1.旋转分为外旋和内旋,外旋按照固定坐标系旋转,内旋按照每次旋转后的坐标系旋转。可以参考这里
- 2.先平移再旋转和先旋转再平移是不一样的。例如,(3,4,0)先沿x,y分别平移3,4,再绕z旋转-arctan(4.0/3)度,得到(10,0,0)。如果先旋转再平移得到(8,4,0)。
- 3.一般先旋转再平移,可以看这篇
- 4.旋转之后的平移是按照哪个坐标系呢?例如,x向前y向左z向上旋转成x向右y向前z向上之后,再向右平移3,平移量是y=-3还是x=3?答案是y=-3。 可以这么想,原始坐标系c0先原地复制一个一样的坐标系c1,c1按照c0的z轴旋转,然后按照c0的y轴平移,得到题目中的坐标系。
- 5.四元数和欧拉角的转换可以看这里
void Q2E(float q0, float q1, float q2, float q3) {
float t1 = q0*q1 + q2*q3, t2 = q1*q1+q2*q2;
float t3 = q0*q2-q1*q3;
float t4 = q0*q3+q1*q2, t5 = q2*q2+q3*q3;
float a = atan2(2*t1, 1-2*t2);
float b = asin(2*t3);
float c = atan2(2*t4, 1-2*t5);
cout << a << endl << b << endl << c << endl;
}
- 6.旋转矩阵好文章
- 7
- 1024.才了解到ros的rviz中坐标系xyz的颜色是rgb依次对应的。
- 1025.ROS的static_transform_publisher的角度是zyx顺序的,即
static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_ms