U.S. patent application number 14/749311 was filed with the patent office on 2016-12-29 for block structure and robot cooperation methods and apparatuses.
The applicant listed for this patent is Intel Corporation. Invention is credited to Glen J. Anderson, Mark R. Francis, Ravishankar Iyer, Gregory A. Peek, David I. Poisner, Yevgeniy Y. Yarmosh.
Application Number | 20160375372 14/749311 |
Document ID | / |
Family ID | 57601418 |
Filed Date | 2016-12-29 |
![](/patent/app/20160375372/US20160375372A1-20161229-D00000.png)
![](/patent/app/20160375372/US20160375372A1-20161229-D00001.png)
![](/patent/app/20160375372/US20160375372A1-20161229-D00002.png)
![](/patent/app/20160375372/US20160375372A1-20161229-D00003.png)
![](/patent/app/20160375372/US20160375372A1-20161229-D00004.png)
![](/patent/app/20160375372/US20160375372A1-20161229-D00005.png)
![](/patent/app/20160375372/US20160375372A1-20161229-D00006.png)
![](/patent/app/20160375372/US20160375372A1-20161229-D00007.png)
![](/patent/app/20160375372/US20160375372A1-20161229-D00008.png)
United States Patent
Application |
20160375372 |
Kind Code |
A1 |
Anderson; Glen J. ; et
al. |
December 29, 2016 |
BLOCK STRUCTURE AND ROBOT COOPERATION METHODS AND APPARATUSES
Abstract
Apparatuses and methods associated with block structure and
robot cooperation are disclosed herein. In embodiments, a block
apparatus may include a block structure-robot coordination module
to cooperate with one or more robots to affect operations of the
one or more robots relative to at least a block structure which the
block apparatus is a member. The block apparatus may further
include a housing that houses the block structure-robot
coordination module, with features to mate the block apparatus with
one or more other blocks to cause the block apparatus to become a
member of the block structure. In embodiments, a robot may include
control module to control a number of actuators to operate one or
more features to perform one or more operations relative to the
block structure. Other embodiments may be described and/or
claimed.
Inventors: |
Anderson; Glen J.;
(Beaverton, OR) ; Yarmosh; Yevgeniy Y.; (Portland,
OR) ; Poisner; David I.; (Carmichael, CA) ;
Peek; Gregory A.; (North Plains, OR) ; Francis; Mark
R.; (Portland, OR) ; Iyer; Ravishankar;
(Portland, OR) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Intel Corporation |
Santa Clara |
CA |
US |
|
|
Family ID: |
57601418 |
Appl. No.: |
14/749311 |
Filed: |
June 24, 2015 |
Current U.S.
Class: |
446/484 |
Current CPC
Class: |
A63H 2200/00 20130101;
B25J 9/1617 20130101; G05B 2219/40304 20130101; A63H 27/12
20130101; A63H 33/042 20130101; B25J 19/023 20130101 |
International
Class: |
A63H 33/26 20060101
A63H033/26 |
Claims
1. A block apparatus, comprising: one or more processors and
memory; a block structure-robot coordination module disposed in the
memory and to be operated by the one or more processors to
cooperate with one or more robots to affect operations of the one
or more robots relative to at least a block structure which the
block apparatus is a member; and a housing that houses the one or
more processors, the memory, and the block structure-robot
coordination module, with features to mate the block apparatus with
one or more other blocks to cause the block apparatus to become a
member of the block structure.
2. The block apparatus of claim 1, wherein to cooperate with one or
more robots to affect operations of the one or more robots relative
to the block structure, the block structure-robot coordination
module is to access a block structure-robot cooperation rules
database for one or more block structure-robot cooperation rules
for the one or more robots, based at least in part on a state of
the block structure.
3. The block apparatus of claim 2, further comprising the block
structure-robot cooperation rules database having a plurality of
block structure-robot cooperation rules for a plurality of robots,
based at least in part on the state of the block structure.
4. The block apparatus of claim 3, further comprising a
communicative interface to facilitate update of the plurality of
block structure-robot cooperation rules for the plurality of
robots.
5. The block apparatus of claim 3, wherein the block
structure-robot cooperation rules database is remotely disposed;
and wherein the block apparatus further comprises a communication
interface to facilitate the block structure-robot coordination
module in accessing the remotely disposed block structure-robot
cooperation rules database for the one or more block
structure-robot cooperation rules for the one or more robots.
6. The block apparatus of claim 5, wherein the block
structure-robot cooperation rules database is remotely disposed on
a proximally located portable computing device or on a cloud
computing server.
7. The block apparatus of claim 2, wherein the state of the block
structure includes identifications of the block members of the
block structure, and mating manner or order of the block
members.
8. The block apparatus of claim 2, wherein the block
structure-robot coordination module is to further determine the
state of the block structure.
9. The block apparatus of claim 8, wherein the block
structure-robot coordination module is to further traverse a data
structure with information about member blocks of the block
structure to determine the state of the block structure.
10. The block apparatus of claim 9, further comprising a
communication interface to facilitate the block structure-robot
coordination module to receive information from other blocks of the
block structure to maintain the data structure with information
about member blocks of the block structure.
11. The block apparatus of claim 9, further comprising a
communication interface to facilitate the block structure-robot
coordination module to receive one or more images of the block
structure; and an image recognition module to analyze the one or
more images to extract and provide information related to member
blocks of the block structure to maintain the data structure with
information about member blocks of the block structure.
12. The block apparatus of claim 2, further comprising a
communication interface; and the block structure-robot coordination
module is to further transmit to the one or more robots, via the
communication interface, the state of the block structure or one or
more operation commands, in accordance with the one or more block
structure-robot cooperation rules for the one or more robots; and
wherein the block structure-robot coordination module is to further
receive feedback from the one or more robots, via the communication
interface, and transmit to the one or more robots, via the
communication interface, one or more additional operation commands,
based further on the feedback.
13. The block apparatus of claim 1, wherein the block apparatus is
a base block of the block structure.
14. The block apparatus of claim 1, wherein the block structure is
a first block structure, and wherein the block structure-robot
coordination module is to cooperate with the one or more robots to
affect operations of the one or more robots relative to the first
block structure and at least a second block structure.
15. One or more computer-readable media comprising instructions
that cause a block apparatus, in response to execution of the
instructions by a processor of the block apparatus, to: pair a
robot with the block apparatus; and cooperate with the robot to
affect operations of the robot relative to at least a block
structure which the block apparatus is a member.
16. The computer-readable media of claim 15, wherein to cooperate
with one or more robots to affect operations of the one or more
robots relative to the block structure, comprises to access a
locally, proximally or remotely disposed block structure-robot
cooperation rules database for one or more block structure-robot
cooperation rules for the one or more robots, based at least in
part on a state of the block structure.
17. The computer-readable media of claim 16, wherein the state of
the block structure includes identifications of the block members
of the block structure, and mating manner or order of the block
members; and wherein the block apparatus is further caused to
determine the state of the block structure.
18. The computer-readable media of claim 16, wherein the block
apparatus is further caused to receive one or more images of the
block structure; and to extract and provide information related to
member blocks of the block structure to maintain the data structure
with information about member blocks of the block structure.
19. The computer-readable media of claim 16, wherein the block
apparatus is further caused to transmit to the one or more robots,
the state of the block structure or one or more operation commands,
in accordance with the one or more block structure-robot
cooperation rules for the one or more robots; to receive feedback
from the one or more robots, and to transmit to the one or more
robots, via the communication interface, one or more additional
operation commands, based further on the feedback.
20. The computer-readable media of claim 15, wherein the block
apparatus is a first block apparatus, and wherein the block
apparatus is to cooperate with the one or more robots to affect
operations of the one or more robots relative to the first block
apparatus and at least a second block apparatus.
21. A robot, comprising: a plurality of actuators operate a
plurality of features of the robot; a communication interface to
receive from a block structure one or more operation commands in
association with performance of one or more operations relative to
the block structure; and a control module coupled with the
plurality of actuators and the communication interface to control
the actuators to operate the features to perform the one or more
operations relative to the block structure.
22. The robot of claim 21, wherein the communication interface is
to receive state information of the block structure instead of the
one or more commands, and the control module is to determine the
one or more commands, based at least in part of the state
information.
23. The robot of claim 21 further comprising a plurality of sensors
including a camera; and the control module is to control the
actuators based further on sensor data output by at least some of
the plurality of sensors, provide images captured by the camera to
the block structure, provide via the communication interface,
feedback to the block structure, and receive, via the communication
interface, additional operation commands from the block structure
provided in view of the feedback.
24. One or more computer-readable media comprising instructions
that cause a robot, in response to execution of the instructions by
a processor of the robot, to: receive, from a block structure, one
or more operation commands in association with performance of one
or more operations relative to the block structure; and control a
plurality of actuators of the robot to operate a number of features
of the robot perform the one or more operations relative to the
block structure.
25. The one or more computer-readable media of claim 24, wherein
the robot is further caused to receive state information of the
block structure instead of the one or more commands, and determine
the one or more commands, based at least in part of the state
information; sense with a plurality of sensors; and control the
actuators based further on sensor data output by the plurality of
sensors; capture one or more images; and provide the one or more
images to the block structure; or provide feedback to the block
structure, and receive additional operation commands from the block
structure provided in view of the feedback.
Description
TECHNICAL FIELD
[0001] The present disclosure relates to the fields of electronics,
robotics, and toys. More particularly, the present disclosure
relates to block structure and robot cooperation methods and
apparatuses.
BACKGROUND
[0002] The background description provided herein is for the
purpose of generally presenting the context of the disclosure.
Unless otherwise indicated herein, the materials described in this
section are not prior art to the claims in this application and are
not admitted to be prior art by inclusion in this section.
[0003] Smart blocks are known in the art. Today, many smart blocks
will respond to assembly events by making sounds and activating
lights. Typically, these blocks have connection points that allow
them to detect how they are assembled.
[0004] Robots, such as drones, are also known in the art. Lego.RTM.
Mindstorm.RTM. kits allow formation of complex robots and include
relatively simple programming interfaces for ordinary users (mainly
children) to program the assembled robots to perform basic
functions. Depending on what blocks are used to form the robot, it
may be programmed to behave in different ways.
[0005] However, there are no known interactions between block
structures formed with the smart blocks, and programmable
robots.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Embodiments of the block structure and robot cooperation
methods and apparatuses of the present disclosure will be readily
understood by the following detailed description in conjunction
with the accompanying drawings. To facilitate this description,
like reference numerals designate like structural elements.
Embodiments are illustrated by way of example, and not by way of
limitation, in the figures of the accompanying drawings.
[0007] FIG. 1 illustrates a perspective view of an example block
structure and an example robot incorporated with the block
structure and robot cooperation technology of the present
disclosure, according to various embodiments.
[0008] FIG. 2 illustrates an example main process of a base block,
according to various embodiments.
[0009] FIG. 3 illustrates an example object recognition process,
according to various embodiments
[0010] FIG. 4 illustrates an example data structure suitable for
use to represent a block structure, according to various
embodiments.
[0011] FIG. 5 illustrates an example block structure-robot
cooperation process, according to various embodiments.
[0012] FIG. 6 illustrates an example block structure-robot
cooperation rule database, according to various embodiments.
[0013] FIG. 7 illustrates an example process for operating a robot,
according to various embodiments.
[0014] FIG. 8 illustrates an example computing device suitable for
use to practice aspects of the present disclosure, according to
various embodiments.
[0015] FIG. 9 illustrates an example storage medium having
instructions to cause an apparatus to practice aspects of the
present disclosure, according to various embodiments.
DETAILED DESCRIPTION
[0016] Apparatuses and methods associated with block structure and
robot cooperation are disclosed herein. In embodiments, a block
apparatus may include a block structure-robot coordination module
to cooperate with one or more robots to affect operations of the
one or more robots relative to at least a block structure which the
block apparatus is a member. The block apparatus may further
include a housing that houses the block structure-robot
coordination module, with features to mate the block apparatus with
one or more other blocks to cause the block apparatus to become a
member of the block structure.
[0017] In embodiments, a robot may include a plurality of actuators
to operate a number of features of the robot; and a communication
interface to receive from a block structure one or more operation
commands in association with performance of one or more operations
relative to the block structure. The robot may also include a
control module coupled with the plurality of actuators and the
communication interface to control the actuators to perform the one
or more operations relative to the block structure.
[0018] In the following detailed description, reference is made to
the accompanying drawings which form a part hereof wherein like
numerals designate like parts throughout, and in which is shown by
way of illustration embodiments that may be practiced. It is to be
understood that other embodiments may be utilized and structural or
logical changes may be made without departing from the scope of the
present disclosure. Therefore, the following detailed description
is not to be taken in a limiting sense, and the scope of
embodiments is defined by the appended claims and their
equivalents.
[0019] Aspects of the disclosure are disclosed in the accompanying
description. Alternate embodiments of the present disclosure and
their equivalents may be devised without parting from the spirit or
scope of the present disclosure. It should be noted that like
elements disclosed below are indicated by like reference numbers in
the drawings.
[0020] Various operations may be described as multiple discrete
actions or operations in turn, in a manner that is most helpful in
understanding the claimed subject matter. However, the order of
description should not be construed as to imply that these
operations are necessarily order dependent. In particular, these
operations may not be performed in the order of presentation.
Operations described may be performed in a different order than the
described embodiment. Various additional operations may be
performed and/or described operations may be omitted in additional
embodiments.
[0021] For the purposes of the present disclosure, the phrase "A
and/or B" means (A), (B), or (A and B). For the purposes of the
present disclosure, the phrase "A, B, and/or C" means (A), (B),
(C), (A and B), (A and C), (B and C), or (A, B and C).
[0022] The description may use the phrases "in an embodiment," or
"in embodiments," which may each refer to one or more of the same
or different embodiments. Furthermore, the terms "comprising,"
"including," "having," and the like, as used with respect to
embodiments of the present disclosure, are synonymous.
[0023] As used herein, the term "module" may refer to, be part of,
or include an Application Specific Integrated Circuit (ASIC), an
electronic circuit, a processor (shared, dedicated, or group)
and/or memory (shared, dedicated, or group) that execute one or
more software or firmware programs, a combinational logic circuit,
and/or other suitable components that provide the described
functionality.
[0024] Referring now FIG. 1, wherein a block diagram illustrating a
perspective view of an example block structure and an example robot
incorporated with the technology of the present disclosure,
according to various embodiments, is shown. Depicted in FIG. 1 are:
example block structure 102, a model the Tower Bridge of London,
and example robot 104, a drone (or unmanned aerial vehicle). As
will be described in more detail below, block structure 102 and
robot 104 may be incorporated with teachings of the present
disclosure to cooperate with one another. In particular, block
structure 102 and robot 104 may be incorporated with the teachings
of the present disclosure for robot 104 to perform one or more
operations relative to block structure 102, e.g. flying 104
underneath the top span and in between the two towers.
[0025] Block structure 102 may be assembled with a number of smart
blocks 108 and a base block 112. For example, smart blocks 108 may
include the top portion of one of the towers, a top, mid or bottom
section of the tower, a suspension cable, the top span, the main
span and so forth. For the illustrated example embodiment, base
block 112 may be the base of one of the towers. In alternate
embodiments, base block 112 may be any block of block structure
102. Each of smart blocks 108 may include a body having features
that allow the smart block to be mated with one or more of other
smart blocks to form block structure 102. Further, in embodiments,
each of smart blocks 108 may include a communication interface (not
shown) to communicate to base block 112, directly or via another
smart block, of its inclusion in block structure 102. Additionally,
the communication interface of each smart block 108 may also
facilitate communication of the configuration, shape and/or size of
the smart block.
[0026] Similarly, base block 112 may include body 130 having
features that allow base block 112 to be mated with one or more of
other smart blocks to become a member of block structure 102.
Further, base block 112 may include a communication interface 128
to receive communications from smart blocks 108. In embodiments,
the communication interface of a smart block and communication
interface 128 may be configured to support basic wired serial
communication or wireless communication, such as near field
communication (NFC), with smart blocks 108.
[0027] In embodiments, communication interface 128 may further
support wireless communication with robot 104, another base block
of another block structure (not shown) (e.g., a model of the Tower
of London), or a cloud computing server (not shown). Thus,
communication interface 128 may be further configured to support
Bluetooth.RTM., WiFi, 3G/4G/LTE and/or other wireless communication
protocols/methodologies.
[0028] Additionally, base block 112 may include block structure
(BS)-Robot cooperation module 122 configured to cooperate with
robot 104 to affect operation of robot 104 relative to block
structure 102, of which base block 112 is a member. As will be
described in more detail below, BS-Robot cooperation module 122 may
be configured to cooperate with robot 104 to affect operation of
robot 104 relative to block structure 102, based at least in part
on the state of block structure 102, e.g., whether the entire block
structure 102 has been assembled, or whether the block structure
102 has been substantially assembled to include the top span. In
embodiments, the state of block structure 102 may include
identifications of member blocks 108, and the mating manner and/or
mating order of member blocks 108.
[0029] In embodiments, base block 112 may include BS-Robot database
124 having a number of cooperation rules. BS-Robot cooperation
module 122 may be configured to cooperate with robot 104 to affect
operation of robot 104 relative to block structure 102, in
accordance with one or more cooperation rules retrieved from
BS-Robot database 124. In alternate embodiments, BS-Robot database
124 may be disposed in a proximately located portable computing
device (not shown) (such as a smartphone or a computing tablet),
with BS-Robot cooperation module 122 accessing the remote BS-Robot
database 124 via communication interface 128 having the requisite
communication support. In still other embodiments, BS-Robot
database 124 may be disposed in a remote cloud computing server,
with BS-Robot cooperation module 122 accessing the remote BS-Robot
database 124 via communication interface 128 having the requisite
communication support, with or without going through a proximately
located portable computing device (not shown).
[0030] In embodiments, in lieu of smart blocks 108 having
communication interfaces to communicate their inclusion into block
structure 102, or in addition to smart blocks 108 having such
communication interfaces, base block 122 may further include object
recognition module 126 configured to receive one or more images,
via communication interface 128, and analyze the one or more images
to determine the state of block structure 102, and/or the state of
block structure 102 in conjunction to related neighboring block
structures (such as, a model of the Tower of London). In
embodiments, the one or more images may be provided by an
independent 2D or 3D camera (not shown), or a 2D or 3D camera
incorporated with robot 104.
[0031] In embodiments, BS-Robot cooperation module 122 may be
implemented in hardware, software or combination of both. Example
hardware implementations may include application specific
integrated circuits (ASIC) or programmable logic, such as, field
programmable gate arrays (FPGA) programmed with the operating logic
of BS-Robot cooperation module 122 described herein. Example
software implementations may include implementations in assembler
or high level languages that can be compiled into the machine
instructions supported by various target processors. For software
implementations, base block 112 may further include the target
processors and associated memory.
[0032] Still referring to FIG. 1, robot 104, in embodiments, may
include communication interface 138 configured to communicate with
base block 112. Further, robot 104 may further include sensors 132,
actuators 134 and control module 136. Actuators 134 may be
configured to operate a number of features of robot 104 to perform
a number of operations. For example, for the example drone robot
104, the features may include a number of rotors, and actuators 134
may be configured to control the rotation speed of the rotor
blades, the tilt/angle of the rotors, and so forth. Control module
136 may be configured to control actuators 134 to operate the
various features, to cause robot 104 to perform the operations
relative to block structure 102. Sensors 132 may be configured to
provide various sensor data, and control module 136 may be further
configured to control actuators 134, in view of the sensor data. In
embodiments, sensors 132 may include one or more cameras,
accelerometers, gyroscopes, altimeters, and so forth.
[0033] These and other aspects of block structure and robot
cooperation technology of the present disclosure will be further
described below with references to FIGS. 2-7. Before further
describing the technology, it should be noted that the block
structure and robot cooperation technology is not limited to the
example block structure and robot of FIG. 1. It will be readily
apparent from the description that the block structure and robot
cooperation technology may be practiced with a wide range of block
structures and robots. For examples, block structure 102 may be a
landing pad, a castle, a space station, an aircraft career, and so
forth; whereas robot 104 may be a spaceship, a fighter plane, a
transformer, a tank, an amphibious ship, an automobile, and so
forth. As a further and non-limiting example, block structure 102
may be a product in the process of being assembled in an automated
or semi-automated assembly line, and robot 104 may be one of the
assembly robots of the assembly line. In this further non-limiting
example, structure 102 may affect the actions taken by robot 104
relative to structure 102, in view of the state of structure 102,
which may include the member components included and/or the
manner/order the member components are included.
[0034] Referring now FIG. 2, wherein an example main process of a
base block, according to various embodiments, is illustrated. As
shown, process 200 for cooperating with a robot, by a base block,
may include operations to be performed at operation blocks 202-210.
Process 200 may be performed e.g., by BS-Robot cooperation module
122 of FIG. 1. In alternate embodiments, process 200 may include
more or less operations, or with the operations performed in
different order.
[0035] Process 200 may start at operation block 202. At operation
block 202, information may be received from the communication
interface of the base block or from the object recognition module
of the base block. As described earlier, information received from
the communication interface of the base block and/or from the
object recognition module of the base block may include information
about other smart blocks being or having been included or assembled
as part of the block structure, which the base structure is a
member. In response to receipt of such information about other
smart blocks being included/assembled as part of the block
structure, process 200 may proceed to operation block 204. At
operation block 204, the state of the block structure may be
updated.
[0036] An example process suitable for use to recognize objects in
an image to enable an object recognition module to provide
information about other smart blocks having been included or
assembled as part of the block structure will be later described
with references to FIG. 3. An example data structure suitable for
use to represent a block structure, and optionally, the neighboring
block structures will be later described with references to FIG.
4.
[0037] Continuing to refer to FIG. 2, as shown, information
received from the communication interface of the base block may
also include information about other neighboring or proximally
disposed block structures. An example of a neighboring block
structure to the example model Tower Bridge block structure of FIG.
1 may be a block model of the Tower of London, and/or a block model
of the City Hall of London. In response to receipt of such
information about other neighboring or proximally disposed block
structures, process 200 may proceed to operation block 206. At
operation block 206, the state of the neighboring or proximally
disposed block structures may be updated.
[0038] Still referring to FIG. 2, information received from the
communication interface of the base block may also include
information from the robots. In response to receipt of such
information about other robots, process 200 may proceed to
operation block 208. At operation block 208, the process for
cooperating with a robot may be performed. An example process 500
for cooperating with a robot will be later described with
references to FIG. 5.
[0039] On performance of the operations at operation block 204-208,
process 200 may proceed to operation block 210. At operation block
210, process 200 may return to operation block 202, and await
further inputs from other smart blocks, the object recognition
module, other block structures or the robots, and proceed therefrom
as earlier described.
[0040] Referring now to FIG. 3, wherein an example object
recognition process suitable for use to recognize and identify
objects in an image, according to various embodiments, is
illustrated. In alternate embodiments, other object recognition
process may be used instead. As shown, process 300 for recognizing
and identifying objects in an image may include operations at
operation blocks 302-304. Process 300 may be performed e.g., by
object recognition module 126 of FIG. 1. In alternate embodiments,
process 300 may include more or less operations, or with the
operations performed in different order.
[0041] Process 300 may start at operation block 302. At operation
block 302, a received image may be partitioned into a number of
regions. Next at operation block 304, each region may be analyzed
to recognize and identify objects within the region. Operation
block 304 may be repeated as many times as necessary to have each
region analyzed, and the objects therein identified. Further, in
the performance of each iteration of operation block 304 for a
region, process 300 itself may be recursively performed to have the
region further sub-divided, and the sub-regions iteratively
analyzed to recognize and identify objects within the sub-regions.
Process 300 may be recursively performed for any number of times,
depending on computing resource available and/or accuracy desired.
On completion of analysis of all the regions/sub-regions, process
300 may end.
[0042] In embodiments, smart blocks 108 may be provided with visual
markers to facilitate their recognition. The visual markers may be
or may not be humanly visible and/or comprehensible. As part of the
object recognition process, the configuration, shape and/or
dimensions of the smart blocks (including dimensions between one or
more smart blocks, such as tunnels and/or the space between
inter-spans formed by the smart blocks) may be identified.
[0043] Referring now to FIG. 4, wherein an example data structure
suitable for use to represent a block structure, according to
various embodiments is shown. In alternate embodiments, other data
structure may be employed to represent a block structure. As shown,
example data structure 400 may be a tree structure having a number
of nodes connected by branches. In particular, example data
structure 400 may include a root node 402 to represent the base
block. One or more other nodes 404 representing other smart blocks
directly connected the base block may be linked to root node 402.
Similarly, other nodes 406 representing still other smart blocks
directly connected to the smart blocks represented by nodes 404 may
be respectively linked to nodes 404, and so forth. In embodiments,
information about the smart nodes, such as configuration, shape,
size and so forth, may be stored at the respective nodes 402-406.
Thus, by traversing example data structure 400, BS-Robot
cooperation module 122 may determine a current state of the
represented block structure.
[0044] Additionally, if the base block is provided with information
about related or proximately disposed adjacent block structures,
nodes 408 representing the base blocks of these other blocks
structures may be linked to root node 402. According, for these
embodiments, likewise, by traversing example data structure 400,
BS-Robot cooperation module 122 may further determine the current
states of the represented neighboring block structures.
[0045] Referring now to FIG. 5, wherein an example block
structure-robot cooperation process, according to various
embodiments, is illustrated. As shown, process 500 for cooperating
with a robot, by a block structure, may include operations at
operation blocks 502-516. Process 500 may be performed e.g., by
BS-Robot cooperation module 122 of FIG. 1. In alternate
embodiments, process 500 may include more or less operations, or
with the operations performed in different order.
[0046] Process 500 may start at operation block 502. At operation
block 502, pairing information may be received from a robot. Next
at operation block 504, a process may be undertaken to pair the
robot with the block structure. The pairing may be performed using
any one of a number of pairing processes known in the art.
[0047] Then at operation block 506, cooperation rules for the
paired robot may be retrieved from the cooperation rule database
124. FIG. 6 illustrates an example block structure-robot
cooperation rule database 124', according to various embodiments.
As shown, example block structure-robot cooperation rule database
124' may include table 600 having a number of rows 602. Each row
602 may include the cooperation rule 606 for a robot 604. For
example, for Robot R1, the cooperation rule:
TABLE-US-00001 {IF Structure A is complete, Structure B is complete
and linked, and Structure C is complete and linked, cause Robot to
do X; Else cause Robot to do Y; Else cause Robot to do Z.}
[0048] Assuming Robot R1 is the example drone 104 of FIG. 1,
Structure A is a model of the Tower Bridge 102 of FIG. 1, Structure
B is a model of the Tower of London (not shown), and Structure C is
a model of London City Hall (not shown), and all 3 model structures
are completed and linked, "do X" may include having the drone fly
over and circle each of the three structures for x times following
a particular pattern. On the other hand, if only the models of the
Tower Bridge and Tower of London are completed and linked, "do Y"
may include having the drone fly over and circle each of the two
structures for y times following a different pattern. Still
further, if only the model of the Tower Bridge is completed, "do Z"
may include just having the drone fly through the Tower Bridge,
underneath the top span, in between the towers, for z times.
[0049] Referring back to FIG. 5, next, at operation block 508, the
state of the block structure (and the neighboring block structure,
if any) may be determined. As described earlier, the state(s) may
be determined by e.g., traversing a data structure, such as data
structure 400 of FIG. 4, representing the block structures.
[0050] Then, at operation block 510, a determination may be made
with respect to whether any operation condition of the operation
rule is met. If not, process 500 may proceed to operation block
512, where it may pause for an amount of time, and return to
operation block 508 again to determine the block structure state(s)
again, and proceed therefrom as earlier described.
[0051] Eventually, if is determined at operation block 510 that one
of the operation condition of the cooperation rule is met, process
500 may proceed to operation block 514. At operation block 514,
operation commands may be sent to the robot to cause the robot to
perform the operations relative to the block structure(s). In
alternate embodiments, where the robot is endowed with the logic to
infer the operations to be performed relative to certain state(s)
of the block structure(s), the state information of the block
structure(s) (in lieu of the specific operation commands) may be
sent to the robot instead. On transmission of the specific
operation commands or the state information of the block
structure(s), process 500 may end.
[0052] However, in alternate embodiments, e.g., embodiments where
only an initial set of commands may be sent to the robot, process
500 may proceed to operation block 516 instead. At operation block
516, feedback may be received from robot with respect to its state
and/or operating conditions. On receipt of the feedback, process
500 may return to operation block 514, where additional operation
commands may be sent to robot to cause robot to perform additional
operations or modify its operations to be performed relative to the
block structure(s). For these embodiments, the operations at
operation block 514 and 516 may be repeated any number of times
before process 500 ends.
[0053] Referring now to FIG. 7, wherein an example process for
operating a robot, according to various embodiments, is
illustrated. As shown, process 700 for operating a robot, may
include operations at operation blocks 702-712. Process 700 may be
performed e.g., by control module 136 of FIG. 1. In alternate
embodiments, process 700 may include more or less operations, or
with the operations performed in different order.
[0054] Process 700 may start at operation blocks 702 or 706. At
operation block 702, state information about block structure(S) may
be received. Next at operation block 704, the operations to be
performed relative to the block structure(s), in view of the
state(s), may be determined. At operation block 706, the operation
commands themselves may be received.
[0055] From either operation block 704 or 706, process 700 may
proceed to operation block 708. At operation block 708, the
actuators may be controlled with respect to their operation of the
features of the robot, in accordance with the received/determined
operation commands.
[0056] Next, at operation block 710, sensor data may be received
and analyzed. From operation block 710, process 700 may return to
operations block 708, and adjust controlling of the actuators, in
view of the sensor data received. The operations at operation
blocks 708 and 710 may be repeated a number of times, as long as
robot is in operation. Eventually, from operation block 710,
process 700 may end.
[0057] In alternate embodiments, from block 710, process 700 may
proceed to operation block 712. At operation block 712, feedback,
such as, sensor data received from the sensors, may be provided to
the cooperating block structure. On provision of the feedback,
process 700 may proceed to operation block 706 to receive
new/modified operation commands from the block structure, and
proceed therefrom as earlier described.
[0058] The various example block structure, robot, their
cooperation used in the above description are meant to be
illustrative and not limiting. Those skilled in the art will
appreciate from the foregoing description that the block
structure-robot cooperation technology of the present disclosure
may be practiced with a wide range of block structures and robots,
performing a wide range of cooperation. For example, multiple block
structures (such as landing pads) incorporated with the teachings
of the present disclosure may be built to compete to attract robots
(such as, drones) incorporated with the complementary teachings of
the present disclosure to visit (land on) the block structures. As
described earlier, robotics in an assembly line may be caused to
behave differently based on components included in a product being
assembled, including the manner/order the components were
included.
[0059] FIG. 8 illustrates an example computing device incorporated
with the block structure and robot cooperation technology of the
present disclosure. As shown, computing device 800 may include one
or more processors or processor cores 802, and system memory 804.
For the purpose of this application, including the claims, the term
"processor" refers to physical processors, and the terms
"processor" and "processor cores" may be considered synonymous,
unless the context clearly requires otherwise. Additionally,
disposed thereon may be input/output device interfaces 808 (for
interfacing with I/O devices such as display, keyboard, cursor
control and so forth) and communication interfaces 810 for
communication devices (such as network interface cards, modems and
so forth). The elements may be coupled to each other via system bus
812, which may represent one or more buses. In the case of multiple
buses, they may be bridged by one or more bus bridges (not shown).
Additionally, when used as proximally located portable computing
device or a cloud computing server to host the cooperation rule
database, computer 800 may include mass storage devices 806 (such
as diskette, hard drive, compact disc read only memory (CD-ROM) and
so forth).
[0060] Each of these elements may perform its conventional
functions known in the art. System memory 804 and mass storage
devices 806 may be employed to store a working copy and a permanent
copy of the programming instructions implementing an operating
system and various applications, in particular, the operating logic
for base block 112 and/or robot 104, collectively referred to as
computational logic 822. Computational logic 822 may be implemented
by assembler instructions supported by processor(s) 802 or
high-level languages, such as, for example, C, that can be compiled
into such instructions.
[0061] The number, capability and/or capacity of these elements
810-812 may vary, depending on whether computing device 800 is used
within a base block 112, with a robot 104, or a proximally
located/remotely disposed device to host the cooperation rule
database. Otherwise, the constitutions of elements 810-812 are
known, and accordingly will not be further described.
[0062] FIG. 11 illustrates an example computer-readable
non-transitory storage medium that may be suitable for use to store
instructions that cause an apparatus, in response to execution of
the instructions by the apparatus, to practice selected aspects of
the present disclosure. As shown, non-transitory computer-readable
storage medium 902 may include a number of programming instructions
904. Programming instructions 904 may be configured to enable a
computing device, e.g., computing device 800, in response to
execution of the programming instructions, to perform, e.g.,
various operations associated with base block 112 and/or robot 104,
described with references to FIGS. 1-7. In alternate embodiments,
programming instructions 904 may be disposed on multiple
computer-readable non-transitory storage media 902 instead. In
alternate embodiments, programming instructions 904 may be disposed
on computer-readable transitory storage media 902, such as,
signals.
[0063] Referring back to FIG. 8, for one embodiment, at least one
of processors 802 may be packaged together with memory having
computational logic 822 (in lieu of storing on memory 804 and
storage 806). For one embodiment, at least one of processors 802
may be packaged together with memory having computational logic 822
to form a System in Package (SiP). For one embodiment, at least one
of processors 802 may be integrated on the same die with memory
having computational logic 822. For one embodiment, at least one of
processors 802 may be packaged together with memory having
computational logic 822 to form a System on Chip (SoC).
[0064] Thus various example embodiments of the present disclosure
have been described including, but are not limited to:
[0065] Example 1 may be a block apparatus, comprising: one or more
processors and memory; a block structure-robot coordination module
disposed in the memory and to be operated by the one or more
processors to cooperate with one or more robots to affect
operations of the one or more robots relative to at least a block
structure which the block apparatus is a member; and a housing that
houses the one or more processors, the memory, and the block
structure-robot coordination module, with features to mate the
block apparatus with one or more other blocks to cause the block
apparatus to become a member of the block structure.
[0066] Example 2 may be example 1, wherein to cooperate with one or
more robots to affect operations of the one or more robots relative
to the block structure, the block structure-robot coordination
module may access a block structure-robot cooperation rules
database for one or more block structure-robot cooperation rules
for the one or more robots, based at least in part on a state of
the block structure.
[0067] Example 3 may be example 2, further comprising the block
structure-robot cooperation rules database having a plurality of
block structure-robot cooperation rules for a plurality of robots,
based at least in part on the state of the block structure.
[0068] Example 4 may be example 3, further comprising a
communicative interface to facilitate update of the plurality of
block structure-robot cooperation rules for the plurality of
robots.
[0069] Example 5 may be example 3, wherein the block
structure-robot cooperation rules database may be remotely
disposed; and wherein the block apparatus may further comprise a
communication interface to facilitate the block structure-robot
coordination module in accessing the remotely disposed block
structure-robot cooperation rules database for the one or more
block structure-robot cooperation rules for the one or more
robots.
[0070] Example 6 may be example 5, wherein the block
structure-robot cooperation rules database may be remotely disposed
on a proximally located portable computing device.
[0071] Example 7 may be example 5, wherein the block
structure-robot cooperation rules database may be remotely disposed
on a cloud computing server.
[0072] Example 8 may be example 7, wherein the communication
interface may facilitate the block structure-robot coordination
module in accessing the remotely disposed block structure-robot
cooperation rules database via a proximally located portable
computing device.
[0073] Example 9 may be example 2, wherein the state of the block
structure may include identifications of the block members of the
block structure, and mating manner or order of the block
members.
[0074] Example 10 may be example 2, wherein the block
structure-robot coordination module may further determine the state
of the block structure.
[0075] Example 11 may be example 10, wherein the block
structure-robot coordination module may further traverse a data
structure with information about member blocks of the block
structure to determine the state of the block structure.
[0076] Example 12 may be example 11, further comprising a
communication interface to facilitate the block structure-robot
coordination module to receive information from other blocks of the
block structure to maintain the data structure with information
about member blocks of the block structure.
[0077] Example 13 may be example 11, further comprising a
communication interface to facilitate the block structure-robot
coordination module to receive one or more images of the block
structure; and an image recognition module to analyze the one or
more images to extract and provide information related to member
blocks of the block structure to maintain the data structure with
information about member blocks of the block structure.
[0078] Example 14 may be example 2, further comprising a
communication interface; and the block structure-robot coordination
module may further transmit to the one or more robots, via the
communication interface, the state of the block structure or one or
more operation commands, in accordance with the one or more block
structure-robot cooperation rules for the one or more robots.
[0079] Example 15 may be example 14, wherein the block
structure-robot coordination module may further receive feedback
from the one or more robots, via the communication interface, and
transmit to the one or more robots, via the communication
interface, one or more additional operation commands, based further
on the feedback.
[0080] Example 16 may be example 1, wherein the block apparatus is
a base block of the block structure.
[0081] Example 17 may be any one of examples 1-16, wherein the
block structure may be a first block structure, and wherein the
block structure-robot coordination module may cooperate with the
one or more robots to affect operations of the one or more robots
relative to the first block structure and at least a second block
structure.
[0082] Example 18 may be a method, comprising: pairing, by a block
apparatus, with a robot; and cooperating, by the block apparatus,
with the robot to affect operations of the robot relative to at
least a block structure which the block apparatus is a member.
[0083] Example 19 may be example 18, wherein cooperating may
comprise accessing a locally, proximally or remotely disposed block
structure-robot cooperation rules database for one or more block
structure-robot cooperation rules for the one or more robots, based
at least in part on a state of the block structure.
[0084] Example 20 may be example 19, wherein block structure-robot
cooperation rules database is locally disposed, and the method may
further comprise updating, by the block apparatus, the plurality of
block structure-robot cooperation rules for the plurality of robots
in the locally disposed block structure-robot cooperation rules
database.
[0085] Example 21 may be example 18, wherein the state of the block
structure may include identifications of the block members of the
block structure, and mating manner or order of the block
members.
[0086] Example 22 may be example 18, further comprising
determining, by the block apparatus, the state of the block
structure.
[0087] Example 23 may be example 22, wherein determining may
comprise traversing a data structure with information about member
blocks of the block structure.
[0088] Example 24 may be example 18, further comprising receiving,
by the block apparatus, information from other blocks of the block
structure to maintain the data structure with information about
member blocks of the block structure.
[0089] Example 25 may be example 18, further comprising receiving,
by the block apparatus, one or more images of the block structure;
and an image recognition module to analyze the one or more images
to extract and provide information related to member blocks of the
block structure to maintain the data structure with information
about member blocks of the block structure.
[0090] Example 26 may be example 19, further comprising
transmitting, by the block apparatus, to the one or more robots,
the state of the block structure or one or more operation commands,
in accordance with the one or more block structure-robot
cooperation rules for the one or more robots.
[0091] Example 27 may be example 26, further comprising receiving,
by the block apparatus, feedback from the one or more robots, and
transmitting to the one or more robots, one or more additional
operation commands, based further on the feedback.
[0092] Example 28 may be example 18-27, wherein the block apparatus
is a first block apparatus, and wherein cooperating comprises
cooperating with the one or more robots to affect operations of the
one or more robots relative to the first block apparatus and at
least a second block apparatus.
[0093] Example 29 may be one or more computer-readable media
comprising instructions that cause a block apparatus, in response
to execution of the instructions by a processor of the block
apparatus, to: pair a robot with the block apparatus; and cooperate
with the robot to affect operations of the robot relative to at
least a block structure which the block apparatus is a member.
[0094] Example 30 may be example 29, wherein to cooperate with one
or more robots to affect operations of the one or more robots
relative to the block structure, may comprise to access a locally,
proximally or remotely disposed block structure-robot cooperation
rules database for one or more block structure-robot cooperation
rules for the one or more robots, based at least in part on a state
of the block structure.
[0095] Example 31 may be example 30, wherein the block
structure-robot cooperation rules database is locally disposed, and
the block apparatus may be further caused to update of the
plurality of block structure-robot cooperation rules for the
plurality of robots.
[0096] Example 32 may be example 30, wherein the state of the block
structure may include identifications of the block members of the
block structure, and mating manner or order of the block
members.
[0097] Example 33 may be example 30, wherein the block apparatus
may be further caused to determine the state of the block
structure.
[0098] Example 34 may be example 33, wherein the block apparatus
may be further caused to traverse a data structure with information
about member blocks of the block structure to determine the state
of the block structure.
[0099] Example 35 may be example 34, wherein the block apparatus
may be further caused to receive information from other blocks of
the block structure to maintain the data structure with information
about member blocks of the block structure.
[0100] Example 36 may be example 34, wherein the block apparatus
may be further caused to receive one or more images of the block
structure; and to extract and provide information related to member
blocks of the block structure to maintain the data structure with
information about member blocks of the block structure.
[0101] Example 37 may be example 30, wherein the block apparatus
may be further caused to transmit to the one or more robots, the
state of the block structure or one or more operation commands, in
accordance with the one or more block structure-robot cooperation
rules for the one or more robots.
[0102] Example 38 may be example 37, wherein the block apparatus
may be further caused to receive feedback from the one or more
robots, and transmit to the one or more robots, via the
communication interface, one or more additional operation commands,
based further on the feedback.
[0103] Example 39 may be example 29-38, wherein the block apparatus
may be a first block apparatus, and wherein the block apparatus may
cooperate with the one or more robots to affect operations of the
one or more robots relative to the first block apparatus and at
least a second block apparatus.
[0104] Example 40 may be a block apparatus, comprising: means for
pairing with a robot; and means for cooperating with the robot to
affect operations of the robot relative to at least a block
structure which the block apparatus is a member.
[0105] Example 41 may be example 40, wherein means for cooperating
may comprise means for accessing a locally, proximally or remotely
disposed block structure-robot cooperation rules database for one
or more block structure-robot cooperation rules for the one or more
robots, based at least in part on a state of the block
structure.
[0106] Example 42 may be example 41, wherein block structure-robot
cooperation rules database is locally disposed, and the block
apparatus may further comprise means for updating the plurality of
block structure-robot cooperation rules for the plurality of robots
in the locally disposed block structure-robot cooperation rules
database.
[0107] Example 43 may be example 40, wherein the state of the block
structure may include identifications of the block members of the
block structure, and mating manner or order of the block
members.
[0108] Example 44 may be example 40, further comprising means for
determining the state of the block structure.
[0109] Example 45 may be example 44, wherein means for determining
may comprise means for traversing a data structure with information
about member blocks of the block structure.
[0110] Example 46 may be example 40, further comprising means for
receiving information from other blocks of the block structure to
maintain the data structure with information about member blocks of
the block structure.
[0111] Example 47 may be example 40, further comprising means for
receiving one or more images of the block structure; and means for
analyzing the one or more images to extract and provide information
related to member blocks of the block structure to maintain the
data structure with information about member blocks of the block
structure.
[0112] Example 48 may be example 41, further comprising means for
transmitting to the one or more robots, the state of the block
structure or one or more operation commands, in accordance with the
one or more block structure-robot cooperation rules for the one or
more robots.
[0113] Example 49 may be example 48, further comprising means for
receiving, feedback from the one or more robots, and transmitting
to the one or more robots, one or more additional operation
commands, based further on the feedback.
[0114] Example 50 may be any one of examples 40-49, wherein the
block apparatus may be a first block apparatus, and wherein means
for cooperating may comprise means for cooperating with the one or
more robots to affect operations of the one or more robots relative
to the first block apparatus and at least a second block
apparatus.
[0115] Example 51 may be a robot, comprising: a plurality of
actuators operate a plurality of features of the robot; a
communication interface to receive from a block structure one or
more operation commands in association with performance of one or
more operations relative to the block structure; and a control
module coupled with the plurality of actuators and the
communication interface to control the actuators to operate the
features to perform the one or more operations relative to the
block structure.
[0116] Example 52 may be example 51, wherein the communication
interface may receive state information of the block structure
instead of the one or more commands, and the control module may
determine the one or more commands, based at least in part of the
state information.
[0117] Example 53 may be example 51 further comprising a plurality
of sensors; and the control module may control the actuators based
further on sensor data output by the plurality of sensors.
[0118] Example 54 may be example 51 further comprising a plurality
of sensors including a camera; and the control module may provide
images captured by the camera to the block structure.
[0119] Example 55 may be any one of examples 51-54 wherein the
control module may further provide, via the communication
interface, feedback to the block structure, and receive, via the
communication interface, additional operation commands from the
block structure provided in view of the feedback.
[0120] Example 56 may be a method, comprising: receiving, by a
robot, from a block structure, one or more operation commands in
association with performing one or more operations relative to the
block structure; and controlling, by the robot, a plurality of
actuators of the robot to operate a number of features of the robot
to perform the one or more operations relative to the block
structure.
[0121] Example 57 may be example 56, wherein receiving may comprise
receiving state information of the block structure instead of the
one or more commands, and the method may further comprise
determining the one or more commands, based at least in part of the
state information.
[0122] Example 58 may be example 56 further comprising sensing with
a plurality of sensors of the robot; and controlling comprises
controlling the actuators based further on sensor data output by
the plurality of sensors.
[0123] Example 59 may be example 56 further comprising capturing
one or more images and providing the one or more images to the
block structure.
[0124] Example 60 may be any one of examples 56-59, further
comprising providing feedback to the block structure, and receiving
additional operation commands from the block structure provided in
view of the feedback.
[0125] Example 61 may be one or more computer-readable media
comprising instructions that cause a robot, in response to
execution of the instructions by a processor of the robot, to:
receive, from a block structure, one or more operation commands in
association with performance of one or more operations relative to
the block structure; and control a plurality of actuators of the
robot to operate a number of features of the robot to perform the
one or more operations relative to the block structure.
[0126] Example 62 may be example 61, wherein the robot may be
further caused to receive state information of the block structure
instead of the one or more commands, and determine the one or more
commands, based at least in part of the state information.
[0127] Example 63 may be example 61, wherein the robot may be
further caused to sense with a plurality of sensors; and control
the actuators based further on sensor data output by the plurality
of sensors.
[0128] Example 64 may be example 61, wherein the robot may be
further caused to capture one or more images; and provide the one
or more images to the block structure.
[0129] Example 65 may be example 61-64 wherein the robot may be
further caused to provide feedback to the block structure, and
receive additional operation commands from the block structure
provided in view of the feedback.
[0130] Example 66 may be a robot apparatus, comprising: means for
receiving, by a robot, from a block structure, one or more
operation commands in association with performance of one or more
operations relative to the block structure; and means for
controlling a plurality of actuators of the robot apparatus to
operate a number of features of the robot to perform the one or
more operations relative to the block structure.
[0131] Example 67 may be example 66, wherein means for receiving
may comprise means for receiving state information of the block
structure instead of the one or more commands, and the robot
apparatus may further comprise means for determining the one or
more commands, based at least in part of the state information.
[0132] Example 68 may be example 66 further comprising means for
sensing; and means for controlling comprises means for controlling
the actuators based further on sensor data output by the means for
sensing.
[0133] Example 69 may be example 66 further comprising means for
capturing one or more images and providing the one or more images
to the block structure.
[0134] Example 62 may be any one of examples 66-69, further
comprising means for providing feedback to the block structure, and
the means for receiving is further for receiving additional
operation commands from the block structure provided in view of the
feedback.
[0135] It will be apparent to those skilled in the art that various
modifications and variations can be made in the disclosed
embodiments of the disclosed device and associated methods without
departing from the spirit or scope of the disclosure. Thus, it is
intended that the present disclosure covers the modifications and
variations of the embodiments disclosed above provided that the
modifications and variations come within the scope of any claims
and their equivalents.
* * * * *