Patent ID: 6845295

Claim:
A method of controlling a robot ( 32 ) having a plurality of arms rotatable about a plurality of axes defining a plurality of angles therebetween and supporting a tool ( 49 ) having a tool point (TCP) for relative movement of the tool ( 49 ) along a path ( 33 ) having a starting point ( 44 ) and an ending point ( 46 ) defined in Cartesian coordinates, wherein the robot ( 32 ) has at least one of a first configuration set having an up configuration and a down configuration, a second configuration set having a flip configuration and a no-flip configuration, and a third configuration set having a front configuration and a back configuration, and wherein the robot ( 32 ) approaches a singularity associated with the configuration set along the path ( 33 ) while moving about the plurality of axes, said method comprising the steps of: selecting the up configuration, the no-flip configuration, and the front configuration from the first, second, and third sets to position the TCP at the starting point ( 44 ) with the angles of the arms in an initial configuration; selecting the up configuration, the flip configuration, and the front configuration from the sets to position the TCP at the ending point ( 46 ) with the angles of the arms in a final configuration; rotating the arms about the axes by changing the angles therebetween to move the TCP from the starting point ( 44 ) along the path ( 33 ) while maintaining the initial configuration; approaching the singularity which occurs between a first point ( 48 ) and a second point ( 50 ) along the path ( 33 ); selecting one of the axes in the initial configuration in response to reaching the first point ( 48 ); interpolating the angle for the selected axis from the first point ( 48 ) to the second point ( 50 ) in a predetermined number of steps ( 52 ) between the first point ( 48 ) and the second point ( 50 ); determining the angles about the remaining axes in relationship to the aforesaid interpolation at each of the steps ( 52 ) to position the arms in the final configuration when the TCP reaches the second point ( 50 ) in response to determining the angles; and rotating the arms about the axes by changing the angles therebetween to move the TCP along the path ( 33 ) to the ending point ( 46 ) while maintaining the final configuration.