Autonomous robot project email blog

This robot is my first electronics and embedded systems project. I studied Electronic Circuits and Applications by Senturia and Wedlock for six months and then rebuilt and cross compiled my home computer systems with a Linux From Scratch book to prepare for it. This project is also the first time machining moving parts (as simple as the front suspension is, the parts do move).

I've maintained what a friend referred to as an “mail blog” during the project. After some progress or discovery, I emailed a status report of sorts, usually with pictures and (rarely) movies attached. A coworker convinced me there is value in these emails as artifacts of the project history.

What is most interesting from the mail blog are the technical misconceptions and classic mistakes I made throughout the project.

One example is the waterfall project model I fell into initially. I felt I was minimizing risk by extensive planning. What I was really doing was wasting time. Any plans I came up with were more than likely to be pure guesswork. Time would have been more productively spent in investigation and prototyping.

Another example is a tendency to rush to the solution. I kept packaging untested electronics, assuming that it was working. The electronics were subsequently discovered to be faulty which then required hours to disassemble enclosures and remove the boards.

The worst mistake was to “work harder, not smarter”.

These are classic engineering syndromes: waterfall development models, not testing and declaring victory, overwork without increased productivity, etc. Even with total control over this project, I fell into the patterns of failure engineers usually attribute to management. I believe this is human nature.

06/27/06

more road segmentation

roadseg20060626.mpg


06/24/06

road segmentation with YUV chroma

roadseg20060624.mpg

Road segmentation works!

06/15/06

code keeps shrinking



06/07/06

steering strategy

design20060606.png


06/02/06

new remote control

img2905.jpg


05/24/06

opencv cross compiled



05/23/06

big insight into stanley's vision system


Realized how primitive robots are today

05/15/06

cloning Stanley's adaptive vision system



05/13/06

image segmentation and classifier problems

img2896.jpg


05/10/06

robot is a platform for the vision system



05/03/06

monocular road edge estimation

drive02.mpg


04/25/06

need adaptive vision

drive01.mpg

Image processing is main problem now



img2888.jpg




oil2826.mpg

Old movie made 04/06/06

04/22/06

real time in user space

design20060422.jpg


04/20/06

exactly why the control system failed



04/20/06

full pipe buffers caused control system failure



04/18/06

robot crash (long)

img2883.jpg




img2884.jpg




design20060418.jpg


04/16/06

heisenbugs force real time code rewrite

mvi2875.mpg


04/12/06

drive by wire and buildrobot



04/12/06

bit banged serial completely solved



04/06/06

mockup of monocular image processing

oil2826.mpg


04/04/06

all good, works better than expected

mvi2869.mpg

Motor control ok



img2870.jpg


04/03/06

no black magic for bit banging

img2864.jpg




img2865.jpg




img2867.jpg


04/01/06

black magic makes bit banging work



03/29/06

bit banging was a mistake



03/25/06

char device write causes pthread context switch


Motor control issues return

03/23/06

robot must drive itself

design20060323.png


03/21/06

real time spaghetti code



03/20/06

working efficiently



03/17/06

driving in a parking lot

mvi2826.mpg

First cool driving video

03/17/06

limited time makes decisions

img2823.jpg




img2824.jpg




img2825.jpg


03/15/06

first successful driving test

img2809.jpg




img2811.jpg




img2814.jpg




img2816.jpg




mvi2810.mpg




mvi2812.mpg




nightrun01.mpg


03/13/06

need reactive development

img2795.jpg




img2796.jpg




img2797.jpg




img2798.jpg


03/11/06

science place

img2771.jpg




img2773.jpg




img2778.jpg




img2782.jpg




img2785.jpg




img2790.jpg


03/10/06

network camera mounted

img2769.jpg




img2770.jpg


03/09/06

demo driven development

img2761.jpg


03/08/06

ackermann skid steering


Begin extreme development?

03/07/06

what pid control is

img2760.jpg


03/04/06

numerical control software



03/03/06

robot depends on low bandwidth vision



02/28/06

this robot is unconventional

brainofstanley.png




softarch.ver2a.png


02/23/06

software mental block is gone

softarch.ver2.png


02/20/06

plan for software development

img2725.jpg


02/20/06

backup strategy and numerical technology



02/12/06

driving robot with remote

img2701.jpg

First time driving robot



mvi2703.mpg




mvi2705.mpg




mvi2708.mpg


02/11/06

lessons of stanley



02/08/06

DPRG

img2668.jpg




img2671.jpg




img2694.jpg


02/04/06

photo session in the park

img2592.jpg

Second time robot in public



img2637.jpg


02/03/06

robot hardware done

img2584.jpg

Hardware done



img2585.jpg




img2586.jpg




02-19800521081842-00.jpg


01/31/06

schedule off by two weeks but looking good

img2579.jpg


01/27/06

SLA battery and new steering motor

img2573.jpg




img2575.jpg


01/24/06

replace battery packs and steering motor

img2570.jpg




img2572.jpg


01/23/06

electronics voltage requirements

img2568.jpg


01/22/06

more mechanical assembly

img2563.jpg




img2567.jpg


01/20/06

drill motors wired and USB DMA options

img2560.jpg


01/18/06

battery tray and power/performance tradeoffs

img2556.jpg




img2559.jpg


01/17/06

battery tray and power output

img2554.jpg




img2555.jpg


01/16/06

carry handle and mission x

img2547.jpg




img2549.jpg


01/13/06

stereo camera configuration and force protection

img2542.jpg




img2543.jpg


01/11/06

orthodox sensor approaches

img2528.jpg




img2530.jpg




img2532.jpg




img2535.jpg


01/07/06

lasers disassembled ; fiberglass insect screening

img2523.jpg


01/04/06

mockup design study

img2517.jpg




img2518.jpg




img2522.jpg


01/04/06

electronics and battery mount solution ; urban grand challenge ; undervolting radios

img2510.jpg




img2511.jpg




img2512.jpg




img2513.jpg


12/30/05

radios ok ; driving around with gps ; stanford's touareg

img2490.jpg




img2496.jpg




img2498.jpg




img2499.jpg




img2505.jpg


12/27/05

radio in a penguin peppermints tin

img2483.jpg




img2485.jpg




img2486.jpg


12/26/05

GPS works and electronics grade silicone

img2476.jpg




img2477.jpg




img2481.jpg




img2482.jpg




marvin.wav


12/22/05

radios and website

img2473.jpg

Website marketing begins



img2474.jpg


12/16/05

serial interfacing



12/12/05

no subject

img2440.jpg




img2441.jpg




img2455.jpg




img2444.jpg




img2445.jpg




img2446.jpg




img2449.jpg




img2453.jpg


12/05/05

RS-232 to TTL serial level converter

img2438.jpg




img2439.jpg


11/30/05

runaway safety and corrections

img2426.jpg

Motor control done



img2427.jpg




img2435.jpg




img2436.jpg


11/28/05

motor control board done

img2418.jpg




img2419.jpg




img2420.jpg




img2422.jpg


11/23/05

motor control board update

img2412.jpg




img2414.jpg




img2415.jpg


11/20/05

steering circuit on motor control board

img2408.jpg


11/15/05

motor control design final

img2399.jpg




img2401.jpg




img2404.jpg




img2405.jpg




img2407.jpg


11/14/05

motor control for steering motor is ok

img2397.jpg




img2398.jpg


11/10/05

why motor control circuit doesn't work


Motor control redesign

11/09/05

more excitement - motor control board not working

img2395.jpg

Crisis

11/07/05

microcontroller passes QA

img2393.jpg




img2394.jpg


11/06/05

firmware development done



11/04/05

firmware



10/28/05

serial protocol between computer and microcontroller



10/27/05

serial comms ok

img2391.jpg


10/25/05

bit banging serial output

img2389.jpg


10/05/05

small enlightenment in electronics

img1859.jpg




img1860.jpg


10/02/05

electronics box almost done again

img1850.jpg




img1851.jpg




img1852.jpg


09/28/05

robot project status



09/23/05

inconsistent GPIO pinout

img1843.jpg




img1846.jpg


09/21/05

moderate progress this evening

img1842.jpg


09/18/05

modified usb card

img1839.jpg

Simple but effective hack



img1841.jpg


09/16/05

board is ok

img1838.jpg


09/15/05

computer setback

img1836.jpg




img1837.jpg


09/08/05

100 hours a week and interface architecture

img1834.jpg

Working harder, not smarter

09/07/05

the instek isn't nearly as nice as the tektronix

img1831.jpg




img1833.jpg


08/30/05

people think I work at Fry's (no pictures, sorry!)



08/28/05

analog electronics is rocket science

img1828.jpg

Decided to purchase an oscilloscope

08/25/05

got board back in

img1823.jpg




img1824.jpg


08/24/05

had to take board out

img1807.jpg




img1808.jpg


08/23/05

electronics are embarrassing

img1801.jpg




img1805.jpg




img1806.jpg


08/20/05

almost done with electronics

img1791.jpg




img1792.jpg




img1793.jpg




img1796.jpg


08/16/05

more robot electronics

img1753.jpg




img1756.jpg


08/05/05

wirewrapped electronics

img1745.jpg

Motor control board fabrication begins



img1746.jpg




img1748.jpg




img1749.jpg




img1751.jpg


07/30/05

development is not research


Critical mistake – decision to fabricate motor control board instead of prototyping despite lack of experience

07/28/05

circuit boards are cost efficient

img1742.jpg




img1744.jpg


07/26/05

heatsink size comparison

img1741.jpg


07/25/05

fan and intake/exhaust holes

img1735.jpg




img1738.jpg




img1739.jpg


07/20/05

better view

img1732.jpg




img2734.jpg


07/19/05

electronics box

img1725.jpg




img1726.jpg




img1727.jpg




img1728.jpg




img1730.jpg




img1731.jpg


07/15/05

added rj-45 serial ports

img1721.jpg




img1722.jpg




img1723.jpg




img1724.jpg


07/12/05

heatsinks

img1682.jpg

Ridiculous thermal and electrical design



img1685.jpg




img1688.jpg


07/06/05

terminal block added to enclosure

img1670.jpg




img1673.jpg




img1674.jpg




img1678.jpg




img1680.jpg




img1681.jpg


07/04/05

electronics enclosure

img1657.jpg

Electronics packaging begins



img1659.jpg




img1661.jpg




img1662.jpg




img1663.jpg




img1664.jpg




img1665.jpg


07/01/05

robot update

img1653.jpg

Second vehicle mature



img1654.jpg




img1655.jpg


06/27/05

doing things the hard way

img1649.jpg




img1651.jpg




img1652.jpg


06/23/05

robot vision, where I'm starting from



06/23/05

Re: mechanical and electrical design not independent



06/23/05

mechanical and electrical design not independent

img1646.jpg




img1647.jpg




img1648.jpg


06/17/05

battery and electronics tray

img1634.jpg




img1639.jpg




img1640.jpg




img1643.jpg




img1645.jpg


06/15/05

RE: steering gearmotor connected



06/10/05

iron bones framework



06/08/05

steering gearmotor connected

img1621.jpg




mvi1616.avi


06/05/05

robot outdoors part 2

img1605.jpg

Field mockup boosts morale



img1609.jpg

First time robot in public



img1612.jpg




img1614.jpg


06/05/05

robot outdoors part 1

img1597.jpg

Field mockup boosts morale



img1601.jpg

First time robot in public



img1602.jpg




img1603.jpg




img1604.jpg


06/01/05

got front wheels back on

img1593.jpg




img1594.jpg


05/30/05

front end structural failure

img1591.jpg

Epoxy bond fails – not unexpected



img1592.jpg


05/28/05

robot drivetrain

img1589.jpg


05/24/05

motors and right angle drives

img1587.jpg




img1588.jpg


05/23/05

drive train messy work

img1580.jpg




img1586.jpg


05/19/05

robot four wheels on floor

img1577.jpg




img1579.jpg


05/13/05

robot pictures

img1571.jpg




img1572.jpg




img1574.jpg




img1576.jpg


05/06/05

front end suspension and skb case

img1561.jpg




img1563.jpg




img1570.jpg


04/26/05

panasonic tool case converted to hold laptop

img1543.jpg

Waste of time distraction



img1544.jpg




img1545.jpg




img1546.jpg




img1547.jpg




img1554.jpg


04/19/05

mockup of front end

img1542.jpg


04/18/05

aluminum parts

img1540.jpg


04/15/05

mobile but not rugged



04/08/05

unnecessarily precise fabrication

img1528.jpg




img1529.jpg


04/06/05

satellite imagery for mission plan



04/06/05

higher precision now

img1526.jpg


04/04/05

started fabrication of robot

img1514.jpg

Second vehicle fabrication begins



img1515.jpg




img1520.jpg




img1521.jpg




img1522.jpg


04/02/05

robot's name is hardtail

tcsnap20050402a.jpg

CAD design paralysis ends



tcsnap20050402b.jpg


03/31/05

minor simplification

tcsnap20050331.jpg




tcsnap20050331a.jpg




tcsnap20050331b.jpg


03/28/05

using ammo boxes for body

tcsnap008.jpg




tcsnap009.jpg


03/27/05

no subject

tcsnap007a.jpg




tcsnap007b.jpg




tcsnap007c.jpg




tcsnap007d.jpg


03/23/05

front suspension in a short movie

movaaa01.jpg




movaaa09.jpg




movaaa17.jpg




movaaa.avi


03/18/05

front suspension at 80 percent

tcsnap006.jpg


03/17/05

two front wheels together

tcsnap005.jpg


03/15/05

more front suspension

tcsnap004.jpg




tcsnap004b.jpg


03/13/05

exploring design space with CAD

tcsnap003.jpg


03/11/05

robot - town east mall and home depot

img1512.jpg




img1513.jpg




tcsnap001.jpg




tcsnap002.jpg


03/09/05

front wheel linkage

img1508.jpg

CAD design paralysis begins



img1509.jpg




img1510.jpg


03/06/05

starting over from scratch with vehicle platform

img1506.jpg

First vehicle scrapped



img1507.jpg


03/04/05

motors mounted and all metal degreased

img1498.jpg




img1505.jpg


02/27/05

latest mockup

img1441.jpg




img1442.jpg




img1443.jpg


02/26/05

Re: front end using square tubes



02/25/05

front end using square tubes

img1430.jpg




img1431.jpg


02/22/05

front and rear suspension

img1426.jpg




img1427.jpg


02/20/05

rear suspension simplified

img1423.jpg




img1424.jpg




img1425.jpg


02/18/05

using the lathe

img1405.jpg




img1407.jpg




img1413.jpg




img1415.jpg




img1418.jpg




img1422.jpg


02/09/05

battery pack and motor with wheel

img1402.jpg

First vehicle fabrication begins



img1403.jpg


02/09/05

Re: one side of motor drive circuit ; universal gender serial cable



02/09/05

Re: one side of motor drive circuit ; universal gender serial cable



02/09/05

RE: one side of motor drive circuit ; universal gender serial cable


Reality check – a laptop is necessary

02/08/05

one side of motor drive circuit ; universal gender serial cable

img1400.jpg




img1401.jpg


02/07/05

slept too much



02/04/05

figured out gyro



02/01/05

rate gyro interfaced to microcontroller

img1394.jpg




img1395.jpg


01/31/05

selective tasking in robot project



01/29/05

Re: DDD running a remote dbx session

img1393.jpg


01/28/05

RE: power supply issues

img1393.jpg


01/27/05

servo is bad

img1392.jpg


01/26/05

power supply issues

img1387.jpg




img1390.jpg




mvi1391.avi


01/25/05

interfacing logic to servos

img1384.jpg

Should have obtained an oscilloscope at this point

01/21/05

Re: microcontroller programmer



01/21/05

microcontroller programmer

montage3.jpg


01/19/05

embedded board booting linux

img1377.jpg




img1378.jpg




img1379.jpg




img1380.jpg


01/12/05

finally got bootdisk working



01/10/05

bootdisk difficulties



01/05/05

nintendo gamecube control potentiometers

img1368.jpg




crop1372.jpg


01/02/05

soekris board

img1361.jpg