Journal
[Announcements] on October 1, 2010
This site is no longer maintained by Brionne Godby. My time with the DREU program has come and passed by, time waits for no man, such is life, etc. and cliches so forth. If for some unknowable reason you still want to follow my antics (you stalker you) I may be so followed at http://www.evilgeekstudios.com provided I ever actually launch the site
[Life] on August 14, 2010

Once again home in the southland I review my experience and am thankful for all it entailed, well not all, but most. California traffic consists of too many U-turns for my taste, there was a lack of good barbecue, and the nights spent on a couch could have been avoided. But I would gladly accept another dozen nights of uncomfortable sleep to participate in something like this again.

I've learned some lessons; noise taught me that crucial difference between desired results and actual results, presenting to people much smarter than myself (and with degrees to prove it) made me bolster my courage and humbled me when necessary, and gel tea is as bad as it sounds provided you dislike normal tea already. Most importantly is the difference between undergraduate studies, graduate studies, and working in industry. I can't describe it perfectly in words, but I'd say if pressed for the point its all the responsibility you try to avoid, with less hiding from your supervisor.

So now I will leave whoever reads this with the words of the famous Douglas Adams.

"So long, and thanks for all the fish."

[DREU] on August 6, 2010

And so my time here is drawing to a close, I am to make a presentation and put on demos for alumni Saturday, and then depart from this place, unknowing if I'll ever return. Luckily our (Diego and I will be presenting together) poster will be one of many, and hopefully we can find a nice dark corner with a broken light to setup our demo. Mostly it will be Diego's demo, the radio's are fickle enough when no one's watching and one the other demo's requires two radio jammers.

I have packed up most of my belonging once more, cleaned out my desk, turned in my key, and now survey the place that was so recently my working space.

It doesn't seem like my desk without the paper cups, bits of wire, and broken helicopter blades scattered over it, yet I sit here just the same. I am eager to return, the words of Skynard's famous Sweet Home Alabama do ring true for me at least.

[DREU] on July 30, 2010

The end is nigh, as they say, the proverbial they standing on the street corner and admonishing you to perform one act or another. But the end is nigh none the less, and so as my chapter on this project nears its end I must face the harsher realities, abandon a few foolish goals that could never be achieved in my short time, and instead work on leaving a firm foundation, and a well devised blueprint going forward.

Architectural analogies aside, the radio code has been completed and tested, and I am now able to test some of the mapping code, and what an arduous task that is proving to be. The 'minor inconvenience' of having to manually reset radios becomes a much more time consuming tasks when trying to track down a single errant radio in a system that requires multiple nodes to work in conjunction. My only relief is that I'm not trying to make them fly yet, for then the resetting trick would transform from time consuming to impossible. Still the mapping tests continue, and I believe the results to be accurate.

At the same time, I'm trying to document what I've done, and what I had planned to do with more time. Transferring notes scribbled on the sides of paper cups, and bits of paper, to neatly printed documents is not exactly the most fulfilling task I'll admit, but a necessary one. The actual swarm intelligence system will probably not have its first line of code written till after I leave, but the proposed methods and simulations will be left for those who come after me, hopefully they can make sense of my ramblings.

[DREU] on July 23, 2010

Batteries are a continuing roadblock in this research problem, they last for less then 5 minutes when flight testing before requiring two hours of recharge time. Fortunately when only testing the radio the battery life can stretch upwards of 30 minutes. Unfortunately testing communication between nodes requires 3-4 nodes to be operating at one time, and each battery still requires 2 hours of recharge time.

Still in those brief instances where all the radios are working, and batteries aren't dieing it is a wondrous thing to see the little buggers communicating back and forth with one another. Calculating their distances from one another and mapping properly. Still testing this method while a node is actually in flight has not yet been realized.

I doubt I'll get a chance to run this test myself, I am being forced to wind down my part on the project and get into a manageable (readable) format for those who come after me, time constraints can be such a nuisance.

[DREU] on July 16, 2010

While Memo continues his work on the radio code for me, I have been given a chance to look over some previous radio test data. The test were simple, two nodes placed a fixed distance from one another with one hundred ranging test packets sent between the two and the results recorded.

The results show me the one constant factor in real world projects is noise, everywhere and at all times. No value from the test was ever quite correct; many times they were far from correct, with no visible pattern to the distortion. The values formed a sort of vague wave pattern, but not one that was could be generated or even approximated by a formula it seemed.

So noise, who I am now beginning to consider the foil to my tale, had reared its ugly head once again, but there was one good measure about the noise, it could only delay the ranging packets never increase their speed. This means the formula always returns distances farther away from the actual point rather then closer, and we should be able to take readings from multiple nodes, overlap the projected areas and find a region close to where we should be, rather then having a blank region where tangential points should exists we have an area of overlap.

Instead of neat little triangles I am now developing a mad man's Venn Diagram.

[DREU] on July 9, 2010

As stated previously, nodes are able to calculate distance from one another via the radio, what was not known by this intrepid young intern is that while the function for calculating this distance existed and was readily available inside the radio, there was nothing currently designed to transfer the information gained there to our primary processor where it would be useful. I am therefore leaning heavily on a post-grad here named Memo, for adding code to the radio that will send the calculated values to the processor.

It sounds like a simple task, and in theory it is, but the complexities of creating a communications channel, even one between two chips on a single circuit board confounds me. This has one benefit, I am now able to take a step back from the project and look at the overview of what needs to happen, instead of focusing on how to make such an event occur.

There is one other setback I am encountering, and that is in the reliability of the radios or lack-there-of. Now that I am working with the radios, I have discovered that some times the chips do not properly power down when the device is shut off, this results in the radios being non-responsive when the node is next turned on. Fortunately I have been shown a simple trick for forcing a restart on the radio that seems to be capable of reviving all but the completely dead devices.

[DREU] on July 2, 2010

While still researching the swarm intelligence (see episode #4), I've been instructed to work on some of the basic functions we're going to need to implement.

Key to the plan is to develop an underlying system for mapping the position of each node as it is in flight. A function already exists to gauge the distance between two nodes via the radio. My plan is to have one node (O) stay at a fixed launch position, this node will act as the origin of our graph, another node (Y) will fly forward until a fixed time (or it hits an object) then land and calculate the distance between itself and O, the y-axis of our graph will be mapped to the line OY with the x-axis extracted as a perpendicular line that runs along the ground, and the z-axis will be the perpendicular line running straight up from the surface. Then the scouting node (S) will fly freely and request the length of line OS and SY.

We will first construct a right-triangle between S a point on the ground directly below it, and O. Since one leg is equal to the height and we know the distance OS we can use the Pythagorean theorem to calculate the distance from the point below S to O. We repeat this process using Y in place of O, and take the two new distances along the ground along with line OY to form a triangle that we can then solve to find the xy coordinates of node S (the z coordinate is pulled from the height). In actuality this gives us two potential points (either in quadrants I and IV or quadrants II and III), we eliminate one of these points based on the direction we were flying and the previous position we were in.

So then we should be able to overlay the data the node collects with the grid to map an area.

The only problem is the radio does not have the necessary functionality yet.

PS: No one is allowed to tell my high school geometry teacher what I'm doing.

[Life] on July 1, 2010

Got to visit HP's business office and Nokia labs today. No did not get to see any ultra cool cutting edge gadgets unfortunately.

A group of students from CMU: SV gathered at the HP building in Palo Alto and were shown a brief tour. We got to see the cubicles that everyone worked in then they took us to see Bill Hewlett and Dave Packard's office, left the way they were from when they were actually used by the founders, that means retro furniture, giant calculators, presedential photos and loose change were on display. This was the highlight of the tour, and the only area we could photograph, check out the gallery.

Next everyone headed over to Nokia labs, where we were required to sign NDAs and statements that we were not Russian Spies. Got to see a couple vidoes showcasing new technology in development, some of it interesting, some of it not. The only other thing of real note was the top secret device drawer with information about who could open it. No they did not open it for me, not even when I asked really nicely.

[DREU] on June 25, 2010

Spent most of the week researching swarm intelligence as well as fuzzy logic, interesting stuff indeed. Incoming oversimplified half rambling incoming.

Implementing true swarm logic means throwing out every notion I've been keeping saved in the back of my hea for how the control structure for these nodes should be. In short their is no formal command structure, no division of squads, no reporting back to a central leader, nothing of that sort at all. Instead each node operates independently, only vaguely aware that its even part of a larger group.

For the most part of been reading into ant colony optimization (ACO) as its been the easiest to understand thus far. In ACO each node (ant) goes in search of some goal (food) in a randomly selected direction. When a node finds its goal it leaves a trail (of pheremones that disperse in the air over time) as it makes its way back to the colony, once again this path is randomly determined and walked at this point. When another node detects the trail they are more likely (but not guaranteed) to follow it based on how strong the pheremones are. Naturally the shortest path develops a higher concentration of pheremones (as ants can travel it more quickly, thus leaving a fresh trail) so much so that the majority of the colony is following it nearly in single file.

I don't believe ACO itself can be implemented in this system however. For one we don't have anything like ant pheremone's we can leave behind to mark a trails, and secondly the goal is not to aquire and retrieve something. In fact defining the goal has been bothering me this week as I look into swarm intelligence. Given the sensors available to all nodes we cannot see/hear/taste/touch/smell any target object. Well its true we could run into an object but how would we differentiate between the target and a wall or other impediment.

[DREU] on June 18, 2010

Experience is a wonderfully terrible burden. This week most certainly qualifies as an experience.

The problem we are continuing to work on is the spinning of the body of the helicopter while in flight. As the blades on the helicopter spin, they exert a force on the body to spin in the opposite direction (per Newton's third law). The nodes are designed with dual rotors spinning in opposite directions (as opposed to a tail rotor compensating for the spin), which when spinning at the same speed should cancel the force on the body. Unfortunately implementing this theory is difficult, as while we feed the same current to the motors (thus hoping to get the same force from each), the blades actually spin at slightly different speeds due to mechanical imperfections (that cannot be eliminated).

As we continue to try to create PID controller that will keep individual nodes flying straight, we believed we had finally found the answer. For a day we had a node that was flying wonderfully, nearly perfectly straight, rotating itself every 2 seconds to correct the minor defects in its heading. It was a moment of triumph, victory, celebration.

The next morning we discovered one of the wings was torn, and after replacing this wing the node returned to its previous jittery state. At this point we decided that an intelligent PID tuner would be necessary for the heading controls. While the height controls worked consistently well across multiple nodes, the minute differences in construction have a much larger effect on heading control.

Between each motor if one motor is not well lubricated (causing more friction and a loss of power) the response might not be great enough to ever correct for the issue, on the other hand if we increase the response the nodes with more efficient motors will vastly overcompensate for the small changes.

So from here Diego, and myself have agreed to divert our focus going onward. Diego will work in creating a neural learning algorithm that each node can use to effectively tune itself while in flight, while I will focus on the control of the entire swarm of nodes, implementing swarm intelligence.

Or as I say, he'll make them smart and I'll make them dumb.

[Life] on June 17, 2010

So I'm not a big soccer fan, for the most part I tend not to be a big sports person, but I decided to try to be social the other day and watch Brazil vs North Korea with everyone.

It was a lot of fun even though I didn't understand all the strategy that goes into every move, or the history behind each of the teams, or the names of the players, or the commentary. The last part was fixed when we found where to switch the audio from Arabic to English. The mood was equal parts infectious and enthusiasm.

So the next day I found myself looking up game highlights and spending another 90 minutes watching Mexico vs France. By the way I highly recommend watching the highlights of Argentina vs South Korea, I don't know how common they are but scoring a goal for the opposing team is funny no matter the sport.

GOOOOOOOOOOAAAAAAAAAAL

[DREU] on June 11, 2010

The second week has yielded new challenged and difficulties, both in the software and hardware department. Progress progresses progressively slow at this point as I take one step forward, two steps back, turn to the right, slide to the left, cha-cha real smooth.

In the hardware front I am growing increasingly frustrated by the rechargeable batteries we use. Their able of sustaining around 2 minutes of flight, then require 30 minutes to an hour of charging before being ready to use again. Since testing cannot take place without these batteries a problem therefore arises. In addition subtle differences between each module, and even test flight require us to use develop a smarter algorithm then originally believed. Minor damage to wings, offset weight when reattaching batteries, batteries operating on less then a full charge, etc mean a successful test one time, and a complete failure the next. Mind you I don't mean anything as advanced as machine learning, or artificial intelligence but rather tuning a PID controller

Fortunately Professor Zhang has been helpful with our hardware request. We've gotten access to a lighter battery that holds half the charge, as well as a new model of the sensorfly node that further reduces weight (making the motors require less power).

[DREU] on June 4, 2010

Now that I've arrived here in beautiful Mountain View, CA this week has afforded me with the opportunity to meet my mentor and the other intern Diego Andrade for the first time and an introduction to the project I will be working on.

A brief overview of the hardware was first given to me, outlining the various sensors on the sensorfly nodes. Each node is outfitted with a gyro, compass, sonic sensors, and a radio. The main processor on the sensorfly node is an ARM chip, I was informed that a more powerful version of this chip is found in many smart phones including the iPhone.

After this we were given an overview of the current status of the project. The units were flying but were not yet stabilized to maintain one direction yet. Using a combination of the readings from the gyro and compass we set out to develop a system for maintaining a heading.

It was here we ran into the biggest difference between real-world applications and purely virtual methods, hardware doesn't work perfectly, sometimes it doesn't even work well. The compass is plagued with interference from the motors as well as metal and electrical current in the walls. The gyros auto-zeroing function sometimes differs by a few degrees of accuracy, etc.

In short physics is getting in the way of theory.

[Life] on June 1, 2010

Now this is the story all about how
My summer got flipped, turned upside down
And I'd like to take a minute just hold on
I'll tell you how I became an intern at Carnegie Mellon

In Montgomery, Alabama born and raised
In the computer lab is where I spent most of my days
Chilling out, maxing, relaxing all cool
And shooting some zombies in Left 4 Dead 2
When one of my professors, was acting with benevolence
Started sending me applications for my furtherance
I got one little e-mail and got quite excited
And told my mom "Off to Carnegie Mellon, I've been invited "

I ran to my truck cab and when I drew near the
License plate said "EVLGEEK" and it had dice in the mirror
I must confess that this truck was mine
So I turned to sky and yelled, onward to California!

I pulled up to the campus about three days later
And I yelled to the road "That was long, see you later!"
I looked at my kingdom I was finally there
To sit on a chair as the intern of Carnegie Mellon