A robotic method for a robotic system that includes a first manipulator arm and a second manipulator arm, each manipulator arm including a movable distal portion, a proximal portion coupled to an associated base, and a plurality of joints between the distal portion and the base, the plurality of joints having a joint space with sufficient degrees of freedom to allow a range of differing joint states of the plurality of joints for a given state of the distal portion of each manipulator arm, and the method comprising:
- determining a first reference geometry of the first manipulator arm and a second reference geometry of the second manipulator arm, the first and second reference geometries being movable with the associated manipulator arms within a workspace and having ranges of motion that overlap within the workspace;
- determining a relative state between the first reference geometry and the second reference geometry in the workspace and a desired avoidance vector;
- calculating an avoidance movement of one or more joints of the pluralities of joints of the first and second manipulator arms so as to maintain a separation between the first and second reference geometries in the workspace, the avoidance movement being based on the desired avoidance vector so that the avoidance movement is contained within a null-space of a Jacobian associated with the respective manipulator arm;
- and
- driving the one or more joints of the pluralities of joints of the first and second manipulator arms according to the calculated avoidance movement.