Table of Contents

Foreword

I started this project on May 08 as a hobby, in order to learn something new (robotics), to have fun, and to share knowledge. If anything here can be useful to someone, let me know: hadrien.hamel@gmail.com it would make one people happy on earth :)

Everything here is meant to be shared : documentation and wiki are under Creative Commons license (by-nc-sa), code is GPL. Participation, feedback, even sharing this site with friends is warmly welcome and encouraged!

Motivation

HBot is the title of a robotics project, the name of a software program, and the name of my first robot. To make things clear:

  1. the robotics project aims at uniting various programs, more or less related to robotics, but that are definitely useful to prepare a robotic software; the target is any robotic system powered by Linux embedded software. This is realized through the wiki, and through the integration of external projects to OpenEmbedded.
  2. hbot software aims at gluing together external robotics libraries (or other helpful libraries) runs on the HBot protorype, and realizes its goals (see below); this software is designed to be as open, reusable, modular, extensible as possible.
  3. my first robot is a low-cost assembly of modules ready to be used (I am not able to do electronics, and very little mecanic engineering); these elements are sold in good robotics shop (apart from mecano pieces which can be found in toy shops). I use an EZX smartphone as “brain”; it will be used for testing the software project, and realizing HBot goals (see below).

Goals

The “fun” goal is: I tell my robot bring me a beer; it goes to the fridge, opens it, finds a can, and brings it back to me.

Now for the technical goals:

  • generic control of hardware, so that I can change elements or adapt the software to other robots
  • building maps as the robot explores its surroundings
  • go from point A to point B without hitting objects (commonly known as “pathfinding”)
  • voice recognition and synthesis
  • learn places and object location (e.g. kitchen, fridge, sofa, etc.)

That would be great if all these topics are realized. There is nothing on robotic arms to actually get the beer can, but I keep that for later.

Technics

Mapping shall be:

  • planar (no 3D-considerations, the environment can be represented in two dimensions),
  • active (the robot should move by itself to discover the map),
  • online (this is a consequency of active mapping: the robot will have to compute sensor and update map all the time, in order to use it for next steps),
  • in static environment (it is assumed that the map and landmarks on map will not move),
  • done by one robot only (no multi-robot for the moment),
  • based on sparse data (not enough money to buy a laser rangefinder, and anyway it is not the goal)
  • on-board (no assistance from another computer for calculations)

Software shall be:

  • object-oriented (for easy extensions, code reusability, correspondance with real world concepts)
  • component oriented (for code segmentation, modularity, ease of use, and possibly split the stack to multiple boards)
  • as much hardware independent as possible (independency from CPU architecture, independency towards robotics controller, sensors and effectors)
  • not too greedy regarding CPU/RAM resources (well… we are doing heavy computing sometimes, but it should be kept reasonable)
  • KISS

Hardware shall be:

  • cheap
  • found in robotics shop (ie. no DIY electronic boards)
  • reusing old stuff (MY old stuff, but I believe nothing is this rare that you cannot find similar pieces in your attic)
 
overview.txt · Last modified: 2013/03/11 22:57 by hadrien
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS La rache Driven by DokuWiki