I am creating this blog to document the design and development of my quadcopter. This is going to be my first attempt at designing a quadcopter and I am really excited about it.
"Is this Yet An Other Quadcopter? Is there anything interesting, new, different about this quacopter? What is he doing differently that has not been done before?" All these questions are valid, after all there are thousand of blogs about quadcopters not just in this community but all over the net... So what I am bringing to the table that is new?
Well what I am trying to do differently is to use an FPGA rather than a microcontroller as the core of the quadcopter. I am sure this has been done before but it is my belief that there is a lot less material and support out there for people who want to take this approach. And I want to share my efforts with this community.
Well some might ask, Why FPGAs, after all, microcontrollers work perfectly fine. They are good enough to get all kinds of flying machines airborne and they are dirt cheap, easy to program and they work well... So why bother with FPGAs?
Well the honest answer for me is that, it will be more fun. Of course, FPGAs have a number of advantages over the microcontroller, (flexibility in logic implementation, parallelism....) but whether these advantages are really useful and help an airborne machine fly better is a question I really cannot answer at this stage, but it is something that I will really enjoy exploring.
Additionally, some FPGAs are reasonably cheap nowadays, and in my opinion, comparably as cheap as some of the microcontrollers out there, so it makes sense to me to try and use them in some of the applications that microcontrollers are used for in the RC community, maybe some advantages can be gained from down that route. And I want to share my experience with this community.
So why DIYDrones? Well to be honest, I think it is one of the best communities out there for hobbyist and RC geeks :p I have been doing some research for quite sometime around this area and I have always found DIYDrones to be a great source of information and support. The people in this community seem to be really enthusiastic and really knowledgeable. Also it seem to have a lot of members from the UK as well which is a plus for me.
As I am developing this project, I am willing to share EVERYTHING with anyone that is vaguely interested. If anyone has any questions, interests and ideas for collaboration, feel free to get in touch with me.
I am really looking forward to sharing my work with this group.
P.S. I chose the project name Colossus not because the quadcopter is going to be a huge machine, but because I realise how big the task ahead of me is. It should be a fun journey though.
Comments
any updates on this project? what language are you using to program the fpga with your pid implementation?
Spiri, a programmable, autonomous flying robot.
that is an idea that I have considered and in fact I have I do have a ODROID X2 in my possession that I do intend to use test a few ideas... but I have had a few reliability issues with the board, namely the hdmi interface... will find a lot of thread online about people having the same issues, to work around that I have had to order the lcd screen... a bit of a pain considering that it is all coming from Korea...
But yeah, once I have it all I will continue exploring all these ideas...
what about this powerful not so expensive compact board
Exynos5 Octa > ODROID-XU
combined with this small, low cost USB-capable Inertial Measurement Unit with open-source software
Thalamus IMU - Motion sense/control board
not very good video but it gets the point accross, when I get more time (probably over the weekend) I will make better videos and hopefully one of them will be the maiden flight...
Quick update. I've implemented the rate control feedback using the FPGA. I am testing the roll axis and just using the P-Gain which as can be observed, is a little bit too high.
http://youtu.be/jbNBsGAyxwM
Youtube video
But at least this proves that my initial approach to implementing an angle control feedback loop without an inner rate control loop was mightily flawed....
I'm yet to increase the I-term and D-term to stabilise the rate controller. After doing that, I'll move on to tuning the outer loop. But before I ended my day, I wished to share this video with the community. So much more to do and so little hours in a day....
Anyone interested in Kalman Filters, great blog here http://blog.tkjelectronics.dk/2012/09/a-practical-approach-to-kalma...
Can be easily adapted for other applications
Just a little update. I implemented a complementary filter with a standard PID feedback loop and I have tuned to the best I can my gains. However, the Quadcopter is still not very responsive.
which leave me to believe that
a) the complementary filter might not be accurate enough for this application (I have played around with different time constants and sampling rates)
or
b) standard PIDs are not responsicve enough for quadcopter applications
both hypothesises might be true. So I am now looking into implementing a Kalman filter with a PID control system with inner and outer loop for rate and angle control respectively...
my research around this area indicate that it is what most systems use.
I've been slowly starting gathering parts for a octocopter powered by an fpga... i will follow this project of yours closely :)
No, I will get a blog started on this site as soon as I can.