# US 11,027,432 B2 · Techniques for controlling position of an end effector of a robotic device relative to a virtual constraint

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,027,432 B2
- Document ID: US11027432B2
- Status: Granted
- Kind: B2
- Application number: 16/122,201
- Filed: 2018-09-05
- Published: 2019-03-07
- Granted: 2021-06-08
- Earliest claimed: 2017-09-06
- Assignees: Stryker Corporation
- Applicants: Stryker Corporation
- Inventors: David Gene Bowling; Timothy J. Bozung
- Web page: https://patentgrep.com/patent/US11027432B2

## CPC

- B25J 9/1694: {characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion}
- B25J 9/1666: {Avoiding collision or forbidden zones}
- B25J 9/1692: {Calibration of manipulator}
- B25J 17/0283: {Three-dimensional joints}
- B25J: MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES ({manipulators specially adapted for use in surgery A61B34/70; manipulators used in cleaning hollow articles B08B9/04}; manipulators associated with rolling mills B21B39/20; manipulators associated with forging machines B21J13/10; {manipulators associated with picking-up and placing mechanisms B23P19/007}; means for holding wheels or parts thereof B60B30/00; {vehicles with ground-engaging propulsion means, e.g. walking members B62D57/02, B62D57/032; devices for picking-up and depositing articles or materials between conveyors B65G47/90, B65G47/91; manipulators with gripping or holding means for transferring packages B65H67/065}; cranes B66C; {manipulators used in the protection or supervision of pipe-line installations F17D5/00; walking equipment adapted for nuclear steam-generators F22B37/006}; manipulators specially adapted for, or associated with, nuclear reactors G21C; {apparatus used for handling wafers during manufacture or treatment of semiconductor H10P72/50})

## Abstract

A robotic device includes one or more joints to position an end effector in a plurality of degrees of freedom. A navigation system tracks an actual position of the end effector. One or more controllers identify a condition wherein the actual position of the end effector contacts a virtual constraint. An anticipated movement of the end effector is evaluated from the actual position to a home position of the end effector. The one or more controllers detect an anticipated collision between the end effector and the virtual constraint and compute a target position of the end effector that evades the anticipated collision. The target position is spaced from the actual position and also contacts the virtual constraint. The one or more joints are controlled to slide the end effector from the actual position to target position along the virtual constraint.

## Claims

### Claim 1

A system comprising:
a robotic device comprising an end effector and one or more joints to position the end effector in a plurality of degrees of freedom;
a navigation system configured to track an actual position of the end effector; and
one or more controllers configured to:
identify a condition wherein the actual position of the end effector has been constrained by a virtual constraint;
determine a home position of the end effector, the home position is a position the end effector would be located without regard to the virtual constraint;
evaluate an anticipated movement of the end effector from the actual position to the home position;
detect that the anticipated movement would cause an anticipated collision between the end effector and the virtual constraint;
compute a target position of the end effector that evades the anticipated collision, wherein the target position is spaced apart from the actual position and located along the virtual constraint; and
control the one or more joints of the robotic device to slide the end effector from the actual position to target position along the virtual constraint.

### Claim 2 (depends on 1)

The system of claim 1, wherein the virtual constraint is a first virtual constraint and further comprising a second virtual constraint that is connected to the first virtual constraint, wherein the first and second virtual constraints are each planar, and wherein the second virtual constraint is angled relative to the first virtual constraint.

### Claim 3 (depends on 2)

The system of claim 2, wherein the one or more controllers are further configured to:
identify a condition wherein the actual position of the end effector has also been constrained by the second virtual constraint;
detect that the anticipated movement would also cause an anticipated collision between the end effector and the second virtual constraint; and
compute the target position of the end effector that evades the anticipated collision, wherein the target position is spaced apart from the actual position and located along the second virtual constraint.

### Claim 4 (depends on 1)

The system of claim 1, wherein:
the end effector is further defined as a burr; and
the one or more controllers are further configured to model the end effector as a sphere and define the actual position, home position and target positions based on the sphere model.

### Claim 5 (depends on 4)

The system of claim 4, wherein the one or more controllers are further configured to:
define a contact point between the sphere model and the virtual constraint;
define a vector between the contact point and a center of the sphere, the vector being normal to the virtual constraint;
define a plane based on the vector;
limit movement of the end effector to the plane;
identify a direction within the plane that results in the least amount of movement for the end effector relative to the actual position; and
compute the target position based on the identified direction and the least amount of movement.

### Claim 6 (depends on 4)

The system of claim 4, wherein the one or more controllers detect that the anticipated movement would cause the anticipated collision by further being configured to:
define the anticipated movement by a vector defined from a center of the sphere to a point on the virtual constraint that is nearest to the center of the sphere; and
compute how far the sphere can move along the vector without intersecting the virtual constraint.

### Claim 7 (depends on 1)

The system of claim 1, wherein the one or more controllers are further configured to:
define a vector from the actual position to the home position;
project the vector onto the virtual constraint; and
define the target position based on the projected vector.

### Claim 8 (depends on 1)

The system of claim 1, wherein the end effector comprises an axis and the one or more controllers are further configured to:
define the target position based on a projection parallel to the axis; or
define the target position based on a projection perpendicular to the axis.

### Claim 9 (depends on 1)

The system of claim 1, wherein the one or more controllers are further configured to define the target position based on a preset distance from the actual position.

### Claim 10 (depends on 1)

The system of claim 1, wherein the navigation system is configured to track a target site, and wherein the one or more controllers are configured to register the virtual constraint to the target site.

### Claim 11 (depends on 1)

The system of claim 1, wherein the robotic device is adapted to be held freely in the hand of an operator.

### Claim 12 (depends on 1)

The system of claim 1, wherein the robotic device is configured to position the end effector in three degrees of freedom.

### Claim 13

A method of operating a system comprising a robotic device including an end effector and one or more joints to position the end effector in a plurality of degrees of freedom, a navigation system configured to track an actual position of the end effector, and one or more controllers configured to perform the steps of:
identifying a condition wherein the actual position of the end effector has been constrained by a virtual constraint;
determining a home position of the end effector, the home position is a position the end effector would be located without regard to the virtual constraint;
evaluating an anticipated movement of the end effector from the actual position to the home position;
detecting that the anticipated movement would cause an anticipated collision between the end effector and the virtual constraint;
computing a target position of the end effector that evades the anticipated collision, wherein the target position is spaced apart from the actual position and located along the virtual constraint; and
controlling the one or more joints of the robotic device to slide the end effector from the actual position to target position along the virtual constraint.

### Claim 14 (depends on 13)

The method of claim 13, wherein the virtual constraint is a first virtual constraint and further comprising a second virtual constraint that is connected to the first virtual constraint, wherein the first and second virtual constraints are each planar, and wherein the second virtual constraint is angled relative to the first virtual constraint.

### Claim 15 (depends on 14)

The method of claim 14, further comprising the one or more controllers:
identifying a condition wherein the actual position of the end effector has also been constrained by the second virtual constraint;
detecting that the anticipated movement would also cause an anticipated collision between the end effector and the second virtual constraint; and
computing the target position of the end effector that evades the anticipated collision, wherein the target position is spaced apart from the actual position and located along also contacts the second virtual constraint.

### Claim 16 (depends on 13)

The method of claim 13, wherein the end effector is further defined as a burr and further comprising the one or more controllers:
modelling the end effector as a sphere; and
defining the actual position, home position and target positions based on the sphere model.

### Claim 17 (depends on 16)

The method of claim 16, further comprising the one or more controllers:
defining a contact point between the sphere model and the virtual constraint;
defining a vector between the contact point and a center of the sphere, the vector being normal to the virtual constraint;
defining a plane based on the vector;
limiting movement of the end effector to the plane;
identifying a direction within the plane that results in the least amount of movement for the end effector relative to the actual position; and
computing the target position based on the identified direction and the least amount of movement.

### Claim 18 (depends on 16)

The method of claim 16, wherein detecting that the anticipated movement would cause the anticipated collision further comprising the one or more controllers:
defining the anticipated movement by a vector defined from a center of the sphere to a point on the virtual constraint that is nearest to the center of the sphere; and
computing how far the sphere can move along the vector without intersecting the virtual constraint.

### Claim 19 (depends on 13)

The method of claim 13, further comprising the one or more controllers:
defining a vector from the actual position to the home position;
projecting the vector onto the virtual constraint; and
defining the target position based on the projected vector.

### Claim 20 (depends on 13)

The method of claim 13, wherein the end effector comprises an axis and further comprising the one or more controllers:
defining the target position based on a projection parallel to the axis; or
defining the target position based on a projection perpendicular to the axis.

### Claim 21 (depends on 13)

The method of claim 13, wherein the navigation system is configured to track a target site, and further comprising the one or more controllers registering the virtual constraint to the target site.
