Let's Make Robots!


echo.png31.83 KB
echo.12b.txt - 12Blocks file, rename without the .txt extension and load into 12Blocks8.77 KB
IMG_20100803_232241.jpg -inside Bender's rusty inards1.01 MB
IMG_20100804_231435.jpg - a view of the fitPC21.12 MB
IMG_20100805_204304.jpg1.02 MB

Bender is a medium sized robot based on the Crustcrawler Nomad HD platform. It uses the Parallax Motor Kit with Position Controllers, a pair of Parallax HB-25 Motor Controllers, 6 Parallax Pings, and a Parallax Propeller Robot Control Board.

The propeller handles the low level functions, such as sensor scans, movement, collision avoidance, robot status monitor. Low level routines are written in SPIN and all the behavior software is written in 12Blocks, which talks to the lower level routines through  12Blocks custom blocks written by me.

Bender's brain is a FitPC2, a 12 volt powered Atom 1.6 processor based microPc. It has 1.6Ghz processor, 1 G RAM, 160G hard drive, 6 usb 2.0 ports, dvi video, full audio, an ethernet port and built in WiFi. All of this in a package that measures 4x4x1 inches and consumes only 6-10 watts of power.

There is a Logitech Orbit webcam on board running AbleCam (video web server)

All this is powered by a 13000 mAh NimH battery pack.

Not shown is the scanning laser rangefinder. I have it, just haven't sat down to figure out how to get the propeller to read it. Also not shown is the head, which remains to be built. It sports a 7" touch screen display (back ordered) and is where the camera will be eventually mounted.

At the moment, the PC is still running on house power. I've opted to use a small inverter running off the battery pack to avoid cutting up the power cable. At some point this will have to go but since there is still plenty of room inside, it's a fair prototype trade off. I've ordered the inverter but don't expect to get it until next week. This limits the roving range to the length of the power cable but is sufficient for testing.

Running RealVNC, I can directly control Bender via WiFi. At the present time, I can drive the robot around using manual keystrokes which are passed to the propeller via the Parallax Serial Terminal that comes with the Propeller Development Editor or directly in 12Blocks as it has a built in terminal that also allows you to watch the propellers's pins change state and track all your variable. Very handy for debugging.

Software installed:

  • RealVNC
  • AbleCam
  • 12Blocks
  • Propeller Editor

UPDATE: 5 Aug 2010

Today I installed the 200 watt inverter into Bender. It has two 120 jacks, One goes to the FitPC, the other goes to the new 7 port USB hub, allowing me to hide all of the USB lines inside the robot.

Now, instead of a tangled mess of wires outside, there's a tangled mess of wires inside. I'll have to wrap the excess cable so it will be a bit neater.

Bender is now tether free! it can now be driven around the house under direct control of any computer in the house. Tomorrow I will deal with the rat nest of USB and power cables inside. I suppose I could put the inverter and hub outside, we'll just have to see how things work out tomorrow.  The inverter is a stop gap measure until I can round up a suitable power plug to run directly off the battery.

Beware, Murphy lurks in the darnedest places. 6 Aug 2010

Well tonight I found a couple of power plugs that will allow me to power the PC and the propeller off the battery. As I was checking the polarity of the power plug for the propeller, one of the cables blocked the screen of my voltmeter just enough to not see the '-'. When I plugged it into the propeller, There was the tell tell smell of acrid burning electronics. Too late! The propeller is now fried and gone to silicon heaven  and I've ordered a replacement. unfortunately, it means I can't do any of the weekend testing and development that would have allowed me to take it to work Monday to show it off.

This goes to show you that anybody can make simple mistakes. This one cost me the price of a new board and three or four days lost, all because I was not paying as much attention to everything I should have. In my case, I plead 'cataracts in both eyes, one eye that sees nothing and the other runs at about 20/70' A few years ago, this is a mistake I would not have made, but then I recall making many others,,,

It's a hundred dollar lesson that will last for awhile. They always do. Moral of the story? Don't be afraid of making mistakes, that's where we learn our toughest lessons, Don't be careless either.


Update 11 Aug 2010

The new propeller board arrived today. Like the old one, it's a MSR1, the Propeller Robot Control Board. So far, it's been fired up and programmed to handle the simple R/C program I have running for initial tests. Tonight, I'm planning on running it through a few tests to see how well it handles the WiFi things, drive it around to get the feel of it etc. I'll post some video if all goes well.

Update: 12 Aug 2010

Today, Bender fulfilled its primary design function: That of delivering a bunch of Chocolate Chip cookies to the office of our director. While it was all done under the use of telepresense, ie; remote control, Bender successfully navigated the approximatly fifty feet between my office and his, notwithstanding the positioning of a number of trash cans as obstacles. There are still issues with the anti collision software, and controlling the robot solely from the webcam was a challenge. My next step is to switch Bender to using the encoders so it will travel in something that more closely resembles a straight line.

Update 20 Aug 2010

Bender is now Skype enabled. Now I'm working on a pair of programs to talk to Skype. The first is on Bender and listens in on the chat channel for commands, then transfers the appropriate command sequence tot Bender via the serial port. Trivial program.

The second program runs on the remote client, reads mouse commands, and sends them over Skype to bender for execution.

Both programs are in VB.net. They will provide the ability to control Bender usinfg only a skype connection and my VB client.

Comment viewing options

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

And you are so right about the build time! I had the same or similar issues. That is a really nice robot that you have. Post some video soon please.

When I get the inverter, USB hub and the other 4 Pings and have made sure that the behavior code works right, I'll do just that. Should have everything in and setup by next weekend.

By the way, It also has an AX-12 arm, but I haven't built it yet. I'm thinking it will wait til the head gets built cuz I want it at shoulder level and that hasn't been worked out yet. I'm thinking it will come in handy for drinks and elevator buttons.

Well It took a couple of hours to assemble the platform kit. maybe a half hour to wire the motors to the controllers and build the power bus. A lot of time was spen just staring at it, thinking about where to mount things and what to put inside.

I ordered the platform three weeks ago, along with the propeller. Unfortunately, I only ordered one motor controller and only discovered that I needed two when I got my hands on the first one. Parallax says you can control two motors with one motor controller but neglected to mention that both motors would always receive the same signal. Hint to readers: One HB-25 per motor, unless you plan on driving a 4 or 6 wheel bot with more than one motor on a side.

It was about that time that I ordered the FitPC2. When it arrived, I discovered that it wouldn't talk to my VGA monitor so I went out and bought an adapter. Turns out an adapter doesn't work. You need a 'converter' That costs another $80 bucks and more importantly a week stalled. When the converter did arrive, windows didn't boot, as it had gotten lost doing the setup without the monitor(When I first tried it) so I had to go out and buy a USB CD ROM and reinstall windows. The I discovered that the cable4s I had bought for the pings were too short and had to order longer ones.

Fortunately, I was able to keep busy learning SPIN and learning my way around the 12Blocks development system. In a way, it was fortuitous that the PC problem slowed me down, the battery took almost 2 weeks to arrive, FitPC's support is among the worst I've ever seen, but it's a great little box.

All in all, counting all the down time, debugging things that I shouldn't of had to debug, redoing things because I followed documentation that was wrong, I'd say I spent about twenty hours building and programming it.

When the other 4 pings arrive, it will take me about an hour to install and test them. The software has already been adjusted for them. I'm thinking about adding a USB hub so there will only be one USB thing coming off the PC. Wiring that will likely take half an hour and there is still the head to build. I'm thinking about something like what the anybot (anybot.com) has. It's kind of cute.

The real time is only just beginning. behavior programming is not really hard, it is just so much more subtle than regular computer programming because the robot can do real damage if it runs amok. Consequently, I expect that I will spend a lot of time tinkering with behaviors and trying not to run down Sparky, the family dog.

The program I have right now, as listed above only took a couple of hours to write, maybe ten if you count the learning curve.

So there you have it, 4 hours to build, 2 hours to program, 80 + hours of hurry up and wait, 20 hours of wild goose chases. Ah the joys of programming.

So, if everything had gone right the first time and all the parts were on hand, and I already knew how to program in SPIN and 12Blocks adn I already knew how to make the proper behaviors work, this would be a project that could easily be done in one weekend. Because there was a whole number of things that went wrong, It took a couple of weeks to pull together to the point it is now. This is why Research and Development can't work on a deadline. Murphy's law always get's in the way.