Saturday, January 15, 2005

Multi-layer robot base

Winter is here in the Seattle area, and that means cold and rain. Cold and rain means that I don't get outside to run Cylon around my block nearly as much. To keep me moving forward in the interim I've been working on an 'indoor' base for the robot which is keeping me busy, but has kind of limited my progress.

The first iteration of Cylon's chassis is built on the Tamiya TXT-1 RC Monster Truck. While this works extremely well for outdoor environments, its turning radius of 4' just doesn't cut it in my kitchen or living room. I need a base that can make short or even in place turns and this means differential drive where the wheels on each side can turn independently -- like a tank instead of a car. I decided to repurpose the parts of my Evolution Robotics ER-1 chassis for my drivetrain since the ER-1 comes with a couple of nice stepper motors with wheels and a control box that drives them from USB. In some previous work I had already written a C# wrapper for the ER-1's USB command protocol, so this was perfect.

Since I'm redesigning I decided to fix two other problems with the first Cylon chassis design. All of Cylon's components (motherboard, power supply, Brainstem, sensors, etc.) except for the drive train were stored on a single layer. This made the mounting platform very crowded and chaotic and it also provided no protection in case the robot rolled over onto its side or its top. While the TXT-1 chassis is very hard to roll due to its excellent suspension, in working up to the Robo-Magellan contest I was constantly haunted by CMU's experience in the Grand Challenge. A Hummer is also very hard to roll, but a few weeks before the Grand Challenge a software glitch managed to induce a roll of the Hummer smashing key instruments and significantly setting CMU back in their progress.

So this next chassis design had to handle three goals:

  • Allow a switch from external (TXT-1) to internal (ER-1 repurposed) drivetrains, preferably easily and in just a minute or two.

  • Provide multiple layers to attach components so I could get more room to make a cleaner design and allow me to do things like separate the logic (motherboard, power supply, CF drive) from the sensors (compass, GPS, camera, IR distance sensors)

  • Provide side and top roll-over protection

  • During the design process, three other side goals came out:

  • Allow batteries to be recharged in place, so I didn't have to take things apart and remove the batteries for every charge. With multiple layers, this was going to be more of a chore than before.

  • Provide sufficient distance between the logic layer and a top mounting layer so that sensors like the compass and the GPS unit that need magnetic and electro-magnetic separation for signal clarity have the necessary separation. I had serious debugging issues with my compass in the days before the Robo-Magellan contest that turned out to be interferance between the metal of the wires and motherboard with the local magentic field.

  • Come up with a simple way to shuttle power and data signals of various types (PWM, I2C, USB, RS-232, simple analog & digital voltages, etc.) between layers.

  • The approach I decided to take is to build the custom chassis out of 1/8" polycarbonate. Polycarbonate is relatively light, extremely tough, very crack resistant, and pretty darn cheap. Instead of gluing pieces together for the 90° turns which would introduce a failure point for side impacts, I had the plastic bent instead. Everything is attached together using screws (per excellent advice in Robot Building for Beginners) and tapped holes in the polycarbonate.

    One thing I quickly learned is while polycarbonate sheets are cheap (around $10 per layer, cut to specifications at my local TAP plastics store) asking the store to make the bends for me added up quickly (at $7.50/bend, two per sheet) and took time (2-3 business days for them to process). Since I was making multiple layers, it turned out to be a better deal for me to buy the parts from TAP Plastics that I could use to make my own plastic bending tool at home.

    Well, that's enough for now. I promise to be a little more on the ball and get my blog caught up to all the things I've been working on over the past few months.

    - jcb