Let's Make Robots!

Chumby - Ro-Bot-X's Living Room & MyRobotLab

Ro-Bot-X and I are working together even though we are 2500 miles away !

Hey Look... I can see Ro-Bot-X's living room through the eye of the bot he's currently working on ! (Hopefully he won't mind me posting it :) )

It's a Chumby 1 and were getting MyRobotLab to run on it. 

It was a challenge and learning experience getting the OpenCV running on the Chumby.  It required cross compiling binaries on a Linux X86 PC --to--> ARM 9 with a tool chain.

So far, we have MRL running on it with OpenCV and Serial which means potentially it can us Ro-Bot-X's uBotuino to control Motors, Servos, read Sensors, etc.

I'm making two new Services in MRL.  A Chumby service which will interface with all of the hardware a Chumby has to offer and simplify/standardize it so other Services can use it.  And a ChumbyBot service which will contain the behaviors and personality of the little bot.

His board handles Motors a little differently than the 2 way's I am familiar with, so well figure that out and put it in the Motor service with configuration.  

I'm beginning to like the little Chumby.  It runs Linux and has support for USB, I2C, Video, Microphone, Stereo Speakers, Wifi, Touch-Screen, FM Radio, even an Accelerometer.. and for just $90 on Amazon or lower on ebay

We are just starting to connect the wires and pipes together, but I think the hardest part was the OpenCV support... 

What current works

  • Remote communication from 2500 miles away attached to my MRL instance
  • OpenCV webcam and remote control of vision filters (facedetection, color isolation, LKOptical tracking, etc)
  • Web control through an MRL applet
  • Remote GamePad control
  • TextToSpeech with sexy Audrey voice

Things to test

  • MRL/Sphinx4 Speech recognition
  • Audio Recording and PlayBack through MRL
  • HTTP getting info on the intertubes - jokes, daily news, shoutbox data etc.
  • Fancy Sound generation (Drums, Sax, Guitar etc through MRL & JFugue)
  • Play Chess? (Thanks Patrick :D)
  • Servos

Things to develop

  • Encapsulate Chumby's hardware in a easy to use Service
  • Behaviors and Personality for ChumbyBot
  • Augment Motor to handle uBotuino's method of control

We will make sure all the lower level stuff works well (Motors, Servos, Sensors, etc) then I believe Ro-Bot-X was interested in grabbing colored objects around the house (cleaning? dunno)

Wheeeee !

The frame rate of the camera is pretty lousy, but he said he got it for $5.. To reduce the lag as its shipped 2500 miles you can drop the color.

Here I tried isolating the red square out of his carpet...  Unfortunately, he has not mounted the thing on a base or camera on a servo.. but that will come shortly...

 

Comment viewing options

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

Cool man! Thanks for your efforts!!!

I guess my daughter moved the uBotino board out of the camera range... But the carpet looks fine. BTW, what time was this picture taken? I'm just trying to figure if it was before or after Roomba cleand the place... :D

Anyway, I'll install the camera on a pan servo (no tilt at the moment) and a Sharp sensor on top of it, mounted on the test robot. Chumby is powered by a wall wart, if I connect it to a battery, it will deplete it before I'll be back from work. Chumby powers the USB hub and the hub powers the uBotino (and the Sharp sensor). But for the servo, I need to switch the battery on... So, let me know when you want to do tests and I'll turn it on for you. 

You're talking about my different method of controlling motors. This does not affect MRL or Chumby. Only the Arduino firmware. There we need to make the custom config, perhaps selectable by a variable that MRL can flip True. Also, the motors speed will be a byte instead of a int, but that can be also dealt with inside the SetSpeedLeft and SetSpeedRight functions. Going further, after we work with encoders, the motor functions can accelerate to the SetSpeed, then the Stop command will decelerate until a full stop is achieved. PID control can be used for this. But let's go small steps first.

Cheers!