Paul you made a great work with your Filter-Code and Documentation. Tanks !
One Question Can your offer the matlab or simulink files? We work on an implemetation of pressure sensor and magnetic sensor informations for VTO aircrafts and have a simulink model running.
I started that design a while back but then noticed several other guys were also designing IMU's so I decided to wait and see what everyone else came up with. So far they all seem to fall just short of what I had in mind.
I want a full IMU/Autopilot that has enough processing power, sensors and connections to autopilot a helicopter, airplane, quadcopter or whatever, all in one unit. It needs to be small and be reasonably priced.
I was reading Chris’s list of N00b questions yesterday and was particularly interested in the helicopter related ones. I currently own and fly a Trex 700, a Trex 500, a Raptor 60, a Easyglider and a Mikrokopter Hexa, the easiest by far is the Mikrokopter Hexa because of the stability and autopilot capability built into the electronics and firmware. The coolest is the helicopters but they are way more difficult and I am not much more than a novice.
My ultimate goal is to provide the same or better functionality to my heli’s. I know this is probably the most difficult thing to do but if we design for it in from the ground up and you math/software wizards design the firmware from the ground up to handle heli’s then we might be able to come up with a solution don’t you think?
If you guys are interested, I am willing to open the design so that we can create the ideal IMU/Autopilot board as a group. I will do the schematics, board layout and have the prototypes built if that’s what everyone wants to do or we could see about having DIY Drones store or maybe even Sparkfun build them. You, Bill and whoever else come up with the firmware and configuration software and let’s see what we can come up with.
My original design was based on the following components:
1 - IDG650 X/Y Gyro
1 - ISZ-650 Z Gyro
1 - MMA7260QT Accelerometer
1 - BMP085 Barometric Pressure sensor (altitude)
1 - MPXV5010DP Pressure sensor (air speed)
1 - HMC5843 3 Axis Magnetometer
1 - STM32F103 ARM MCU
1 - CPLD for up to 10 PWM output and other logic.
1 - Venus634FLPx 10Hz GPS on a chip (not perfect but small and fast, better suggestions welcome)
1 - SMA connector for remote GPS antenna
1 – USB function connection to connect to PC for development and test.
The plan was to pin out a UART, SPI, and I2C channel for interfacing to other onboard devices and USB for interfacing to a PC for development and testing.
However now that both STMicroelectronics and Invensense have announced 3-axis gyros they might be worth looking at for a new design instead of two separate gyros for pitch/row and yaw.
If there is already such a device available please point me to it so I can save myself a lot of time and money.
BTW for those of you that don't know me I am the guy that has the full color HUD or OSD for those that like that acronym better. You can see some video here if you are interested.
Did you see the post from benjamin1254 here on the Standford University Autonomous Helicopter Project? Here is the Stanford site if you have not seen it and are interested. There are several papers posted on that site, most of which are over my head.
I am pointing this all out because I would like to suggest that if we are going to develop a new IMU/Autopilot we should set our goal on being able to duplicate this ability as much as possible. What do you think?
I don't know if any of the actual details of the project are available anywhere since it seems to have been performed under a Darpa contract but you never know.
I have the Helicopters and can design and build the hardware and can help with writing the software. I am just very weak on the math. We probably lots of genius software gurus that would love to be involved if we are going to do something with this capability.
I am implementing the complementary filter in Matlab based on 'Direction Cosine Matrix IMU: Theory'. William Premerlani said you decided input values. Could you tell me how to decide speed and course over ground from the GPS / the proportional and integral gains, K_p and K_i? If you give me any tips or values, I will thank you very much for your concern.
I thank you very much for your values even if you have being busy.If you are fine, could you give me any tips or documents how to find the optimal gains please? How can I find speed and course over ground from GPS?
Sorry for not explain well. When I look at 'Direction Cosine Matrix IMU: Theory'.
COGX=cos(sourse over ground angle)
COGY=sin(sourse over ground angle)
1) The course over ground angle from GPS is used as inputs to compute yaw correction.
2) GPS gives the magnitude of the velocity over ground.
sqrt((speed over ground_x)^2 + (speed over ground_y)^2)
Then the velocity matrix is as follows,
| sqrt(SOG_x^2 + SOG_y^2) |
V= | 0 |
| 0 |
The centrifugal acceleration can be obtained by the corss product of the gyro vector and the velocity vector.
Therefore there are three inputs from GPS (course over ground angle / speed over ground_x / speed over ground_y). Could you give me any tips how to set these inputs. I really thank you very much for your concern.
I totally thank you for your reply. So after Matlab/Simulink simulation, you generated your inputs (COG and SOG from GPS). I wil try to generate these inputs. Do you have any MEX Matlab file or any files to run R.c code.
simstruc.h said 'Must define one of RT, NRT, MATLAB_MEX_FILE, SL_INTERNAL, or FIPXT_SHARED_MODULE' when I tried to run it.