# US 11,090,806 B2 · Synchronized robot orientation

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

- Number: US 11,090,806 B2
- Document ID: US11090806B2
- Status: Granted
- Kind: B2
- Application number: 16/104,493
- Filed: 2018-08-17
- Published: 2020-02-20
- Granted: 2021-08-17
- Earliest claimed: 2018-08-17
- Assignees: Disney Enterprises, Inc.
- Applicants: Disney Enterprises, Inc.
- Inventors: Nathan D. Nocon; Michael P. Goslin; Clifford Wong; Jonathan RD Hsu; Timothy M. Panec
- Web page: https://patentgrep.com/patent/US11090806B2

## CPC

- B25J 9/1664: {characterised by motion, path, trajectory planning}
- B25J 11/0035: {Dancing, executing a choreography}
- B25J 11/008: {Manipulators for service tasks}
- G05D 1/0297: {by controlling means in a control room}
- G05B 2219/39163: Formation control, robots form a rigid formation, fixed relationship
- 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})
- G05D: SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- 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)

## Abstract

Systems, methods and articles of manufacture for synchronized robot orientation are described herein. A magnetometer, gyroscope, and accelerometer in a remotely controlled device are used to determine a current orientation of that device, and a command with a specified orientation or location are set to several such devices. The remotely controlled devices self-align based on the specified orientation/location, and when in position, receive swarm commands to perform actions as a group of devices in coordination with one another.

## Claims

### Claim 1

A method, comprising:
receiving, from a remote control device at a given robotic device in a plurality of robotic devices, a swarm command, the swarm command including a specified orientation and a specified location, wherein the swarm command is received by each robotic device of the plurality of robotic devices and wherein the given robotic device is not designated as a master device in the plurality of robotic devices;
determining, by the given robotic device, a current orientation of the given robotic device in an environment, based at least in part on a magnetometer indicating an alignment deviation of the given robotic device from a magnetic field direction and an accelerometer and a gyroscope indicating an alignment of the given robotic device relative to gravity;
determining, by the given robotic device, a current location of the given robotic device relative to a reference point in the environment; and
in response to determining that at least one of the current orientation of the given robotic device does not match the specified orientation and the current location of the given robotic device does not match the specified location, adjusting a position of the given robotic device to affect at least one of the current orientation and the current location.

### Claim 2 (depends on 1)

The method of claim 1, further comprising, in response to determining that the current orientation of the given robotic device matches the specified orientation and the current location of the given robotic device matches the specified location, and when each robotic device of the plurality of robotic devices is positioned according to the specified orientation and the specified location, performing a swarm action included in the swarm command.

### Claim 3 (depends on 2)

The method of claim 2, wherein the given robotic device transmits an in-position signal in response to determining that the current orientation of the given robotic device matches the specified orientation and the current location of the given robotic device matches the specified location.

### Claim 4 (depends on 1)

The method of claim 1, wherein the given robotic device executes a swarm action in the swarm command in parallel with other robotic devices of the plurality of robotic devices.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
determining a given starting location for the given robotic device in the environment for use as the reference point for the given robotic device, wherein a second robotic device in the plurality of robotic devices uses a second stating starting location for the second robotic device in the environment as a corresponding second reference point for performing the swarm command.

### Claim 6 (depends on 1)

The method of claim 1, wherein the given robotic device uses tracks, legs, or wheels for locomotion.

### Claim 7

A non-transitory computer-readable storage medium having computer-readable program code for synchronizing robot orientation that when executed by a processor, enable the processor to:
receive, from a remote control device at a given robotic device in a plurality of robotic devices, a swarm command, the swarm command including a specified orientation and a specified location, wherein the swarm command is received by each robotic device of the plurality of robotic devices and wherein the given robotic device is not designated as a master device in the plurality of robotic devices;
determine, by the given robotic device, a current orientation of the given robotic device in an environment, based at least in part on a magnetometer indicating an alignment deviation of the given robotic device from a magnetic field line;
determine, by the given robotic device, a current location of the given robotic device relative to a reference point in the environment; and
in response to determining that at least one of the current orientation of the given robotic device does not match the specified orientation and the current location of the given robotic device does not match the specified location, adjust a position of the given robotic device to affect at least one of the current orientation and the current location.

### Claim 8 (depends on 7)

The non-transitory computer-readable storage medium of claim 7, further comprising, in response to determining that the current orientation of the given robotic device matches the specified orientation and the current location of the given robotic device matches the specified location and when that each robotic device of the plurality of robotic devices is positioned according to the specified orientation and the specified location, perform a swarm action included in the swarm command.

### Claim 9 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the given robotic device transmits an in-position signal in response to determining that the current orientation of the given robotic device matches the specified orientation and the current location of the given robotic device matches the specified location.

### Claim 10 (depends on 7)

The non-transitory computer-readable storage medium of claim 7, wherein the given robotic device executes a swarm action in the swarm command in parallel with other robotic devices of the plurality of robotic devices.

### Claim 11 (depends on 7)

The non-transitory computer-readable storage medium of claim 7, wherein the reference point includes:
an inter-robotic device distance between the given robotic device and other robotic devices of the plurality of robotic devices; and
a shared point of organization.

### Claim 12 (depends on 7)

The non-transitory computer-readable storage medium of claim 7, wherein the given robotic device executes a swarm action in the swarm command at a different time than another robotic device in the plurality of robotic devices as a choreographed swarm action.

### Claim 13 (depends on 7)

The non-transitory computer-readable storage medium of claim 7, wherein the given robotic device further determines the current orientation of the given robotic device based on a gyroscope and an accelerometer indicating an alignment of the given robotic device relative to gravity.

### Claim 14

A system, comprising:
a radio;
an accelerometer;
a gyroscope;
a magnetometer;
a motor;
a processor; and
a memory, including instructions that when executed by the processor, enable the system to:
receive, from a first remote control device via the radio, a swarm command, the swarm command including a specified orientation and a specified location for the system and other systems in a swarm, wherein the system is not designated as a master system for the swarm and each member of the swarm receives the swarm command from the first remote control device;
determine, by the system, a current orientation of the system in an environment, based at least in part on the magnetometer indicating an alignment deviation of the system from a magnetic field line;
determine, by the system, a current location of the system relative to a reference point in the environment; and
in response to determining that at least one of the current orientation of the system does not match the specified orientation and the current location of the system does not match the specified location, adjust a position of the system, via the motor, to affect at least one of the current orientation and the current location.

### Claim 15 (depends on 14)

The system of claim 14, further comprising, in response to determining that the current orientation of the system matches the specified orientation and the current location of the system matches the specified location and when each system of the swarm is positioned according to the specified orientation and the specified location, performing a swarm action included in the swarm command.

### Claim 16 (depends on 15)

The system of claim 15, wherein the system transmits, via the radio, an in-position signal in response to determining that the current orientation of the system matches the specified orientation and the current location of the system matches the specified location.

### Claim 17 (depends on 14)

The system of claim 14, wherein the reference point includes:
an inter-robotic device distance between the system and the other systems of the swarm; and
a shared point of organization.

### Claim 18 (depends on 14)

The system of claim 14, wherein the system executes a swarm action in the swarm command at a different time than another system in the swarm as a choreographed swarm action.

### Claim 19 (depends on 14)

The system of claim 14, wherein determining the current orientation of the system in the environment, is further based on the gyroscope and the accelerometer indicating an alignment of the system relative to gravity.

### Claim 20 (depends on 14)

The system of claim 14, wherein the swarm comprises a first set of systems that process the swarm command to perform a first swarm action and a second set of systems that process the swarm command to perform a second swarm action different than the first swarm action, wherein the first set of systems is associated with a second remote control device and is not associated with a third remote control device, wherein the second set of systems is associated with the third remote control device and is not associated with the second remote control device, and wherein the swarm command is received from the first remote control device that is associated with both the first set of systems and the second set of systems.
