R o b o t     I n f o r m a t i o n

Links to More Information

Writing Control Software
        Overview of Aria
        Robot Class Programmer's Reference
        skeleton of a C++ program
Compiling and Running Software
        Makefile for use on Calgary
Manufacture's Web Site

General Information

The computer science program's mobile robot is an ActivMedia Amigobot. Our robot has the ability to move around, track its location, sense the location of objects, pick up small objects, make sounds, and a few other things.

The robot can not see. It does not have a camera with vision processing software. Instead, it senses its location using a set of eight sonars. Four sonars face forward, two face backwards, and there is one pointed left and one pointed to the right.

The robot moves around using two highly precise step motors - one for the left wheel and one for the right wheel. Movements are measured in millimeters. The robot tracks its location in two dimensions - X and Y. When the robot is turned on, it assumes its location is 0,0 and that is it pointed down the X axis. It can be told to move forward or backward a particular amount, start moving at a given speed, or told to go to a specified X,Y location. Unless told otherwise, it will try to avoid running into things (like chairs and people's legs).

The robot has only minor intelligence built onboard. Instead, it relies on another computer to tell it what to do. So, students write software on a Linux-based PC to control the robot. The software running on the PC communicates with the robot in a client/server mode. The robot is the server. The robot provides services such as moving around, telling what it sees, etc. The client program makes requests to the robot server.

To make testing software easier, you don't actually need access to the real robot. A robot simulator is supplied by the manufacturer. The simulator creates a virtual robot that operates in a virtual world. You can build your own virtual world of hallways, doors, desks, etc. The virtual robot acts just like a real robot. For example, it might get stuck if it runs into a wall. A client program can not distinguish the difference in a real robot and a virtual robot.