Ethel The Robot

It's funny how things change. Twelve years ago I went to an event called Robot Wars at Fort Mason in San Francisco, California. I was pleasantly entertained and inspired after watching two days of early Robotic Combat. After that event my Father and I started building our first combat robot a Heavyweight machine called S.L.A.M. (Steven and Lowells Attack Machine). We competed with S.L.A.M in several Battlebots events and also built about nine other large 220 lb - 340 lb machines as well. After Battlebots I  got a Job working as the Technical Manager at The Robot Club and Grill in Irwin Pennsylvania. . I packed up everything I owned and moved there from Reno, Nevada.
That was a great job. I learned many things and built a lot more machines for rentals,  combat and the classes I taught to folks on Tuesday nights. I also became a founding member of the Robot Fighting League. When that job ended I moved back to California and competed at a few more events.  I actually won 4 heavyweight events that year and then my combat career suddenly ended since I was totally broke and also became homeless. Dang, I was just starting to get good....
 

At this very low point in my life all of my large robot parts went into storage for five long years. During this time I finally got back on my feet and I started playing with small robots and learned how to program micro controllers like the Parallax BASIC Stamp2 and the mighty Parallax Propeller chip. I built the BOE bot kit and the Toddler robot kit and a home made humanoid robot called Shakey...


EVA (Extravagant Video Accessory) comes first.

Eva comes along just in time to re-spark my interest...

 I then built a small (maybe 6 lb robot) called Eva. Eva, although small, was based on the scaled down dimensions of my combat robots 4 WD drive train. I found through a lot of testing, that on a 4WD skid steer robot a ratio of 1.35 to 1 comparing tread width centerline to axle shaft centerline makes a very stable and quick turning drive train. So I built Eva using 1 1/2 inch angled aluminum for the frame.  I mounted four TeamKISS hacked Futaba servos (completely electronically gutted) turning three inch light flight tires running at 9.6 VDC. I use two Vantec RET 411 speed controllers one for each side/set of servo motors. This made Eva a pretty stout little RC bot. I then built a pan and tilt camera mount and added a X10 wireless camera to Eva. Wow that made her a lot of fun. Now I could drive her around while watching what she sees on a Television. That small addition turned her into a Teleoperated Tele-presence rover.

During a walk through Home Depot I happened across a Grippy Grabber device for picking up trash and more importantly Aluminum Cans. My hands were trembling when I tested it on all sorts of things on the store shelves. Ya know I think some folks noticed the evil look in my eyes as I purchased this item.

I went home and late into the evening I  measured, cut, drilled and mounted the gripper arm to a tall frame and on to Eva. I removed the handle from the gripper and mounted a large servo with a crank arm to the grippers actuating rod. With a bit of programing on my RC radio it was working and I had a lot of great fun grabbing things and knocking over stuff with my new telepresence operated friend.
Of course, You know I had to measure the height of the lower shelf in my refrigerator and set the gripper arm on Eva to about 1 1/2 inches above that. And of course I mounted a three foot long lever made from aluminum to a 4X4 board and placed it with a prying tip in the corner of the Refrigerator door so that Eva could bump into the pry bar and pop the heavy seal on the door. After manually testing this and removing a LARGE Heavy Jar of Dill Pickles from the Refrigerator's inner door shelf I found that Eva could (with a difficulty factor of about 5 of 10) open the ultimate portal to couch potato happiness.
 
 

At this point I went back to sitting on  the couch for some Serious Teleoperated/Telepresence research! I brought Eva to her starting position next to my foot and then the adventure began. While watching only what Eva can see on my TV. I drove Eva to the Kitchen bumped in to the pry bar that cracked open the seal on the refrigerator. I then grabbed the Refrigerator door with Eva's claw and skid steer turned while pushing forward until the door was completely open and stable. I turned back and I could see the prize. A Red White and Blue can of Americas favorite Beer (Budweiser). I adjusted the camera tilt so I could see Eva's claw in finer detail and moved slowly forward. I found that the light in the refrigerator produced a shadow that helped with my judgment of claw depth (how nice). When I saw the can start to move backwards I knew that it was fully in Eva's claw. So I closed it the claw and backed out slowly. My Mind screamed, "Holy Hamburgers it's working!"..... I got the can free of the refrigerator and slowly drove back to the couch and grabbed my prize with my human hand and then released the claw with Eva's radio.

Sniff, I Still get a bit misty when I think about the first beverage run with Eva.....;)
You can see the video here....
Eva Beer run

 We did a lot of Valuable Telepresence Research after that first test. I even got her to toss the empties into the recycle bin to complete the cycle. One of the main things I learned is that after seven or eight scientific tests, I tend to knock over a lot of stuff in the refrigerator. Friends, Don't Let Friends, Drink and Teleoperated

That's when I decided to attempt it autonomously.
Up to this point Eva was only directly Radio controlled like most Combat robots. So I took the Parallax Board of Education off of The BOE Bot and mounted it to Eva. Eva went through lots of evaluations I had the BASIC Stamp2 start reading the signals from my radio receiver and pass them along to a Parallax Servo Control board. The servo control board acts a parallel processor and unloads the BASIC Stamp2 from constantly having to update the servo (PWM) commands while it could be doing other important things . I then added Sensors like infrared distance detection, infrared line following detectors, bump switches , and finally a CMU Camera.
I found that yes you can follow a line with infra red and yes you can event follow a line with a CMU camera. I even got Eva to follow a line to the kitchen and bump into the recycle bin and drop a can in when her bump switch is tripped. She would actually do this sometimes and then sometimes not. At that point I figured that. I was going to need a bit more computing horsepower and Eva sat around for a couple of years while I pondered the problems with small PIC controllers.

I did find another use for Eva and telepresence..

Eva (the Robo Nurse) was also useful in helping me change a rather large bandage after I had a infected cyst lanced and a messy drain was installed. I actually removed the bandage and cleaned the wound and replaced the bandage six times with Eva and her camera and a (rubbing alcohol sterilized) finger cot tipped claw and large Q-tips.
During an office visit the doctor told me that (I had been doing a good job cleaning the wound and changing the bandage). I wish I had a picture of the look on his face when I told him how I'd been changing it.. He Said, "Your doing WHAT?"

 Now finally Back to Ethel.





People often ask where the names of my Robots and racers come from. Well to tell the truth a lot of them come from Frank Zappa and the Mothers of Invention songs. I've always liked Frank's/Mothers music because of it's  amazing sounds, social commentary, bizarre imagery and satirical wit.

There is the Song called Billy the Mountain...
Billy was a mountain.. Ethel was a tree growing off of his shoulder... (from the Mothers album.. Just another band from LA.)

So I named this Robot, Ethel Was a tree Growing off of his shoulder.

In Late October 2008 I became aware of the RoboRealm vision processing and robot control software and began playing with vision on my desktop computer and a cheap USB web cam. I was amazed at how powerful the Roborealm software is and (although very complicated) it is pretty easy to use. Then  I went to Robo Development. It was a convention in Santa Clara, California. Wow there was a lot of great technology at the show. I met a lot of great folks and saw a lot of different ideas and new tech to ponder. At the show (as a door prize) VIA embedded platforms gave away the VIA EPIA Nano-ITX 1000g  1 GHZ computer boards to anyone who wanted one. Well of course I got in line. I was actually hoping to buy a similar board after reading in SERVO magazine a about a Johnny five robot that was using a Pico-ITX board. When I got home I started to purchase parts I first bought a Lynxmotion SSC-32 Servo control board. Now I could experiment with talking through it using Roborealm and a full computer. After a bit of bench testing I found that I could recreate my little robot Eva's control system on a much larger scale. It took a while to get all of the pieces together. First I had to set up my welding shop and work area. I did this on the weekends and played with software on weeknights.

The work on Ethel's drive train began in November 2008 after digging through my storage sheds and scrounging up a lot of old combat robots parts. Ethel comes from at least 11 robots that my Father and I built before.  Of course she still needed a lot of new components, since many of the old parts were modified or the wrong length or just plain beat to death. Once there were enough components to build one side of Ethel's drive train her parts were laid out on the welding table and set on blocks to get the measurements for the frame rails. it appeared that 24 inches by 20 inches should work ok (I was trying to keep her small). So I did what I always do. I went and bought 40 feet of 1 inch square tubing and another 20 feet of 1 1/2 angle iron. Building robot frames is like Electric LEGO with a MIG welder and cut off saw at this point in my simple building style.

She started with a Steel rectangle. Most all of the parts have to fit in the Rectangle. This is Team KISS CAD.

The frames have a lots of small tabs made from angle iron each tab has a nut welded to it. The robot is built up from the bottom frame in bolted/detachable layers
 

All of the drive train bearing mounts are slotted for chain adjustment
The lower frame for Ethel was assembled in three days. I could have had her running but I was waiting for her chain to be delivered.
 
 
 
 

Ethel use's The mighty Bosch GPA 24 VDC 750 Watt motors. Since she is a Super Heavy, she has a Bow Tie styled double chain reduction for a total reduction of 23-1. She can produce 814 lbs of tractive power and 368 ft. lbs. of torque. With the proper traction and C.G. she could climb a tree vertically. Ethel uses two 26 Ah SLA batteries in her drive section.  After  mounting the Vantec RDFR 38E speed controller and the radio receiver and battery. Ethel went for her very first test drive. Even with 7 year old SLA batteries she could do wheelie's in both directions and bark the tires similar to her Mom (Evelyn A Modified Dawg).  So at this point I went back to building Ethel's brain.
 
 

The first assembly of Ethel's brain looked like most of my test assemblies (very abstract). Within this pile of happiness is the Via Nano-ITX board, a Sony DVD player/burner, a 2.5 inch Western Digital 160 GB IDE hard drive and an awesome little 160 Watt power supply made for automotive applications.  The ITX board comes partially assembled in the kit. You have to purchase and install the 1 GB of RAM and then apply heat sink compound to the CPU and install it and it's fan. There are also quite few little plugs to connect for the power supply, the six usb ports and the controls for the front panel and there is a sneaky little header pin you have to trigger with a switch connected to ground or the smart power supply will not fire up the computer (basically everything appears DEAD). That wasn't really clearly mentioned in the manual, by the way.

The solution was found with a multimeter and a couple of hours of reading and re-reading the manual and board pin outs. To connect the 2.5 inch IDE hard drive I had to order a special IDE adapter cable. There is a a great source of Via parts at www.logicsupply.com. They ship pretty fast and the prices are reasonable. (They will also assemble and test the boards for you, for a fee)

Once the computer started and talking to the DVD player. It was loaded it with a full version of Windows XP Pro. It is really neat to watch this little computer come to life considering it's physical size and 1 GHZ speed, it's still pretty powerful. The board only measures 4.7 x 4.7 inches square and yet it' has six usb ports for I/O and stereo sound and  3D video graphics.

At this point there were many questions on how this tiny computer would handle what Is required for Ethel's operation. So first  Roborealm was loaded into the computer and the software was tested with a USB video camera, It ran fine. So the Lynxmotion SSC-32 servo control board was added to another USB port, no problems yet. "OK little computer try this", I started  I-tunes with robo realm running with the camera at 640x480 resolution and talking to the SSC-32 servo control board. That beefy little Via computer didn't seem to mind at all. "Well heck, she needs more parts". So  a Logitech Freedom wireless joystick, a Logitech wireless keyboard and mouse and a Dlink USB network card was added along with all of the software drivers. Even with all this to think about the little computer kept going. You know, Plug and Pray has been around for a long time, but it's still amazing to see it actually work.

Now that the hardware was playing nice together. It was time to write the real software and combine all of the elements together in Roborealm and the VB script language. Learning to use Roborealm took me several days. A lot of time was spent reading the tutorials and watching the videos of working machines.  Finally it was time to just started playing with it. I had never used a scripting language before and didn't even know what it was. Fortunately It's part of Visual BASIC and I already understood other versions of the language BASIC. So getting up to speed wasn't too difficult for the simple application of Ethel's joystick. The plan was to read a Joystick and then send control data to the Lynxmotion SSC-32 servo control board. Since the Lynxmotion board sends out the same PWM signals as an RC receiver, the Lynxmotion SSC-32 board can control everything that I have used in combat robots. It works perfectly with speed controllers like Vantec and IFI and Team Delta switches plus RC servos (as well). Roborealm and the Lynxmotion SCC-32 board has proven  to be the perfect interface for Ethel or any other large robotic project using a PC based system. Now all that was was needed is the scripting for her application.
 
 
 


 

The Roborealm environment allows you to select modules and put them into the PIPE which sets the sequence in which the modules execute. In Ethel's simple application she uses the Joystick module then the VBscript program for decisions, for debugging she uses the Display Variables module then finally for control and output Ethel uses the Lynxmotion SCC-32 module.

The Joystick mapper module allows you to assign variable names to the joystick axis positions I used Joy_x and Joy_y for them The Joystick Mapper module also allows you to set variable names to all of the buttons or other controls on your joystick. Once you assign the Variable names your ready to create a script to modify the variables or chose an action for them to perform later when you send commands to the Lynxmotion SCC-32 Servo control board. It's actually really easy once you get use to the VB scripting syntax.


 

Harware-software- hardware flow chart PWM signals are sent from The SCC-32 board to all peripherals

The scripting took me some time to get correct. There are some some good examples on the Roborealm web site but they had to be modified quite a bit to work with my joystick and the SCC-32 servo control board. After testing the software on my small robot EVA.  The script had to be modified again on Ethel  while on the ground and working with the Vantec 38E speed controller.  Every speed controller reacts a little different and their exceleration ramps and dead zones tend to differ greatly, as I found out the Very Hard way.



Ethel's script....
 

' this program translates the joystick range of -1000 and 1000 to 500 and 2500. This number
' can then be feed directly to the robot for speed and turing
'1500 is stick center on the SSC32 board

fire=1500
fire1=1500
trigger=1500
leftfire=1500
rightfire=1500

leftarm=1500
rightarm=1500

leftarmup=1500
leftarmdown=1500
rightarmup=1500
rightarmdown=1500

'change the minus to plus to change direction of joystick control

speed = 1500 +CInt(((GetVariable("joy_y") * 1500) / 4000))

turn = CInt(((GetVariable("joy_x") * 1500) / 4000))

mleft = speed +turn
mright = speed - turn

'Set minimum speed left and right motor
if mleft<500 then mleft=900
if mright<500 then mright=900

'Set maximum speed left and right motor
if mleft>2500 then mleft=1900
if mright>2500 then mright=1900

pan = GetVariable("pan")

if GetVariable("pan_inc")  = "1" then
  pan = pan + 5
end if
if GetVariable("pan_dec") = "1" then
  pan = pan - 5
end if
if pan < 0 then pan = 0
if pan > 255 then pan = 255

tilt = GetVariable("tilt")

if GetVariable("tilt_inc")  = "1" then
  tilt = tilt + 5
end if
if GetVariable("tilt_dec") = "1" then
  tilt = tilt - 5
end if
if tilt < 0 then tilt = 0
if tilt > 255 then tilt = 255

' and finally add in the fire button
' if it is pressed
if GetVariable("fire") =1  then
  fire=fire OR 2000
end if

 if GetVariable ("fire1")=1 then
fire1=fire1 OR 2000
end if

if GetVariable("trigger") =1 then
trigger=trigger -800
end if

'fmove amrs
if GetVariable("leftarmup")=1 then
 leftarm=leftarmup-800
end if
if GetVariable("leftarmdown")=1 then
 leftarm=leftarmdown+800
end if

if GetVariable("rightarmup")=1 then
 rightarm=rightarmup-800
end if

if GetVariable("rightarmdown")=1 then
 rightarm=rightarmdown+800
end if

if GetVariable("leftfire")=1 then
leftfire=leftfire -800
end if

if GetVariable ("rightfire")=1 then
rightfire=rightfire-800
end if

if GetVariable("viewsw")=0 then
cam1x=cam1x+1
end if

if GetVariable("viewsw")=18000 then
cam1x=cam1x-1
end if

if GetVariable("viewsw")=9000 then
cam1y=cam1y-1
end if

if GetVariable("viewsw")=27000 then
cam1y=cam1y+1
end if

If GetVariable ("thumbfire")=1 then
cam1x=1500
end if

if GetVariable("thumbfire")=1 then
cam1y=1500
end if

SetVariable "cam1x",cam1x
SetVariable "cam1y",cam1y
SetVariable "pan", pan
SetVariable "tilt", tilt
SetVariable "left_motor", mleft
SetVariable "right_motor", mright
setvariable "fire", fire
setvariable"fire1", fire1
setvariable "trigger",trigger
Setvariable "leftarmup", leftarmup
Setvariable "leftarmdown", leftarmdown
Setvariable "rightarmup", rightarmup

Setvariable"leftarm", leftarm
Setvariable "rightarm", rightarm

Setvariable "rightarmdown", rightarmdown
Setvariable "leftfire", leftfire
Setvariable "rightfire", rightfire





During normal Team KISS Trial and Terror testing, Ethel was found to have a very touchy control system and the robot would excellerate to full speed (5 MPH) in one body length (almost instantly). While looking at the robot and listening for a relay click I accidentally bumped the joystick and Ran Myself Down and darn near broke my leg. Ethel bite me in the Same Leg her Dad Electric Lunch did in 1999. Yep, Ethel is Evil and not to be take lightly. Actually the robot did Exactly what it was told. Ethel proved (yet again) that the most dangerous part of tele-operation is the (Big Nut) holding the joystick.

After that unfortunate incident It took a little time to figured out how to decrease the exceleration and top speed of the robot. Basically for safety's sake, Ethel's scripting routine was changed from Ferrari mode to Volkswagen Van mode.  Now that she was driving well, we added her robotic arm tilt control, the camera view select, the poofer fire control and four servos to control two pan and tilt video camera platforms . That used up about 10 of the functions of the joystick and gave her a nifty portable wireless control for many of her basic functions. All that was left to do was assign these values to the Lynxmotion SCC-32 Module.

In the SCC-32 module you assign the variable names to the variable boxes. When the module executes it sends serial data to the servo control board, which controls it's own output channels.  The servo control board will send the PWM signals to whatever you connect it's output channel to. This works great, the SCC-32 servo control board is self contained with it's own processor. It doesn't continually eat up the main processors time waiting for new commands and it's easy to understand and connect as well. This has proven to be a great way to solve the computer to the real world  PWM timing issues.

The actual electronics that control Ethel (other than her Vantec 38E controlled drive train) are five Team Delta RCE 220 Duel ended switches she use's two of them (one for each side) configured as H-bridges to Control and Limit the tilt (rotation) of Ethel's arms in both directions. There are two more of them in their duel switch configuration to control the High flow pneumatic valves on Ethel's Propane Poofers. Finally there is one more Team Delta RCE 220 switch to control a relay that switches the video signals from the two cameras to the 5.8 Ghz RF-Link wireless video transmitter. My teams have been using Team Delta switches almost since they were invented in 1996.  We have always found them to be fail safe and reliable, even when subjected to the abuse of combat or just Team KISS or Team SLAM in general. Although they are not guaranteed for Human safety, I have trusted them with my life (and probably yours) at events many times. Team Delta Switch's are arguably one of the best contributions to Robotic or RC system safety that we have ever used or personally abused.
 

When  the new software and hardware started playing nice it was the middle of the Day Before we had to leave for the Makers Faire. Of course The Robot was in pieces and there was still  a lot of welding, wiring, painting and pyro plumbing to do.  She was painted, mostly plumbed and wired at 11:00 pm that night. Of course she had never been tested with all of the components installed.... (Typical)
 
 


 
 

In her basic configuration Ethel use's off the shelf control and hardware components to keep her cost down. She has six and a half inches of ground clearance so she can climb over lots of things. Ethel has a 250 watt sound system. She can play CD's , Burn DVD's and play anything else you can load into a Blue Tupperware housed Nano itx-PC. Ethel can access the internet through WiFi  She can be controlled remotely with a wireless keyboard and a mouse. Ethel's Via computer can also be controlled with (Remote Desktop) using a Laptop computer and a local Wifi connection or from anywhere in the world through the Internet and a server. But she is usually just controlled directly with a Logitech wireless joystick. She also has two pan and tilt video camera's that can see in total darkness and transmit the images back to her base station. She is a Friendly bot and like's to party.  It was discovered while driving her that she can even Dance! Once the weight of the poofers and tilt arms was added to Ethel's upper frame, She became a bit top heavy and if  she is controlled just right she will do a Skid steer dance as her high traction tires try to slip on the ground, she begins to hop in a tight circle. It's a lot of fun to have her dance to music. If she continues doing the turn and gently ramps up the speed, she can get up on two and maybe even one wheel. It makes on wonder wonder why folks tend to back away when she gets to the point of her unstable CG dancing anomaly?

 
 

On the top of Ethel is a set of poofers with a unique set of tilting arms that hold the poofer nozzles. The arms are rotated using windshield wiper motors and a 6 to 1 chain reduction turning a gokart hub on a fixed 3/4" shaft. Ethel can rotate the nozzles about 270 deg. Each poofers consists of a 10 lb propane tank used as a gas accumulator and a 12 VDC electric 3/8 inch pneumatic pilot valve to control the gas vapor that exits the nozzle. Each poofer has a pilot light and a constantly burning flame to provide ignition of the gas vapor. Both poofers are fed Propane gas vapors from a 20 lb Propane cylinder that mounts behind Ethel's center mast. The fireballs can reach a height of about 20 feet and six feet in diameter. Their just for fun of course.

Going amongst the humans. It could take over 15 mins to move 10 feet sometimes at the Maker's Faire. We had to be so careful and move incredibly slowly to protect the fragile fur bering humans.
 

Ethel made it through the inside of three buildings sometimes packed with Humans and the entire outdoor food court on Sunday at the Makers Faire.
 

Ethel and Robbie do a little Robo concatenation (People kept telling me she needed a head, so we borrowed Robbies)

Ethel met some very good reproduction costumes of Robbie the Robot from (Forbidden Planet and The B9 Robot from (Lost in Space).
 
 

Ethel has fun playing with the kids at Robo Games 2009.
 
 

Mike Phillips and his amazing (two wheeled self balancing mobile chair) along with R2D2 and Ethel at Robo Games 2009.
 

With about ten minutes of total test time, Team KISS is totally happy to report that Ethel made it to the Makers Faire, passed a fire safety inspection by the San Mateo, Ca. Fire Marshal. We tested and demonstrated her poofers for the Masses and then toured the Fair ground for two days driving amongst about 80,000 unprotected humans (without hurting anyone). That was the most stressful driving experience you could imagine. Not running over unpredictable humans is very hard. The built up stress put me in a mental coma for three days after that event.

Ethel then went on to Robo Games for three days and performed just as well. At this point she had her Video Cameras installed and she was able to purchase a Beer from the Laginitas booth using Video telepresence although she did spill about half of it stopping for the humans. She also purchased a Brawndo (The Thirst Mutilator) from the Snack bar using video telepresence.

Ethel buying a Brawndo (The Thirst Mutilator). The scary part is this little child walked up along side of Ethel and I couldn't see him in the video monitor. I was using only what the camera saw to drive this 300 lb beasty with. Remember what it did to my leg. Imagine what it would do to a child....

The next step is to add a web cam and then use the Roborealm software to actually SEE the world and also sense her environment and distance with multiple (Ping Ultrasonic (sonar)) and infra red sensors. Another part on the wish list is a second camera on the front of Ethel to give a wider field of view. Her single camera has a 60 deg field of view and humans sneak in from the sides constantly when using telepresence. She needs a lot more peripheral vision.
The ultimate goal is to have Ethel take out My Garbage and put it in the Large dumpster autonomously. Ethel was built to teach me new things and so far she has done a fine job. (It's kinda cool, we are teaching each other) Heh, every 300 lb. Kid should have a 300 lb. Tele-operated/Autonomus friend with an (easy 200 lb.) payload, 250 Watts of sound, WiFi, no light infrared enhanced video surveillance and 4WD.  The poofers are optional.

Ethel and I at Robogames 2008 Video

Team KISS Home Page
The Red Rocket Racer Rocket powered Funny Car
Powertool Drag Races 2008

Hot RacingVideo's
Power Tool Drag Race Video 4
Power Tool Drag Race Video 3
Power Tood Drag Race Matt Dawg Video
Powertool Drag Race Testing


Power Tool Drag Races 2006

Power Tool Drag Races  2004

Electric Launch, Electric Bike exsperiment

Flaming Lotus Girls

The Serpent Mother

Antweight robots (Servo Hacking and Stuff)
Team K.I.S.S Tips (Math and Stuff)
Battlebot builders guide
The Builder (short story)
Construction pictures of K.I.S.S
Electric Lunch
Evelyn a Modified Dawg
Battlebots Vegas pics
 Underground Robot Street fight
Using the Innovation First Victor 883
speed controller with the Hitec Prizum 7 radio
Battlebots
Robotic Links
My Resume

Team KISS Home Page

Back to S.L.A.M