Lior Elazary KK6BWA

...because this life is yours. Some of it was given to you, the rest you make yourself.

  • Increase font size
  • Default font size
  • Decrease font size
Home Robotics Research VisualBot Landmark Navigation Results

Landmark Navigation Results

E-mail Print PDF

Robot design

Due to the high complexity of algorithms used for this project, a cluster of computers was needed to drive the robot in real time. Therefore, a remote control robot named RCBot was developed for this project. The robot was composed of a toy jeep fitted with a wireless (1.2GHz) camera and a standard RC remote control. The camera receiver was then connected to a capture card and the RC remote control to a device (sc8000), which allowed the computer to send signals to the remote control to move the robot.

 

Software design

The software was split into multiple modules (figure 1), and each module was implemented as a class in C++.

  • Robot Control: This module obstructed the control layer of the robot so that a standard interface was created to drive the robot. This included setting the velocity of the robot, setting the steering, as well as receiving the image from the camera.
  • Tracking and driving: This module received the image input from the robot control and sent it to the Scene Recognition module to get the current landmark template. Once this template was received, the module was responsible for tracking this template and updating the template until the template was lost or a new template came in via the Scene Recognition module. Driving the robot toward the template was accomplished with a PID loop setting the steering angle. The feedback was the location of the tracked landmark.
  • Scene Recognition modules: This module was responsible for finding a landmark and sending the results in a form of a template. The module was constructed to follow the landmark finding algorithm described above.

 

To facilitate the communication between the modules, the use of Common Object Request Broker Architecture (CORBA) was used. The CORBA system uses a standard protocol (IIOP) so that different computer programs can communicate with each other. The protocol itself is vendor-independent, which means that any computer, operating system, programming language, and network, can communicate with each other (as long as it speaks IIOP). CORBA based programs are based on the object methodology. Furthermore, each object contains a definition of an interface in OMG IDL, which describes the object’s methods and properties in a standardized manner. Each module was then able to run on a different computer so that the computations can be processes in real time. This also gives the ability to replace each module with another effortlessly.