Jeff's QuadraTwist Robot

QuadraTwist is a Quadraped walker with a twisting waist to help unload the weight from the forward moving legs.
It is capable of tight turns and clearance over uneven terrain.  It also is of sturdier construction than its predecessor, the "WalkingStick".  QuadraTwist can carry the PalmIII on it's back for autonomous motion.


(Photo courtesy of Richard Caylor of the Twin Cities Robotics Group)

New Robot : Quadra-Twist
Builder  : Jeff Hove
Construction : 5/18/00 - 5/21/00

History: Outgrowth of Walking Stick robot

Goal: My first autonomous robot.

Plan: Improve on previous WalkingStick quadraped by adding a twisting waist to help un-weighted legs move forward w/o catching on carpet/obstacles.  Also, build frame more robustly to support the weight of the PalmIII controller on-board.  Develop lightweight Palm serial cable.  Simplify control code through SSC sub-routine include file.

Functions: Walk for specified number of steps either straight or curve of given +/- angle.

Constuction: Corrogated cardboard frame.  Three Futaba S-148 R/C servos.  Scott Edwards Serial Servo Controller card.  Futaba 4.8v Nicad battery pack (for servos), 9v batt (for SSC), homemade RJ11m to Palm Hotsync cable, PalmIII.

Software: custom program written in PocketC.  Wrote library of functions:

  • sscWalk.c: Main program.  Prompts for number of steps and turn angle, then runs sscOpen, sscWalk3, and sscClose.
  • ssc.h (Include file defining following functions)
  • sscOpen(): Initialize Palm Serial port w/correct settings for SSC (9600,n,8,1)
  • sscServo(): Move specified servo# to specified angle in degrees left or right of center.  Translates degrees to SSC units based on emperically derived factors.
  • sscWalk3(): Walking motion for twisting quadroped.  Accepts parameters for number of steps and turn angle.  It then controls the three servos using the sscServo() function with appropriate pauses between steps to give the servos time to move.
  • sscClose(): return servos to neutral positions, then close serial port.  Note: due to waist servo horn mounted off-center, this routine actually sets it to -2 deg as the adjusted neutral point.
  • Results: Very good.  Walks and turns well.  Accidentally discovered that it walks backwards too if enter a negative value for the waist twist angle parameter.

    Determined optimal parameters:
     - Step Size: 30 deg
     - Waist Twist Angle: 30 deg
     - Turn Coupling Ratio between front and rear: 1:1

    Issues Remaining:
     - Very sensitive to balance of Palm and batteries.
     - Twist servo control horn is not splined to center when level
     - Pretty heavy.  Would be nice to eliminate 9v batt (and maybe Palm batts?)
     - Probably should make a stronger waist joint so don't rely totally on servo

    Issues Overcome:
     - Serial cable Palm connector was unreliable: replaced homemade connector with actual Palm connector.
     - Feet sliding:  Added shoes of Latex tubing

    Other Tasks:
     - Eliminated power cord switch.  Installed Futaba J male connector on SSC card.

    Planed improvements:
     - Rebuild frame using foamboard instead of cardboard.  Design in
         mounting locations for sensors
     - Use either BS2 for sensor processor or replace the SSC with a Pontech SV203c that has input processing also.
     - Add forward/reverse flag to sscWalk3 function and querry.
     - Graphic control software & map following
     - Add wiskers
     - IR sensors
     - platform for more stable mount of Palm
     - handheld IR xmitter (maybe another Palm?) to send commands
     - Use BasicStampII as alternate controller.  Add IR reciever so can use Palm
          as transmitter.
     - floor edge detectors so can demo on tables w/o falling off.
     - Sound generator (could use Palm to make some sounds) using Killer keychain
     - Laser pointer
     - Coil-gun (on servo, aimed with laser)

    Back to Jeff's Robots page
    Back to Jeff's Home page