BLOCK STRUCTURE AND ROBOT COOPERATION METHODS AND APPARATUSES

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.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
TECHNICAL FIELD

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

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.

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.

Robots, such as drones, are also known in the art. Lego® Mindstorm® 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.

However, there are no known interactions between block structures formed with the smart blocks, and programmable robots.

BRIEF DESCRIPTION OF THE DRAWINGS

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.

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.

FIG. 2 illustrates an example main process of a base block, according to various embodiments.

FIG. 3 illustrates an example object recognition process, according to various embodiments

FIG. 4 illustrates an example data structure suitable for use to represent a block structure, according to various embodiments.

FIG. 5 illustrates an example block structure-robot cooperation process, according to various embodiments.

FIG. 6 illustrates an example block structure-robot cooperation rule database, according to various embodiments.

FIG. 7 illustrates an example process for operating a robot, according to various embodiments.

FIG. 8 illustrates an example computing device suitable for use to practice aspects of the present disclosure, according to various embodiments.

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

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 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.

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.

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.

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.

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).

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.

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.

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.

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.

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.

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®, WiFi, 3G/4G/LTE and/or other wireless communication protocols/methodologies.

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.

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).

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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:

{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.}

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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).

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.

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.

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.

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).

Thus various example embodiments of the present disclosure have been described including, but are not limited to:

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.

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.

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.

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.

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.

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.

Example 7 may be example 5, wherein the block structure-robot cooperation rules database may be remotely disposed on a cloud computing server.

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.

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.

Example 10 may be example 2, wherein the block structure-robot coordination module may further determine the state of the block structure.

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.

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.

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.

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.

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.

Example 16 may be example 1, wherein the block apparatus is a base block of the block structure.

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.

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.

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.

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.

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.

Example 22 may be example 18, further comprising determining, by the block apparatus, the state of the block structure.

Example 23 may be example 22, wherein determining may comprise traversing a data structure with information about member blocks of the block structure.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Example 33 may be example 30, wherein the block apparatus may be further caused to determine the state of the block structure.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Example 44 may be example 40, further comprising means for determining the state of the block structure.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Example 59 may be example 56 further comprising capturing one or more images and providing the one or more images to the block structure.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.
Patent History
Publication number: 20160375372
Type: Application
Filed: Jun 24, 2015
Publication Date: Dec 29, 2016
Inventors: Glen J. Anderson (Beaverton, OR), Yevgeniy Y. Yarmosh (Portland, OR), David I. Poisner (Carmichael, CA), Gregory A. Peek (North Plains, OR), Mark R. Francis (Portland, OR), Ravishankar Iyer (Portland, OR)
Application Number: 14/749,311
Classifications
International Classification: A63H 33/26 (20060101);