Linux Robot – Watch this space

I’ve been struggling to think of a good project to start on. I’m currently writing the APNIC Box series here, and I’m on part 4 of maybe 7 or 8 right now. I like to keep at least one personal project of interest on the go at a time so back to struggling for inspiration.. Feel free to tell me that this is an awful idea and suggest something else, but until I hear otherwise I’m going to roll with it.

Linux Robot – Requirements

Here’s what I’m thinking. Small embedded device, way smaller than the Mikrotik 532a used for the APNIC Box. The board will need USB [as we're going to use the 5v for charging later]. I’d like to start with a powerful enough board that it can be expanded later with relative ease.

The device will initially have few inputs and outputs. It will support miniPCI, USB, Serial Console, CF card, GPIO or some other good method for controlling a relay board and some motors. The device will have 4 small wheels, maybe rubber [old mouse] balls instead and some ultrasonic sensors, 4, 6 or 8.

The hardware will be flexible enough for really powerful software control. The OS running on the device will of course be Linux, and will have the ‘robot software’ loaded onto the CF card. The device will accept USB ‘programs’ to be uploaded and downloaded. These programs will have full access to the sensors, wheel relays, LEDs, battery information, etc.

I’d like to power the device by a reasonably small and light 4.2v? battery, it will accept charge from a 5v USB source.

The USB source will be mounted in some kind of housing that the device can very easily and clumsily fit in to. Both the USB source device/charger and the robot itself will contain a radio [definitely 802.11g later], but for now a simple FM oscillator would probably be good. The software will also have access to this radio. The device will maintain contact with it’s base station. IR won’t be any good here as the device needs some kind of a range. I’ll need to assess the practicality of range vs hardware.

The key initial wow factor will be the fact that the device upon reaching a certain battery charge threshold will seek out and return to its base for automatic charging.

The device will need some kind of cache – it’s last 100 actions where an ‘action’ might be 100msec of wheel movement. Should the device lose its base station, it should attempt to start reversing those actions until it reaches the base station. It will also require some basic common sense as to roughly how it got to wherever it’s sitting so it can reverse on it to locate the base station rather than aimlessly getting lost.

One of the important aims of the device is that it’s capabilities are only realistically limited by the software instructions we upload to it, and not it’s hardware.

I would like the hardware to at minimum be capable of expanding to more advanced hardware, such as the wifi mentioned above, maybe an IR transmitter, etc, etc. As we all know once the hardware is set up and we have a solid OS on board, the possibilities are endless.

I’ve found a few similar projects out there:

http://www.linuxjournal.com/article/9103

http://www.neonbox.org/linuxbot/linuxbot.html

http://www.linuxfocus.org/English/May2001/article205.shtml

These projects look great but don’t really seem to address what I want to build here. I’d really be interested to know of any similar project or resources already out there.

I’ve scattered some initial ideas down here and would really welcome for some feedback on this. The first step is going to be to lay out some more solid ideas and milestones and then start sourcing a board. I’m also going to have to build schematics and hardware prototype boards for portions of it and interfaces between the various child boards in side.

Discuss this article here http://www.adamsinfo.com/forum/linux-robot/linux-robot/

Excited,
Adam

Tagged with: , , , , , , , , , , , ,
Posted in Projects, Robot, Technology
10 Comments » for Linux Robot – Watch this space
  1. Lee says:

    You’re insane, but I love it. Good luck on the robot.

  2. Tor Magnus says:

    Have you considered gumstix? It may not have quite the power you’re looking for, however with such a small size you can use more of them. :)

  3. Adam Palmer says:

    Lee – Thank you!

    Tor – I came across Gumstix and had a look around their offerings, they seem a little expensive for what they do (although they are really compact and nice looking), and they also don’t seem to be able to stack together in a format that really allows me complete power over the hardware.

    I’ve been looking at BEAGLEBOARD as a possible candidate. Very small, but very powerful and flexible as a main board. Any thoughts?

  4. Vibhav Sharma says:

    For the return to base station functionality, you could use GPS data along with gyroscope/accelerometers to keep track of where you have to return to.

  5. John Tilghman says:

    Have you seen: http://www.virtualcogs.com/

    JT

  6. Phil. says:

    Hi Adam,

    take a look to Fox Board: http://foxlx.acmesystems.it/?id=4

    Phil.

  7. Adam Palmer says:

    Thanks Phil and John, just added these suggestions in the forums.

    Vibhav: I’m intending this to be a small device with a reasonably small range. I think that GPS will be too inaccurate for positioning. There’s no reason why it can’t be made bigger though..

  8. Steffen Möller says:

    Hello, there is a bunch of individuals flocking around Debian-Science who now think about organising their knowledge, skills and discussions on Debian-Robot issues at http://wiki.debian.org/DebianRobot. Maybe you find some peers to start thinking wild there.

    Steffen

  9. Adam Palmer says:

    Steffen, I can’t believe that I haven’t seen that resource before. It’s fantastic and has prompted me to think about building a larger unit. I’ve written some more thoughts in the forums about this.

  10. Tor Magnus says:

    Adam – Gumstix does indeed seem a little expensive, however I’ve not yet really seen anything else that’s as complete and as compact. I’ll admit I’m not that knowledgeable about robotics hardware (yet, I have some plans for a flying robot), but from what I could make out about gumstix it would enable me to add all components I would need in a small and lightweight (important for flying) package, price is not so much an issue. I’m not sure I understand how you want to stack things together to get more power over it?

    From what I can make out of the Beagleboard it seems quite complete. However I would have to point out that the graphics capabilities of it seems quite wasted on a robot and would indicate it’s more aimed towards handheld or info-kiosk type developments.

2 Pings/Trackbacks for "Linux Robot – Watch this space"

Leave a Reply