The night was black. The omens dark. The mask of the world fell down for just a bit. It was enough for a reality-goblin to wiggle wiggle its way into the earth's left eye's tear-duct. Thus the AwareWolf was born.
What you see in the picture above is a dream in pieces. I'm not sure in which direction time moves. If it's in the direction I fear, you're looking at the death of the AwareWolf. If it moves into the direction I hope, you see a snapshot of a messy birth, or perhaps a non-traditional pregnancy.
What you see is a horrible idea. A travesty of an idea. A travesty of life. The AwareWolf is an attempt at a miscarriage of consciousness. Its greatest tragedy will be that it will never really comprehend that it's supposed to have a desire to be conscious.
It all started on a black night. In front of a computer screen. It started with me checking my bank bonus point balance. To my horror I noticed that my credit card bonus points were leaking. It turns out that banks are so specialized to handle actual money that they don't know how to conserve credit card bonus points, which with all of this banks might and medical prowess it can only keep alive for a year. Then the points die a horrible death, the true extent of which we will never know.
So I had to convert these points into products, so the points can go to point-heaven. The bank, being a helpful entity, gives us a grand many options for this holy conversion. One of these was a Lego Mindstorms EV3 set; a Lego robotics set. Super-nerd-coolness. And hey, I HAD to spend those points. It was paramount! So I ordered the Legos.
Unfortunately the set took too long to arrive. I had too much time on my hands to google Mindstorms robots. And then I hit upon the BrickPi, which started as a Kickstarter campaign to swap out the somewhat under-powered Lego computing unit with a more powerful Raspberry Pi (tiny computer) + custom control board to plug in Lego sensors and motors. See image below.
As you can see, I bought one, and from there things got out of hand. I got lost in the wonderful world of electronics. And before you know it I had a robot project on my hands.
It turns out that for a robot project, there are just infinite amounts of aspirations you can have. There's no end to what you can delve into. So you should limit yourself in some way. I guess I want to make something that can a) freak people out and b) lecture them about things. And it should be properly robotty.
To begin with it should do more practical things like:
There are a lot of ways to go about this it seems, and lots of ways to do a half-assed job. But that's ok. The straight-forward way is to use a camera and use the software package OpenCV for face-recognition. Also from the BrickPi guys I bought a thermal infrared sensor that can measure heat from about two meters away. Thought I can just scan for the right temperature range and assume it's a person. So lets see how to tie this together.
Be able to communicate
To me it seems like for reason communication isn't high on the list of many robot projects, while that seems one of the cooler things to have. To start off with some speakers will do wonders I'd think. Any old rando sounds will be super-endearing/scary. Some speech recognition would be cool I guess, but I'm not too charmed at the moment. I feel it might be somewhat unwieldy in practice. Instead I made the software for this site with an eye on AwareWolf. I like the idea of prompt-like typing for interacting with this thing on a LAN. And you can use it over the internet if need be, even if the actual wolf is offline. Also I bought the cutest little TFT screen for the Raspberry Pi, with some soldering required. Should be good for a spacy bot expressions. Also I bought a 16x2 text LCD because it was cool, and to give auxiliary info like the AwareWolf's IP address and if it's happy or frightened.
This isn't as easy as it doesn't sound. First we need to move the robotty around with motors and such, and slap some sensors on it to not bump into things. Some infrared sensors would be helpful, and I found some cool stuff, like this thing from Mindsensor that measures three areas at the same time.
But ideally you want to give the robot a bit more awareness on where it's at. Welcome to the wonderful world of Simultaneous Localization And Mapping, or SLAM. Which has research areas within research areas within research areas. There are some cool courses online. Say here and here but to get some actual things running something more structured would be nice.
It's here where I stumbled upon the open source Robotic Operating System (ROS), which seems to be a modular enough toolkit to build something akin to your own vision, but still be able to leverage all the cool goodness of all kinds of areas. It also seems to have a lot of community support. I also want to use more than one computer, as all this SLAMming, will take a lot more resources than the Pi can handle me guesses, and ROS has nice support for interacting between different nodes.
Also I was looking at 3D sensors, and I stumbled upon the Structure Sensor which is actually portable, with its own power supply. I got it a bit ago and it's quite cool to be able to do 3D on the go. My hope is that this will make mapping out an environment way easier, and cooler, but let's see.
Let's see where this goes. My idea is that if I blog about it I'll feel compelled to actually make the whole thing. First up, let's make a basic Lego body and some motors that can be steered from the Raspberry Pi. Then, mock sentience! Rise my child!!
Hmm, I never got round to this, did I?
I'm going to try to run with this, is this the best way to talk about this?
I ran with this, Awarewolf has grown to much more than a single robot we're building a network that will play the "Where's the money coming from?" and allow it's owners the choice to do life debt free, credit free, cash free. Please get back to work.