“The wind was a torrent of darkness among the gusty trees,
The moon was a ghostly galleon tossed upon cloudy seas…”
—The Highwayman, Alfred Noyes
To Luis, Osvaldo, and me this beautiful poetry calls to mind one thing. Quadcopters. We started flying these machines about a year ago. The Syma X1, for example, costs ≅$30 and I cannot recommend it enough. Guilty feelings come with this amount of fun and exhilaration, at this price. Relax. Order now!
Trust me here. You can justify the use cases and guarantee the safe, professional operation of a quadcopter in a corporate environment. And you can do it with less than 100 emails, discussions, and offhand comments executed strategically over the course of a year or so. A quadcopter seed will, if properly nurtured, sprout a seedling of official approval. Only minutes after approval, that seedling grows propellers.
The Parrot hatches. I hear its first peeps–beeps–and 2 seconds later it flies the nest. I close my front door behind me, the Parrot hovers outside. Surreal excitement, I fly. Flight! Flying! Crashing, fixing, caring, charging. Repeat, repeat,…
But there was another problem. We could barely control the Parrot. We did not shell out for a Parrot with GPS, and we naively thought that a magnetometer would provide the data needed to precisely control flight. But that’s not the way the world works, baby. How many times did our code raise the Parrot into the air only to flip it over on its back or careen it into a wall? So many times, it was truly disheartening. At first we didn’t even have a clue what the problem might be. In our minds, as software guys, you tell the drone to go forward for 500ms and it goes directly forward as commanded. But what’s “forward” mean? The compass was not accurate and our other efforts…
Will you believe me if I tell you it worked? It did! When carrying our red target, the Parrot would follow us around the room. Our simple code performed smoothly. Amazement, disbelief, and joy! Strangely, surreally, the Parrot seemed alive. All by itself, like a puppy coming to play, it knew how to get around.
Then it stopped working. We had split the code into parts: control, vision, sensors, UI. At one point, the code worked properly but then we got fancy. In our confidence we quickly added frills like a little dance, and a flip! Then the Parrot kept losing sight of the target. We only had two batteries and we did not have enough charge to debug. In retrospect, I think it started acting poorly when I tweaked the RGB color identifier function. We needed a video and had just enough charge for this…
See how jerky it acts? That’s me controlling it. When the code works, it runs much more smoothly. Given these complications, and some stiff competition, we did not win anything at the hackathon. I think Luis, Osvaldo, and I are OK with it though. The Parrot works well and if we get some more time to mess with it, it will fly autonomously once again.