Dedicated to revolutionary open source prototyping by introducing creative design with modern resources, pursuing the next generation of technological solutions

Tuesday, June 15, 2010

New UAV Project

I will be exploring the application of my own personal UAV (Unmanned Aerial Vehicle) / Reconnaissance plane this summer. My goals are as follows:

- Full autopilot and stabilization
- Autonomous GPS Navigation
- Real-time telemetry (Airspeed, Location, Video, Orientation)
- Manual control
- 30+ minute mission duration (limited by battery)
- RC auxiliary "bay doors" for dropping presents to friends
- 1+ mile range (really looking for 2-3, costs may limit this goal for now)
- Auto landing
- Emergency landing system + Failsafe beacon
control systems only backup battery

I've completed a prototype design to test the feasibility of this project, and to learn a little about what challenges I am going to face to reach my goals. The prototype design is based around a cheapo foam glider I bought on the internet. Here are some pictures:

Saturday, June 12, 2010

New Project, Insect Locomotion - Mr.Richter should like this one

This will be the base platform for a new and very powerful autonomous system. I intend on featuring video processing, intelligent obstacle detection and avoidance, path finding, voice recognition, voice feedback, a sense of "will" or thought, automatic night-time charging. Similar to a pet, but a giant hexapod :)

Finished Project! Autonomous Robot

This is the complete design that competed in the 2010 Science Montgomery Fair, winning these awards. It took 8 major code revisions over 3 months to program completely, starting from scratch.

First fully functional design. Includes range-finding, lateral location, full mechanics. However no error correction or intelligent maneuvering yet.

More early design footage :) This is the autonomous rangefinding I developed a few months ago.

Here's a video of the early stages of my Autonomous Robot design. Enjoy

Feature in GHS Newsletter

Gaithersburg Junior, Austin Duff competed in the 2010 Montgomery Science Fair with his project "Autonomous Robotics and Environmental Interactions" and was recognized with the following achievements:

 International Electronics and Electrical Engineers (IEEE) First Place for Outstanding
 Naval Science Award
 Yale's Most Outstanding 11th Grade Exhibit in Engineering
 US Public Health Service Meritorious Achievement
 National Society of Professional Engineers Innovative Engineering Award
 American Society of Mechanical Engineers Third Place for Engineering Excellence
 United States Army Outstanding Science Project
 CIA Project of National Interest
 Science Montgomery - Third Place in Engineering

Friday, June 11, 2010

First Robot - Line Following and Edge Detection

I used an Arduino Duemillanove with the ATMega 328. Propulsion is provided by the two Parallax Futaba Continuous Rotation Servos. My sensor is the Pololu QTR-6A IR Reflectance Sensor Array, and it is all powered off 4 rechargeable NiMH Duracell AA Batteries :)

It can follow a dark like, on a light background. In this case i used black tape on a whiteboard. It first calibrates itself for 5 seconds. You move it across the line a few times so it gets used to the difference in reflectance. After the calibration it begins moving foward. I used an algorithm to determine its error off the line. If it determines through the algorithm that it is at an extreme error, it will turn for a longer amount of time. Similarly, if the robot determines it is only a fraction of an inch off the line, it will only turn for a fraction of a second. This reduces over compensation and makes the line following a little smoother and more reliable.

This is the code I used, I started it from scratch and added the MegaServo Library. I'm aware that there is a library for the Pololu IR sensor arrays, but I encountered problems so i decided to start from scratch with the sensor reading as well. I'm using the Analog version of the Pololu sensor array, as opposed to the RC version, which outputs a digital signal. My sensors output an Analog voltage based on the reflectance of the surface. For example, if you are providing 5V to the sensors at Vcc, and you encounter a dark surface, that sensor will output a a voltage closer to 5V. Conversely, if the sensor encounters a very reflective, (white surface) it will output closer to 0V. I can read these 6 Analog outputs from my 6 sensors through the 6 Analog I/O pins on my Arduino.
In addition, my STOP algorithm uses nested if statements to check 3 times if the robot is really at the end, before it stops for 10 seconds, blinking the light. This prevents an accidental stop in the middle of the track due to inaccurate readings or glitches. During calibration, I calculated an average value of reflectance which i use later on to help with the navigation and decision making. I also printed some data to the Serial screen for testing purposes.

Code :