我正在构建一个自平衡机器人,并且我已经成功配置了陀螺仪 mpu6050,现在我有六个读数 Ax、Ay、Az 和 Gx、Gy、Gz。我的问题是如何从 Ax,Ay,Az 和 Gx,Gy,Gz 计算倾斜角?
以下是我目前所知道的,如果我错了,请纠正我:
我可以计算在水平位置测量的 G 中的重力为 Ax=Ay=0 和 Az=1。我用它来找到倾斜角angle_accel = arctg( Ay / sqrt( Ax^2 + Az^2 ) )
。但我不确定我的倾斜是否在 Ay 方向?
我可以通过积分得到陀螺角。我的陀螺仪在 1 秒内被读取 (Gx) 590 次。
float angle; //gyro angle angle = angle + Gx; //sum 590 times i.e angle += Gx*590; //END when 1 second is complete
这会给我正确的角度吗?自平衡机器人是否向 Gx 方向倾斜?