I am working on a rover project where the robot looks in a park like area for interesting objects. A limitation is that neither a GPS nor a compass can be used. I have a Phidgets spatial sensor which has a gyro and accelerometer (and a compass but ignoring its data). Vision will be a big component of the navigation system but I would also like to have the ability to measure turning angles and a second guidance source for moving in a straight line (or curve, maybe).
The rover will have a PC running Windows XP (it is what I know!) on an ATX board so there is a lot of processing power. Coding is in C++ and RoboRealm for vision processing.
I have been working with IMU code from Madgwick's site the last few days, both the IMU code based on Madgwick and his rewrite of the Mahoney code.
The problem is the yaw values, which I need for turns, is drifting quite a bit - 03.2 deg/sec which builds up pretty quickly. The pitch and roll axis do not drift anywhere near as much.
Is this due to not having an acceleration on the Z axis to moderate the drift?
I just got the Mahoney code working tonight and I have a problem in it since the numbers are not right. Gyro input is in rad/sec and heading output is also radians, correct? Also, there is some interaction between the pitch and roll. When I change pitch the roll also changes and the reverse.
Any suggestions on how to tame the yaw measurements?
Appreciate any help.
Take a look at this discussion: http://www.diydrones.com/group/ardurover-user-group/forum/topics/us...
Lots of information on inertial guidance and wheel odometry.
Hope this helps.
Thanks for the link. I am on the DPRG mailing list so know of DPA's work.
I am discussing this project on my web pages and blog. Visit my site at Mystic Lake Software.
The Dagu Wild Thumper 6WD that I am using does not have wheel encoders and they are difficult to add on, although Dagu does have some replacement motor / wheels that have them. I am trying to not use them since I may be building a swarm and want to avoid customizing the mechanical parts as much as possible.
I uploaded some photos to my albums: http://diydrones.com/photo/albums/wild-thumper-prototype.
On the Mahoney code, what are the twoKiDef and twoKpDef values supposed to indicate?
As a guess, the Ki and Kp are integral and proportional constants from whatever PID equation Mahoney is using in his code.