Robotics Research K-1207i - Overview

Introduction

This project is ongoing work being carried out by myself, Dan Challou, and Maria Gini. We are developing practical techniques for doing fast motion planning for articulated robots. I have been working on updating a graphical simulation to represents a Robotics Research K-1207i arm. I have also updated the motion planner with the kinematics for the K-1207i. Lately I have been working on taking paths generated by the planner, and running them on the actual robot located in ME 51.

Problem

For robotic arms with high degrees of freedom finding paths to a goal can become very difficult. As the degrees of freedom increases, calculating the inverse kinematics can become much more difficult if not impossible. Also, knowing the joint angles to reach a goal may not be of very much use if the arm must wind its way around obstacles to get there.

Objective

The goal of the project is to develop a technique for quickly generating paths for moving the gripper of a complicated robotic arm to an arbitrary point in its workspace while avoiding collisions with itself and other obstacles.

Assumptions

We assume that the following information can be determined in advance.
  • The robot's initial configuration (angles of all of its joints.)
  • The exact location of any obstacles in the robot's workspace.
We assume that we can easily calculate the robot's forward kinematics, but that it is prohibitively expensive to calculate the inverse kinematics.

Goals

We would like a fast algorithm to generate a series of joint angles which will take the robot from its initial configuration to its goal without colliding with itself or any objects. This series of joint angles can easily be fed to the real robot.

Overview of Search Algorithm

We use a simple depth first search algorithm to seek the goal. At each step the robot's joints are randomly moved by a small delta. The new position is tested for collisions within itself or with its environment, the joint angles are compared against the joint limitations, and the forward kinematics are calculated. If the new position is valid and moves the gripper closer to the goal, the move is accepted. If the new position moves the gripper further from the goal, the move is rejected and a different move is attempted. If the search algorithm reaches a local minimum it will attempt random walk to a completely new position and work from there.

Overview of the Parallel Planner

The parallel planner is built around this simple search algorithm. It launches several independent copies of the simple search simultaneously. Because of the randomness of the simple search routine, each independent search process will tend to wander off and search its own piece of the search space. We call this partitioning the search space statistically. We claim that if we get enough simple searches running concurrently, one of them is likely to find a good solution quickly. Because each simple search is completely independent of the others, we can run the searches on a parallel supercomputer, on multiple machines across a distributed network, or even consecutively on a single machine to achieve valid results.

When running several searches simultaneously, we define the first machine or CPU to reach the goal as the winner. This is the solution we accept. We assume that since the solution was found more quickly than all the others, it must be pretty good. Although we define the best solution as that with the fewest steps to reach the goal, we take the first solution as a good approximation of the best solution.

Other topics I would like to discuss

  • precalculations
  • heuristics used
  • local minimum handling

Home | Links | FlightGear | Models

Last modified: 11/19/2003
Curtis L. Olson