an Outdoor Robot

Copyright: Copyright 2007 Dean Hall. All rights reserved.
Author: Dean Hall
Revision: 03
Date: 2008/01/16


Picture of vehicle with electronics and minimal body

Argonaut is my first attempt to create a robot meant for outdoor use. The primary purpose of Argonaut is to compete in the SHARP Dry Run and DPRG Long Haul competitions.

Here are more details on Argonaut's:


The chassis and drivetrain are in place. The microcontroller, motor driver and motor encoders are connected and the vehicle can move under PI control. The GPS and digital compass are connected and delivering data. Sensors are being added and mounted as the upper decks of the vehicle are built.


The HMC6352 digital compass is connected and delivering data via bit-banged I2C. I have configured it to take continuous readings at 5 Hz (to match the rate of my sensor task). [I have skipped a few reports about getting PI control and GPS/NMEA data collection and parsing working. Short story: they work.]
At the SHARP meeting on Feb 9th, Argonaut rolled under PWM control for 10 feet as measured by the shaft encoders. PID control is working, but the constants are not yet tuned for when the vehicle is on the ground. Argonaut rolled under its own power for the first time on Jan 14th.
I discovered the HDOP field of the GSA sentence and learned its meaning. Looks like I'll be able to use this value to give the GPS position error variance which will be an input to the Kalman Filter
To test the speeds of different motors, I have made temporary connections between my ATmega103 board and my motor driver. I use dip switches to set the PWM value and count and time wheel turns to get RPM. I finalized on a 25 year old motor from a Tamiya Frog RC car. It's still kinda fast and low on torque in the low speeds, but I'm hoping a PID control loop will cure that.
Ran across this tidbit of info I'll need for a motor encoder: Several Hall-effect switches from Phoenix America ( and Allegro Microsystems ( provide "open collector" outputs.
I did a quick calculation: Motor 60rpm, Gearbox 3:1, Tires 0.348m circumference = theoretical top speed 0.116 m/s (10-20x too slow). So I can't use the Pittman motor and the Kyosho gearbox together. To stay on the cheap side, I'll see if the old Kyosho motor still works. If it does, then I'll have to figure out how to do encoders later.
I ordered two MaxBotix LV-MaxSonar-EZ0 ultrasonic range finders and one HMC6352 compass module.
I've separated the EverMore GPS module from the USB half of its cable and appended a 4-pin male header to the serial end of the cable. I then connected the module to my Atmel STK500 and was able to echo NMEA sentence from the module into an ATmega8, back out to a level converter and to my computer for display. My hack assumption has turned out to be correct!
I ordered two MaxStream Xbee Series 2 modules from Digikey and a USB carrier and a +5V breakout carrier from
Since my last entry, I did a lot of work on comparing the GPS sensors. I also bought new tires and rims for my old RC car and installed them.
I'm comparing readings from my Holux module to coordinates I get from Google Earth. When I'm indoors, the readings are off by as much as 124 meters. Outside, the error reduces to 8.4 meters or less.
I installed the Mac OS X device driver for the Holux USB bridge chip. This lets me access the Holux module from /dev/cu.usbserial. I've started some python scripts to read from the module and parse the NMEA sentences.
The GPS units and parts for UsbProg-SHARP arrived while I was away visiting family. Preliminary examination suggests the EverMore uses a serial-to-USB converter in a pod built into the cable. Next step, figure out how to play with the GPS units from a Mac.
After sleeping on it, I think that spending $3K on a hobby is pretty steep for a first attempt. I am reserving the right to retain this budget for later attempts. The low budget plan is now in effect.
Created a budget. The grand total is $3000; where half of that is for the IMU.
Started the system architecture. Borrowed heavily from Stanley
Started preliminary planning for this project. Gave it the name, Argonaut.