Introduction to Robotic Algorithms Final Project: Interaction with the MagellanPro Robot

Authors Avatar

BSc Computing & Electronics – Artificial Intelligence & Robotics 4

Introduction to Robotic Algorithms

Final Project: Interaction with the MagellanPro Robot

                                


Project Description and Assumptions:

The project consists of several phases:

  • a data collection program that stores sensor data generated manually (by driving the robot around by hand)
  • a modified assignment three code to generate sonar maps with this data
  • a "map editor" that uses images created by our Assignment 3 code to help in the creation of a polygonal representation of the region
  • a probabilistic roadmap (PRM) generator that takes the output of the map editor and generates probabilistic roadmaps based on the configuration space of the map
  • a "navigator" that takes the outputs of the map editor and the PRM generator and enables the robot to move throughout the region
  • an implementation of the Kalman filter from assignment two that improves the robot's estimation of its current position

Most of the phases are made graphical for testing and end user ease of use.

Some of the assumptions and limitations of our project implementation include:

  • A static environment, e.g. no moving obstacles and no unexpected obstacles (that weren't mapped)
  • Paths through the environment can be completely built using straight-line motion and in-place rotation
  • The environment is suitable for the robot's sensors (e.g. obstacles aren't too small to be detected or are otherwise impossible to detect)
  • The environment and robot can be approximated completely by convex polygons
  • The starting configuration of the robot is a parameter to the navigation program
  • The user is able to approximate the area of interest to a reasonable degree in the map editor, and is able to estimate the initial position and orientation of the robot in the world to a reasonable level of accuracy

The Process:

  1. Construct or find an area suitable for the robot's sensors and large enough to provide some moving room (a small enclosed area of about 3 meters square or larger with some obstacles, or a hallway should both work fine)
  2. Position the robot inside the region of interest, and then start the 'getdata' program
  3. Using the joystick or computer, move the robot throughout the area; while doing this, be sure to circumnavigate as many of the obstacles in the area as possible
  4. Run 'makeimg' using the data generated by 'getdata' as input
  5. Convert the output of 'makeimg' to a 2^n x 2^n, 24/32-bit uncompressed TGA (see README.ERRATA)
  6. Run 'map_edit' using the TGA output of 'makeimg' as input, and create a polygonal map (save this to a file)
  7. Run 'prmgen' using the map created in 'map_edit' as input and generate PRM's until a suitable one is discovered (save this to a file)
  8. Position the robot inside the region of interest (anywhere), and run the 'navigate' program; tell the program the location of the robot and its orientation, and then give the program a destination. The robot will move through the area using the PRM generated in 'prmgen'
Join now!

Specifics:

All of the files necessary (source code and documentation) are located on maximal.robotics.cs.rpi.edu as an archive at ~beevek/ira_final.tar.gz. To begin, simply unpack the archive to any directory on maximal. After this:

  1. $ cd <unpack_dir>/src
  2. $ make

This creates the following executables in <unpack_dir>/bin:

  1. getdata The data retrieval program
  2. makeimg The sensor data image generator
  3. map_edit The polygonal map editor
  4. prmgen The PRM generator
  5. navigate The navigation program
Getdata:

The 'getdata' program is very simple ...

This is a preview of the whole essay