Jane Gordon and some of the robot cast
Only two options: subject yourself to the insane logic of robotic whims or step off the mortal coil.
Based on the play Hedda Gabler by Henrik Ibsen (1890), and written by modern playwrite Elizabeth Meriwether, portrays the heroin Jane Gordon as a depressed, pregnant, housewife dreaming of escape in Side Show Theatre's production, Heddatron, presented on the stage of Steppenwolf's Garage Theatre. Heddatron opens showing mundane settings: a living room, kitchen, dining room. A projected video of an interview setting a tone of mystery, possible impeding disastrous events, with the seriousness of a congressional hearing. From there we follow the stories of four different sets of actors. Victorian period settings bring us insight into Henrik Ibsen's world: why he created the play, his rivalry with other characters. Jane Gordon's odyssey into loathing, madness, and robots. Jane's family-- in their sometimes violent, anti-robot --search for Jane herself. The video interview concerning the overall event. Although this sounds grave, the play is a comedy. It has many truly funny moments, and every actor is likable The play has a sound track that make the play feel like a film. It has a few moments that will extract shock and applause from any audience. And of course, robot cast members that are unparalleled in any quality and function in any play to date. Heddatron is a must-see for any engineer.
So, where did Side Show Theatre go for robot actors?-- Chibots, Chicago's Robot Group of 15 years. Only one person could pull it off: Eddy Wright of Wrighthobbies.net. The Wrighthobbies' "BahBot" microcontroller development board were used extensively in Heddatron's robot actors. I was able to speak with Eddy Wright about the development of the Bahbot controller, the play, and robots. The following is excerpts from our conversation.
Did you design the robots? Are they based on anything you have ever done before?
[Side Show Theatre] showed me some sketches, and they were a lot larger than anything I've worked on before. The "Hans" bot is 6 foot 5, and top heavy. Handling this was a big challenge. It took us over a month to just design Hans properly. We lowered the center of gravity, and it worked out well.
Did you build them all single handedly?
At first we had a big team, about 8-10 people on the job. But there is just so much room inside the bots for hands. So, it didn't make much sense to have 8 people on a bot simultaneously. We whittled the team as we got closer and closer to the opening date. It ended up being just me and Stuart Hecht [Chibot member] in the end finishing the up, with a diverse enough skill set to handle both hardware and software. We took parts from the other designers and added them in to the final design.
Did you design the Bahbot controller from the ground up?
I did it in collaboration with a gentleman named Glen Aduikas, based on one of my original development boards. [Glen] had taken my board and put a daughter board on it for an Xbee. Then another for an SD card, and then more. He sent me a picture saying 'look what I've done to your board.' I was blow away!
Were they off the shelf modules or custom?
He actually custom made little hand-made components for the Xbee headers. They're not custom headers. They're not .1 inch they're .05. And then the SD card slots are surface mount, so he soldered that up. He showed it to me and said, 'we've love to have a board that could do all this stuff.' I thought that was a cool idea, but didn't think it could fit on a small board. He and I talked back and forth and before too long we were designing it with the same footprint as the original board. We ultimately got it to be the exact same size. 55mm by 65mm. We got it all packed in. They are actually stackable, or psudo-stackable, even though they have tons more packed in.
In the beginning of the performance, several people come out with various custom looking joystick control boards. Do these also contain your Bahbot controller?
The dual joystick are based on the Bahbot controller with XBee radios for the serial communication. All of the bots contain at least two Bahbot controllers.
Was everything running off of your proprietary hardware?
From the controller side to the base, yes, there's one on each side. They are talking xBee to xBee with each other. We chose to not have the base controller controlling the entire robot. We put another [Bahbot] in the robot that talks via serial connection to the original. All the information is passed from one to the next. The firsts takes the information and moves the bot accordingly and passes the information into the next Bahbot. In the case of the Billy-bot, he had some Propeller boards in it. Stuart Hecht, the other guy from Chibots I was working with, likes Propeller microcontroller.
There were a few other Atmel microcontrollers handing single jobs like a string of lights, LED flashlights, glowing objects.
How was the propeller used?
They work good for all the different things going on at the same time [in the Billy-bot]. There was a lot of animation in the head, neck, and the servo controller. So the multi-core capabilities in the propeller worked out well in this case.
The Bahbot has so many different functions onboard, it almost acts like a multitasking processor, like the propeller. I'm a big fan of Atmel AVR microcontrollers, so I settle in on that one as a standard. With microcontrollers at a dollar a piece, it's easy to just drop one in and tell it to do something until I tell it to stop.
That is a lot of onboard tech. The bots moved around silently, and really smooth, what were they moving on?
We used Paralax Wheelchair motors, with integrated numatic 8" wheels. Silent, powerful, and we could control them pretty well. And they don't drain the battery that much either.
Controlled by a Bahbot?
Yea, the Bahbot controls a Pololu TreX motor controller using serial communications.
Who wrote all the software for communication and control?
That was me.
Once I got rolling on it, I would say it took me 25 to 50 man-hours to write the software. When I was finished with the core, I went back in and put in all kinds of fail safes. You don't want to have a robot going off on its own, or not stopping when you tell it to do. In early testing, we had a lot of drifting. Where the bot wouldn't stop for about 30 seconds. I fixed that.
The serial protocol does a CRC16, with a unique identifier on each packet, if a packet comes in without the identifier it knows it's an error. All the fail-safes are just to stop the robot.
Only 50 hours, amazing. Any communication problems, interference?
We did notice that the xBee uses 2.4Ghz range, and on one of the opening nights we didn't tell everyone to turn off their phones. I didn't think phones would be an issue. But smartphones aren't just phones. They have a wifi radio in them. With a 100 people in the audience, with I guess 75% of them have smartphones, we had some interference. After that, we tell everyone to turn off their phones. We haven't had any issues since.
Is the sounds controlled by your Bahbot controllers?
The sound is piped in externally. It was too hard to time the sounds and electronics properly. In fact each bot in controlled by two people. One for sound and another for everything else.
What about power for the bots?
The bots run off of off the shelf 12V SLA 7A/h onboard batteries and chargers. Some of the bots are able to give two performances on a single charge but Brack [TV BOT] has a PC monitor and DVD player. He has to recharge after every performance.
So you built the hardware, and wrote the software. That is an impressive feat. Did you go to school for robotics?
No, my degree is in software development in the early 80s. You know Fortran, Pascal.
So all the electronic design and robotics is self taught?
Yea, I've been working with robotics for 11 or 12 year. That's when I hooked up with Chibots. And have been learning ever since. Being self taught I've learned what I want to learn, what I need to learn. I found none of the controllers did what I wanted them to do. People liked the designs I can up with, and I started a company. And it had grew into what WrightHobbies is today.
Has it been fun?
It's been a great time. Opportunities like this don't come along that often. To get a chance to work on something like this, at this scale, which really challenges all our skills we have within Chibots. To ultimately produce something like Heddatron and have our share of that responsibility and accomplishment, is amazing. Audience members have been quite impressed, that these are real robots.
Thank you for your time. And the play was amazing. I may go again, to be honest.
Thanks. Please do. It was a pleasure talking with you.
Heddatron is playing until April 24th, 2011. Find tickets and info at the Sideshow Theater website.
The Bahbot controller can be found at Eddy Wright's website, Wrighthobbies.net. Please note the Bahbot's wireless programming feature.
Features of the Bahbot controller:
- ATMega1284P-20 MCU
- 128K Programmable Flash
- 4K EEProm
- 16K RAM
- 2 8-bit and 2 16-bit Timers
- 6 PWM Channels
- 8 ADC Channels
- 18.432 MHz
- Dual hardware UARTs
- On-board microSD card slot
- Wireless programming
- xBee headers for wireless serial communications
- All ports brought out to 2x5 headers with power and ground
- Standard size, compatible with PB10 and PB20 prototyping boards and mounts to Tamiya construction plates
- Optional battery monitoring circuitry, selectable power for secondary headers
- LDO 5v regulator rated at 1A (500mA without heat sink)
- Preloaded Bascom Boot Loader
65mm X 55mm, Mounting Holes - 60mm X 50mm
6.5V to 16V
5V up to 1A, 3.3V up to 250mA
up to 2GB, standard SD (HDSD in development)
Digi xBee and xBee PRO RF modules supported
Standard 2x3 ISP header or Serial Boot Loader
Any Atmel AVR compatible compiler - Bascom & gcc