This article was previously published on lhexapod.com as part of my journey of discovery into robotics and embedded assembly programming. A full index of these articles can be found here.
Hi, my name is Len Holgate and this is a blog about my new project to design and build a hexapod robot; a mechanical vehicle that walks on six legs…
By day I design and build high performance TCP and UDP servers for the Windows platform, my C++ technical blog is here: www.lenholgate.com. Up until a few weeks ago I’d never done any electronics or embedded programming; I decided that I needed a new hobby and so started tinkering with electronics, breadboarding and the like and, in what tends to be my typical approach to such things, I decided that the best way to push myself into this new hobby was to dive in to reasonably complex project. I started to put together a list of things that I wanted to include in the project and the list looked something like this:
- the end result should be an autonomous mobile robot that isn’t tethered to a PC and isn’t controlled by an operator.
- all electronics and control gear should be hand made from components rather than bought in (though I’m happy to use bought in things to prototype with as this will speed up the learning process, I hope…).
- all mechanical components should be hand made from components rather than bought in.
- communications between the robot and a PC and between the robot and other robots.
- some form of ‘vision’, most likely simple sonar or range finding.
- microprocessor controlled; programmed in C or assembler, I’m a C++ guy at heart and, for as long as I care to remember the platforms that I’ve targeted have been powerful and complex. I quite fancy learning about how to work on more limited platforms and perhaps even learning a decent amount of assembly language…
Initially the robot was to be wheeled but then I started seeing walking hexapod robots on the web and, well, they’re just way cooler than something with wheels and, quite possibly, way more complex both mechanically and from a programming perspective. I realise that the project is likely to take some time and that I have a lot to learn, but that’s the point. Like most projects I expect to break things down into manageable chunks and given the scope of the overall project the chunks should be quite varied. Ideally I’d like to run off and play with the communications side of things when I get bored fighting with servo motors and the mechanical side of things, etc.
So here we are. I’m currently gathering components for the project. So far I have decided to use an Arduino as my simple prototyping platform along with some AVR micro controllers for the main robot control gear. Of course my choice of AVRs may change once I have played around with programming them but they seem like a reasonable choice at this point. I’ve got three servo motors on order (HS-422’s) so that I can start work on a simple leg. I have a couple of XBee radio modules on the way as these look to take the pain out of the communications side of things but I may drop back to using simple RF transmitters and receivers if the XBee’s are too heavy or power hungry.
So, off to build a robot then…