System and method for controlling robot
By using the protocol conversion and coordination control library for the main robot and auxiliary robot systems, the complexity of managing multiple robots in a multi-segment performance robot system is solved, achieving the effects of rapid theme or role switching and cost reduction.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- UNIVERSAL CITY STUDIOS LLC
- Filing Date
- 2024-09-20
- Publication Date
- 2026-04-17
AI Technical Summary
Existing technologies make it difficult to effectively manage and coordinate multiple robots in a multi-segment performance robot system, resulting in complex and costly overall theme or role switching.
The system employs a main robot and multiple auxiliary robot systems. It uses a controller to switch and coordinate different protocols, and utilizes a coordination control library and navigation module to determine the state of multi-segment robots and switch operation profiles. It also supports rapid switching between multiple themes or roles.
It enables rapid switching of themes or roles in multi-segment robot systems, reducing manufacturing and maintenance costs while improving system flexibility and coordination.
Smart Images

Figure CN121889246A_ABST
Abstract
Description
[0001] Cross-reference to related applications This application claims priority and interest in U.S. Provisional Application No. 63 / 619,169, filed January 9, 2024, entitled “SYSTEMS AND METHODS FOR CONTROLLING A ROBOT”, and U.S. Provisional Application No. 63539883, filed September 22, 2023, entitled “SYSTEMS AND METHODS FOR CONTROLLING A ROBOT”, each of which is hereby incorporated in its entirety by reference for all purposes. Background Technology
[0002] This section aims to introduce the reader to various technical aspects that may be associated with this technology, which are described and / or claimed below. This discussion is intended to provide the reader with background information to facilitate a better understanding of the various aspects of this disclosure. Accordingly, it should be understood that these statements are to be read in this context, and not as an admission of prior art.
[0003] Amusement parks may include performance robots (e.g., electronically animated characters) that interact with or otherwise engage park visitors. For example, performance robots may be positioned along ride paths at attractions or at specific locations within the park to contribute to the overall theme of an attraction or location. These robots can move via pre-programmed positions or actions as visitors are guided past (e.g., via rides at the attraction) or walk past them. Thus, performance robots can enhance the immersive experience offered to visitors by attractions or themed amusement park locations featuring performance robots. It is now recognized that employing multiple robots as components of multi-segment performance robots can be desirable. Accordingly, systems and methods for managing such multi-segment performance robots as homogeneous units are also expected. Summary of the Invention
[0004] The following outlines certain embodiments that are proportionate to the scope of the original claimed subject matter. These embodiments are not intended to limit the scope of the claimed subject matter, but are merely intended to provide a brief overview of the possible forms of the subject matter. In fact, this subject matter can encompass a wide variety of forms that may be similar to or different from the embodiments set forth below.
[0005] In one embodiment, a multi-segment robot includes a first robot configured to communicate via a first protocol and a second robot coupled to the first robot and configured to communicate via a second protocol. Further, the multi-segment robot includes a controller, the controller including a processing system and a memory, the memory encoding instructions configured to be executed by the processing system to cause the controller to operate based on a third protocol and receive one or more movement commands to move the multi-segment robot. Additionally, the instructions executed by the processing system cause the processing system to determine the state of the multi-segment robot, determine an operation profile for the first robot and the second robot based on the one or more movement commands and the state, wherein the operation profile includes one or more robot control operations, and converts at least a first portion of the operation profile from the third protocol to a first conversion in the first protocol. Additionally, the instructions executed by the processing system cause the processing system to convert at least a second portion of the operation profile from the third protocol to a second conversion in the second protocol, and output the first conversion as a first operation instruction to the first robot and the second conversion as a second operation instruction to the second robot.
[0006] In one embodiment, a method for operating a multi-segment robot includes receiving one or more movement commands in a first protocol via a controller of a first robot, determining the state of the multi-segment robot via the controller of the first robot, and determining, via the controller of the first robot, operation profiles for a second robot and a third robot based on the one or more movement commands and the state, wherein the operation profiles include one or more robot control operations. The method further includes converting at least a first portion of the operation profile from the first protocol to a first conversion in a second protocol via the controller of the first robot, converting at least a second portion of the operation profile from the first protocol to a second conversion in a third protocol via the controller of the first robot, and outputting the first conversion as a first operation instruction to the second robot and the second conversion as a second operation instruction to the third robot via the controller of the first robot.
[0007] In one embodiment, a multi-segment robot includes a first robot configured to communicate via a first protocol and a second robot coupled to the first robot and configured to communicate via a second protocol. Further, the multi-segment robot includes a controller, the controller including a processing system and a memory, the memory encoding instructions configured to be executed by the processing system to cause the controller to operate based on a third protocol and receive position data in the first protocol from the first robot. Further, the instructions, executed by the processing system, cause the processing system to convert the position data into converted position data in the third protocol, and determine an operation profile for the second robot based on the converted position data and a coordinated control algorithm or based on the converted position data and a coordinated control library, wherein the operation profile includes or indicates one or more robot control operations. Additionally, the instructions may be executed by the processing system to cause the processing system to convert at least a portion of the operation profile from the third protocol into a converted operation profile in the second protocol, and output the converted operation profile as operation instructions to the second robot.
[0008] Various improvements to the above-described features can be made in conjunction with various aspects of this disclosure. Further features can also be incorporated into these various aspects. These improvements and additional features can exist alone or in any combination. Attached Figure Description
[0009] These and other features, aspects, and advantages of this disclosure will become more readily understood when the following detailed description is read with reference to the accompanying drawings, in which the same characters throughout the drawings denote the same parts, wherein: Figure 1 This is a schematic diagram of a multi-segment robot having a main robot and multiple auxiliary robots according to an embodiment of the present disclosure; Figure 2 This is a flowchart of a method for instructing the movement of a multi-segment robot based on one or more movement commands, according to embodiments of the present disclosure. Figure 3 This is a flowchart of a method for instructing the movement of a multi-segment robot based on location data, according to embodiments of the present disclosure; and Figure 4 This is a schematic diagram of a multi-segment robot according to an embodiment of the present disclosure. Detailed Implementation
[0010] One or more specific embodiments of this disclosure will be described below. To provide a concise description of these embodiments, not all features of the actual implementation may be omitted from the specification. It should be understood that, as in any engineering or design project, the development of any such actual implementation requires numerous implementation-specific decisions to achieve specific goals for the developer that may vary from implementation to implementation, such as compliance with system-related constraints and business-related constraints. Furthermore, it should be understood that such development efforts can be complex and time-consuming, but will be nothing more than routine tasks of design, fabrication, and manufacturing for those skilled in the art who benefit from this disclosure.
[0011] When describing elements of various embodiments of this disclosure, the articles “a” and “the” are intended to mean the presence of one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that additional elements may be present in addition to those listed. Additionally, it should be understood that references to “an embodiment” or “an embodiment” in this disclosure are not intended to be construed as excluding the existence of additional embodiments that also incorporate the described features.
[0012] This disclosure relates to a multi-segment robot configured to travel along an amusement park environment to interact with and / or provide performances (e.g., shows) for customers of the amusement park. The multi-segment performance robot may include a main robot segment (e.g., a base robot), also referred to herein as the "main robot," and multiple auxiliary robot segments (e.g., multiple parasitic robots), also referred to herein as "auxiliary robots." The main robot may include a primary motion platform enabling the multi-segment performance robot to traverse terrain such as various zones or areas of an amusement park where customers can be located. For example, the primary motion platform may include a propulsion system having one or more wheels, tracks, legs, and / or other suitable mechanisms or devices enabling the primary motion platform to propel the multi-segment performance robot along a path. The auxiliary robots may include an animated character system forming at least a portion of the theme or character (e.g., a dragon, wolf, or other creature) of the multi-segment robot. In particular, the animated character system may include one or more operable limbs or appendages (e.g., arms, heads), subject covering structures (e.g., fur, scales), audio output devices (e.g., acoustic speakers), and / or visual output devices (e.g., lighting features, displays) that can enhance the customer’s perception of the subject or character depicted by the multi-segment performing robot.
[0013] As discussed in detail below, a secondary robot can be one of multiple secondary robots that can be removably coupled to a main robot. Accordingly, various secondary robots with different themes or roles can be interchangeably equipped on the main robot. In this way, the overall theme or role of a multi-segment performance robot can be easily and quickly adjusted by changing the type of secondary robots coupled to the main robot (e.g., a specific theme or role). The secondary robots can communicate via different protocols than the main robot; therefore, the main robot can be configured to translate operational instructions into different protocols associated with each of the secondary robots. For this purpose, a multi-segment performance robot can utilize the same motion platform (e.g., the main robot) to provide a robot system with multiple unique themes that customers can interact with, thereby reducing the overall manufacturing complexity and / or maintenance costs of the multi-segment performance robot (e.g., compared to producing a separate performance robot for each theme or role).
[0014] In an embodiment, a user may use an input device (e.g., a handheld controller) to send one or more movement commands to move the multi-segment robot. This input device may include one or more joysticks and / or one or more buttons. It should be noted that any suitable input device that enables the user to input data, commands, and / or information can be used. In an embodiment, the user may use a handheld object (e.g., a prop) and / or a gesture (e.g., a hand gesture, an arm gesture, a prop gesture) to send one or more movement commands to move the multi-segment robot. The main robot of the multi-segment robot may include a controller that can receive one or more movement commands via a first protocol (e.g., from a handheld controller, a handheld object, a gesture). The controller may determine some or all of the states (e.g., position, orientation, state) of the sub-robots. In an embodiment, the controller may filter one or more movement commands based on the state. Further, the controller may access a coordination control library that may include a set of rules for defining robot control operations and / or algorithms to determine operation profiles that can be associated with one or more movement commands and states. Operation profiles (e.g., animation profiles associated with a specific character or character type) may indicate one or more robot control operations for the multi-segment robot.
[0015] The first auxiliary robot can be configured to communicate via a second protocol different from the first protocol, and the second auxiliary robot can be configured to communicate via a third protocol different from the first and second protocols. Therefore, the controller can convert a first portion of the operation profile from the first protocol to the second protocol for transmission to the first auxiliary robot. Additionally, the controller can convert a second portion of the operation profile from the first protocol to the third protocol for transmission to the second auxiliary robot. The controller can then simultaneously or at different time periods transmit (e.g., output) the first conversion as a first operation instruction to the first auxiliary robot and the second conversion as a second operation instruction to the second auxiliary robot.
[0016] In one embodiment, the controller receives position data from the first auxiliary robot via a second protocol and converts the position data into a first protocol associated with the controller. The controller then determines an operation profile for the second auxiliary robot based on the converted position data and a coordination control library (e.g., an operation profile library for one or more roles, role types, and emotion descriptions). The controller can then convert a portion of the operation profile from the first protocol into a third protocol associated with the second auxiliary robot. Furthermore, the controller can transmit the converted operation profile as operation instructions to the second auxiliary robot.
[0017] Considering the foregoing, Figure 1 This is a schematic diagram of robot system 10, which includes a main robot 12 and multiple auxiliary robots 14 (collectively referred to as auxiliary robots 14 in this document for convenience), which together form a multi-segment robot 16. It should be noted that, although... Figure 1 Multiple auxiliary robots 14 are shown, but embodiments may include individual auxiliary robots configured to cooperate with a master robot 12. The master robot 12 includes a first processing system 18 having a first controller 20, and each of the auxiliary robots 14 includes a second processing system 22 having a second controller 24. The first controller 20 is communicatively coupled to a first communication component 26 of the master robot 12, and the second controller 24 is communicatively coupled to a second communication component 28 of a corresponding auxiliary robot 14.
[0018] In some embodiments, the first communication component 26 and the second communication component 28 enable the first controller 20 and the second controller 24 to communicate via one or more wireless communication protocols through one or more wireless communication channels (e.g., data transmission, signal transmission). The second controller 24 of each of the auxiliary robots 14 may utilize different protocols. In some embodiments, the first controller 20 and the second controller 24 may be communicatively coupled to each other via a network 29 and a system controller 30 of the robot system 10. For example, the system controller 30 may include a communication component 31 that enables the system controller 30 to (e.g., via the network 29) receive communication signals from the first controller 20 and transmit communication signals (e.g., via the network 29) to the second controller 24, and vice versa. It should be noted that the system controller 30 may also communicate via one or more wireless communication protocols through one or more wireless communication channels. Further, as discussed below, the first controller 20 and the second controller 24 may be communicatively coupled via a wired communication channel, which may be included in the respective electrical coupling systems 32 of the main robot 12 and the auxiliary robot 14. It should be understood that the first controller 20, the second controller 24, and / or the system controller 30 can filter irrelevant data transmitted via the network 29.
[0019] The first controller 20, the second controller 24, and the system controller 30 each include corresponding processors 34, 36, and 38, and memory devices 40, 42, and 44. Processors 34, 36, and 38 may include microprocessors capable of executing software for controlling components of the main robot 12 and the auxiliary robot 14, for analyzing sensor feedback acquired by corresponding sensors of the main robot 12 and the auxiliary robot 14, and / or for controlling any other suitable components of the robot system 10. Processors 34, 36, and 38 may include multiple microprocessors, one or more "general-purpose" microprocessors, one or more application-specific microprocessors, and / or one or more application-specific integrated circuits (ASICs), or some combination thereof. For example, processors 34, 36, and 38 may include one or more Reduced Instruction Set Computer (RISC) processors. Memory devices 40, 42, and 44 may include volatile memory, such as random access memory (RAM), and / or non-volatile memory, such as read-only memory (ROM). The memory devices 40, 42, and 44 can store information such as control software (e.g., control algorithms for controlling the main robot 12 and / or the auxiliary robot 14), lookup tables, configuration data, communication protocols, etc.
[0020] For example, memory devices 40, 42, and 44 may store processor-executable instructions, including firmware or software executable by processors 34, 36, and 38, such as instructions for controlling any components of the main robot 12 and auxiliary robot 14 discussed herein and / or for controlling other suitable components of the robot system 10. In some embodiments, memory devices 40, 42, and 44 may be tangible, non-transitory, machine-readable media that can store machine-readable instructions executable by processors 34, 36, and 38. Memory devices 40, 42, and 44 may include ROM, flash memory, hard disk drives, any other suitable optical, magnetic, or solid-state storage media, or combinations thereof.
[0021] Additionally, the first controller 20 of the master robot may include an interpreter component 47, which enables the first protocol to be converted into a second protocol associated with a corresponding sub-robot 14 (e.g., the second protocol is different from the first protocol). The interpreter component 47 can understand the data format and communication methods of the controller protocol's received commands and (e.g., using conversion logic) convert the controller protocol into a compatible format for transmission to the corresponding sub-robot 14. In this way, the processing system 18 can transmit commands to the corresponding sub-robot 14 via the converted protocol.
[0022] It should be understood that any processes and techniques disclosed herein may be performed wholly or partially by the first processing system 18, the second processing system 22, and / or the system controller 30, which are collectively referred to herein as computing system 41. Therefore, computing system 41 may include the first processing system 18, the second processing system 22, the system controller 30, or any combination thereof. Accordingly, it should be understood that the discussion herein regarding the execution of control processes or routines, storage of data, formation of control outputs, and / or performance of other operations via computing system 41 is intended to represent computational operations that may be partially or fully performed by the first processing system 18 of the main robot 12, the second processing system 22 of the auxiliary robot 14, and / or the system controller 30.
[0023] A first controller 20 may be communicatively coupled to one or more first sensors 45 of the main robot 12, and a second controller 24 may be communicatively coupled to one or more second sensors 46 of the auxiliary robot 14. The first sensors 45 and the second sensors 46 may acquire feedback (e.g., sensor data) of various operating parameters of the main robot 12 and the auxiliary robot 14, enabling the processing system 18 to determine the state (e.g., position) of the main robot 12 and the auxiliary robot 14. The first sensors 45 and the second sensors 46 may provide (e.g., transmit) the acquired feedback to the first controller 20 and the second controller 24, respectively. As a non-limiting example, the first sensors 45 and the second sensors 46 may include proximity sensors, acoustic sensors, cameras, infrared sensors, and / or any other suitable sensors. Therefore, the feedback acquired by the first sensors 45 and / or the second sensors 46 may facilitate the operation of the multi-segment robot 16 according to the techniques discussed herein.
[0024] In the illustrated embodiment, the main robot 12 includes a main motion platform 50 (e.g., a first propulsion system) configured to propel the main robot 12 along a path, and the auxiliary robot 14 includes an auxiliary motion platform 52 (e.g., a second propulsion system) configured to propel the auxiliary robot 14 along the path or another suitable path. The reference path may include any positional transitions between points via any form of movement (e.g., rotation, translation). The main motion platform 50 and the auxiliary motion platform 52 may each include one or more corresponding actuators 54 (e.g., electric motors, hydraulic motors, pneumatic motors) that enable the main motion platform 50 and the auxiliary motion platform 52 to move the main robot 12 and the auxiliary robot 14. As an example, one or more actuators 54 may be configured to drive one or more wheels, tracks, legs, propellers, and / or other suitable mechanisms or devices of the main motion platform 50 and the auxiliary motion platform 52 that enable movement of the main robot 12 and the auxiliary robot 14. The main motion platform 50 and the auxiliary motion platform 52 may be communicatively coupled to a first controller 20 and a second controller 24, respectively. To this end, the first controller 20 and the second controller 24 may send instructions to the main motion platform 50 and the auxiliary motion platform 52 (e.g., to one or more corresponding actuators 54) to move the main robot 12 and the auxiliary robot 14 along corresponding paths.
[0025] In the illustrated embodiment, the main robot 12 includes a first interaction system 58 (e.g., a first animated character system), and the secondary robot 14 includes a second interaction system 60 (e.g., a second animated character system). The first interaction system 58 and the second interaction system 60 may each include one or more audio output devices 62 (e.g., speakers), one or more visual output devices 64 (e.g., lights, displays, projectors, etc.), and one or more gesture output devices 66 (e.g., movable appendages such as arms or heads, other actuable mechanical features), as discussed in detail below. These devices enable the multi-segment robot 16 to perform acts and / or interact with users (e.g., amusement park customers). The first interaction system 58 is communicatively coupled to a first controller 20, and the second interaction system 60 is communicatively coupled to a second controller 24. Therefore, the first controller 20 and the second controller 24 can instruct the first interaction system 58 and the second interaction system 60 to output audio, visual, or gesture outputs within a specified time period.
[0026] In some embodiments, the first processing system 18 includes a coordination control library 70. The coordination control library 70 may be stored on a memory device 40 and may include various functions or algorithms that, when executed, enable controllers 20, 24 to control the first interaction system 58 and the second interaction system 60. The coordination control library 70 may include a rule set that defines robot control operations for each of the master robot 12 and the assistant robots 14. The rule set may define input and corresponding output parameters for controlling robot movement. In embodiments, the rule set may be predefined within the coordination control library 70 during the initial configuration of the multi-segment robot 16. For example, the coordination control library 70 may be specified to include types of audio recordings, visual displays, and / or posture movements to be output by the corresponding audio output device 62, visual output device 64, or posture output device 66 of the master robot 12 and the assistant robots 14. Further, the first controller 20 may determine an operation profile for executing one or more movement commands by accessing data within the coordination control library 70 associated with one or more movement commands and the state of the multi-segment robot 16. In this way, the coordination control library 70 enables coordination between the master robot 12 and the slave robot 14 to perform smooth (e.g., fluid) and more integrated movement through the multi-segment robot 16. Furthermore, the coordination control library 70 facilitates the depiction of specific movement characteristics of the multi-segment robot 16, such as movement characteristics associated with a specific role (e.g., unique role personality), role type (e.g., animal type), and emotions (e.g., sullen, energetic).
[0027] In some embodiments, the first processing system 18 includes a first navigation module 80, and the second processing system 22 includes a second navigation module 82 executable by respective processors 34, 36. The first navigation module 80 and the second navigation module 82 may include control algorithms or other processor-executable routines that enable the first controller 20 and the second controller 24 to determine the positions of the primary robot 12 and the secondary robot 14, respectively, and to facilitate movement of the primary robot 12 and the secondary robot 14 along desired paths. For example, in some embodiments, the navigation modules 80, 82 may facilitate the processing of tracking signals received from respective tracking sensors 86 (e.g., Global Positioning System [GPS] sensors) of the primary robot 12 and the secondary robot 14, which may be configured to monitor the respective positions of the primary robot 12 and the secondary robot 14 in an environment (e.g., a designated roaming area in an amusement park). For clarity, as used herein, a "roaming area" may correspond to a spatial region, such as a walkway or courtyard, along which the primary robot 12, the secondary robot 14, or both may be configured to travel.
[0028] In some embodiments, the robot system 10 includes a machine vision system 88, which, as discussed in detail below, may complement or replace the tracking sensor 86 to facilitate tracking of the main robot 12 and / or the auxiliary robot 14. For example, the machine vision system 88 may include one or more cameras 90 or other image sensors configured to acquire image data (e.g., real-time video feeds) of the main robot 12 and the auxiliary robot 14 as they move across the environment. The system controller 30 may be configured to analyze the image data acquired by the machine vision system 88 and, based on such analysis, extract the state of the main robot 12 and the auxiliary robot 14.
[0029] In the illustrated embodiment, the master robot 12 includes a first coupling system 94, and the slave robot 14 includes a second coupling system 96. The first coupling system 94 and the second coupling system 96 enable the master robot 12 and the slave robot 14 to selectively couple (e.g., physically attach) or decouple (e.g., physically separate) from each other. As a non-limiting example, the first coupling system 94 and the second coupling system 96 may include permanent magnets, electromagnets, electric, hydraulic and / or pneumatic actuators, cables or tethers, robot manipulators (e.g., grippers, end effectors), and / or any other suitable means or system that facilitates the switching of the multi-segment robot 16 between an assembled or engaged configuration (where the master robot 12 and the slave robot 14 are coupled to each other (e.g., physically coupled, mechanically coupled)) and a disassembled or detached configuration (where the master robot 12 and the slave robot 14 are decoupled from each other (e.g., decoupled, mechanically separated)).
[0030] In some embodiments, the master robot 12 may include a first electrical coupler 100 (e.g., a male plug or socket), and the slave robot 14 may include a second electrical coupler 102 (e.g., a female plug or socket). These first electrical couplers 100 and second electrical couplers 102 form at least a portion of the electrical coupling system 32. The first electrical couplers 100 and second electrical couplers 102 may facilitate wired communication between the master robot 12 and the slave robot 14, as a supplement to or alternative to a wireless communication channel that may be provided by the first communication component 26 and the second communication component 28. The first electrical couplers 100 and second electrical couplers 102 may be configured to be electrically coupled to each other when the master robot 12 is physically coupled to the slave robot 14 via the engagement of the first coupling system 94 and the second coupling system 96. For this purpose, the first electrical couplers 100 and second electrical couplers 102 facilitate the transmission of data signals and / or power from the master robot 12 to the slave robot 14, and vice versa.
[0031] In the illustrated embodiment, the main robot 12 may include a first power source 106 (e.g., a first battery module) configured to provide power to components of the main robot 12. The auxiliary robot 14 may include a second power source 108 (e.g., a second battery module) configured to provide power to components of the auxiliary robot 14. In an engagement (e.g., coupling) configuration of the main robot 12 and the auxiliary robot 14 (e.g., in an assembly configuration of a multi-segment robot 16), a first electrical coupler 100 and a second electrical coupler 102 may enable current flow between the first power source 106 and the second power source 108. Controllers 20, 24 may regulate the power flow through the electrical couplers 100, 102 and between the first power source 106 and the second power source 108, such that the first power source 106 can be used to charge the second power source 108, or vice versa. A corresponding charging module 110 of the first processing system 18 and the second processing system 22 may be executed on the controllers 20, 24 to enable the controllers 20, 24 to monitor, regulate, and / or otherwise regulate the power flow between the first power source 106 and the second power source 108. It should be understood that in other embodiments, the main robot 12 and the auxiliary robot 14 may include wireless power transmission devices (e.g., an inductive charging system) that enable wireless power transmission between the first power source 106 and the second power source 108.
[0032] In some embodiments, the robot system 10 includes a user interface 118 that may (e.g., via network 29) be communicatively coupled to the main robot 12, the auxiliary robot 14, and / or any other suitable component of the robot system 10. The user interface 118 may receive user input to enable user-based control of the multi-segment robot 16 or its sub-components. In embodiments, the user interface 118 may include a handheld controller that allows a user to interact with the robot system 10 via physical input, such as by using one or more buttons, one or more joysticks, a touchpad, or any other suitable control mechanism integrated into the handheld controller.
[0033] It should be noted that some or all of the components described herein with respect to the main robot 12 and the auxiliary robot 14, such as the main motion platform 50 and the auxiliary motion platform 52, the first interaction system 58 and the second interaction system 60, navigation modules 80, 82, the first coupling system 94 and the second coupling system 96, may be included in at least one of the main robot 12 or the auxiliary robot 14 (e.g., but not both). For example, the main robot 12 may include the interaction system 58, while the auxiliary robot 14 may not include the interaction system 60. It should be noted that this example is merely illustrative, and in embodiments, some or all of the components may be excluded from the main robot 12 or the auxiliary robot 14.
[0034] Figure 2 This is a flowchart of a method 160 for instructing movement of a multi-segment robot 16 based on one or more movement commands according to embodiments of the present disclosure. The method 160 disclosed herein includes various steps indicated by boxes. It should be noted that at least some steps of method 160 may be performed by one or more of controllers 20, 24, and 30. Although the flowchart shows the steps in a certain sequence, it should be understood that the steps may be performed in any suitable order, and some steps may be performed simultaneously when appropriate.
[0035] At process block 162, the first controller 20 may receive one or more movement commands (e.g., one or more inputs) to move the multi-segment robot. The one or more movement commands may include general motion robot instructions, such as commands to move forward (e.g., advance), backward (e.g., reverse), left, right, stop, rotate, move to a location, follow an object or person, return to base, etc. The one or more movement commands may include momentary commands (e.g., executed for a short duration) or a stream of continuous commands (e.g., a sequence of instructions given one after another). For example, momentary commands may include performing a waving gesture, sitting down, standing up, etc. As another example, a stream of continuous commands may include overall directional movement of the multi-segment robot 16 while turning the head of the multi-segment robot 16 in the direction the multi-segment robot 16 is moving towards. In embodiments, the one or more movement commands may be input by a user via a user interface (e.g., using a handheld controller, prop, etc.). The one or more movement commands may include instructions to move the multi-segment robot 16 in a desired direction and / or perform specific actions. For example, a user can manipulate the joystick of the handheld controller up and to the right to send one or more movement commands to the multi-segment robot 16 to move forward and to the right. Furthermore, one or more movement commands can be transmitted to the first controller 20 via a controller protocol.
[0036] At process block 164, the first controller 20 can determine the state (e.g., position, orientation, status) of the multi-segment robot 16, such as whether the multi-segment robot 16 is sitting, standing, walking, rotating, stationary, etc. For example, the state may include the multi-segment robot 16 being sitting, standing, walking, rotating, stationary, etc. The first controller 20 can receive data from sensors (e.g., 45, 46 and / or 86) and / or the machine vision system 88, and analyze the data to determine the first robot (e.g., Figure 4 The first auxiliary robot 14A) and / or the second robot (e.g., Figure 4 The first controller 20 can determine the state of the multi-segment robot 16 by analyzing the positions of the first and / or second robots. For example, the machine vision system 88 can capture and provide image data of the second robot (e.g., the legs of the multi-segment robot 16) bending and lowering. Additionally or alternatively, sensors 46, 86 (e.g., motion sensors, tracking sensors) can provide feedback indicating that the second robot is stationary. Thus, the first controller 20 can determine the state of the multi-segment robot 16 as a seated posture based on the image data and feedback. In embodiments, the state of the multi-segment robot 16 can be determined after converting and evaluating feedback from each of the various sub-robots (e.g., the first sub-robot 14A and the second sub-robot 14B), as will be discussed further below.
[0037] In another embodiment, the state of the multi-segment robot 16 can be defined (e.g., defined by the first controller 20) and transmitted from the first controller 20 to various sub-robots based on specific commands. The state can restrict certain operational functionalities (e.g., movement options) while the state is active. For example, if one or more movement commands include a sit command and the multi-segment robot 16 is in a seated position, the states of the first and second robots can be seated states that result in limited range of motion (e.g., the seated state can be enforced to prevent the robot's legs from performing walking functions). As another example, if one or more movement commands include a stop movement command (e.g., stop animation) and the multi-segment robot 16 is not moving (e.g., the motors of the multi-segment robot 16 are de-energized), the states of the first and second robots can be stationary states. Enforcing a stationary state can include de-energizing certain motors until the stationary state is cleared or replaced. Therefore, the state of at least one of the various sub-robots can be identified based on predefined states stored in a coordination control library 70 associated with specific commands.
[0038] At process block 166, the first controller 20 may identify operation profiles for the first and second robots based on one or more movement commands and state recognition. The operation profiles may indicate one or more robot control operations. Furthermore, the operation profiles may include functional capabilities (e.g., movement, speed, degrees of freedom, sensing, etc.), communication protocols (e.g., communication protocols associated with each robot), and limitations such as battery (e.g., battery charging level, power output, weight), temperature range, range of motion, etc. For example, the operation profiles may be based on or associated with a character profile. In practice, functional capabilities may be designed to match or mimic a specific set of characteristics of a character (e.g., actions, voice, interaction style). Each corresponding communication protocol may include a set of rules indicating how information is exchanged between two or more devices (e.g., the main robot 12 and / or the auxiliary robot 14). For example, the communication protocol may provide a set of rules for how control information is structured, exchanged, and interpreted between two or more devices.
[0039] The first controller 20 can determine an operation profile by accessing data associated with one or more movement commands and states within a coordination control library 70. As described herein, the coordination control library 70 may include a rule set that defines robot control operations for the first and second robots. These robot control operations manage and direct the motion, movement, and / or functionality of the multi-segment robot 16 and involve enabling the movement of the multi-segment robot 16 using actuators 54, sensors 45, 46, 86, communication components 26, 28, and / or control algorithms. The robot control operations for the first and second robots can be used together in the operation profile based on state.
[0040] In an embodiment, the coordination control library 70 may include a layered animation model (e.g., structure, platform). Further, the first controller 20 may employ a layered animation model to perform one or more movements and / or actions. For example, the first controller 20 may receive commands from a user to move the multi-segment robot forward and to the right, which may be processed as a first-layer (e.g., base layer) operation. Additionally, the first controller 20 may apply a second layer to animate the head of the multi-segment robot 16 in the same direction as the movement of the multi-segment robot 16. Additionally or alternatively, the first controller 20 may employ a control algorithm to blend the first and second layers to enable the integration of the animations and / or movements of the multi-segment robot 16. It should be noted that the coordination control library 70 may include any suitable number of layers to enable additional animations and / or movements of the multi-segment robot 16. In an embodiment, the user may dynamically overlay each additional layer to cause each additional animation and / or movement.
[0041] In an embodiment, the first controller 20 may determine an operation profile by executing a coordinated control algorithm based on one or more movement commands and states. For example, the first controller 20 may receive one or more movement commands and states, process (e.g., perform calculations, filtering, sorting, aggregation, etc.) one or more movement commands and states, implement decision logic that may evaluate the processed data and apply predefined rules to arrive at a determination.
[0042] In this embodiment, the first controller 20 can filter one or more movement commands based on the state of the multi-segment robot to identify one or more filtered movement commands. For example, the first controller 20 can determine that the state of the multi-segment robot 16 is a sitting posture, and therefore can filter out data unrelated to the sitting posture from the coordination control library 70 and determine one or more filtered movement commands within the coordination control library 70. The first controller 20 can then determine an operation profile by accessing data associated with one or more filtered movement commands. By performing such filtering operations (e.g., state-based), this embodiment simplifies processor operation and creates improved efficiency in computation and control operations.
[0043] In an embodiment, the first controller 20 may apply one or more mathematical operators to one or more movement commands. The mathematical operators may be applied by performing mathematical operations on one or more movement commands to determine an operation profile for a first robot and a second robot. For example, the result of the applied mathematical operation may be associated with the operation profile. In an embodiment, one or more movement commands may be associated with control sequences within a coordination control library 70. Control sequences may be defined in the coordination control library 70 and may be associated with a series of outputs. As an example, a control sequence may include a set of defined commands associated with a role or role type. For example, a first control sequence may include a first set of defined commands associated with a first role or a first role type, and a second control sequence may include a second set of defined commands associated with a second role or a second role type. It should be noted that the first set of defined commands may be the same as or similar to the second set of defined commands, or may be different from the second set of defined commands. Therefore, the first controller 20 may determine the operation profile based on the control sequences associated with one or more movement commands within the coordination control library 70.
[0044] As described above, the first controller 20 may receive one or more movement commands via a controller protocol. Further, the first robot may be configured to communicate via a first protocol, and the second robot may be configured to communicate via a second protocol. The controller protocol, the first protocol, and / or the second protocol may be different from each other. With these in mind, at process block 168, the first controller 20 may convert a first portion of the operation profile to the first protocol for the first robot. Additionally, at process block 170, the first controller 20 may convert a second portion of the operation profile to the second protocol for the second robot. In an embodiment, the first controller 20 may communicate with the controller of the first robot (e.g., a second controller of the first robot) to identify the first protocol and with the controller of the second robot (e.g., a second controller of the second robot) to identify the second protocol. In an embodiment, the first protocol of the first robot and the second protocol of the second robot may be defined in the coordination control library 70. After determining the protocol of the robot with which the first controller 20 is attempting to communicate, the first controller 20 may perform a conversion (e.g., a conversion) of the controller protocol to a desired protocol compatible with the desired robot. It should be noted that while this example embodiment includes communication to both the first and second robots, additional robots may be included in other embodiments. Furthermore, the protocols of multiple robots can be identified by the first controller 20 and used for conversion purposes based on the conversion database.
[0045] As an example, the first controller 20 can communicate via the User Datagram (UDP) protocol. Therefore, one or more movement commands can be received in the UDP protocol. The first controller 20 can recognize that the first robot communicates via the Modbus protocol and the second robot communicates via the Controller Area Network (CAN) protocol. Therefore, the first controller 20 can convert the first part of the operation profile from the controller protocol to the Modbus protocol. Additionally, the first controller 20 can convert the second part of the operation profile from the controller protocol to the CAN protocol.
[0046] As another example, in this embodiment, the first controller 20 may receive one or more movement commands in a first protocol. The first controller 20 may then use a second protocol associated with the second robot to convert the one or more movement commands into corresponding operational instructions (e.g., animation instructions). For example, when receiving animation instructions via the first protocol, the first controller 20 may convert the animation instructions into the second protocol for transmission to the second robot.
[0047] At process block 172, the first controller 20 can transmit a first transition as a first operating instruction (e.g., a first set of one or more outputs) to the first robot and a second transition as a second operating instruction (e.g., a second set of one or more outputs) to the second robot. The first and second operating instructions may include instructions for performing one or more tasks to achieve functionality and / or movement according to one or more movement commands. Operating instructions may include instructions to activate or deactivate actuators, rotate a rotor by a certain rotational amplitude (e.g., 45 degrees, 90 degrees, etc.), move the multi-segment robot 16 a certain distance (e.g., 10 feet, 15 feet, 20 feet, etc.) along the main motion platform 50 and the auxiliary motion platform 52, adjust the vision output device 64 (e.g., turn on one or more lights coupled to the multi-segment robot), adjust the audio output device 62 (e.g., play one or more sounds), adjust the posture output device 66, etc.
[0048] For example, based on one or more movement commands to move forward and to the right, a second operational instruction may instruct the actuator 54 of the second robot (e.g., the leg of the multi-segment robot 16) to pivot about the axis of the joint, and thus enable the second robot to facilitate movement across a surface. Further, a first operational instruction may instruct the actuator 54 (e.g., a motor-driven actuator) of the first robot (e.g., the head of the multi-segment robot 16) to rotate the first robot to a desired angle according to the movement of the multi-segment robot 16. In this way, the actuator 54 may perform mechanical actuation based on the first operational instruction. In one embodiment, the first controller 20 may transmit the first transition and the second transition simultaneously. In another embodiment, the first controller 20 may transmit the first transition during a first time period and the second transition during a second time period. It should be noted that although method 160 has been described above with respect to the first and second robots, any suitable number of robots may be implemented in method 160.
[0049] Further, in an embodiment, the first controller 20 may receive feedback instructing the movement of the multi-segment robot 16. For example, the first controller 20 may receive data from sensors 45, 46, 86 and / or the machine vision system 88, and analyze the data to determine whether the first and second robots have fully executed the first and / or second operation instructions. The first controller 20 may convert feedback from a first protocol (e.g., if received from the first robot) and / or a second protocol (e.g., if received from the second robot) into a controller protocol. If the first controller 20 determines that the first and / or second robots have partially executed the first and / or second operation instructions, the first controller 20 may adjust a first portion and a second portion of the operation profile. The first controller 20 may then convert the adjusted first and / or second portions of the operation profile from the controller protocol into the first and / or second protocols. The first controller 20 may then transmit the adjusted first and second portions of the operation profile to enable the multi-segment robot 16 to fully execute the first and second operation instructions.
[0050] Figure 3 This is a flowchart of a method 190 for instructing the movement of a multi-segment robot 16 based on position data according to embodiments of the present disclosure. The method 190 disclosed herein includes various steps represented by boxes. It should be noted that at least some steps of method 190 may be performed by one or more of controllers 20, 24, and 30. Although the flowchart shows the steps in a certain sequence, it should be understood that the steps may be performed in any suitable order, and some steps may be performed simultaneously when appropriate. Furthermore, it should be noted that method 190 may be employed by the multi-segment robot 16 as a single entity, by several robots independently, and / or by multiple subsystems within the multi-segment robot 16.
[0051] At process block 192, as described above, the first controller 20 may operate based on a controller protocol. The first robot may be configured to communicate via the first protocol. Therefore, at process block 194, the first controller 20 may receive position data from the first robot in the first protocol. For example, the first controller 20 may receive data indicating the positioning and / or location of the first robot from one or more sensors 46 and / or one or more tracking sensors 86. For example, the first robot may be the arm of a multi-segment robot 16, and the first controller 20 may use one or more sensors 46, 86 to detect that the first robot is moving toward an object (e.g., a box) on the floor.
[0052] At process block 196, the first controller 20 may convert position data into converted position data in a controller protocol. As described above, the first controller 20 may perform the conversion from data received from the first robot via the first protocol to the controller protocol. In this way, the conversion allows the first controller 20 to analyze the data in its own format (e.g., the controller protocol) rather than in a native format (e.g., the first protocol). At process block 198, the first controller 20 may determine an operation profile for the second robot. In an embodiment, the first controller 20 may determine the operation profile for the second robot based on the converted position data and a coordinated control algorithm. In an embodiment, the first controller 20 may determine the operation profile for the second robot based on the converted position data and the coordinated control library 70. As described herein, the operation profile may indicate one or more robot control operations.
[0053] At process block 200, the first controller 20 may convert at least a portion of the operation profile into a second robot protocol for the second robot. For example, the first controller 20 may convert a portion of the operation profile from a controller protocol to a second protocol to enable transmission. In an embodiment, the first controller 20 may filter data from a coordination control library 70 and perform the conversion based on the state of the multi-segment robot 16 and the priority associated with that state (e.g., low, medium, or high priority). The state and associated priority may be predefined in the coordination control library 70. For example, a state indicating a collision may be associated with high priority. Therefore, the first controller 20 may filter data so that portions of the operation profile associated with a collision response can be converted with a higher priority. By performing this filtering operation, this embodiment may enable faster data retrieval and conversion (e.g., by minimizing the scanning of irrelevant data), increased computing power, and resource savings (e.g., by processing and converting relevant data).
[0054] At process block 202, the first controller 20 can transmit a conversion operation profile as operation instructions to the second robot. As an example, based on position data indicating that the first robot is moving toward an object on the ground, the operation profile may include operation instructions that instruct the actuators 54 of the second robot, which may be the legs of the multi-segment robot 16, to bend. For example, the second robot may perform mechanical actuation based on the operation instructions. Further, as an example, the operation instructions may include specific actuations. In this way, bending allows the multi-segment robot 16 to move closer to an object on the ground and enables the multi-segment robot 16 to reach or grasp the object.
[0055] Considering the foregoing, Figure 4 This is a schematic diagram of a multi-segment robot 16 according to an embodiment of the present disclosure. The multi-segment robot 16 may include a main robot 12, which may include a processor 34 and a memory 40; a first auxiliary robot 14A, which may include a processor 36A and a memory 42A; and a second auxiliary robot 14B, which may include a processor 36B and a memory 42B. The main robot 12 can communicate via a first protocol 220, the first auxiliary robot 14A can communicate via a second protocol 222, and the second auxiliary robot 14B can communicate via a third protocol.
[0056] As described herein, the first controller 20 may receive one or more movement commands in the first protocol 150. For example, one or more movement commands may be a transition to a seated posture. The first controller 20 may determine the robot's state based on feedback from one or more sensors 46. In the illustrated example, one or more sensors 46 may provide feedback that the arms (e.g., appendages) of the multi-segment robot 16 are raised and in motion, that the head of the multi-segment robot (e.g., the first auxiliary robot 14A) moves according to the arm, and that the legs (e.g., the second auxiliary robot 14B) are stationary. Thus, the state may be that the multi-segment robot 16 is waving to a customer.
[0057] The first controller 20 can determine an operation profile for the first auxiliary robot 14A and the second auxiliary robot 14B based on one or more movement commands and states. The first controller 20 can then convert at least a first portion of the operation profile from a first protocol 220 to a second protocol 222 as a first operation instruction to be transmitted to the first auxiliary robot 14A. Additionally, the first controller 20 can convert at least a second portion of the operation profile from the first protocol 220 to a third protocol 224 as a second operation instruction to be transmitted to the second auxiliary robot 14B.
[0058] The operation brief may include operation instructions that enable the multi-segment robot 16 to perform movement according to one or more movement commands. Thus, for example, a first operation instruction may instruct the actuator 54A of a first auxiliary robot 14A (e.g., the head) to stop moving. Additionally, a second operation instruction may instruct the actuator 54B of a second auxiliary robot 14B (e.g., the legs) to bend, allowing the multi-segment robot 16 to transition to a sitting position.
[0059] Accordingly, the embodiments described herein enable the multi-segment robot to perform operations agnostively. For example, the operations can be understood, applied, or performed in various situations and can be implemented in a streamlined and efficient manner. Therefore, the processing power required to perform the operations can be reduced and efficiency can be improved.
[0060] While only certain features of this disclosure have been illustrated and described herein, many modifications and alterations will occur to those skilled in the art. Therefore, it is to be understood that the appended claims are intended to cover all such modifications and alterations that fall within the true spirit of this disclosure.
[0061] The techniques presented and claimed herein are referenced and applied to substantial objects and specific examples that can arguably improve the practical nature of the art, and are therefore not abstract, intangible, or purely theoretical. Furthermore, if any claim appended to this specification contains one or more elements designated as “component for (performing)...(function)” or “step for (performing)...(function)”, such elements are intended to be interpreted in accordance with 35 USC 112(f). However, for any claim containing elements designated in any other manner, such elements are not intended to be interpreted in accordance with 35 U.SC 112(f).
Claims
1. A multi-segment robot, comprising: A first robot, configured to communicate via a first protocol; A second robot, coupled to the first robot and configured to communicate via a second protocol; as well as A controller includes a processing system and a memory, the memory being encoded with instructions configured to be executed by the processing system to cause the controller to: Operating based on a third protocol; Receive one or more movement commands to move the multi-segment robot; Determine the state of the multi-segment robot; Based on the one or more movement commands and the status, an operation profile is determined for the first robot and the second robot, wherein the operation profile includes one or more robot control operations; Convert at least a first portion of the operation profile from the third protocol to a first conversion in the first protocol; At least a second portion of the operation profile is converted from the third protocol to a second conversion within the second protocol; as well as The first conversion is output to the first robot as a first operation instruction, and the second conversion is transmitted to the second robot as a second operation instruction.
2. The multi-section robot of claim 1, wherein, The instructions are configured to be executed by the processing system so that the controller determines the operation profile by accessing data in the coordination control library associated with the one or more movement commands and the state.
3. The multi-section robot of claim 2, wherein, The coordination control library includes a set of rules that define robot control operations for the first robot and the second robot, which can be used together in the operation profile based on the state.
4. The multi-section robot of claim 1, wherein, The instructions are configured to be executed by the processing system to cause the controller to determine the operation profile by performing a coordinated control algorithm based on the one or more movement commands and the state.
5. The multi-segment robot of claim 1, wherein the instructions are configured to be executed by the processing system to cause the controller to: Based on the state, filter the one or more movement commands to identify one or more filtered movement commands; and The operation profile is determined by accessing data associated with the one or more filter movement commands.
6. The multi-section robot of claim 1, wherein, The first robot is configured to perform a first mechanical actuation based on the first operation instruction, and the second robot is configured to perform a second mechanical actuation based on the second operation instruction.
7. The multi-section robot of claim 1, wherein, The instructions are configured to be executed by the processing system to cause the controller to simultaneously output the first conversion to the first robot and the second conversion to the second robot.
8. The multi-section robot of claim 1, wherein, The instructions are configured to be executed by the processing system to cause the controller to: output the first conversion to the first robot and output the second conversion to the second robot according to the sequence.
9. The multi-section robot of claim 1, wherein, The instructions are configured to be executed by the processing system to cause the controller to: convert the one or more movement commands into the third protocol, wherein the one or more movement commands include one or more instantaneous movement commands or a stream of one or more continuous commands.
10. The multi-segment robot according to claim 1, wherein: The one or more movement commands include overall motion robot instructions for the multi-segment robot; and The first operation instruction and the second operation instruction include specific actuation.
11. The multi-section robot of claim 1, wherein, The state of the first robot, the state of the second robot, or both are defined by one or more sensors of the multi-segment robot.
12. The multi-segment robot of claim 1, comprising a machine vision system configured to acquire image data of the first robot, the second robot, or both, wherein the state of the first robot, the state of the second robot, or both are at least partially defined by the image data.
13. The multi-segment robot according to claim 1, wherein, The instructions are configured to be executed by the processing system to cause the controller to output the status to the first robot and the second robot based on the one or more movement commands.
14. The multi-segment robot according to claim 1, wherein, The first robot and the second robot each include: an actuator, an audio output device, and a visual output device configured to be controlled by the first operation command and the second operation command, respectively.
15. A method for operating a multi-segment robot, comprising: Receive one or more movement commands in the first protocol via the controller of the first robot; The state of the multi-segment robot is determined via the controller of the first robot; The controller of the first robot determines an operation profile for the second and third robots based on the one or more movement commands and the state, wherein the operation profile includes one or more robot control operations; The controller of the first robot converts at least a first portion of the operation profile from the first protocol to a first conversion in the second protocol; The controller of the first robot converts at least a second portion of the operation profile from the first protocol to a second conversion in the third protocol; The controller of the first robot outputs the first conversion as a first operation command to the second robot and the second conversion as a second operation command to the third robot.
16. The method of claim 15, comprising: Access to the coordination control library via the controller of the first robot; The controller of the first robot retrieves data associated with the one or more movement commands and the state from the coordination control library.
17. The method of claim 15, comprising: One or more mathematical operators are applied to the one or more movement commands via the controller of the first robot to obtain a result; as well as The controller of the first robot determines the operating profile for the second and third robots based on the result.
18. The method according to claim 15, wherein, The controller of the first robot outputs the first conversion to the second robot and the second conversion to the third robot via a network protocol.
19. A multi-segment robot, comprising: A first robot, configured to communicate via a first protocol; A second robot, coupled to the first robot and configured to communicate via a second protocol; as well as A controller includes a processing system and a memory, the memory being encoded with instructions configured to be executed by the processing system to cause the controller to: Receive location data from the first protocol from the first robot; The location data is converted into converted location data in a third protocol; An operation profile for the second robot is determined based on the converted position data and the coordination control algorithm or based on the converted position data and the coordination control library, wherein the operation profile includes or indicates one or more robot control operations; At least a portion of the operation profile is converted from the third protocol to the converted operation profile in the second protocol; as well as The converted operation profile is output as operation instructions to the second robot.
20. The multi-segment robot according to claim 19, wherein, The operating instructions include: activating the actuator, rotating the rotor, moving along the main motion platform, moving along the secondary motion platform, adjusting the visual output device, adjusting the audio output device, adjusting the attitude output device, or any combination thereof.
21. The multi-segment robot according to claim 19, wherein, The instructions are configured to be executed by the processing system to cause the controller to: Receive feedback instructing the movement of the multi-segment robot; and The operation profile is adjusted in response to determining that the multi-segment robot partially performs the movement.