# US 9,751,211 B1 · Smart robot part

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

- Number: US 9,751,211 B1
- Document ID: US9751211B1
- Status: Granted
- Kind: B1
- Application number: 14/878,175
- Filed: 2015-10-08
- Granted: 2017-09-05
- Earliest claimed: 2015-10-08
- Assignees: Google Inc.
- Applicants: Google Inc.
- Inventors: John Aaron Saunders; Michael Patrick Murphy
- Web page: https://patentgrep.com/patent/US9751211B1

## CPC

- B25J 9/1602: {characterised by the control system, structure, architecture}
- 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}
- G05B 2219/33105: Identification of type of connected module, motor, panel
- G05B 2219/40304: Modular structure
- Y10S 901/46: Sensing device
- Y10S 901/50: Miscellaneous
- 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})
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

Example implementations may relate a robot part including a processor, at least one sensor, and an interface providing wireless connectivity. The processor may determine that the robot part is removablly connected to a particular robotic system and may responsively obtain identification information to identify the particular robotic system. While the robot part is removablly connected to the particular robotic system, the processor may (i) transmit, to an external computing system, sensor data that the processor received from the at least one sensor and (ii) receive, from the external computing system, environment information (e.g., representing characteristics of an environment in which the particular robotic system is operating) based on interpretation of the sensor data. And based on the identification information and the environment information, the processor may generate a command that causes the particular robotic system to carry out a task in the environment.

## Claims

### Claim 1

A method comprising:
determining, by at least one processor of a robot part, that the robot part is removablly connected to a particular robotic system, wherein the robot part comprises at least one sensor and at least one interface providing wireless connectivity;
in response to determining that the robot part is removablly connected to the particular robotic system, obtaining, by the at least one processor, identification information to identify the particular robotic system;
while the robot part is removablly connected to the particular robotic system, (i) transmitting, by the at least one processor to at least one external computing system, sensor data that the at least one processor received from the at least one sensor and (ii) receiving, by the at least one processor from the at least one external computing system, environment information based on interpretation of the sensor data, wherein the environment information represents one or more characteristics of an environment in which the particular robotic system is operating; and
based at least in part on the identification information and the environment information, generating, by the at least one processor, a command that causes the particular robotic system to carry out a task in the environment.

### Claim 2 (depends on 1)

The method of claim 1, wherein the command causes the particular robotic system to engage in one or more particular movements, the method further comprising:
based on the one or more particular movements, determining, by the at least one processor, movement capabilities of the particular robotic system.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
transmitting, by the at least one processor to the at least one external computing system, the determined movement capabilities of the particular robotic system.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
determining, by the at least one processor, that the robot part is disconnected from the particular robotic system;
after the robot part is disconnected from the particular robotic system, determining, by the at least one processor, that the robot part is reconnected to the particular robotic system; and
in response to determining that the robot part is reconnected to the particular robotic system, obtaining, by the at least one processor from the at least one external computing system, capability information representative of the determined movement capabilities of the particular robotic system.

### Claim 5 (depends on 2)

The method of claim 2, wherein determining the movement capabilities of the particular robotic system comprises determining a kinematic model of the particular robotic system.

### Claim 6 (depends on 5)

The method of claim 5, wherein the kinematic model of the particular robotic system is representative of one or more of: (i) joint angle capabilities of the particular robotic system, (ii) velocity capabilities of the particular robotic system, or (iii) acceleration capabilities of the particular robotic system.

### Claim 7 (depends on 5)

The method of claim 5,
wherein the particular robotic system comprises (i) one or more appendages and (ii) one or more actuators each coupled to at least one of the one or more appendages,
wherein the command causes the one or more actuators to move each of the one or more appendages to each of a plurality of spatial positions, and
wherein determining the kinematic model comprises, based on movement of each of the one or more appendages to each of the plurality of spatial positions, determining one or more of (i) a range of motion of each of the one or more appendages and (ii) degrees of freedom through which the particular robotic system is capable of moving the one or more appendages.

### Claim 8 (depends on 7)

The method of claim 7,
wherein the command further causes the one or more actuators to move each of the one or more appendages to each of the plurality of spatial positions at each of a plurality of velocities, and
wherein determining the kinematic model further comprises, based on movement of each of the one or more appendages to each of the plurality of spatial positions at each of the plurality of velocities, determining velocities at which the particular robotic system is capable of moving the one or more appendages.

### Claim 9 (depends on 7)

The method of claim 7,
wherein the command further causes the one or more actuators to move each of the one or more appendages to each of the plurality of spatial positions at each of a plurality of accelerations, and
wherein determining the kinematic model further comprises, based on movement of each of the one or more appendages to each of the plurality of spatial positions at each of the plurality of accelerations, determining accelerations at which the particular robotic system is capable of moving the one or more appendages.

### Claim 10 (depends on 2)

The method of claim 2, further comprising:
based on the determined movement capabilities of the particular robotic system, determining movement capabilities of the robot part, wherein the determined movement capabilities of the robot part are in effect when the robot part is removablly connected to the particular robotic system; and
transmitting, by the at least one processor to the at least one external computing system, the determined movement capabilities of the robot part.

### Claim 11 (depends on 10)

The method of claim 10, wherein determining movement capabilities of the robot part comprises determining a kinematic model of the robot part in combination with the particular robotic system.

### Claim 12 (depends on 11)

The method of claim 11, wherein the kinematic model of the robot part in combination with the particular robotic system is representative of one or more of:
(i) spatial positioning capabilities of the robot part when the robot part is removablly connected to the particular robotic system,
(ii) velocity capabilities of the robot part when the robot part is removablly connected to the particular robotic system, or
(iii) acceleration capabilities of the robot part when the robot part is removablly connected to the particular robotic system.

### Claim 13 (depends on 10)

The method of claim 10,
wherein determining movement capabilities of the particular robotic system comprises determining joint angle capabilities of the particular robotic system,
wherein determining movement capabilities of the robot part comprises, based on the determined joint angle capabilities of the particular robotic system, determining spatial positioning capabilities of the robot part, and
wherein the spatial positioning capabilities of the robot part are in effect when the robot part is removablly connected to the particular robotic system.

### Claim 14 (depends on 10)

The method of claim 10,
wherein determining movement capabilities of the particular robotic system comprises determining velocity capabilities of the particular robotic system,
wherein determining movement capabilities of the robot part comprises, based on the determined velocity capabilities of the particular robotic system, determining velocity capabilities of the robot part, and
wherein the velocity capabilities of the robot part are in effect when the robot part is removablly connected to the particular robotic system.

### Claim 15 (depends on 10)

The method of claim 10,
wherein determining movement capabilities of the particular robotic system comprises determining acceleration capabilities of the particular robotic system,
wherein determining movement capabilities of the robot part comprises, based on the determined acceleration capabilities of the particular robotic system, determining acceleration capabilities of the robot part, and
wherein the acceleration capabilities of the robot part are in effect when the robot part is removablly connected to the particular robotic system.

### Claim 16 (depends on 1)

The method of claim 1, wherein the robot part comprises a first robot part, the method further comprising:
determining, by the first robot part, that a second robot part is also removablly connected to the particular robotic system, wherein the second robot part also comprises (i) at least one processor, (ii) at least one sensor, and (iii) at least one interface providing wireless connectivity; and
in response to determining that the second robot part is also removablly connected to the particular robotic system, the first robot part engaging in communications with the second robot part via the at least one external computing system.

### Claim 17 (depends on 1)

The method of claim 1, wherein the robot part is configured to couple to each of a plurality of end effectors, the method further comprising:
determining, by the at least one processor, that the robot part is coupled to a particular end effector of the plurality of end effectors; and
in response to determining that the robot part is coupled to the particular end effector, identifying, by the at least one processor, the particular end effector, wherein the command also causes the particular end effector to carry out the task.

### Claim 18 (depends on 17)

The method of claim 17, wherein identifying the particular end effector comprises obtaining, from the at least one external computing system, end effector identification information to identify the particular end effector.

### Claim 19

A non-transitory computer readable medium having stored therein instructions executable by at least one processor to cause a robot part to perform functions comprising:
determining that the robot part is removablly connected to a particular robotic system, wherein the robot part comprises at least one sensor and at least one interface providing wireless connectivity;
in response to determining that the robot part is removablly connected to the particular robotic system, obtaining identification information to identify the particular robotic system;
while the robot part is removablly connected to the particular robotic system, (i) transmitting, to at least one external computing system, sensor data that the at least one processor received from the at least one sensor and (ii) receiving, from the at least one external computing system, environment information based on interpretation of the sensor data, wherein the environment information represents one or more characteristics of an environment in which the particular robotic system is operating; and
based at least in part on the identification information and the environment information, generating a command that causes the particular robotic system to carry out a task in the environment.

### Claim 20

A robot part comprising:
at least one interface providing wireless connectivity;
at least one sensor;
at least one processor;
a non-transitory computer readable medium; and
program instructions stored on the non-transitory computer readable medium and executable by the at least one processor to:
determine that the robot part is removablly connected to a particular robotic system;
in response to determining that the robot part is removablly connected to the particular robotic system, obtain identification information to identify the particular robotic system;
while the robot part is removablly connected to the particular robotic system, (i) transmit, to at least one external computing system, sensor data that the at least one processor received from the at least one sensor and (ii) receive, from the at least one external computing system, environment information based on interpretation of the sensor data, wherein the environment information represents one or more characteristics of an environment in which the particular robotic system is operating; and
based at least in part on the identification information and the environment information, generate a command that causes the particular robotic system to carry out a task in the environment.
