CS44 W00: Lecture 15

Introduction to Robotics

This component of the course adds action capabilities to our intelligent agents.

Topics:

  1. .Motion Planning
  2. ..Configuration Space
  3. ...Geometric Reasoning
  4. ....Visibility Graph
  5. .....Search
  6. ..Rotations
  7. ..Fast, approximate algorithms
  8. .Uncertainty
  9. .Subsumptionism
Robotics

Robots are programmable mechanical devices that can change (affect) the world. Robots consist of effectors (for action), sensors (for perception), a brain (for processing), and some memory (to keep internal state and external state information). Their environment is the physical world, which makes the task of programming such robots very challenging. The physical world is inaccessible, in that the sensors are imperfect. It is nondeterministic in that the wheels of the robots slip, batteries run down, parts break, etc. It is also continuous and so we can't enumerate all possible locations in it.

One important subfield of robotics is motion planning. This field is concerned with finding a way to move a robot in a controlled way from one place to another despite complications.

If we had point robots living in graph worlds, this would be an easy problem. But unfortunately, our robots are three-dimensional creatures, living in a three dimensional world dominated by uncertainty and non-determinism. What we would like to do is to map the physical world into a graph representation by taking all the problems of the real world into account. The way to do this is to define a configuration space, parameterized by the minimum number of parameters required to specify the system. This will enable us to come up with motion planning algorithms for entire classes for robots and environments. Our method will be to define the working space of the robot and to synthesize a path, or a trajectory in this space. In order to synthesize a strategy to reach the goal we need to analyze the structure of the space in which the problem takes place. We have already done this for game playing by exhaustively listing all possibilities. In the physical space this is not possible, but the space is structured by geometry and the laws of physics.

At any point in time, the working area of a robot and the location of the robot can be specified by real coordinates. Suppose we have a robot with k degrees of freedom. Then the state (configuration) of the robot can be described by k values. For instance, if we have a planar robot that can translate about the x-axis, translate about the y-axis, and rotate in place, its number of degrees of freedom is 3. These k values can be considered a point in a k-dimensional space called the configuration space of the robots. Obstacles can also be represented in configuration space.

The idea for motion planning is to represent obstacles in configuration space, to then find paths in configuration space and finally, to map these paths into paths in the physical space.

Robots may have complicated geometry. It is hard to keep track of moving complicated geometries. It is easy to keep track of moving points. So the idea is to shrink the robot to 1 point and to grow the obstacle to compensate. We can do this by (1) selecting a reference point on the robot; (2) circumnavigating the obstacle with the robot so that the robot contacts the obstacle at all time and it moves according to its specified degrees of freedom (i.e. which translations and which rotations can the robot do); and (3) the path of the reference point gives the "grown" configuration space obstacle. We can synthesize an algorithm for computing the configuration space obstacles. The algorithm for computing configuration space obstacles uses two geometric definitions.

The Minkowski sum of two sets A + B = { a = b |, a in A and b in B}

The Reflection of a set - A = { -a | a in A}

Notation: A + ( - B) = A - B

The configuration space obstacle for object B with respect to robot A that can only translate in the x-y directions in the plane is B - A = convex_hull (vertices (B) - vertices (A)).


Switch to:


vasilis@cs.dartmouth.edu