Centibots Home > Technical Design > Building Robots
Technical Design
   Building Robots
Robots can be described as 3 parts:
  • Mobile Platform: The drive train, including the power control. This part makes the robot move. It's generally composed of one or more motors (step motors work better), a series of belts (optional), some wheels and the board to control it.
  • Sensors package: Cameras, sonar arrays, ... It's how the robot senses the world. It's generally the hard part (selecting the right sensor and use it).
  • Brain: Operating system & software. That's where we program the robot to process data acquired by the sensors (position estimates, obstacles,...) and to plan actions (where to go next, what to do, ...).
SRI amigobots First generation of Amigobot PRO
SRI amigobots First generation of Amigobot PRO
Third generation of Amigobot PRO Third generation of Amigobot PRO
Third generation of Amigobot PRO Third generation of Amigobot PRO

  Mobile Platform:
In our case, since we need so many robots, there is no way we can hand build 100 robots. We had a former relationship with ActivMedia Robotics. They offer us to customize their Amigobot platform. That was a winner. For information, there are tons of mobile robots (Lego makes great ones you can use with Lego OS). Other options exist and you can consider a radio-controlled car. It's cheap, has a battery, motor and everything to control it. Don't stick to the obvious, we have converted a 1/4 scale RC car into robot (see picture). Better yet, one Segway has been converted in a robot, The motto here is simple: COTS (or Component Of The Shelf).

Amigobot motor mount Battery and motors of an amigobot
Amigobot motor mount Battery and motors of an Amigobot
Erratic sonar array Flakey
Erratic sonar array Flakey
Erratic sonar array Erratic sonar array
RC CAr converted in a robot Computer. GPS, and serial/USB converter

  Sensors Package:
That's where the real robot is created, so far we have a radio controlled object, not yet a robot. To qualify as a robot you need sensors and you need to process the data obtained via the sensors in order for the robot to know where it is. Here a list of cheap sensors you can use:
  • Polaroid sonars, they work great for close distance (I love their clicking noise). You can get them from SensComp.
  • Camera (again a COTS camera, think USB or Firewire camera). The trick here is that you have to choose a camera that is supported by the operating system you are going to use. In Linux for example, not all USB cameras will work.
  • Microphone. It's a very simple and generally very crude way of sensing but don't underestimate it, it can be very useful.
  • In the more expensive price range, laser range finder (like the SICK LMS200) is the prefect sensor if you can carry it and power it.
  • Even more expensive is the GPS receiver from Novatel, if you are designing an outdoor robot then GPS works great in open area. Urban area are quite challenging to get good GPS positioning.

Once you have your set of sensors, you need to process the data to extract some meaningful informations like obstacles (is there something in front of the robot?), where the robot is (for example detecting walls and other visual features). There are tons of algorithms, papers on the Internet about solutions for each sensing need you can have. There is no secret here, experience will pay. More you know about a domain, more likely you are to use the right solution (or the best known solution, you can always invent your own !)
First you need to decide on a computer that have enough serial or USB ports so you can connect all sensors to the computer. Yes, you need to be able to read the values acquired by the sensor if you want to use a sensor! Small form factor is an important point, the norm tends to be rather smaller robots. Power consumption is also important you can't afford to have your computer consuming all the power, the rule of thumb is one third of the power should go to the computer. Logically we selected the EPIA VIA board M9000 or even VIA V10000 if you don't need the Firewire.
Now the software! You need an operating system and some software to analyze the data acquired by the sensors, e.g. compute the position of the robot, detect the obstacles and compute the path the robot should take in order to go where you want it to go. Fortunately the open-source community has provided you with GNU/Linux and also the robot software called Stage/Player.