ASURO

ASURO frontal
ASURO frontal

ASURO is a small mobile robot, freely programmable in C, which was developed for teaching at the DLR in the Institute of Robotics and Mechatronics. The kit is ideal for hobbyists, student and study projects, training workshops as well as advanced training in electrical engineering and mechatronics.

In 2003 ASURO was presented to the public for the first time.

  
Size:
117mm x 122mm x 45mm
Weight:
165g
Motor function:
• 2 light sensors for line tracking
• 4 light-emitting diodes
Sensors:
• 2 light sensors for line tracking
• 6 switches
• 2 Light barriers for odometry
Energie supply:
4 batteries
Communication:
Infrared
Special features:
• Suitable for hobbyists, pupils and students alike
• Software development exclusively with freeware tools

System description

ASURO is the best example for the fact that robots can be designed without complex and expensive software, technology and machine tools. The whole development of electronics is possible (for private use) with freeware tools. The autonomous and multi-sensorial robot has among other things a RISC processor and two motors that can be controlled independently.
In addition to six collision probes and an optical unit for tracing a line, it also has two odometers and some display elements. With these, ASURO is able to detect the brightness of the underground, as well as to recognize and avoid obstacles. On each wheel an inwardly directed, alternating black and white sectorised disc is installed, which reflects the light emitted by an infrared LED. The brightness variations of the reflected light are measured by a phototransistor; their frequency is proportional to the number of revolutions. The infrared communication unit allows both programming and control of the robot from a PC via USB. The machine is programmed in C. The front contact with the floor is formed by half a table tennis ball on which the robot climbs.

Hello World program in the language of ASURO:

#include "asuro.h"
main (void){
  unsigned int i;
  Init();
  while(1){
    StatusLED(RED);
    for(i = 0; i < 847; ++i)
      Sleep(255);
    StatusLED(GREEN);
    for(i = 0; i < 847; ++i)
      Sleep(255);
  }
}