我想在目标表面贴一个贴纸。我使用深度凸轮和机器人手臂。
设置是这样的。 harmony branch
我知道y轴上会有万向节锁,因为目标与z轴平行。
M1: cam2targetT:
0.933286 -0.358041 0.0279849 -0.250368
-0.162293 -0.489985 -0.85649 0.0660773
0.320371 0.794808 -0.515404 1.03789
0 0 0 1
M2: arm2camT:
0 0.707107 0.707107 0.1
1 0 0 0.53
0 0.707107 -0.707107 0.96
0 0 0 1
Mf: arm2tagetT:
0.111778 0.215542 -0.970075 0.880623
0.933286 -0.358041 0.0279849 0.279632
-0.341295 -0.908486 -0.241184 0.272825
0 0 0 1
当我将命令发送到UR手时,它采用这种格式。 我用过这个
Eigen::AngleAxisd newAngleAxis(mat);
std::cout << newAngleAxis.angle() << "\n" << newAngleAxis.axis() << "\n\n";
我得到了这个: 3.87376 0.700441 0.470301 -0.536842
UR的最终命令就是这个姿势。
Mf in axis-angle T:
0.880623,0.279632,0.272825
AngleAxisd R:
2.71334,1.82184,-2.0796
正如预期的那样,万向节锁定发生了,所以问题是,在这种情况下如何找到正确的角度轴?问题可以通过四元数来解决吗?
P.S。我不认为我可以改变UR中的旋转顺序。