Richard Irons April 10, 2003
91.548 Robotics I
Presentation, HERO 2000
The HERO 2000 was a robot created by Heathkit Educational Systems for educational purposes as well as for hobbyists. The HERO had many interesting features and was fun to work with, but unfortunately, new HERO's are no longer being produced. Production of the HERO ended in the late 1980's. I was first introduced to the HERO while an undergraduate Computer Science major at Boston College. I took a course in Robotics where I learned the features, nuances, and problems of the HERO.
The HERO 2000 weighed 78 lbs. and had dimensions of 32.4 inches high, 16.5 inches wide, and 22.5 inches long. It had an 8088 microprocessor, 64k of ROM, and 24k of RAM expandable to 576k. The HERO also supported a remote console. The remote console allowed BASIC programs to be entered and transmitted to the HERO. The remote console could operate either directly connected to the HERO or it could operate remotely. The HERO also possessed a keypad that allowed control of the HERO. The keypad could be used to directly control the movement of the HERO. The keypad also controlled the execution of programs and enabling of debugging modes.
The HERO possessed numerous features. These features included a robot arm, a four-wheel drive base, and numerous sensors. All of these features could be controlled using BASIC commands. The HERO possessed a complete BASIC interpreter that also included commands for controlling all of the HERO's features. The BASIC interpreter resided in the HERO's ROM.
The HERO accomplished movement by a four-wheel drive base. The four wheels were arranged in a diamond configuration. The wheels provided a maximum pulling force of 26 lbs. The "RHT" and "LFT" BASIC commands (see HERO BASIC Commands table) provided control if the wheels. The HERO's robot arm was controlled by a variety of BASIC commands. These commands were the "ARM", "ELBOW", "WRIST", "GRIP", and "FORCE" commands. The "ARM" command controlled the robot arm from the shoulder of the robot. The range of the arm was 0 to 120 degrees. The entire robot arm was servo motor controlled with six axes of motion. The "ELBOW" and "WRIST" commands were also used to control the robot arm. The arms elbow had a range of 0 to 180 degrees. The wrist had a roll range of 180 to -179 degrees and a pitch range of 180 to -90 degrees.
Finally, the gripper on the robot arm was controlled by two different commands. The "GRIP" command controlled the opening and closing of the robot arm's gripper. Valid values for the gripper were 0 (closed) to 9 (fully opened). The "FORCE" command was also used to control the gripper. The "FORCE" command controlled the amount of force exerted by the gripper. Valid values were -6 to 8. Negative values opened the gripper and positive values closed the gripper.
In addition to the HERO's base movement and arm movement commands, the torso of the HERO could also be moved. The range of the torso movement was 180 to -165 degrees. The "HOME" and "MPOS" commands were also useful movement commands. The "HOME" command placed all axes of motion into their respective home positions. The "MPOS" command returned the current position of any of the movement motors.
The HERO was also equipped with numerous sensors. The sensors were supported in BASIC with commands to query the sensor values. The HERO supported sensors for temperature, sound, light, and sonar. Two sonar sensors were provided with the HERO. The head sonar rotated while the base sonar was stationary. Both sonars had a maximum distance of 127.5 inches and a 0.5 inch resolution.
Another interesting feature of the HERO was its speech capabilities. The HERO supported two basic speech commands. The commands were the "SAY" and "SPEAK" commands. The "SAY" command would cause the HERO to speak the words specified by the "SAY" command. The "SAY" command also allowed words to be spelled out phonetically since using plain text for the "SAY" command might result in words being mispronounced. The "SPEAK" command was the same as the "SAY" command except that plain text was not allowed. Everything in the string argument of the "SPEAK" command is assumed to be a combination of mnemonics and attribute specifications. Both the "SAY" and "SPEAK" commands supported amplitude, duration, inflection, notes, filter frequency, modes, rate, and articulation attributes.
The rich set of features of the HERO was probably the HERO's biggest strength. These features contributed to making the HERO a valuable education tool with an interesting design. Despite this significant strength, the HERO had a number of weaknesses. One weakness was that the HERO broke down often, making the HERO unreliable. The sensor and movement capabilities of the HERO were also rarely accurate. The same sensor or movement command on different robots often produced different results. Another weakness of the HERO was that only technical people were able to do anything worthwhile with the robot.
HERO BASIC Commands
Command Syntax Description
RHT <distance>[,<speed.][,$] Move right base motor
LFT <distance>[,<speed.][,$] Move left base motor
ARM <degrees>[,<speed>][,$] Move arm at shoulder
ELBOW <degrees>[,<speed>][,$] Move arm at elbow
WRIST <pitch> <roll>[,<speed>][,$] Move gripper wrist
GRIP <value>[,$] Open/close gripper
FORCE <value>[,$] Gripper force
TORSO <degrees>[,<speed>][,$] Move torso
HOME Place all axes of motion into home position
MPOS(X) Return current position of motor X
TEMP Return temperature in degrees Fahrenheit
SOUND Return sound level reading
LIGHT(<expression>) Return relative light reading
SONAR(<expression>) Return head sonar reading
SONARB Return base sonar reading
SAY"<plain text>" Say plain text or mnemonic expression
SPEAK"<string>" Speak mnemonic expression