The present invention relates to a connection system for connecting modules of a modular robot, and to a connector for connecting a module to a modular robot.
The consumer robotic market is expanding rapidly and a variety of robots are now available to consumers. Consumer robots tend to fit within two distinct categories. A first category of legged robot may be referred to as “toy” robots. Toy robots are typically available through mainstream retailers and are sold fully-assembled and ready to use. They have the appearance of a finished product and are aesthetically pleasing in the sense that the function of the robot has only a limited impact on the form of the robot. This is essentially because toy robots have only limited functionality, with relatively little freedom of movement (that is, as compared to other consumer robots), to limit the purchase cost. Toy robots are also typically not designed to be serviceable by the user and are therefore considered disposable items.
A second category of consumer robots may be referred to as “hobbyist” robots. Such robots are usually only available through specialist retailers and tend to have more advanced functionality than toy robots, due to the fact that cost and complexity is less of an issue for the market these robots address. Hobbyist robots often come in the form of a kit of parts for self-assembly by the user. They have increased freedom of movement compared with toy robots and may be serviced by the user, if required, to extend the product life. However; such hobbyist robots generally do not have the pleasing finished appearance of toy robots. Instead, they tend to be somewhat industrial in appearance in the sense that the form of the robot is largely dictated by its function.
Both toy robots and hobbyist robots rely on a combination of prime movers (typically electric motors, geared or direct-drive) and/or mechanisms to achieve the desired robotic motion. Each prime mover adds cost, complexity and reduces the overall reliability of the robot. As a result, toy robots tend to feature fewer prime-movers than hobbyist robots but consequently have far less freedom of movement than hobbyist robots.
For example a robotic leg having three joints may be actuated using three separate prime movers, to provide the leg with three degrees of freedom and allow the robot to walk with a fluid motion. In such a leg, two separately actuated joints may be coupled together to provide two degrees of freedom, similar to that provided by a human hip joint. To reduce cost and complexity, one or more of the joints may be coupled, using for example linkages or any other suitable mechanism, so that the number of prime movers can be reduced whilst retaining some (albeit restricted) motion in all joints. The robotic leg may be further simplified by fixing some of the joints, to reduce to a minimum the number of prime movers. This scenario is similar to a human leg where the knee and ankle are fixed in a plaster cast. It is still possible for the owner of the cast leg to move, but it would not be possible for them to run, jump or kneel down. Such limited mobility (or limited freedom of movement) is typical of toy robots.
The present disclosure relates to a robot which seeks to address the shortcomings of current hobbyist and toy robots. In particular, the present disclosure relates to a robot which can offer the versatility, freedom of movement and serviceability of a hobbyist robot, and which can also be inexpensive and aesthetically pleasing.
According to a first aspect of the present invention, there is provided a gaming robot comprising at least one movable joint actuated by a prime mover. The gaming robot comprises a first module comprising first electronic circuitry and a first coupling. The first coupling is connectable to a second coupling on a second module comprising second electronic circuitry to create a mechanical interface between the first module and the second module and an electrical interface between the first module and the second module. The first electronic circuitry is configured to: in response to a connection of the second module to the first module, access via the electrical interface data stored within the second electronic circuitry, said data identifying the second module; and transmit the data to an identification system configured to detect the presence and identification of modules attached to the gaming robot.
Thus certain examples described herein relate to a relatively new type of consumer robot called a gaming robot. These are used in conjunction with video games to merge physical and virtual worlds. This may be achieved with the help of augmented reality. This gaming robot may thus be used to represent a physical presence of a virtual game that is played on the computing device. Hence, the gaming robot combines physical and virtual gaming action. The gaming robot may be controlled in the physical world to complete game missions or battles that are represented in the virtual world. By attaching a secondary module, a user can modify the behaviour of the gaming robot in both physical and virtual worlds, i.e. in a closed loop manner. In this way physical modifications to the robot, e.g. attaching a part that has negligible physical impact on the robot, may result in a virtual modification to the attributes or characteristics of the gaming robot, which manifest in modified physical behaviour, such as modified movement and/or sequences of prime mover activations.
In use, the gaming robot may comprise a number of primary and secondary modules. Primary modules may comprise at least one of: the aforementioned main module, one or more locomotion modules, a body module and a battery module. Each of the primary modules may be couple-able to another primary module and/or one or more secondary modules. In one example, the gaming robot may have secondary modules comprising removable shields that attach to the legs of the robot and/or weapons that attach to a body of the robot. A secondary module may be associated with certain attributes, which may be indicated by data stored within electronic circuitry of the shield. For example, a shield may be deemed “heavy” or “light” in some example implementations, and whether or not such a shield is heavy or light may be identified using the data stored within electronic circuitry of the shield, e.g. a unique identifier or string sequence stored within a microcontroller memory. However; both “heavy” and “light” shields may have a comparable physical mass (or masses that have a small physical effect on the motion of the leg module). The computing device receives the data from the shield and determines whether it is “heavy” or “light”. In one case the data comprises an identifier indicating a type of secondary module. The computing device then modifies or alters the commands sent to the main processing module of the gaming robot, e.g. as compared to a base case where no shields are attached, such that the leg motion slows or is otherwise modulated in proportion to a virtual mass of the shield. For example, a “heavy” shield may double the virtual mass of the gaming robot and the robot may thus be sent commands that move it with half the acceleration of the base case where the gaming robot has no attached shields.
The modules of the gaming robot may be connectable by connectors which require no tools or expertise to use, and which thereby permit quick and easy connection, disconnection, replacement and interchanging of robot modules by a non-expert user. Such connectors may additionally be cost effective to manufacture, to maintain the overall cost of the gaming robot at a relatively low level. In some examples the connectors may be configured to mechanically constrain one or more degrees of freedom of a joint with which the connector is associated. For example, a connector associated with a pivoting joint may be configured to react twisting forces generated during operation of the pivoting joint. Such a constraining function can enhance the preciseness and controllability of the robot movement, and thereby improve user experience. The gaming robot may also include a connection system which is configured to verify the authenticity of a newly-connected module, so that the use of counterfeit modules can be prevented. Such a connection system may also advantageously be configured to prevent the connection of incorrect parts to the robot, and thereby can safe guard the robot from damage which may be caused to it by adding incorrect parts.
Optional features of gaming robots according to the first aspect are set out in appended dependent claims 2 to 14.
According to a second aspect of the present invention, there is provided a module for connection to a gaming robot comprising at least one movable joint actuated by a prime mover. The module comprises electronic circuitry storing data identifying the module; and a first coupling connectable to a corresponding second coupling of the gaming robot to create a mechanical interface between the module and the gaming robot and an electrical interface between the module and the gaming robot, for enabling the gaming robot to access the stored data.
The module may be for connection to a gaming robot according to the first aspect. Further optional features of modules according to the second aspect are set out in appended dependent claims 16 to 21.
According to a third aspect of the present invention, there is provided an identification system for detecting the presence and identification of modules attached to a gaming robot comprising at least one movable joint actuated by a prime mover. The identification system is configured to receive, from the gaming robot, data identifying a module connected to the gaming robot; and determine, based on the received data, whether the module is authentic.
The gaming robot may be a gaming robot according to the first aspect. The module may be a module according to the second aspect. Further optional features of identification systems according to the third aspect are set out in appended dependent claims 23 to 25.
According to a fourth aspect of the present invention, there is provided a remote computing device for controlling a gaming robot according to the first aspect. Further optional features of remote computing devices according to the fourth aspect are set out in appended dependent claims 27 to 32.
According to a fifth aspect of the present invention, there is provided a gaming robot system comprising a gaming robot according to the first aspect; a module for connection to the gaming robot according to the second aspect; and an identification system according to the third aspect. Further optional features of gaming robot systems according to the fifth aspect are set out in appended dependent claim 34.
According to a sixth aspect of the present invention, there is provided a method of connecting a module to a gaming robot comprising at least one movable joint actuated by a prime mover. The method comprises: providing a gaming robot comprising at least one movable joint actuated by a prime mover, the gaming robot comprising first electronic circuitry and a first coupling; providing a module to be connected to the gaming robot, the module comprising second electronic circuitry and a second coupling; engaging the second coupling with the first coupling to create an electrical interface between the module and the gaming robot and a mechanical interface between the module and the gaming robot; the first electronic circuitry accessing, via the electrical interface, data identifying the module stored within the second electronic circuitry; the first electronic circuitry transmitting the data to a an identification system configured to detect the presence and identification of modules attached to the gaming robot; and the identification system determining whether the module is authentic based on the received data.
The gaming robot may be a gaming robot according to the first aspect. The module may be a module according to the second aspect. The identification system may be an identification system according to the third aspect. Further optional features of methods according to the sixth aspect are set out in appended dependent claims 36 and 37.
According to a seventh aspect of the present invention, there is provided a connection system for a gaming robot controllable by a remote computing device. The gaming robot comprises a plurality of leg modules, each leg module comprising a plurality of prime movers to rotate portions of the leg module about a respective plurality of axes, a main module comprising a main processing module to control said plurality of leg modules; and a least one disconnectable module. The connection system comprises: a first electronic circuitry and a first coupling, the first electronic circuitry and the first coupling being comprised in a primary part of the gaming robot which comprises at least the main module; a second electronic circuitry and a second coupling configured to connect to the first coupling, the second electronic circuitry and the second coupling being comprised in the at least one disconnectable module; and a third electronic circuitry, the third electronic circuitry being comprised in the remote computing device and being communicatively coupled to the first electronic circuitry. At least one of the first electronic circuitry and the third electronic circuitry comprises an identification system configured to detect the presence and identification of modules attached to the gaming robot. The first coupling and the second coupling are configured to create an electrical interface and a mechanical interface between the primary part and the module when the first coupling is connected to the second coupling. The second electronic circuitry stores a unique identifier identifying the at least one disconnectable module. The first electronic circuitry is configured to read the unique identifier in response to the second coupling becoming connected to the first coupling and transmit the unique identifier to the identification system. The identification system is configured to determine whether the at least one disconnectable module is authentic based on the unique identifier.
The gaming robot may be a gaming robot according to the first aspect. The at least one disconnectable module may be a module according to the second aspect. The identification system may be an identification system according to the third aspect. The remote computing device may be a remote computing device according to the fourth aspect.
According to an eighth aspect of the present invention, there is provided a coupling pair for connecting two modules of a modular gaming robot. The coupling pair comprises a first coupling having a first set of electrical contacts and a first connection surface shaped to create a first set of formations; and a second coupling having a second set of electrical contacts for cooperating with the first set of electrical contacts to create an electrical interface when the two modules are connected, and a second connection surface shaped to create a second set of formations. At least one of the two modules forms part of a pivoting joint of the modular robot. The first set of formations and the second set of formations are configured such that movement of the first coupling into engagement with the second coupling along a connection axis substantially normal to the first connection surface creates a mechanical interface between the first coupling and the second coupling which resists further relative movement of the first coupling and the second coupling along the connection axis and which resists rotational movement of the first coupling relative to the second coupling around an axis parallel to the pivotal axis of the pivoting joint.
The gaming robot may be a gaming robot according to the first aspect. Either or both of the two modules may be a module according to the second aspect. Further optional features of coupling pairs according to the eighth aspect are set out in appended dependent claims 40 to 49.
Further features and advantages of the invention will become apparent from the following description of preferred embodiments of the invention, given by way of example only, which is made with reference to the accompanying drawings.
The following description relates to gaming robots (and associated components and systems), which comprise at least one movable joint actuated by a prime mover. Such a gaming robot may be modular and may comprise, for example, a first module comprising first electronic circuitry and a first coupling and a second module comprising second electronic circuitry and a second coupling. The first coupling may be connectable to the second coupling to create a mechanical interface between the first module and the second module and an electrical interface between the first module and the second module. The first electronic circuitry may be configured to, in response to a connection of the second module to the first module, access via the electrical interface data stored within the second electronic circuitry. Said data may identify the second module. The first electronic circuitry may be further configured to transmit the data to an identification system configured to detect the presence and identification of modules attached to the gaming robot. The example gaming robots described herein may, but need not, be remotely controllable, e.g. by one or more remote computing devices.
Locomotion modules provide robot motion, which in the case of leg modules 11 may take the form of walking, running, jumping, and the like. The body module 13 provides connection points (couplings) for the locomotion modules and for the main module 12. Each coupling on the body module 13 is connectable to a corresponding coupling on a leg module and/or a corresponding coupling on the main module to create a mechanical interface and an electrical interface therebetween. In the illustrated example the body module 13 houses prime movers to actuate at least one joint of each leg module 11. The main module 12 contains the main controller (main processing module) of the robot 10. The robot 10 is controllable by a remote computing device (not shown) and the main processing module is configured to control at least one other module of the robot 10 in response to commands received from the remote computing device.
Each module 11, 12, 13 comprises electronic circuitry. The modules 11, 12, 13, may therefore be considered to be “smart”. The electronic circuitry may vary in complexity and configuration dependent on module type. For example, the main processing module comprised in the main module 12 may be significantly more complex than the electronic circuitry comprised in the leg modules 11 and in the body module 13. The electronic circuitry of each locomotion module 11 and the body module 13 stores data identifying that module. In some examples the electronic circuitry of the main module 12 also stores data identifying that module. Such data may be used, for example, in a process of authenticating a module upon connection of that module to the rest of the robot, as will be discussed in more detail below. The data identifying the module may comprise a unique identifier associated with the module. The data identifying the module may comprise an indication of the type of the module (e.g. whether it is a locomotion module, a secondary module, a shield module, a weapon module, a body module, etc.). In some examples the data identifying the module is encrypted. In some examples the data identifying the module is configured to be cross referenced with a database, e.g. by the main processing module of the robot, during a process of identifying and verifying the authenticity of the module. In some examples the electronic circuitry also stores calibration data for the module. Such calibration data may, for example, be transmitted to the main processing module upon connection of a module to the robot to enable the main module to determine how the newly-connected module varies from the perfect, and to compensate for any such variations.
The electronic circuitry allows for the identification of the module in which it is comprised either by active means (such as digital or analogue wired electrical connection) or by passive means (such as wireless radiofrequency transmission). Identification of, and verification of the authenticity of, the various modules may be useful in a number of ways, as will be described in more detail below.
Identifying a newly-connected module may comprise, for example, transmitting a data packet from the electronic circuitry of a first module (first electronic circuitry) to the electronic circuitry of a second module (second electronic circuitry), via an electrical interface between the first module and the second module. The data packet may have a particular format, which may depend on the nature of the second module. For example, a different data packet format may be used for secondary module identifying data than for leg module identifying data. An example data packet format may comprise any or all of an identifier, a type string, and a feature list. Each item of data comprised in the data packet may be a fixed length (e.g. a fixed number of bits) or may be variable length data structure marked by start and stop bit sequences. An identifier comprised in a data packet format may be a globally unique identifier for the second module. An identifier may be a 16, 32 or 64-bit sequence, such as an integer, or may comprise a 256, 512 or larger bit sequence representing an encrypted value or result of a cryptographic function. A type string may be used by the main processing module to determine a module type so as to retrieve corresponding control routines to control said module. In certain cases the data packet format may not include a type string, for example in cases where control information may be alternatively retrieved based on a look-up operation by main processing module using an identifier. A feature list may indicate which, if any, controllable components are comprised in the second module. For example, a string value “LEDR” comprised in the features list may indicate that the second module comprises a red LED and that control values for this LED should be provided as a first data item; a string value “LEDB” may indicate that the second module comprises a blue LED and that control values for this LED should be provided as a second data item; and a string value “MOTOR1” may indicate that the second module comprises a motor and that control values for this motor should be provided as a third data item.
Example data 1073 may be read by the first electronic circuitry from a memory of the second electronic circuitry. Example data 1073 may be read by the first electronic circuitry in response to a request received by the first electronic circuitry from the main processing module (e.g. if the first electronic circuitry is comprised in a module other than the main module 12). The first electronic circuitry may transmit the data 1073 to the main processing module. The main processing module may transmits this data to a coupled computing device to set attributes of the gaming robot. If a computing device is not connected then the main processing module 210 may cache this data for later transmission. For example, a simulated mass of the gaming robot may be set based on the “HVY” type 2712 or based on a lookup using the identifier 2711 (e.g. the type may be implicit in the identifier).
Example data 274 may be sent to the second module from the main processing module 210 via the first electronic circuitry and the second electronic circuitry as a data packet to control the active electronic components set out in feature list 2703. Example data, in this case, comprises three 8-bit data values that are received serially by a microcontroller of the second module (the values being “35”, “128” and “12”). The value “35” controls a level of the red LED identified by item 2714; the value “128” controls a level of the blue LED identified by item 2715; and value “12” controls a position or speed of the motor identified by item 2716.
Each leg module 11 comprises a hip 111, a thigh 112, a knee 113, and a lower leg 114. Each of the legs is actuated by three prime movers 115, 116 and 117, which in this example are each fully integrated within the robot 10. Each of the prime movers actuates a different movable joint of a leg module 11. The hip 111 of each leg module comprises two such movable joints, which are configured to pivot about orthogonal axes. The knee 113 of each leg module comprises a further such movable joint, which is configured to pivot about an axis parallel to the pivotal axis of the nearest hip joint (that is, the hip joint nearest to the knee joint). Each of the prime movers 115, 116 and 117 thereby confers to each leg three degrees of freedom, allowing the leg to rotate about three axes of rotation 14, 15 and 16. Two prime movers 115, 116 are integrated into each thigh 112. The remaining prime movers 117 are contained in the body module 13. The number of prime movers 117 comprised in the body module 13 corresponds to a maximum number of legs that may be comprised in the robot 10. The prime movers 117 are controlled by commands generated by the main processing module and transmitted across the electrical interface between the main module 12 and the body module 13 (and, for a prime mover comprised in a leg module 11, across the electrical interface between the body module 13 and that leg module). Such commands may, for example, be low-level commands which are generated by the main processing module in response to high-level commands received by the main processing module from the remote computing device.
The body carrier plate carrier 43 provides a mechanical interface with the components of the prime movers 117. The prime mover components shown in
Various examples of coupling pairs for connecting two modules of a modular gaming robot will now be described. In general, each example coupling pair comprises a first coupling having a first set of electrical contacts and a first connection surface shaped to create a first set of formations; and a second coupling having a second set of electrical contacts for cooperating with the first set of electrical contacts to create an electrical interface when the two modules are connected and a second connection surface shaped to create a second set of formations. At least one of the two modules (that is, the two modules connectable by means of the coupling pair) forms part of a pivoting joint of the modular robot. The first set of formations and the second set of formations are configured such that movement of the first coupling into engagement with the second coupling along a connection axis substantially normal to the first connection surface creates a mechanical interface between the first coupling and the second coupling which resists further relative movement of the first coupling and the second coupling along the connection axis. The mechanical interface also resists rotational movement of the first coupling relative to the second coupling around an axis parallel to the pivotal axis of the pivoting joint.
It can be seen from
It can be seen from
In the illustrated example the first coupling 105 is configured to be comprised in a leg module (e.g. the leg module 11) of a gaming robot. It should be noted that the cables connecting different parts of the leg module 11 which are shown in
The first coupling 105 comprises at least an upper part 105a and a lower part 105b, as shown by
In the illustrated example the protrusions comprise a tab 1021, a shelf 1022, a pair of lugs 1023, and a socket 1024. The tab 1021 includes a channel 1025 extending into its front face in a direction substantially perpendicular to the connection surface 103. The shelf 1022 includes a recess 1026 which extends into the lower surface of the shelf 1022. In some examples the recess 1026 extends to the upper surface of the shelf 1022, such that the recess 1026 comprises an opening in the shelf 1022. In the illustrated example, the socket 1024 contains a first electrical connector having a first set of electrical contacts in the form of a plurality of pins.
In the illustrated example the second coupling 106 is configured to be comprised in a body module (e.g. the body module 13) of a gaming robot. In the illustrated example the body module 13 comprises four second couplings 106, each of which is formed integrally with a shell 107 of the body module 13. Each second coupling 106 comprises a socket-like feature. A part of the outer surface of the shell 107 is recessed with respect to the adjacent parts of the shell 107 to form the socket-like feature. The surface of the recessed part comprises a connection surface 108 which is shaped to create a second set of formations, configured to cooperate with the first set of formations on the first coupling, as will be described below.
The second set of formations, in this example, comprises a plurality of recesses each of which extends, relative to an adjacent region of the first connection surface 108, inwardly in a direction that is substantially radial relative to the pivotal axis X of the pivoting joint of which the leg module forms a part. Each of the plurality of recesses is shaped to receive a corresponding protrusion of the first coupling. In some examples, one or more of the plurality of recesses may be shaped to match a corresponding protrusion of the first coupling, such that a close fit is achieved between the recess and the corresponding protrusion which functions to substantially prevent relative movement between the recess and the corresponding protrusion, at least in the plane of the connection surfaces, when the protrusion is received in the recess. In the illustrated example the recess 1091 is shaped to receive the tab 1021, the recess 1092 is shaped to receive the shelf 1022, and the pair of recesses 1093 is shaped to receive the pair of lugs 1023.
The second set of formations may further comprise at least one protrusion which extends outwardly relative to an adjacent region of the second connection surface. Such a protrusion may extend in a direction parallel to the pivotal axis of the pivoting joint, and/or in a direction perpendicular to the pivotal axis of the pivotal joint.
In the illustrated example, the second set of protrusions additionally comprises a pair of tabs 1096a and 1096b which extend outwardly from the connection surface 108 at the bottom of the coupling 106. The tabs 1096a, 1096b are configured to interlock with the tab 1021 on the first coupling 105 in a three-finger locking arrangement, as is shown by
The effect of the complex complementary shapes of the first and second connection surfaces 103, 108 (i.e. created by the first and second sets of formations) is to provide a large contact area in multiple planes parallel to the pivotal axis X. These contacting surfaces substantially all of the twisting forces generated by the pivoting joint, and prevent all or substantially all relative movement, along all axes (except for movement of the first and second couplings 105, 106 away from each other along the connection axis Y, which is required in order to disconnect the first and second couplings and is instead prevented by the releasable locking mechanism).
The second set of formations further comprises a protrusion in the form of a second electrical connector 1094 which extends outwardly from the second connection surface 108. The second electrical connector 1094 may comprise a set of electrical contacts in the form of a plurality of sockets to receive the plurality of pins of the first electrical connector. The second electrical connector 1094 is shaped to be received within the socket 1024 when the first and second couplings 105, 106 are connected and, when so received, to form an electrical interface with the first electrical connector in the socket 1024. The electrical interface may have any of the features of the electrical interface described above in relation to
The first set of formations on the first coupling and the second set of formations on the second coupling are configured such that movement of the first coupling into engagement with the second coupling along a connection axis Y substantially normal to the first connection surface (and the second connection surface) creates a mechanical interface between the first coupling and the second coupling which resists further relative movement of the first coupling and the second coupling along the connection axis. The mechanical interface may also resist rotational movement of the first coupling relative to the second coupling around an axis parallel to the pivotal axis of the pivoting joint. The resistance to relative movement in a certain direction or directions may be enhanced, in some examples, by the particular shape of the first set of formations and the second set of formations. For example, one or more formations of the first set of formations may be configured to interlock with one or more formations of the second set of formations. One or more formations of the first set of formations may be configured to have an interference fit with one or more formations of the second set of formations. Resistance to relative movement in a certain direction may be enhanced by providing corresponding first and second formations with a significant surface area in a plane perpendicular to the certain direction.
In some examples, one of the first coupling and the second coupling comprises a locking member having a biasing mechanism to resiliently bias the locking member into a locking position, and the other of the first coupling and the second coupling comprises a locking formation shaped to engage with the locking member when the two modules are connected and the locking member is in the locking position.
In the illustrated example, the set of second formations, on the second coupling 106, comprises a locking member in the form of a pivoting latch 110, and the recess 1026 in the shelf 1022 of the first coupling 105 functions as a locking formation. A first end of the latch 110 comprises a hook feature 111 and a second, opposite end of the latch 110 comprises a push button 112. The push button 112 is accessible from an external surface of the second coupling 106. In the illustrated example the push button 112 is accessible from a bottom external surface of a part of the body module in which the second coupling is comprised, through an opening in the shell 107 (as can be seen in
As discussed above, connection of the first coupling 105 to the second coupling 106 is effected by moving the first and second couplings into engagement with each other along the connection axis Y. The latch 110 is configured (shaped) such that it is caused to move out of the locking position by movement of the first coupling into engagement with the second coupling along the connection axis, and is caused to move back into the locking position by the biasing mechanism (which may be, for example, a spring) when the first coupling is engaged with the second coupling. In the illustrated example this is achieved by the latch 110 having a curved front (with respect to a direction of movement during the connection process) surface, as can be seen from
The latch 110 is attached to the shell 107 such that pressing the push button 112 towards the shell 107 moves the hook feature 111 out of the recess 1026. The push button 112 thereby functions as a release mechanism to disengage the latch 110 from the recess 1026 and thereby enable relative movement of the first and second couplings along the connection axis.
One or more of the modules comprised in a gaming robot according to the examples (e.g. the gaming robot 10) may comprise “secondary modules”. The term secondary is used to indicate that these modules are not essential to the operation of the robot and may be removed and/or interchanged without affecting the core functions of the robot (core functions include locomotion of the robot and communication with the remote computing device). Secondary modules may include shield modules, weapon modules, or any other type of module that may be added to/removed from the robot without affecting its core functions. A secondary module may comprise electronic circuitry storing data identifying that secondary module, which may be used, for example, in a process of authenticating that secondary module when it is connected to a robot. A secondary module comprises a coupling connectable to a corresponding coupling on another module of the robot to form a mechanical interface between the secondary module and the other module, and an electrical interface between the secondary module and the other module. An electrical interface between a secondary module and another module of the robot may have any of the features of the electrical interfaces between robot modules described above in relation to the robot 10. A secondary module may comprise a controllable electronic component (such as a light, a speaker, a display, a memory, an actuator, etc.), in which case the other module may be configured to transmit commands for controlling the operation of the controllable electronic component across the electrical interface between the other module and the secondary module.
The shield assembly 130 depicted in
The example data 1073 conforms to the data packet format 1071. An identifier 2701 value of “12345” is set. The identifier may be a 16, 32 or 64-bit sequence, such as an integer. In other embodiments the identifier may comprise a 256, 512 or larger bit sequence representing an encrypted value or result of a cryptographic function. The type string 2702 is set as a string value of “HVY” 2712, e.g. indicating a “heavy” shield or weapon secondary module. The feature list of example data 1073 comprises three items: a string value “LEDR” 2714 indicating that the module comprises a red LED and that control values for this LED should be provided as a first data item; a string value “LEDB” 2715 indicating that the second module comprises a blue LED and that control values for this LED should be provided as a second data item; and a string value “MOTOR1” 2716 indicating that the second module comprises a motor and that control values for this motor should be provided as a third data item.
Example data 1073 may be read by the first electronic circuitry from a memory of the second electronic circuitry. Example data 1073 may be read by the first electronic circuitry in response to a request received by the first electronic circuitry from the main processing module (e.g. if the first electronic circuitry is comprised in a module other than the main module 12). The first electronic circuitry may transmit the data 1073 to the main processing module. The main processing module may transmits this data to a coupled computing device to set attributes of the gaming robot. If a computing device is not connected then the main processing module 210 may cache this data for later transmission. For example, a simulated mass of the gaming robot may be set based on the “HVY” type 2712 or based on a lookup using the identifier 2711 (e.g. the type may be implicit in the identifier).
Example data 274 may be sent to the secondary module from the main processing module 210 via the first electronic circuitry and the second electronic circuitry as a data packet to control the active electronic components set out in feature list 2703. Example data, in this case, comprises three 8-bit data values that are received serially by a microcontroller of the second module (the values being “35”, “128” and “12”). The value “35” controls a level of the red LED identified by item 2714; the value “128” controls a level of the blue LED identified by item 2715; and value “12” controls a position or speed of the motor identified by item 2716.
In some examples a mechanical interface between the shield assembly 130 and the lower leg 114 may be achieved by means of magnets.
In other examples, a weapon secondary module may comprise a coupling of the same type as any of the couplings 75, 76, 95, 96, 105 and 106 described above, connectable to a corresponding coupling of the same type on another module of the robot. In such examples the mechanical and electrical interfaces created between the weapon secondary module and another module of the robot may have any of the features of the mechanical and electrical interfaces described above in relation to the robot 10. In some examples, a weapon secondary module may comprise a coupling of any of the types described above in relation to the shield secondary modules.
Similarly to the shield assemblies 130 described above in relation to
The examples disclosed herein relate in particular to gaming robots. The concept of a gaming robot will now be described in more detail with reference to
In certain embodiments involving use of augmented reality goggles, the processing capability of the goggles may be insufficient to achieve desired performance and may be supplemented with another device with adequate computing power (e.g., a desktop/laptop computer or a video game console).
The user interface 230 also comprises a “status” display 233 of the robot status as well as an “augmented reality” display 234. The “augmented reality” display 234 is used in conjunction with the video camera 236. Augmented reality display 234 broadcasts a real-time picture of the physical gaming robot 221 and its environment as captured within the field of view of camera 236, augmented with virtual reality features such as virtual opponents, a virtual environment/surroundings, and/or or virtual weapon effects.
In some examples (not illustrated) a mobile phone or tablet may be docked with a docking station comprising control buttons and/or one or more joysticks, to provide the user with a more ergonomic gamepad (i.e. similar to that of a video game controller) and/or in order to free-up space on the display of the mobile phone/tablet and thereby enhance gameplay.
A Communication System 270 functions to handle all wired (e.g. USB during programming) and wireless (e.g. Bluetooth, WiFi during game play) communications between the robot 251 and its connected environment.
A Power Management System 271 functions to supply the robot 251 with primary and secondary supplies of power by regulating the battery module 266 voltage from a typical 12 Vdc supply down to 9 Vdc for the motors supply and 6 Vdc for other electronic components. Another function of the Power Management System 271 is to manage the charge and discharge of rechargeable batteries as required.
A Monitoring System 272 functions to provide a status of the health of the robot 251, including for example one or more of: power bus voltage, motors current draw, robot power consumption, battery discharge rate, the temperature of key components.
A Calibration System 273 is to calibrate sensors of the robot 251 during game play. Such sensors may include one or more of: a compass used as part of a tracking system, accelerometers, a gyroscope, GPS, an altimeter (e.g. for a flying robot). The Calibration System 273 may also include information about the prime movers, set in the factory during manufacture of the prime movers. Such information can enable compensation for manufacturing variations, e.g. in joints and gearboxes of the robot.
A Motion Generation System 274 functions to generate low level commands to the robot joints (e.g. prime movers outputs) in response to high-level commands received from a remote computing device 252 (e.g. a mobile phone or goggles) used to control the robot 251. This is achieved using a kinematics engine and position/speed feedback from motor controllers/position sensors of each of the prime movers. The kinematics engine may, for example, be configured to produce movement on the fly based on internal variables and input from remote devices. The Motion Generation System 274 may further comprise an animation system that replays stored routines. Such stored routines may be loaded onto the robot in the factory, or from the remote computing device.
A Robot Tracking System 275 functions to assist the remote computing device 252 in tracking the robot 251 in space during game play, in particular for the purpose of augmenting the reality of the game. This is achieved primarily by sequencing/controlling tracking lights comprised in the gaming robot 251 (typically provided on the main module 261 and/or on the locomotion modules 263) to compute a position and a direction of the gaming robot 251 or a part thereof. The tracking may be enhanced by the use of on-board sensors, when available, such as a compass, gyroscope or accelerometers.
A Detection System 276 functions to allow the robot 251 to detect opponents (e.g. other gaming robots) as well as its environment (e.g. obstacles) during game play. This is achieved by using detection sensors (e.g. infrared LED and receivers comprised in the robot 251, typically in the body module 262) to compute directions as well as an on-board camera comprised in the robot 251 (typically in a head module connected to the main module 261) to compute distances. The robot 251 may also comprise an audio unit (e.g. speaker and microphone) housed with main module 261, which may be used to detect an opponent by emitting and listening to specific sound patterns.
A Smart Module System 277 functions to detect the presence and identification of secondary modules (e.g. shield or weapon modules) attached to the robot and to relay the information to the remote computing device 252 used to control the robot 251 in order to update the attributes of the robot 251 within the game environment. In examples in which one or more of the secondary modules comprises lights (or other controllable electronic components), another function of the Smart Module System 277 is, to control the lights (or other controllable electronic components) of the one or more secondary modules, e.g. to add visual effects during game play.
Another function of the Smart Module System 277 is also to identify the type of a locomotion module 263 connected to robot 251 (e.g. legs, wheels or propellers) to inform the Motion Generation System 274 of the configuration of the robot (e.g. walking, rolling or flying). The Smart Module System 277 may also identify the type of a secondary module connected to the robot 251.
In some examples the Smart Module System may detect the presence of and identify any module which becomes connected to the robot 251. In such examples, the Smart Module System may therefore be considered to comprise an example of an identification system configured to detect the presence and identification of modules attached to a gaming robot.
An identification system for detecting the presence and identification of modules attached to a gaming robot according to the examples (e.g. the gaming robot 10 or the gaming robot 251) is configured to receive, from the gaming robot, data identifying a module connected to the gaming robot, and to determine, based on the received data, whether the module is authentic. The data identifying the module may have any of the features described above in relation to the modules of the robot 10. The receiving and determining functions may be performed (or may occur) in response to the identification system detecting that a module has been connected to the gaming robot. Such a detection may be triggered by the creation of an electrical interface between the module and the gaming robot. The identification system may be further configured to determine, based on the received data, a type of the module (that is, the module which has been newly connected to the gaming robot 251.
In some examples the received data is encrypted, and in such examples the identification system is further configured to decrypt the received data.
In some examples the identification system is configured to transmit a command to the gaming robot to disable operation of the gaming robot in response to a determination that the module is not authentic. The identification system may also communicate the determination (that is, the result of the determining) to a remote computing device for controlling the gaming robot. A remote computing device may be configured, for example, to refrain from sending commands to the robot for controlling the operation of a newly-attached module until the remote computing device has received a determination that the newly-attached module is authentic. Alternatively or additionally, a remote computing device may be configured to transmit a command to the gaming robot to disable operation of the gaming robot in response to a received determination that a newly-attached module is not authentic.
In a particular example, when a new module is attached to the robot 10 the following sequence may take place. First, the newly-attached module may be detected by the identification system based on a voltage on the SEN channel. Then the identification system may obtain the information identifying the newly-attached module. The identification system may then determine whether the newly-attached module is authentic based on the obtained identifying information (e.g. by cross-referencing the identifying information with a database stored in a memory accessible by the identification system). In some examples, the identifying information comprises a serial number and a version number, and determining whether the newly-attached module is authentic comprises checking the serial number and version number against a stored database. In some examples, in response to a determination that the newly-attached module is authentic, the identification system may pass the identifying information to the main processing module, which may then set any control variables in the electronic circuitry of the newly-attached module, e.g. based on a current configuration stored on the main processing module. If the newly-attached module is determined to be authentic and is a locomotion module, a current position of the newly-attached locomotion module may be measured, e.g. via the POT channel, and used to set position data in the main processing module. A current configuration of the gaming robot 10, including the identifiers of all attached modules, may then be stored by the main processing module and/or transmitted to a remote computing device (when such a remote computing device is communicatively coupled to the robot 10). In some examples the identifying information may comprise calibration data for the newly-connected module (particularly if the newly connected module comprises one or more prime movers and/or joints). The main processing module may use this data to compensate for any variations of the newly-attached module from the perfect.
In some examples, the newly-attached module may have a secondary module attached to it. In such examples, concurrently, or following the above-described sequence, the data identifying the secondary module may be obtained by the identification system and the authenticity of the secondary module may be determined based on the identifying data of the secondary module.
Although in the above described example the identification system is comprised in the Smart Module System 277 of the main processing module, in other examples an identification system which functions as described above may be comprised in a remote computing device (e.g. the mobile phone 224 or the remote computing device 252) for controlling a gaming robot according to the examples. If the identification system is comprised in a remote computing device, the information identifying the newly-attached module may be transmitted to the remote computing device via the main processing module of the gaming robot, and potentially (depending on the connection location of the newly-attached module) via one or more other modules. For example, if the newly-attached module is a shield module, connected to a coupling on a leg module, the identifying information may be transmitted from electronic circuitry in the shield module to electronic circuitry in the leg module, from the electronic circuitry in the leg module to electronic circuitry in a body module, from the electronic circuitry in the body module to a main processing module in a main module, and from the main processing module to the remote computing device.
As previously mentioned, to further enhance user experience, a docking station 240 may be used to dock a mobile phone 241 or a tablet 244, to provide the user with a physical gamepad. One of the benefits of such a docking station 240 is that it frees space on the display 235 of the phone 241 or tablet to enhance the gaming experience, in particular if augmented reality is implemented. If, instead of a phone or tablet, the remote computing device 252 comprises a pair of augmented reality goggles 223, then either a gamepad 237 or one or more connected gloves 239 may be used as a game controller 284.
The Robot Control System 291 functions to send the high-level commands inputted by the user via game controller 284 to robot 251 wirelessly.
The Robot Monitoring System 292 functions to collect data on the health/status of robot 25 land update the robot status 233 on the user interface 230 with basic status information as shown in
The Smart Module System 293 functions to collect a status of the modules (e.g. weapons, shields, screen, type of locomotion module) attached to robot 251. The Smart Module System 293 provides inputs to the Battle System 295 that updates the gameplay accordingly by altering robot 251 attributes. In some examples the Smart Module System 293 of the remote computing device may comprise an identification system having the features described above in relation to the Smart Module System 277 of the main processing module.
The Virtual Items System 294 functions to collect a status of the virtual items owned by the user (e.g. cooling potion, healing potion, damage booster or speed booster). The Virtual Items System 294 provides inputs to the Battle System 295. Unlike physical smart modules (e.g. shields or weapons), virtual items are non-physical and cannot be “detected” by the robot. Instead virtual items are stored against a player/robot profile stored into cloud 253 and on connective device 252. Virtual items can be purchased online from market place 305 within cloud 253.
The Battle System 295 functions to compute the outcome of a battle based on data from other systems of robot 251. The outcome of a battle would for example be computed based on data from the Robot Tracking System 290, data from the Skills System 296 as well as data from the Smart Module system 293. For example upon detecting that a “Heavy” shield is installed, the Battle System 295 would make robot 251 more resilient to attacks and more tolerant to damages but the Battle System 295 would also slow robot 251 movements to reflect the bulk and weight of the “Heavy” shield.
The Skills System 296 functions to manage the skills that may become available to the player/robot over time. Skills (also known as perks) can be earned by the player/robot as he or she progresses (also known as levelling up) through the game. These skills can grant gameplay benefits to the player. For example, new skills may give the player/robot the ability to perform a new action, or giving a boost to one of the player/robot attributes. Skills are an input to the Battle System 295 and assist in computing the outcome of a battle.
The function of the Robot Database 301 is to store data relating to each and every robot 251 and in particular data relating to the skills, smart modules, virtual items available and game statistics for each and every robot. The Robot Database 301 data is used as part of the game analytics and some of the data may be accessed by other users and members of the Community 307. An important aspect of the robot database is to collect the unique identifiers of each robot 251 and each robot module (e.g. main module, locomotion modules 263, body module 262, weapon secondary modules 264, shield secondary modules 265) to verify the legitimacy of each robots and protect against counterfeiting as well as assist with customer support, warranty claims or product recalls for example.
The function of the User Database 302 is to store data relating to each and every user 220, for example the status and profile of a user, usage statistics and robot ownership (if such user owns more than one robot). The User Database 302 data is used as part of the game analytics and some of the data may be accessed by other users and members of the community.
The function of the Skills Engine 303 is to pool all available skills (also known as perks) and manage the allocation/granting of skills to users/robots based on the data available from the Robot Database 301 and the User Database 302. Skills may be earned by the user as he or she progresses through the game.
The function of the Game Analytics Engine 304 is to utilise all the data collected for example via the Robot Database 301 and User Database 302 analyse and improve gameplay and user experience. An example of metrics used by the Game Analytics Engine 304 may be Playing time and frequency, preferred weapons, most effective shields, success rate, game progression, demographics. These metrics may be used to identify patterns and improve game play and user experience as a whole but may also be used to tailor the contents offered to each and every user by analysing individual data stored in databases 301 and 302.
The function of the External Entity Interface 306 is to allow the user access to licensed contents providers and for example purchase new games or access to authorised licensed retailers and purchase additional smart modules. The External Entity Interface 306 may also allow authorised advertisement during gameplay or be used to exchange/sell data with external partners.
The function of the Community 307 is to allow user/players to exchange information via forums or social media, share robots/users profiles, manage/organise events such as tournaments.
In a first process block 2901, a gaming robot comprising at least one movable joint actuated by a prime mover is provided. The gaming robot comprises first electronic circuitry and a first coupling. The gaming robot may have any of the features of the example gaming robots 10, 252 described above.
In a second block 2902, a module to be connected to the gaming robot is provided. The module comprises second electronic circuitry and a second coupling. The module may be, for example, a locomotion module, a body module, a secondary module, etc. The module may have any of the features of any of the example modules described above in relation to the gaming robot 10 or the gaming robot 252.
In block 2903, the second coupling is engaged with the first coupling to create an electrical interface between the module and the gaming robot and a mechanical interface between the module and the gaming robot. The electrical interface and the mechanical interface may have any of the features described above in relation to the example gaming robot 10 or the example gaming robot 252. The engagement may be performed in any of the manners described above in relation to the example gaming robot 10 or the example gaming robot 252.
In block 2904 the first electronic circuitry accesses, via the electrical interface, data identifying the module stored within the second electronic circuitry. The data identifying the module may have any of the features described above in relation to the example gaming robot 10 or the example gaming robot 252, or example modules therefor. Accessing the identifying data may comprise, for example, electrical signals passing between the second electronic circuitry and the first electronic circuitry across the electrical interface. Accessing the identifying data may comprise the first electronic circuitry transmitting a read request to the second electronic circuitry.
In block 2905 the first electronic circuitry transmits the data (that is, the identifying data stored in the second electronic circuitry and accessed by the first electronic circuitry in block 2904) to an identification system configured to detect the presence and identification of modules attached to the gaming robot. The identification system may have any of the features of the example identification system described above. Transmitting the data may be performed in any of the manners described above in relation to the example gaming robot 10 or the example gaming robot 252. In some examples the identification system is comprised in a main processing module of the gaming robot, in which case transmitting the data comprises transmitting the data from the first electronic circuitry to the main processing module. In some such examples the first electronic circuitry may be comprised in the main processing module, in which case transmitting the data may comprise passing the data from a first function (e.g. a data receiving function) of the main processing module to a second function of the main processing module (e.g. an identification system function). In some examples the identification system is comprised in a remote computing device for remotely controlling the gaming robot, in which case transmitting the data comprises transmitting the data from the first electronic circuitry to the main processing module of the gaming robot, and then transmitting the data from the main processing module to the remote computing device.
In block 2906 the identification system determines whether the module is authentic based on the received data. Determining whether the module is authentic may be performed in any of the manners described above in relation to the example gaming robot 10 or the example gaming robot 252.
The illustrated method 290 also includes an additional optional block 2907, comprising transmitting a determination (that is, a determination generated as a result of performing block 2906) of whether the module is authentic to the remote computing device. The determination may be transmitted in any of the manners described above in relation to the example gaming robot 10 or the example gaming robot 252. This block may be performed, for example, if the identification system is comprised in the main processing module of the robot such that blocks 2904-2906 are all performed by the robot. However; it is generally expected that some of blocks 2904-2906 will be performed by the remote computing device.
The illustrated method 290 also includes an additional optional block 2908, comprising the identification system, in response to determining that the module is not authentic, transmitting a command to the gaming robot to disable operation of the gaming robot.
In some examples the command may be received from the remote computing device. In some examples the command may be transmitted in response to a request received from the remote computing device. In some examples, together with transmitting a command to the gaming robot to disable operation of the gaming robot, the identification system may transmit a notification to the remote computing device that the gaming robot has been disabled, and/or may cause a warning message to be displayed to a user, e.g. on a screen of the remote computing device. Transmitting a command to the gaming robot to disable operation of the gaming robot may be performed in any of the manners described above in relation to the example gaming robot 10 or the example gaming robot 252.
The above embodiments are to be understood as illustrative examples of the invention. Further embodiments of the invention are envisaged. For example, [add possibilities]. It is to be understood that any feature described in relation to any one embodiment may be used alone, or in combination with other features described, and may also be used in combination with one or more features of any other of the embodiments, or any combination of any other of the embodiments. Furthermore, equivalents and modifications not described above may also be employed without departing from the scope of the invention, which is defined in the accompanying claims.
This application is a continuation under 35 U.S.C. § 120 of International Application No. PCT/GB2016/052739, filed Sep. 6, 2016, which claims the benefit of U.S. Provisional Application No. 62/216,288, filed Sep. 9, 2015. Each of the above-referenced patent applications is incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62216288 | Sep 2015 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/GB2016/052739 | Sep 2016 | US |
Child | 15917318 | US |