ardusub + gazebo仿真在ardupilot的官网有详细教程,但是按照官网教程安装环境编译后会出现roll轴反转现象,官网推荐gazebo7/8,但是现在装不上这两个版本,只能使用gazebo9 or 11,可能是因为版本问题导致roll轴反转(即稳定时显示180度),为了仿真可以修改源码如下位置:
1.矩阵
matrix3.cpp 中 to_euler(…)
*roll = atan2f(c.y,c.z)+3.141592;
2.四元数
quaternion.cpp中get_euler_roll(…)
atan2f(…)+3.141592
即在源码中对旋转矩阵解算成欧拉角的部分代码进行手动反转
注意:连接后需要在QGC中解锁运动一下即可恢复正常