'MULTITASKING IN A ROBOT'
I am planning to start building a six-legged robot walker during the
summer this year.. mainly to do some experimenting with subsumption
architecture. I recently bought "Mobile Robots".. a really excellent
book. I was thinking of applying the basic 'rug warrior' concept to a
walker, using 3 PIC16C84's (2 legs=4 RCservos to a PIC) and a 68HC11
main controller (well, there isn't really a main controller as such
since all the "behaviours" run in parallel anyway). I'm quite keen on
using interactive C for the 68hc11, and allowing the processors to talk
via a simple tx/rx serial bus with some kind of addressing/conflict
avoidance system (still to be figured out properly).
Has anyone had any experience with this kind of thing? Any hints on
doing small amounts of preemptive multitasking on a 16C84? (-don't
laugh!) I'd like to get the PICs basically controlling the servos,
generating the required pulses (pity the '84 doesn't have the
input/output capture facilities of the 68hc11) and running a couple of
AFSMs that allow the robot to balance and walk. The 68hc11 would handle
data from the sensors and run the coupled 'sensory' behaviours (eg.
avoid wall, follow light, hide etc.) in parallel, sending commands to
the walk AFSMs on the PICs. Any hints/suggestions on any of this?
In time I'll hack into the servos to get at the 'error' voltage so that
I can integrate some kind of force feedback into the system (may have to
add another PIC to handle this.. but that's the beauty of subsumption I
guess; just plug in another processor!)
Any suggestions/complaints etc. about any of the above would be greatly
appreciated. Especially stuff on the multiprocessor-programming front!
* RM 1.2 * Eval Day 527 * "Do not adjust your mind, there is a fault in reali
|David Howey wrote:
> Greetings PIClisters!
> I am planning to start building a six-legged robot walker during the
> summer this year..
> (Very Big Snip)
Hi David, I have writen some code to control R/C servos for the 16c84 If
you are interested I can send it on to you. The project was designed to
pan and tilt my Qcam and takes its input from an old Sega Joypad. The
timing loops will alow up to 4 servos to be controled per 16C84. As for
controling the "gate" of the robot walk you might like to try
implimenting a "Walking Bitmap" modifing the run time of each gate to
give you directional control of the robot through pulse adjustment of
the individual gate run times.
Cheers Peter ..........
| Listen to the Nothing, child, |
| Listen to the Don'ts |
| Listen to the Never Haves |
| The Shouldn'ts, and the Won'ts |
| Listen to Impossible |
| then listen close to me: |
| Anything can happen, child, |
| ANYTHING can be. |
| Poem by Sal Silverstein |
>walker, using 3 PIC16C84's (2 legs=4 RCservos to a PIC) and a 68HC11
>(pity the '84 doesn't have the input/output capture facilities of the 68hc11)
I suggest using a PIC16C72 with a 74259 to send the output. This will
extend your output abilities quite a bit, plus you get 1uS resolution with
4 MHz osc.
>In time I'll hack into the servos to get at the 'error' voltage so that
>I can integrate some kind of force feedback into the system (may have to
>add another PIC to handle this.. but that's the beauty of subsumption I
>guess; just plug in another processor!)
You could then use the A/D channels to read the position of each servo, all
in a single processor.
This is pin-compatible with a '73 to gain more code space and serial-comm
(SPI master/slave or I2C slave or standard rs-232/485).
Andy Kunz - Montana Design - 409 S 6th St - Phillipsburg, NJ 08865
Hardware & Software for Industry & R/C Hobbies
"Go fast, turn right, and keep the wet side down!"
More... (looser matching)
- Last day of these posts
- In 1997
, 1998 only
- New search...