1. A method for adaptive obstacle avoidance for an articulated redundant robot arm, comprising acts of: developing an inverse model for a robot arm during a babbling learning phase in which a robot arm controller causes a set of limbs in the robot arm to make a series of random movements and observes a change in position of the set of limbs corresponding to each of the random movements; calculating an obstacle avoidance vector for each of the set of limbs in the robot arm to form a plurality of obstacle avoidance vectors, each of the obstacle avoidance vectors incorporating factors including; a distance and direction of each of a set of obstacles to the limb; and when the limb is part of a kinematic chain of limbs, summing contributions from the obstacle avoidance vectors of all limbs in the kinematic chain; and applying the obstacle avoidance vector to constrain an inverse model in a robot arm controller, whereby the robot arm can reach a target while avoiding obstacles.