Let's Make Robots!


Web-controllable roaming camera; autonomous object tracking / obstacle avoidance with IR

 Latest Update: New 4WD base with omni wheels- see new 'QwerkRover' project!

My first robot. I added a couple of features to the "Qwerkbot+" recipe- a sharp IR distance sensor for input; a couple of ultrabright LEDs for at-a-glance status indication; and a loudspeaker for audio playback. The base had two wheels for differential drive, plus a castor to balance. The webcam and IR sensor are then mounted on a pan/tilt unit (two servos).

Programming projects on this configuration included edge-detection for static object tracking; collision avoidance for autonomous roaming; and cliff avoidance for driving around on tables. 

I maintain a 'blog at the address linked above, with details of my latest hardware build and coding progress.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Great Bot Wntrmute !

Is all your tracking software homebrew or are you using some open-source packages like CMU cam stuff?


All my own work for now- although I'm only using the rangefinder, not the camera, to do edge detection (which is why it constantly overshoots then backtracks). Once I figure out how to grab individual frames from the video feed then I imagine it'd be worth looking into existing packages.
Nice light-effect!!

The DELight LEDs really are staggeringly bright, as you can perhaps tell from all the lens flare in the video whenever the bot is at certain angles!



I thought you might have shown a video thru webcam view? Nice bot. In the specs it says your running linux on a 200mhz Arm9. Have you made your own board or is it an evaluation board or one of those gumstix boards? I think you have the potential for something really good here, when you can start processing frames from the webcam on the pc. 

I would like to do something like this myself but wireless webcams are a little expensive from what I see. You mention that your using a usb cam. What are you using to communicate from the cam to the pc? I know I can get a usb cam really cheap all I need to know is the communication method. Hope this isn't too many questions for you.     8 - )

I've been meaning to do a grab of the video feed/desktop clients. Problem is that the camera's mounted on the same pan/tilt assembly as the rangefinder, and when it's roaming on its own the constant turning makes it hard to see anything other than motion blur. Still, I could always mount the camera somewhere else for a demo.

The board is a charmedlabs (http://charmedlabs.com/) qwerk, and the bot is a simple variant on the Qwerkbot+ recipe (lots of info at http://www.terk.ri.cmu.edu/index.php). I don't know much about the underlying linux setup; I control the bot via a java API, which gives me a video feed on the desktop, but no way to grab frames from it. If I wrote my own client it'd apparently be possible to get each frame as an array of pixels so I'm hoping one day to figure out how to work with that and have a go at computer vision.

The camera was indeed cheap, but the board wasn't :) They're not available for purchase any more; apparently Vex have licensed it, but that was a while ago and there's no sign of a new version yet. I'm hoping whatever accessories/control systems they come up with will be backwards compatible with the board I have, but I think the qwerk community is pretty small. It's a shame, as there's lots of features that I simply can't get at for now- i2c being the most annoying, the pins are there but no way to access with the standard software. I think someone hacked together new libraries in ruby to make use of them, though, so some proper low level tinkering is possible for those with the expertise (not me!)

pity they discontinued that board. There's a similar thing only smaller called gumstix. http://www.gumstix.com/

Thanks for the links anyway.


the voice is briliant, sounds just like the robot in the Portal game, if youve played it :P


That's precisely where I'm getting the sound files from :) Tried Left4Dead first, as the audio is already unpacked, but having a small robot declare "Oh my god, I'm actually going to die" or make random zombie noises is just too weird...
Reminds me of my first bot. It kept growing. I like the lights and music. I also impressed with the moving IR sensor. I have been using ultrasonic but a little difficult to grasp. Still in the R/C stages. Wireless will have to wait. Good job.