amcdonley
Posts: 143
Joined: Mon Jan 26, 2015 5:56 pm
Location: Florida, USA

Rug Warrior Pi

Sun Jul 26, 2015 4:04 pm

Hello robo heads,

I've finally decided to get serious about updating the brain of my Rug Warrior Pro robot. There used to be hundreds of Rug Warrior and Rug Warrior Pro (RWP) robots scurrying about for university research, hobbyists, and education. My RWP robot is 15 years old now, and really needs to catch up to 2015 technology.

This is my bot "Pogo" photo album on Flickr: https://flic.kr/s/aHskgYejWe

(At the moment my Raspberry Pi B+ is playing OSMC attached to the living room television, and I am learning python via ssh.)

I started out thinking I would totally replace the RugWarriorPro brain board with a pi-plates dacplate, motorplate, and protoplate, but that seems too drastic. I'm now thinking to just remove the HC6811 processor and the character display, and just add level shifters and a MCP3008 DAC chip.

This would allow reuse of:
  • 7.2v 5000mah rechargeable C-cells
  • L/R motors (0.67f/s = 0.2m/s at 400mA)
  • 5v regulator (only 500ma so only useful on the rugwarrior board)
  • Motor Driver (two digital out and two pwm)
  • L/R Wheel Encoders (two digital in)
  • L/R Photoresistors (two analog in)
  • Bumper resister array
    (gives 1 analog input for 6 virtual bump directions)
  • L/R IR proximity sensors/oscillator/ir_detector
    (1 analog input for three directons)
  • Piezo Buzzer (digital out - annoying singing, beeps, siren sounds)
  • Mic/LM386 amp (analog in - never found use for it)
and the add-on sensors I have:
  • Sharp 10-80cm distance (1 analog input)
  • Temperature resistor (1 analog)
  • Pyro sensor (1 analog)
  • IR Remote Control (1 digital)
The existing HC6811 processor had some built in ADC analog to digital channels, so I will have to add an ADC chip, and level shifters if I keep the analog sensors at 5v. Haven't thought enough about that section yet.

The RugWarriorPro code library had assembly language PID motor control routines, so I am hoping to find that someone has written a Pi PID routine I can use from Python.

The RugWarriorPro only has about 32kbytes of usable program and data memory, but offers multi-tasking, static (global) variables for interprocess communication, and a good robotics function library. I have to investigate what Python robotics libraries exist, (after I finish UCS Python for Programmers.)

I'm hoping to get 6-8 hours compute time from my 3000mah rechargeable USB battery pack running the PI B+, and about 6 hours driving time. It probably won't be enough to leave the bot running while I go to work.

So that's the current plan for a brain update for my "Pogo". All pointers, comments and questions welcome.

Alan

amcdonley
Posts: 143
Joined: Mon Jan 26, 2015 5:56 pm
Location: Florida, USA

Rug Warrior Pi: Up alone all night

Wed Jun 15, 2016 2:00 pm

There is a natural anthropomorphism that happens when I spend a lot of time programming a robot. At first it is a just a bunch of hardware with no "life", but eventually I start to feel squeamish about issuing the shutdown command, like I am cheating an artificial intelligence (an AI) out of experiences. Ridiculous, but it happens.

Back in '99 and 2000, I programmed my Rug Warrior Pro bot for some of the "Vehicles: Experiments in Synthetic Psychology" , V. Braitenberg and wrote an article "I Sense, Therefore I Feel Moody (Behavior Management in Robots)"

There is a point at which I trust the robot will not harm itself if I leave it "experiencing" and turn my attention to something else for a while. Last night was that time.

I left it running two python programs - one the HC-SR04 ultrasonic distance sensor test. The second program is an analog pins test, running at sudo level. I have the 4-cell unregulated battery tap connected to ADC0 and my current sensor connected to ADC7. The two SG90 tilt/pan servos were holding at centers.

I started the programs after a full charge of the 7.2 v 5000 mAH cell bank last night, with the 4-cell tap reading 4.87v, and the system drawing 310mA.

This morning after 10 hours the system was at 4.5v drawing 335mA.

Based on "surviving" 10 hours without supervision, I decided to "leave the robot up", and left for work.

It will "decide on its own" to shutdown at 3.9 volts today, with the shutdown time on the remote terminal shell.

I'm starting to feel this is my robot's "ITS ALIVE!" moment.

Return to “Automation, sensing and robotics”