Return to main Projects page.
Nico-6 Hexapod Walker Project
Nico-6 is similar to our Nico-II quadruped walker,
but here the base has been lengthened to 9", and has 6 legs rather than 4.
The two extra legs greatly add to the stability of the platform, while incurring only a modest
penalty in additional mechanical complexity, given the particular leg design.
The platform is also very strong, and in tests, we have had it carrying around a 2.8-pound lead-acid
battery while using a regular tripod gait.
The strength is mainly due to the fact that the "pump-action" legs do not bend, and remain near to
being directly under the body at all times, and can easily carry a high compressional load.
Mobility over rugged terrain, however, will be more limited with this design than on a design with
articulated legs. Around the house, Nico-6 has great mobility.
Far Out! Nico won First Place in the Walking Robot Contest at
2006 Robothon-Seattle, held 1 October 2006
Gaits + Behaviors
walk forward at various speeds
left, right turns
linked behaviors - eg photovore, wall alignment, several play modes, Robothon walking course
9" long by 9" wide by 6" tall, not counting sensor extensions
fiberglass pcbs for upper and lower structural decks (extremely strong, yet lightweight)
6-legs (12 R/C servos, Hitec HS-322HD)
(1) NiMH 6-cell AA battery pack - for controllers and sensors
(1) NiMH 6-cell AA battery pack - for servos
weight: base = 42 oz (1190 gm), minus batteries and turret;
batteries = 12.4 oz (350 gm) for 12 AA-cells+holders
BOTCOP-WMC controller board
- Stamp area only used, with BS2e installed for general programmability;
selects and controls general behaviors via sensor-integration, and implementation of
a dozen or more timed-FSMs (finite-state machines)
WMC20 20-channel Walking Machine Controller board
- used as slave controller to BS2e, via local RS232 buss between pcbs; implements about 20 different gaits
and servo control sequences for pan+tilt operation, etc
between the 2 pcbs, we have 11 digital I/O lines and 4 A/D channels still available
(1) pushbutton switch for selecting operating mode, between standby, gait test, behavior execution, etc
voltage monitoring of both battery packs
pan+tilt servo platform
(1) Ping))) sonar - frontal, on pan+tilt
(2) Ping))) sonars - rear, for differential aligning
(2) CdS photosensors - for side edge-detection
(2) hi-intensity white Leds to illuminate CdS sense area
2.4-Ghz wireless video camera - mounts to flange on top of pan+tilt turret (not shown in pictures)
(2) Servo-Dogs - Led displays that operate from a standard 3-pin R/C servo connection,
used for servo pulsewidth calibrations,
plus mode displays (to signal operating mode, gaits, battery voltages, sonar measurements, etc)
See Nico Robothon Pictures|
(courtesy of Larry Geib)
Basic Stamp Source Code for Nico at Robothon
One downside to using the Basic Stamp for high-level control of Nico is that the Stamp doesn't have a really good
way to schedule foreground events to occur at "specific times" into a given sequence, while also performing many
other background tasks.
Therefore, we developed a prototypical timed-FSM (finite state machine) routine that we modified
for specific operations. For overall control, we strung a number of these FSMs together, to handle the
various stages of the Robothon walker course, eg start, wall approach, 180-deg turn, alignment for home,
return home, and end operations.
This code may be helpful to people who are new to extensive Basic Stamp programming
(like we were at the beginning of this project), as one possible way to implement scheduled operations.
Basic Stamp source code
view source code in text file format (18 Kbytes).
get source code in ZIP format from Download page.
In the control scheme used by Nico at Robothon, a Basic Stamp BS2e handles all sensor reading
(3 sonars, 2 battery voltages, mode selection switch, and edge-detectors - last not implemented for Robothon),
as well as selection+scheduling of behavioral control sequences.
The Stamp also acts as a master controller to the Walking Machine Controller (WMC), to select the appropriate
gait to use at any given time. It signals this to the WMC chip using a local RS232 buss, running at 38,400 bps.
This entails simply sending 4 ASCII characters over to the WMC - a negligible impact on Stamp operation.
The WMC then executes the gait, by controlling movements of up to 14 R/C servos, while the Stamp goes on with
reading sensors and making executive decisions.
The WMC gaits were developed independently of the Stamp code, with the WMC serial port connected to a PC.
For monitoring and debug purposes, the Stamp also sends a pulse periodically to one of the 2 Servo-Dog Led displays
to indicate: (a) operational mode, (b) logic and servo battery voltage, (c) distance readings for the 3 sonars,
and (d) gait being executed by the WMC.
The S-Dogs hold+display the information indefinitely, until updated.
The Led displays are especially nice, since you can read them from across the room.
The Basic Stamp sends only control information to both the WMC chip and the S-Dogs, so the source code
here doesn't specifically reflect the internal operations of either WMC or Servo-Dog.
Sensor Integration and Sonar Problems.
All of the major behavioral decisions of Nico6-Robothon were based upon sensor measurements.
This included approaching the wall, turning 180-degrees at the wall, orienting perpendicular to the wall,
and returning to home base while making compensatory attitude adjustments to stay on a straight course.
The main problem we had in getting Nico ready for the Robothon contest was in coming up with a set of
reliable sensors, that would work from over 80-in (200-cm) down to 3-in (8-cm) or less.
We first tried SRF-04 sonars, but discovered the one we had has a nasty side-lobe pickup, and
decided upon Parallax Ping))) sonars. These work very well, and are easy to interface, requiring
only 3 wires (+5v, gnd, and a shared trigger-signal pin).
We mounted 1 sonar on the front pan + tilt turret, and 2 on the rear-end for differential aligning with
respect to a wall. This arrangement works very well, except for one problem when turning at the wall, and
with the left-rear sonar close to the wall, and the bot at an angle of about 45-degrees to the wall.
Sometimes the bot will terminate the turn prematurely, apparently due to an overly-long distance measurement
resulting from multiple reflections (sonar-Tx to wall to back-of-bot to wall to sonar-Rx),
but this is just a surmise at present.
However, this has opened up a good reason to investigate sonar reflection properties in different situations.
We're planning to trouble-shoot the problem when Nico gets back from the west coast.
---[ more to come ]---
© Oricom Technologies, updated Oct 2006