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)
COGZ=0
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.
I tink I have downloaded you EKF matlav code from somewhere, and I actually re-implemented it in a normal Matlab m-file that can be converted to C later, so I can run it on my embedded computer.
My question is: have you made further improvements in your EKF, and have you tried it in real life? if you have any, can you please share it?
I am going to test your code on our UAV (C-17 Globemaster), to evaluate the performance.
I also wanted to correct the yaw drift using a magnetometer (not GPS) but did succeed till now. I think there is big need for heavy calibration.
Have you tried to use the magnetometer only for Heading? and how did you calibrate it?
Thanks a lot, Paul.
M. Zahana.
No comments yet!
You need to be a member of DIY Drones to add comments!
Season Two of theTrust Time Trial (T3) Contest has now begun. The fourth round is an accuracy round for multicopters, which requires contestants to fly a cube. The deadline is April 14th.
Paul Bizard's Comments
Comment Wall (14 comments)
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.
Best Regards
Rick
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.
Best Regards
Rick
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.
Let me know your thoughts…
Regards
Rick
Hi Paul Bizard,
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.
Best wishes,
Don Kim
Hi Paul,
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?
Best wishes,
Don Kim
Hi Paul,
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)
COGZ=0
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.
Best wishes,
Don Kim
Hi Paul,
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.
Best wishes,
Don Kim
Hi Paul,
I hope I did not disturb much and REALLY thank you so much for your reply. Now I can go forward due to your help.
Best wishes,
Don Kim
Could you give me your e-mail please?
I would like to ask you about the EKF.
Yes: bizardpaul@yahoo.fr
Dear Paul,
I tink I have downloaded you EKF matlav code from somewhere, and I actually re-implemented it in a normal Matlab m-file that can be converted to C later, so I can run it on my embedded computer.
My question is: have you made further improvements in your EKF, and have you tried it in real life? if you have any, can you please share it?
I am going to test your code on our UAV (C-17 Globemaster), to evaluate the performance.
I also wanted to correct the yaw drift using a magnetometer (not GPS) but did succeed till now. I think there is big need for heavy calibration.
Have you tried to use the magnetometer only for Heading? and how did you calibrate it?
Thanks a lot, Paul.
M. Zahana.
You need to be a member of DIY Drones to add comments!
Join DIY Drones
Welcome to
DIY Drones
Sign Up
or Sign In
Or sign in with:
Social Networking
Top Content
ArduPlane 2.73 released
ArduVTOL
How to analyze a crash?
HD video for UAV's
APM Copter 2.9.1.b has been released
Arducopter 3Dr or Phantom
Mapping Mission Ride Along
ArduVTOL - Wingcopter - Flight Report Nr.1
Mechanical Hands From A MakerBot: The Magic Of Robohand (From Makerbot blog news)
NEVER connect a Capacitor backup or voltage protector on APM board
Contests
A list of all T3 contests is here.
Groups
ArduCopter User Group
1283 members
Moderators
24 members
ArduCopter (traditional …
180 members
Queensland
4 members
Turkish Ardu Group
5 members
Advertisement