The blimp UAV project is moving along nicely. We've picked a general size
and selected most of the components
. We've now decided to go with a PIC processor, rather than the Stamp, Propeller, or ATMega168 that we've been using here to date because you can get PICs in faster speeds and with more memory, something we'll need for expandability down the road. My partners in this project also have a lot of custom PIC development tools, so since they're going to do most of the work I'm happy to take their suggestion.
The big deal this week is that our IR navigation system, Evolution Robotic's NorthStar
, arrived. This is the DevKit, which isn't cheap ($1,800) but we only need one and the idea is that we can build a board that has the receiver built in and a cheap transmitter kit. We're hoping to keep the cost to users of both under $100.
The kit that arrived is for NorthStar 1.0, and now that Evolution Robotics has announced
Northstar 2.0 at CES, I can disclose that that's actually what we've been planning to use all along. But the dev kit for that one isn't ready yet, so we're building the first prototype on 1.0 and then upgrading the necessary parts and code when 2.0 arrives.
Here's the basic overview of how NorthStar 1.0 works:
And here's what's in the dev kit:
First, it comes in two nifty cases, one for the IR transmitters (shown above) and one for the IR receiver:
Here's what's inside the transmitter case (click for bigger picture and readable text):
Here's what's insider the receiver case:
Here's what the receiver looks like, attached to the PC interface that's used for testing:
The receiver module, which is the slim black box on the right, weights about 12 grams. It's got a bunch of directional IR receivers inside. The fixed IR transmitters (pic at the top), project beams at unique frequencies on the ceiling, and the receiver tracks them and outputs x and y position and a directional vector. You can think of it as a very high resolution (2-3 cm) GPS replacement for indoors.
Here's what the receiver looks like placed on the BlubberBot
circuit board, which is about the size of the one we're going to use (this one is based on the Arduino platform, but ours isn't very different). This is the front of the board, hanging from the bottom of the blimp:
And here's the NorthStar receiver that I've placed on the back to get a sense of scale:
You'll note a challenge that we'll have to overcome. NorthStar 1.0 (and one of options on NorthStar 2.0) is based around the idea that IR transmitters would beam spots on the ceiling and the receiver would be placed to look up and navigate from those. But our blimps are going to be used in gymnasiums and other large rooms where the ceiling is too far away to see. So we'll want to navigate based on direct line of sight from the transmitters.
So where should we mount the receiver? If we mount it facing down, it will lose sight of the beacons when it's close to the ground. Facing to any side means that it won't be able to see any beacons not on that side. We could use two receivers, one on each side and hope that one's always in sight of a beacon, but this introduces complicated hand-off problems as the blimp rotates.
Roomba, the robot vacuum cleaner from iRobot, uses a similar system to get back to its charging base, but rather than spots on the ceiling or trying to keep facing an IR beacon, it uses a cone-shaped mirror that bounces IR from any angle down to a horizontal ring of IR sensors:
What if we mounted one of these on top of the NorthStar reciever and then placed the package horizontally below the blimp? We'd use two direct IR beacons in the room, rather than projecting spots on the ceiling (that just means taking the diffusing lenses off the IR transmitters).
We'll have to play with the system a bit to see if that works, but for now that's the plan. BTW, with a third IR transmitter, it's possible to get altitude, too, but the math on that is kinda gnarly, so we're using an ultrasonic sensor firing down for now.