So my current project is to scratch build a small QuadCopter. The physical structure is allready built in a preliminary form, and it will do just fine for preliminary testing. Currently, its made of square wood dowel and Speed 400 size motors with an old NiMH pack. Its too heavy to hover with the battery, but I can still get it all working with low altitude testing. When I've got the software stable, then Ill invest in some proper hardware and do it right.The software is the real challenge. I'm going with the Propeller chip by Parallax for the core, so I should have more then enough power (the multi-core architecture will be great I think). I'm going to be muxing in software, so that will pretty much eat one of my 8 cores. Then I'm thinking of having two main components of the software architecture. 1 core will act as the master for the stabilization subcompoennt. 1 core will act as the master for the control subcomponent. Each of these will probably manage one or two others to provide enough horsepower to get their various tasks done. I dont know assembly, and while I intend to learn, I'm going to try to write this all in Spin. So as it goes now, here is the distribution of the propeller's 8 cores:1: Muxing1: Sensor Input and Scaling/Data Manipulation1: Stabalization1: Control________4 Total so farThe muxing core will simply manage what is providing output to the ESCs. I suppose it will just have a short loop which it will constantly be running. The sensor cog will constantly update the global variables with new values and do all the necessary math and scaling to get the correct values. I may leave a cog open so I can spawn it to run PID loops when necessary (just so I dont need to eat up one of them that is already in use). I think that I will have a cog devoted entirely to keeping the vehicle stable and hovering. Then, to move, I will just add an offset from the control cog to the target angle that the stabilization cog will be working toward. The control cog will do the actual navigation math.Ill update as it goes along,Borge
Chris:
Ok, that certainly makes the thermopile seem to be the appealing option. As we discussed at the Maker Fair, it seems that, in principle atleast, thermopiles should work anywhere there is an IR gradient, including inside.
Dan:
That makes sense, good point about the accelerometers. Without other sort of compensation for movement, it wouldn't be very useful.
Magnetometers measure their position in terms of the earth's magnetic field, right? I havent found any information on them yet in terms of use for navigation/stabilization.
For low speed (or no speed) it looks like the accelerometer will work, its just when I want to take measurements while moving that will require the use of the other sensors.
In order to get roll/pitch information from a 3-axis accelerator, you need to assume that the only force acting on the accelerometer is that of gravity. For example, if the pitch was actually level and you accelerated the helicopter forward rapidly, then from looking at the accelerometer reading alone you would 'see' an upward tilt.
Generally that's why people use thermopiles or 3-axis magnetometers as well as accelerometers, or even use a Kalman Filter to fuse the available sensors.
However, I'd imagine that in most cases the other linear forces acting in the helicopter will be 'small' compared to that of gravity, and so you might be able to get meaningful pitch/roll information from the accelerometer alone.
Thanks for the link to the Paparazzi wiki, Ill dig around some and what they've got on the subject of thermopiles and sensing in general. It looks to be quite useful.
As for gyros, I suppose Ill keep doing my research to figure out which will work best for my needs. Actually, would you estimate the a gyro is only necessary to measure rotation around the vehicle's z axis for heading locks, or is one necessary to measure rates of roll and pitch as well. It seems that I should be able to measure the rate of change of tilt angle from the accelerometer to get these values, obviating the need for a gyro on each axis...
That forum member was me! The Paparazzi team have done good work into integrating IR sensors ("thermopiles") into an autopilot. Details here. Obviously this will only work outside. Also obviously, you'll still need a gyro to maintain an heading hold.
Thats part of what Im trying to determine. I happened to have a 3 axis accelerometer lying around (Parallax's Hitachi H48C board), so thats going to be used, but I need to figure out what I need in terms of a gyro or other inertial sensors. is there a particular model IMU package/gyro/other solution that is particularly popular?
I spent some time talking to one of the forum members (Im not sure who it was, but he is why Im on this site now :) ) at the Bay Area Maker Faire 2 weekends ago, and he pointed out that using IR sensors like the FMA CoPilot to detect IR gradients tend work well. It had never occured to me before, but it actually made quite a bit of sense. However I havent found any documentation on how to use them or how to obtain the sensors themselves, so I'm not sure if this is practical. Ideas?
Comments
Ok, that certainly makes the thermopile seem to be the appealing option. As we discussed at the Maker Fair, it seems that, in principle atleast, thermopiles should work anywhere there is an IR gradient, including inside.
Dan:
That makes sense, good point about the accelerometers. Without other sort of compensation for movement, it wouldn't be very useful.
Magnetometers measure their position in terms of the earth's magnetic field, right? I havent found any information on them yet in terms of use for navigation/stabilization.
For low speed (or no speed) it looks like the accelerometer will work, its just when I want to take measurements while moving that will require the use of the other sensors.
Generally that's why people use thermopiles or 3-axis magnetometers as well as accelerometers, or even use a Kalman Filter to fuse the available sensors.
However, I'd imagine that in most cases the other linear forces acting in the helicopter will be 'small' compared to that of gravity, and so you might be able to get meaningful pitch/roll information from the accelerometer alone.
If you're not using a themopile, I think you'll need a full 6 DOF IMU.
Thanks for the link to the Paparazzi wiki, Ill dig around some and what they've got on the subject of thermopiles and sensing in general. It looks to be quite useful.
As for gyros, I suppose Ill keep doing my research to figure out which will work best for my needs. Actually, would you estimate the a gyro is only necessary to measure rotation around the vehicle's z axis for heading locks, or is one necessary to measure rates of roll and pitch as well. It seems that I should be able to measure the rate of change of tilt angle from the accelerometer to get these values, obviating the need for a gyro on each axis...
I spent some time talking to one of the forum members (Im not sure who it was, but he is why Im on this site now :) ) at the Bay Area Maker Faire 2 weekends ago, and he pointed out that using IR sensors like the FMA CoPilot to detect IR gradients tend work well. It had never occured to me before, but it actually made quite a bit of sense. However I havent found any documentation on how to use them or how to obtain the sensors themselves, so I'm not sure if this is practical. Ideas?