问题描述
在isaaclab中封装的camera类有offset可以设置相机的position与orientation(openGL、ros、world),
但是当orientation=(1,0,0,0)[world]时候,展现的isaacsim里面orient是(90,-90,0),按道理应该是没有进行姿态变换(0,0,0);
当orientation=(0,0,0,1)[world]时候,展现的isaacsim里面orient是(90,90,0),按道理应该是(0,0,180)的姿态变换;
在设置这个orient的时候很疑惑,这也就意味着难道我不能通过在isaacsim里面先调好orient,把角度反传去计算四元数,最后再把算好的offset放进去?
我试了几次,不管是XYZ还是ZYX顺序都不满足上面的转换
解决
后来突然想明白,实际上,当orientation=(0,0,0,1)[world]时候,相机转还是绕z转了180°,只不过在sim里面的orient显示不是0,0,180;
我试了一下让其绕z转-150°,算出四元数传入之后,虽然sim里面的orient任然不对,但是确实可以看出来只转了-150°,计算四元数顺序是XYZ;
工具链接如下:Quaternions - Visualisation