sunhughees / brushless-gimbal

Automatically exported from code.google.com/p/brushless-gimbal
0 stars 0 forks source link

Can not pitch 90 degrees down - Roll axis goes crazy #5

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Tilting camera more than 60 degrees down
2. Pitching the frame +/- 60 degrees

What is the expected output? 

The expected output is 90 degree view down with gimbal working as normal

What do you see instead?

As soon as the IMU passes 60 degrees the roll axis jitters and the camera 
looses stabilization and horizon

What version of the product are you using? 

048 

On what operating system?

Windows 7 Ultra 

Please provide any additional information below.

Original issue reported on code.google.com by itelfo...@gmail.com on 20 May 2013 at 5:15

GoogleCodeExporter commented 9 years ago
Video with the same problem:

Original comment by court...@sulontechnologies.com on 28 Jun 2013 at 2:40

Attachments:

GoogleCodeExporter commented 9 years ago
Dear All,

Does anyone Overcome this ?

Appreciate with the Solution. Thanks !

Original comment by kenn...@ssb-realty.com on 3 Oct 2013 at 3:04

GoogleCodeExporter commented 9 years ago
I haven't looked at the source code but that sounds like gimbal lock. Does it 
internally use something like roll-pitch-yaw coordinates ? If so it should be 
trivial to fix by switching over to a rotation matrix or quaternions for the 
IMU.

Original comment by sme...@gmail.com on 27 Oct 2013 at 5:59

GoogleCodeExporter commented 9 years ago
I just posted a message on the RCGroups thread about this, I am too suspecting 
the software of not being able to handle gimbal lock situations and I was 
thinking about using quaternions too. 
http://www.rcgroups.com/forums/showthread.php?t=1901828&page=77#post26632484

My conclusion was that with the IMU upside down I had very bad horizon drift on 
the roll axis, but it became rock solid after mounting the IMU vertically to 
the back of my GoPro.

Original comment by j.bros...@gmail.com on 14 Nov 2013 at 9:50

GoogleCodeExporter commented 9 years ago
While Googling some more, I actually found that the Arduino example code that 
goes with the MPU6050 sensor breakout board actually *uses* quaternions: 
https://github.com/jrowberg/i2cdevlib/blob/master/Arduino/MPU6050/Examples/MPU60
50_DMP6/MPU6050_DMP6.ino

It should be relatively easy to rewrite the firmware with rotation calculation 
that makes use of this. I am no C dev, but I can understand what is going on. 
Will take a look at it to see where things could be improved.

Original comment by j.bros...@gmail.com on 14 Nov 2013 at 10:10