In the interview, Linus was asked what advice he had for people undertaking large open source projects (he should certainly know). I won't quote his entire response (read the interview if you want to see it), but basically his advice can be summed up thus: Don't bite off more than you can chew. Here are a couple of the best quotes from his answer:
- start small, and think about the details
- if it doesn't solve some fairly immediate need, it's almost certainly over-designed
I realize that I've reached a point with the Open Automaton Project where it would be very easy for me to think "too big", and spend the next two years on some fanciful grand design for the software architecture. But I know that if I were to go in that direction, the project might never be finished.
Instead I'm going to tackle a few specific tasks that will make OAP immediately useful.
The first, most pressing task, is to write a simple Player driver for the robot that fits in with Player's existing interfaces. Any OAP functionality that can't be made to fit the Player interfaces will simply be left out of the driver initially. For a while I've been thinking about complicated strategies for trying to shoehorn OAP's capabilities into the Player interfaces, but I now believe that approach was wrong. Player provides a pretty comprehensive set of interfaces for general purpose mobile robotics, but some of OAP's capabilities currently just don't fit the Player model. For example, one of the ultrasonic distance sensors is mounted on the pan & tilt head, and three of them are pointed at an angle towards the floor in front of the robot, and these things cannot be easily modelled in Player. Also, the pan & tilt head-mounted passive infrared human body-heat sensor cannot be easily modelled in Player either.
By getting a Player driver up and running (even without all of OAP's sensors integrated), this will allow the robot to be immediately useful by leveraging some of the Player-compatible applications and algorithms that have already been developed.
Printed circuit boards
I'd like to take this opportunity to publicly thank Scott Crawford for the contributions he has made to the Open Automaton Project in the past year. He has contributed two-sided printed circuit board layouts for the hardware modules, which I am currently integrating into the official project code in readiness for the next official OAP release. His work will certainly lower the bar for folks interested in building their own OAP-based robot.
A home at last!
I've been settled in my new home for nearly three months now. It was exactly a year ago when I stepped back on British soil after living in California for nearly five years prior to that. It has taken three attempts to buy a house here (the sellers unilaterally withdrew from the sale on the first two attempts). After all the chaos of house hunting, abortive house purchases, and finally moving in, which involved organising the transport of our belongings from LA (where they had been in storage since we moved from the States), only now, one year later, do I finally feel that life is back to normal.
Now that there is a semblance of normality in my life, I will be getting back to doing the things I enjoy, which includes robotics of course, so expect to see more from Mr. Davbot soon.