Motion Strategies for a
Car-Like Robot
A Final Project for CS 476, Spring 1998
by Benjamin Burnett and Tina Troutner
Explanation of Project World 1 World 2 World 3 Home
The goal of the project is to develop a program that develops a collision-free path for a polygonal car-like robot in a 2D polygonal environment. The inputs include 1) a description of the environment in terms of convex polygons; 2) a polygonal description of the robot; 3) initial and goal configuration for the robot. The output is a collision-free path that brings the robot for the initial configuration to the goal configuration while avoiding collisions and satisfying nonholonomic constraints (the car cannot slide sideways).
The project was organized into 2 steps:
| Step 1: | Implement a collision checker - For our collision checker, we developed a routine called "Collide". We called Collide in the path planning to eliminate points and paths on the map that were in or through an obstacle. During navigation Collide made sure that the edges and corners of our robot did not scrape or, well, collide with an obstacle. |
| Step 2: | Compute a Collision-free non-holonomic path - To compute a Collision-free non-holonomic path, we used the Randomized Roadmap approach to lay out a series of possible paths, then used Depth-First Search to find a path from initial to goal regions. After the search found a Path, we used a "Smooth-Path" algorithm to smooth out any loops or unnecessary points in the path. |
For a more in-depth explanation of the project, please read our explanation paper. Or perhaps you would like to view our code. The code is in text files, and consists of our makefile, main.C, car.h, car.C, path.C , move.C, misc.h, misc.C. The input files include World1 , World2, World3 and Robot.
Diagrams and Animated GIFs of the project:
Sample World 1 Sample World 2 Sample World 3
Each world has the following diagrams:
| Diagram 1: | A representation of the 2D world, the robot, the initial and goal configurations |
| Diagram 2: | A representation of the world, with the possible paths determined |
| Diagram 3: | A representation of the world, with the path chosen by the program |
| Animated GIF: | The robot moving through the 2D world based on the path chosen |
On the World pages, we colored the diagrams to make them easier to understand (black for obstacles, yellow for goal). We left the animated gifs in black & white.
Please direct questions or comments to Tina Troutner or Ben Burnett.