I put together a short list of many details that have gone into making a RPi quad. I have some pictures posted in my photo album. I'll get those updated soon as well as some video when I locate a firewire port for the DV camera.
I've started a group as well. I'm sure there are others out there flying or at least attempting to fly a Raspberry Pi =)
Quad-FU - Project Outline
X525 Frame Kit
*Tossed the KK Multicopter Controller
Raspberry Pi 700MHz ARM
running as a WiFi Hot-Spot to easily connect all sorts of devices =)
-Quad-FU Master Controller;
our quadrotor controller software, currently written in C
Arduino Nano **Thank you Tom!
-Quad-FU SPI Slave Controller;
arduino code receiving motor throttles and generating the 1-2ms pulse to drive the ESCs
-Motor Throttle Data is sent from the RPi over SPI from the Quad-FU Master Controller software
-Used for two good reasons: 1) 5V was needed to drive the ESC 2) The little duino needed a good home
Wii Motion Plus && Wii Nunchuck
-Reading Gyro and Accelerometer data over I2C via RPi
-Processing data on the RPi with a modified Kalman filter we wrote in C
Un-Named Controller Input Software
-Written in C# and used to interpret the PS3 Controller
-Sends throttle, pitch, roll, yaw, and button data over UDP to the quad
-Opened the controller and removed / modified the joystick assembly to prevent the stick from returning to center
-With a modified throttle it was the cheapest way to have a decent wireless controller to control our quad
-Soon we will be receiving a bleeding edge IMU from a sponsor
-Laser 3D Modeling of surroundings
I am currently working on something similar, except with a BeagleBone instead of an RPi, plus an Attiny85 for the glue logic between the Linux board and the ESCs. Have only done bunny-hops so far, PIDs are not tuned right yet. My ultimate goal is to be able to run OpenCV or something like it straight on the copter.
Do you have any videos of it flying? It looks like you have a big foam bock strapped to the bottom of it...
Thank you Marko!
This project has been so much fun and responsible for a number of days and nights of coding. I might be considered obsessed at this point.
It sounds like you have a nice project in your hands as well. Do you have any pictures? How long ago did you get started? I know where you are with the PID tuning. I'm not sure what approach you are taking but two way communication/control of the gain values and PID controller output between the quad and a computer over WiFi sure helped a lot over here.. And a good stand =)
I have a couple videos on a firewire DV camera and an old desktop computer with a firewire port. Pretty soon I'll hook it up and capture the videos from each run outside. I also have some pictures of the safety helmet with a kill switch on top that was attached just after that picture was taken while she was on her perch.
I'm hoping I win the GoPro daily giveaway or something so I can have a nice camera =) hint hint GoPro pick me
Thanks again.. looking forward to seeing your project.
Well it has been a while since I've been here but I have been very busy working on the quad and the quad-fu C source code. I have lots of updates to the project that I'm going to put together as well as some videos my dad recorded on his camera this weekend.
Our software has also undergone some major changes. Our sponsor has provided their software for inertial monitoring and data logging which we have tweaked the source and added our own custom quadcopter widgets. We have permission to post some screen shots so I'll get those together too.
Looks really good! Would love to see videos.
I want to build a self balancing robot using the Raspberry Pi and having trouble with the sensors.
Any chance you could shed some light on how exactly are you reading data from the sensors and actually getting the orientation?
I am guessing you are talking about using the Wii sensors?
With the RPi we were using the linux/i2c-dev.h header and had the Nunchuck connected to the WM+ via the expansion port. In source we initialize the Wii sensors in pass-through mode. More information about how the underlying parts of the Wii sensors work was found here: http://wiibrew.org/wiki/Wiimote/Extension_Controllers/Wii_Motion_Plus
Once the data is received over I2C the values are scaled according to their manufacturer specifications.
Take your gyro and accelerometer values and you can calculate your positioning to the degree of accuracy provided by your hardware. Some helpful information can be found here: http://www.starlino.com/imu_guide.html
Keep in mind the quality and sensitivity of the Wii sensors when choosing them for your application. For flight IMU on the quad it was better than the starter board that came with the frame but nothing compared to some nice sensors.
Hope this helps!
This was from the other night while playing with our PID control software...
The project continues. Sorry Ive been busy. I never received the videos from my dad but I did install a camera in the helmet.
The raspberry pi is still the core of the quad. Interfacing live with graphs and controls has been great. We now have a MiniSense2 IMU installed and working great. We communicate over serial and get a continuous feed at various speeds. Currently about 50Hz. It has a .2 degree accuracy and our PIDs are pretty solid.
We are going to need batteries soon.
Here is an updated picture of what she looks like. A bit of an attitude problem but she is pretty cool. Also a picture of the controller software
This is a short video of a takeoff and landing. I was testing some changes to input control and still learning to fly.
I forgot to bring the antenna so it was a short trip out.
The Quad-FU project has gone through a lot. We have been able to enjoy flying it and showing it off. I've started a new job so the quad has been getting all my free time. We have a bunch of HD video to get online. I might start a website somewhere to make the process easier.
Recently we bought a 5000mAh LiPo and a nice charger at the local hobby shop. This was an essential upgrade. The quad is weighing in at about 4 pounds with the battery and all. We haven't tested our flight time yet as we have other goals we are working on.
Since we removed the arduino and upgraded to our much more powerful Stellaris we added RGB LEDs to the end of each arm. At startup we have a cool police light strobe until a controller is connected. When flying the arms light up red in the direction the controller tells it to go and blue on the others. We have some other cool light options that we are not using yet, like a compass to visually see north.
This week we are adding a GPS module, 900MHz RF modules, and a 25' ultrasonic range finder this week. Which means the controller is going to get pretty serious with a micro controller on-board and eventually a LCD display. The best part is no more computer to send UDP packets as controller input.
I hope these images display at the size I set before this posts. More often I update my profile page on this site before anything is posted if you are keeping up with this.
This is close to our current interface for the control and sensor feedback. The big black box is where the on-board hd camera is displayed. Just below the two boxes with lines show live PID calculations sent from the quad. The four circles represent the motor speeds and the red circle grows as the throttle is increased. At the moment we run this on a tablet and carry it around while flying.
This is what she looks like now with the exception the battery pack has changed.
I have a few new pics to share.
We are still working on improvements when time permits. Just finished installing eflite park 450 motors and making custom motor mounts.
The new GPS module is working great. We added a sparkfun UART to I2C board to the GPS leaving our IMU as the only UART device.
The foam shell was put together not too long ago. Its more a rough draft of what I'd like to protect the blades but its already proven very functional.
The PS2 controller has an Arduino FIO and an XBee Pro RF module. We still use the quad's wifi hotspot and UDP packets to transmit live flight information back to our front end software. Still very nice not to require a computer as a controller data relay. Soon we are going to have to put a screen on the controller. At the moment a single RGB LED provides feedback on the controller.
As always.. much more to come!
I haven't posted much about the LED feedback we added some time ago and our PID values have much improved. So this is a video showing off the lights a little. At the end of each arm we wired in a 5mm RGB LED to the Stellaris. When no input is given all lights are green. When pitch or roll is given on the controller the lights shine red in the direction of movement and blue on the other. It is pretty basic now but we have full control over each light and its color in our flight control program.