MODULAR ROBOTIC SYSTEM AND METHODS FOR CONFIGURING ROBOTIC MODULE
Disclosed herein is a modular robotic system, and methods for configuring the robotic module. The robotic system includes a first housing comprising a first processor and a first connector, a second housing comprising a second processor and a second connector, the first connector of the first housing being connectable to the second connector of the second housing in a plurality of orientations relative to one another, where the first processor and the second processor are configured to communicate with one other when connected in any of the plurality of orientations
This application is based on, and claims the benefit of priority to, Indian provisional application no. 2018/11047472, filed on Dec. 14, 2018, the entire contents of which are incorporated herein by reference.
BACKGROUND FieldThis disclosure relates generally to a modular robotic system. More particularly, the present disclosure relates to robotic modules and connectors used therewith to configure and reconfigure the robotic system to perform a desired task.
Description of the Related ArtToy development has evolved from a pre-defined structured toy such as a car, doll, trucks, etc. that perform simple functions such as the playing of sounds in dolls, performance of simple patterns of movement in cars via a remote control, etc. to the development of robotic toys configured to perform relatively complex tasks.
Today, robotic toys are built from toy building elements or pieces, where the building element may be programmable. Depending on a task programmed, the toy building elements may perform different physical actions partially through a function or task programmed in the building element and partially by building a toy structure consisting of interconnected building elements of various types.
However, such robotic toys require an external central processing unit for programming the building elements and directing its movement. There is a need to provide a modular robotic toy construction system having modules having their own micro-controller with easy to program software interface and capable of being easily connected to other modules by mechanical and/or electrical connections into configurations which function as a single robotic unit.
SUMMARYAccording to one aspect of this disclosure, there is provided a robotic system. The robotic system includes a first housing comprising a first processor and a first connector, a second housing (e.g., a drive motor, a function motor, sensors, a display, linkages, claw, etc.) comprising a second processor and a second connector, the first connector of the first housing being connectable to the second connector of the second housing in a plurality of orientations relative to one another, wherein the first processor and the second processor are configured to communicate with one other when connected in any of the plurality of orientations
The first connector comprises a groove; and a second connector comprises a ridge corresponding to the groove, the ridge comprising the plurality of electrical contacts, where the groove is configured to receive the ridge and the plurality of electrical contacts in the plurality of orientations. The first connector further comprises a track element having a plurality of tracks corresponding to the plurality of contacts of the second connector, where the track element is located at a first side of the first connector and receives the plurality of the contacts of the second connector from a second side of the first connector, the second side being opposite to the first side.
Furthermore, according to one aspect of this disclosure, there is provided a method for configuring a robotic module. The method includes connecting the robotic module to a first housing, and assigning, via the processor, an identifier to the robotic module, wherein the identifier is configured to identify a type of the robotic module, a number of the robotic module, and/or a location of the robotic module with respect to the first housing.
The assigning of the identifier involves assigning a first set of bits of a plurality of bits to identify the type of the robotic module, and a second set of bits of the plurality of bits to indicate the number the particular component. Furthermore, the assigning of the identifier may also involve daisy chaining of the plurality of bits corresponding to a plurality of robotic modules connected to the first housing and/or a robotic module of the plurality of robotic modules.
Furthermore, according to one aspect of this disclosure, there is provided a method for programming a robotic module. The method involves selecting, via an interface, i) a predefined function to be performed by the robotic module, or ii) an option to create a user defined function to be performed by the robotic module, defining, via the interface, logic and parameters related to the user defined function of the robotic module, and storing, via a processor, the user defined function in a processor of a first housing, wherein the processor is configured to control the robotic module based on the user-defined function when the robotic module is connected, via a joinery, to the processor, and wherein the joinery establishes an electrical connection between the first housing and the robotic module.
The defining the logic involves dragging and dropping of a plurality of pre-defined functions within a programming screen on the interface, and defining the parameters includes assigning values to variables related to the robotic module.
The robotic module is a drive motor or a function motor, and the parameters comprise a speed, an amount of rotation, and/or a direction of rotation of the drive motor or the function motor.
Furthermore, according to one aspect of this disclosure, there is provided a communication protocol circuitry including a printed circuit board including a two-wired interface to communicate information from a first processor to a second processor when connected to the first processor via a connector, where the connector establishes an electrical connection between the first processor and the second processor.
Furthermore, according to one aspect of this disclosure, there is provided a rotatory connector for a robotic system comprising a first component interoperably connected to a second component. The rotatory connector includes a first rotatable element is configured to removably coupled to the first component of the robotic system; and a second rotatable element configured to rotate in a desired orientation relative to the first rotatable element and lock to the first rotatable element in the desired orientation, where the second rotatable element removably couples to the second component of the robotic system thereby allowing the second component be connected to the first component in the desired orientation.
Furthermore, according to one aspect of this disclosure, there is provided a slidable connector for a robotic system comprising a first component interoperably connected to a second component, the slidable connector includes a first slidable element removably couples to the first component of the robotic system; and a second slidable element disposed perpendicular to the first slidable element, the second slidable element configured to slide to a desired position relative to the first slidable element and lock to the second slidable element in the desired position, where the second slidable element removably couples to the second component of the robotic system thereby allowing the second component be connected to the first component of the robotic system in the desired position.
Furthermore, According to one aspect of this disclosure, there is provided a skin connector for a robotic toy, the skin connector includes a ridge configured to insert in a groove element of the robotic toy; and one or more snap elements formed at edges of the skin connector, the one or more snap elements configured to be snap fit in a cavity of a shaped cover thereby giving the robotic toy a desired toy form.
Furthermore, according to one aspect of this disclosure, there is provided an interface between two different interlocking toy systems, the interface includes a plurality of connecting elements, formed on a first face, having a first geometric configuration compatible with one or more pieces of a first interlocking toy system; and a joinery, formed on a second face, having a second geometric configuration compatible with a second interlocking toy system, the interface enabling an interoperable connection between the first interlocking toy system and the second interlocking system.
The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate one or more embodiments and, together with the description, explain these embodiments. The accompanying drawings have not necessarily been drawn to scale. Any values dimensions illustrated in the accompanying graphs and figures are for illustration purposes only and may or may not represent actual or preferred values or dimensions. Where applicable, some or all features may not be illustrated to assist in the description of underlying features. In the drawings:
The description set forth below in connection with the appended drawings is intended as a description of various embodiments of the disclosed subject matter and is not necessarily intended to represent the only embodiment(s). In certain instances, the description includes specific details for the purpose of providing an understanding of the disclosed embodiment(s). However, it will be apparent to those skilled in the art that the disclosed embodiment(s) may be practiced without those specific details. In some instances, well-known structures and components may be shown in block diagram form in order to avoid obscuring the concepts of the disclosed subject matter.
Subject matter will now be described more fully hereinafter with reference to the accompanying drawings, which form a part hereof, and which show, by way of illustration, specific example embodiments. Subject matter may, however, be embodied in a variety of different forms and, therefore, covered or claimed subject matter is intended to be construed as not being limited to any example embodiments set forth herein. Example embodiments are provided merely to be illustrative. Likewise, a reasonably broad scope for claimed or covered subject matter is intended. Among other things, for example, subject matter may be embodied as methods, devices, components, or systems. Accordingly, embodiments may, for example, take the form of hardware, software, firmware or any combination thereof (other than software per se). The following detailed description is, therefore, not intended to be taken in a limiting sense.
Throughout the specification and claims, terms may have nuanced meanings suggested or implied in context beyond an explicitly stated meaning. Likewise, the phrase “in one embodiment” as used herein does not necessarily refer to the same embodiment and the phrase “in another embodiment” as used herein does not necessarily refer to a different embodiment. It is intended, for example, that claimed subject matter include combinations of example embodiments in whole or in part.
In general, terminology may be understood at least in part from usage in context. For example, terms, such as “and”, “or”, or “and/or,” as used herein may include a variety of meanings that may depend at least in part upon the context in which such terms are used. Typically, “or” if used to associate a list, such as A, B or C, is intended to mean A, B, and C, here used in the inclusive sense, as well as A, B or C, here used in the exclusive sense. In addition, the term “one or more” as used herein, depending at least in part upon context, may be used to describe any feature, structure, or characteristic in a singular sense or may be used to describe combinations of features, structures or characteristics in a plural sense. Similarly, terms, such as “a,” “an,” or “the,” again, may be understood to convey a singular usage or to convey a plural usage, depending at least in part upon context. In addition, the term “based on” may be understood as not necessarily intended to convey an exclusive set of factors and may, instead, allow for existence of additional factors not necessarily expressly described, again, depending at least in part on context.
It is to be understood that terms such as “left,” “right,” “top,” “bottom,” “front,” “rear,” “side,” “height,” “length,” “width,” “upper,” “lower,” “interior,” “exterior,” “inner,” “outer,” and the like that may be used herein merely describe points of reference and do not necessarily limit embodiments of the present disclosure to any particular orientation or configuration. Furthermore, terms such as “first,” “second,” “third,” etc., merely identify one of a number of portions, components, steps, operations, functions, and/or points of reference as disclosed herein, and likewise do not necessarily limit embodiments of the present disclosure to any particular configuration or orientation, or any requirement that each number must be included.
A modular robotic system comprises of robotic modules, which can be disconnected and reconnected in various arrangements to form different configurations while enabling new functionalities specific to a particular configuration. As a result, multiple possible robot configurations or structures may be obtained from the same number of robotic modules. For example, a robot structure (e.g., a car, an animal, a mechanical tool or apparatus, etc.) can be built by interconnecting a certain number of modules to form a desired structure (e.g., car with four wheels) and programming desired functionality (e.g., steer, move forwards/backwards, etc.) to activate the desired robotic structure to perform a desired task (e.g., driving from a first location to a second location while steering along a desired path or steering around obstructions).
The term “robotic system” used herein refers to a system comprising several components (e.g., mechanical, electrical/electronic, software, etc.) related to a robotic module or a set of robotic modules. For example, the robotic system comprises a set of robotic modules, user interfaces used to implement or activate functionalities related to the robotic modules, any programs or configurations build using the robotic modules and the user interface, a web programming interface used to code a particular function to be performed related to a robotic module, a user-defined configuration of the robotic modules, or any other tools, programming interface, etc. relating to the robotic modules of the present disclosure and/or interacting with the robotic modules. An example robotic system architecture is illustrated in
Furthermore, the robotic structure's physical actions may be conditioned by the interaction of the robotic structure with its surroundings, and the robotic structure may be programmed to respond to sensor inputs, such as physical contact with an object or to light, sound, color, and to change its behavior on the basis of the sensor inputs.
In an embodiment, such modular robotic system comprising a plurality of programmable robotic modules may be used to build toys and for education purposes to caters to children of a younger age or adults. In an embodiment, toys, games using toys, etc. can be build using the robotic modules to teach and inculcate basic knowledge of how to design systems for modern world. As mentioned earlier, the robotic system is modular system that enables manipulation of different structures to create different shapes and are programmable in multiple ways (e.g., via computer, phone or an interface). The robotic modules, as described herein, are easy to assemble, enable self-learning, and intuitive in nature to build a desired robotic structure or toy.
According to the present disclosure, the robotic modules or the robotic structure built therefrom may be configured via different interfaces, as described herein, each interface configured to work independently to control any unique creation, for example, by a child. Thus, the robotic system is designed to enhance the logical abilities, creativity and programming skills of a young child or adults.
In a preferred embodiment, a target age group is mostly young children. So, it is desired to provide them age appropriate curriculum and manipulatives. A child's world and environment, at the ages of 3 to 10 years (or higher) is dominated by blocks (e.g., made of wood or plastic), colorful toys (e.g., made of wood or plastic) and books. As such, the robotic modules and any tangible interface may be made of plastic and/or wood with limited to no apparent electronics on its surface to ensure that the child does not feel intimidated by the interface but feels welcomed to use the interface. The tangible interface refers to a software interface with which a user can interact to program a particular function of a robotic module. The tangible interface also ensures that the child focuses on the task at hand and does not get distracted by other screen based applications such as commonly available on a phone, tablets or computers. Furthermore, consistency is be maintained across the different devices (e.g., tangible screen, phone/tablet and computer) so that when the children move from one to another device they do not get confused.
Thus, the robotic system described herein provides several advantages including, but not limited to, configuration and reconfiguration of a robotic structure with ease using the robotic modules, model real-world behaviors, and teach basic principles of coding such as logic, troubleshooting and function flows without having a prior understanding of a coding language. In an embodiment, advanced users can learn the basics of programming language and logic, and troubleshooting logic, and further code user-specific functions as they build more complex robotic structures. Hence, as users advance, they can apply these computational thinking skills to traditional programming, for example, in C programming language.
In the present disclosure the terms “robotic module,” “module,” “programmable module,” and “block,” may be used interchangeably to refer to a main component or a secondary component of the robotic system or the robotic toy. The terms “robotic system,” “robotic toy,” and “robotic configuration,” may be used to refer to any device, apparatus or a toy comprising cooperating parts configured using robotic modules according to the present disclosure.
According to the present disclosure, a robotic structure is built by interconnecting, via a joinery, cooperating robotic modules. The joinery comprises a first connector (also referred as a groove element) with a cavity or groove and a second connector (also referred as a ridge element) having a projecting portion that can be received in the cavity or groove. The joinery (e.g., comprising the first connector and the second connector) allows interconnection between two modules in multiple orientations. In addition, the joinery is configured to easily connect and disconnect cooperating modules, for example, via a snap action. The joinery also includes a locking element, which locks the cooperating modules when connected and easily unlocks upon applying force while disconnecting the modules. The joinery also includes electrical contact points such as pogo pins that establish an electrical connection between cooperating parts thereby enabling communication of signals such as sensor inputs, control commands etc. between the cooperating modules.
In an embodiment, the joinery comprises an X-shaped portions (e.g., in
According to an embodiment, the X-shaped design of the joinery also has a metaphorical usage. For example, usage of alphabet X as a variable in algebra or even in common terminology. In a robotic configuration, one can attach any kind of sensor or a motor module at such X location thereby giving an early association to children that X means a position where different options can be placed.
Now, the disclosure describes in detail an exemplary joinery structure and different robotic modules that can be configured to form a desired robotic configuration that are enabled (e.g., via programing desired function within a processor of a robotic module) to perform a desired task. For example, a robotic configuration comprises cooperating robotic modules, where a robotic module is the main component 100 (discussed with respect to
Referring to the cross-section of the joinery 900 in
The shape of the groove 912 is such it can receive the ridge element 950 (or the component connected thereto) in a plurality of orientations relative to the outer surface 911 of the groove element 910 (or the component connected thereto). A total number of the plurality of orientations depends on the shape of groove 912. For example, the groove 912 can be shaped as a “minus” sign, “plus” sign, “X”, etc. Accordingly, the groove 912 may receive the ridge element 950 (or the component connected thereto) in two, three, four, five, six, etc. different orientations depending on the shape of the groove 912.
In an embodiment, an orientation may be defined as an angular position about the axis of the groove element 910 or with respect to faces of a robotic module comprising the groove element 910 and/or the ridge element 950. For example, when the plurality of orientations are defined as angular positions about the axis (e.g., perpendicular to the outer surface 911) of the groove element 910, the angular positions can be 0°, 90°, 270°, and 360°, or 30°, 120°, 210°, and 300°, or any other desired angular position. When the plurality of orientations are defined with respect to a face of the robotic module, the face may be a top face, a bottom face, a front face, a side face, etc. defined based on viewing direction of a user.
A body of the groove element 910 may be of any desired shape as well. In an embodiment, the desired body depends on a housing or shape of the robotic module within which the groove element 910 may be incorporated. For example, the groove element 910 can be configured to have a rectangular or square-type body (as shown in
Furthermore, the body of the groove element 910 may be configured to include one or more locking elements that allows to easily attach and remove, for example, via a snap action, a robotic module. For example, the one or more locking elements may be a cantilever type having a profiled shape, where the locking takes place due to a spring action of the cantilever when force is applied at an open end (e.g., at the profile shape) of the cantilever. The profile shape is such that when attaching by pressing a robotic module, the attaching force causes the cantilever to depresses, and the when removing the robotic module, a sliding out or pull out motion also causes the cantilever depress and separate two connected robotic modules.
In an embodiment, the square body type may include four locking elements 915 as shown in
In addition,
Thus, when the groove elements 910 is connected to the ridge element 980 via the track elements 980 and the electrical contacts 954, the joinery 900 enables actuation of the robotic modules in cooperation with each other (e.g., used in a toy) to perform a desired functionality or a task.
As mentioned earlier, the ridge element 950 cooperates with the groove element 910 to form the joinery 900. Exemplary structure of the ridge element 950 is shown in
Furthermore, the ridge 952 has a plurality of holes (see
The ridge 952 has a shape corresponding to the shape of the groove 912 so that the ridge 952 fit in the groove 912 in a desired orientation of the plurality of orientations. Similar to the groove element 910, the plurality of orientation of the ridge 950 is dependent on the shape of the ridge 952. For example, the ridge 952 can be a “minus” sign, “plus” sign, “X,” etc. Accordingly, the ridge element 950 (or the component connected thereto) can be oriented in two, three, four, five, six, etc. different orientations within the groove 912. In the present disclosure, as an example in
The orientation of the ridge 950 may be defined as an angular position about the axis (e.g., perpendicular to the outer surface 951) of the ridge element 950 (or the groove element 910) or with respect to faces of a robotic module comprising the ridge element 910 and/or the ridge element 950. For example, when the plurality of orientations are defined as angular positions about the axis of the ridge element 950, the angular positions can be 0°, 90°, 270°, and 360°, or 30°, 120°, 210°, and 300°, or any other desired angular position. When the plurality of orientations are defined with respect to a face of the robotic module, the face may be a top face, a bottom face, a front face, a side face, etc. defined based on viewing direction of a user.
A body of the ridge element 950 may be of any desired shape as well. In an embodiment, the desired body depends on a housing or shape of the robotic module within which the ridge element 950 may be incorporated. For example, the ridge element 950 can be configured to have a rectangular or square-type body (as shown in
Furthermore, the body of the ridge element 950 may be configured to include one or more locking means such as slots corresponding to the locking element 915 (in
In an embodiment, the square body type of the ridge element 950 includes four locking slots (see
The joinery discussed above may be included in one or more robotic modules such as the main component 100 and the secondary component. In examples of the present disclosure, the groove element 910 is included in the main component 100 and the function motor 300, while the ridge element is included in the secondary component (e.g., the drive motor 200, the function motor 300, sensors 400-700, or the display 800). Thus, one or more secondary components can be connected to the main component 100 by inserting the ridge 952 of the secondary component in to the groove 910 of the main component 100.
In an embodiment, the main component 100 has a first housing having an elongated cubical shape. The first housing comprises face plates 102 assembled with other components including the groove elements 910A-910N (generally referred as groove element 910) and corresponding track elements 980, a battery 150, a chassis 120, etc. as illustrated in
In an embodiment, the main component 100 includes the first processor 10 configured to control one or more attached secondary components. For example, the first processor 10 is connected via the track elements 980 to a second processor of the secondary components such as sensors. Hence, the first processor 10 can receive signals (e.g., from sensors 400-700) and based on the sensor signals and the functionality programmed in the first processor 10, the first processor can control/configure/communicate with the second processor of the secondary components.
In an embodiment, the first processor 10 can automatically identify the type of the secondary component such as the drive motor 200, the function motor 300, etc. when the secondary component is connected to the main component 100. Such automatic identification may be achieved by an identifier (e.g., assigned according to an addressing mechanism in
As shown in
In the present disclosure example secondary components include, but not limited to, one or more of, the drive motor 200 (
As shown in
As shown in
Furthermore, a depth of the groove 912 of the main component 100 may be approximately the same as the height of the ridge 950 of the secondary component, so that when the groove 912 receives the ridge 950 of the secondary component, the face (e.g., 102) of the main component 100 and a face of the secondary component touch each other. However, the present disclosure is not limited to such configuration. A person skilled in the art can determine appropriate dimension of the pocket 953, the step 104, the groove 912 and the ridge 952 such that the cooperating component (e.g., 100 and 200), more particularly faces at the joinery 900, may or may not be touching each other or flushed to each other.
In an embodiment, the secondary component may be the drive motor 200, as illustrated in
The electric motor of the drive motor 200 may be selected based on a propulsion or driving related specification of the robotic structure to be built. For example, the motor may have maximum speed of 150 rpm, and a torque in the range 0.5 to 1 Kg·cm. However, the motor specification is not limited to a particular speed or torque. In an embodiment, the drive motor 200 can be powered by a battery within the main component 100. However, a person skilled in the art can understand that the drive motor 200 may have other power sources such as from power outlet, another battery housed in the drive motor 200 itself, or other secondary component.
Furthermore, the drive motor 200 may be configured to include a rotation check mechanism to determine or measure the number of rotations of a shaft of the motor. The mechanism helps to determine whether the motor completed a full rotation, a quarter rotation, a half rotation, or a partial rotation. In an embodiment, a full rotation may be desired, however, the motor may only partially rotate depending on the surface conditions, manufacturer of the motor, type of motor, power remaining in the battery, or a combination thereof. Thus, the mechanism ensures that a desired rotation (e.g., a full rotation) is achieved. In embodiment, the mechanism includes a slotted disc attached to the motor shaft and an IR sensor placed in the vicinity of the slotted disc. The IR sensor sends signal to, for example, the first processor 10 of the main component that can further determine, based on the signal, whether the amount of rotation or speed is as desired.
The drive motor 200 includes at least one ridge element 950 accessible from a first face of the drive motor as shown in
In an embodiment, the ridge element 950 connects with a counterpart groove element 900 (e.g., included in the main component 100) thereby establishing an electrical contact between the drive motor 200 and the main component 100, as discussed earlier with respect to the joinery 900 (e.g., in
In an embodiment, the secondary component may be the function motor 300, as illustrated in
The function motor 300 is an electric motor configured to send receive signals from the main component 100. For example,
The electric motor (e.g., 350) of the function motor 300 may be selected based on a functions that the robotic structure is desired to be perform. In an embodiment, the function motor may have a relatively lower speed specification and a higher torque specification compared to the drive motor 200. For example, the motor may have maximum speed of 50 rpm, and a torque in the range 1.5 to 2 Kg·cm. However, the motor specification is not limited to a particular speed or torque.
In an embodiment, the function motor 300 can be powered by a battery within the main component 100. However, a person skilled in the art can understand that the function motor 300 may have other power sources such as from power outlet, another battery housed in the function motor 300 itself, or other secondary component.
Furthermore, similar to the drive motor 200, the function motor 300 may be configured to include a rotation check mechanism to determine or measure the number of rotations of a shaft of the motor. The mechanism (e.g., comprising a slotted disc and IR sensor) helps to determine whether the motor completed a full rotation, a quarter rotation, a half rotation, or a partial rotation, as discussed earlier.
The function motor 300 includes at least one ridge element 950 accessible from a first face of the function motor 300, as well as at least one groove element 910 on a second face of the function motor, as shown in
In an embodiment, the ridge element 950 connects with a counterpart groove element 900 (e.g., included in the main component 100) thereby establishing an electrical contact between the drive motor 200 and the main component 100, as discussed earlier with respect to the joinery 900 (e.g., in
In an embodiment, the secondary component may be the display 800 (
In an embodiment, the secondary component may be one or more of the sensors 400, 500, 600, 700 (
In an embodiment, the sensor 400 may be a color sensor 400, the sensor 500 may be a touch sensor 500, the senor 600 may be an IR sensor 600, and the sensor 700 may be a Light Detection Resistor (LDR) sensor 700. The sensors are configured to send respective detected signals to, for example, the first processor 10 of the main component 100. Based on the sensor signals, the first processor 10 may control the secondary module to achieve a desired task.
In an embodiment, the color sensor 400 is configured to detect color and send signals e.g., RGB values. In an embodiment, the first processor 10 is configured to analyze a red color, a green color, etc, based on which the secondary component may be controlled.
The touch sensor 500 is configured to detect a touch, a tactile motion, etc. and send corresponding signals to the processor 10. In an embodiment, the touch sensor may be a capacitive or a resistive type that can detect a human touch, its location, number of touches (e.g., double tap), etc. The touch action may be further used to control the secondary component via the processor of the main component.
Similarly, the IR sensor 600 and the LDR sensor 700 are configured to detect respective sensing characteristic (e.g., light), and send corresponding signals to the processor 10 for further processing and/or controlling the secondary component.
In an embodiment, each of the sensors 400-700 has a different electrical characteristic (e.g., resistance). The unique electrical characteristic acts as an identification mechanism for automatic detection of a particular sensor when connected, for example, to the main component. For example, based on a resistance value of a sensor, the first processor 10 may automatically determine the type of connected sensor. Further, if the type of sensor is not as desired in a particular robotic structure, or connected in an incorrect location or orientation, then the first processor 10 may also send an error message indicate any issues.
In an embodiment, the joinery 900 facilitates communication of signals between cooperating parts of the robotic structure built using the robotic modules. In an embodiment, each of the robotic module may include a particular PCB, which can communicate, via a communication protocol (e.g., I2C) with the main PCB of the main component 100.
Referring to
Referring back to
The communication protocol PCB 2010 enables connection of different types of robotic modules having different pin/port specifications to transfer data and/or communicate with the main PCB 2020. For example, each of the secondary component may have different pin requirements such as 3 pins for the color sensor 400, 2-pins for the drive motor 200, etc. through which the signals are transfers/received. Having different pin types for each of the robotic modules directly on the main PCB 2020 is undesirable, as it is expensive, increases a size of the PCB, and reduces flexibility of connecting several secondary components to the main component 100. As such, only a limited number of robotic structures may be created. Thus, the communication protocol PCB 2010 with a fixed number of interface may be desired. In an embodiment, the communication protocol PCB 2010 is based on an I2C protocol.
The I2C is a serial protocol for two-wire interface to connect devices like microcontrollers, EEPROMs, A/D and D/A converters, I/O interfaces and other similar peripherals in robotic modules. I2C uses two wires: SCL (serial clock) and SDA (serial data) to transfer data/control signals between the robotic modules (e.g., the main component 100 and the secondary component such as a sensor 400, the drive motor 200, etc.). Thus, the communication protocol PCB 2010 is configured to receive information from PCB of any secondary component including, but not limited to, data, command signals, sensor signals, etc. from any robotic module. Further, the communication protocol PCB 2010 (see I2C PCB schematic 2400 in
In
In an embodiment, the color sensor PCB 2500 (in
In another example, the I2C PCB 2400 communicates with the motor PCB 2700 (shown in
Similarly, PCB's of the remaining secondary component may be connected to the main PCB via the two-wired (e.g., SCL and SDA) connection of the I2C PCB.
An I2C PCB (e.g., communicating with a particular robotic module) includes an I2C address to uniquely identify a particular robotic module. For example, the I2C address includes seven bits: (i) most significant 3 bits to identify type of the robotic module; (ii) least significant 4 bits to identify a number of the type of the robotic module. In an embodiment, the first two numbers may be used for initial robotic modules provided in a toy kit; and rest numbers will be used for spares.
Accordingly, an example identifier of a robotic module includes, for example, the first three bits assigned to a particular robotic module as follows: 000—Drive Motor (DM); 001—Function Motor (FN); 010—LED Matrix (LD); 011—IR Sensor (IR); 100—Color Sensor (CS); 101—Touch Sensor (TS); 110—LDR Sensor (LS); and 111—Reserved (e.g., for particular components or not usable).
Further, in a robotic configuration one or more robotic component may be connected, where more than one component may of same type. Then, a number of same type of component is included in the identifier's bit sequence as listed in following examples: (A) 000 0001 identifies DM1; 000 0010 identifies DM2; . . . 000 1111—DM15, for a DM type component; (B) 100 0001 identifies IR1; 100 0010 identifies IR2; . . . 100 1111—IR15, for IR type component.
Furthermore, an identification also includes a relative location of the robotic module with respect to the connected robotic module. Thus, each robotic module is associated with a base structure identifier (e.g., a cube number), side identification (e.g., left, right, etc.), and a location identifier (e.g., where a secondary component is connect to the main component).
Further, a cube typically has six sides or face. The identifier identifies each side of the cube as shown in
A location identification is explained based on an example illustrated in
The naming of the robotic module can also be addressed as bytes: 1F, 1T, 1L, 1R, 1D-0x01 to 0x06; 2T, 2L, 2R, 2D-0x07 to 0x0C; and 3T, 3L, 3R, 3B, 3D-0x0D to 0x12.
Based on above, DM1=3L(0x0E), 0x01 indicates Drive Motor 1 connected on cube 3 Left side; DM2=3R(0x0F), 0x02 indicates Drive Motor connected on cube 3 Right side; and FN1=3T(0x0D), 0x11 indicates Function Motor connected on cube 3 Top.
In an embodiment, the robotic modules may be daisy chained. For example, daisy chaining refers to a wiring scheme in which multiple robotic modules are connected (e.g., via joinery 900) together in sequence or in a ring. In an embodiment, the addressing mechanism (and the identifier thereof) may include daisy chained modules added with a comma, for example, 1T(0x02), 0x01, 0x12 that indicates on the first cube at the top side, there is, a drive motor and a function motor.
Furthermore, a protocol structure used for communication/control between cooperating parts (e.g., the main component and the secondary component) is as follow: a message comprises one or more of a header, a type, a length, and/or a value.
In the message, the header marks the beginning of packet for the firmware of the robotic system (comprising the robotic modules, and related software). The type refers to a particular function such as (i) configuration—configuration of a robotic module (BOT), (ii) a drive motor control, (iii) a function motor control, (iv) a sensor, and (v) a condition. The length (in bytes/char) refers to a length of a message. The value refers to an amount, state, command, etc. related to the robotic module.
In addition to a standard components configured as discussed above, the present disclosure also provides a user with an option of do-it-yourself (DIY) configuration. DIY configuration refers providing user ability to create their own robotic module configuration including, but not limited to, a user-defined function (e.g., via program code) that a robotic module should perform, specifying locations (e.g., via program code) at which the robotic module should be connected, implement functionalities (e.g., via program code) related to additional components that a user may buy separate from the initial kit, etc. Such DIY configuration capability opens up collaboration opportunities with other users, and several small user generated blocks (e.g., functions) can add up to build a larger more complex robotic configuration, for example, to achieve complex functionalities or tasks.
The method for a DIY configuration or programming a robotic module involves selecting, via an interface, i) a predefined function to be performed by the robotic module, or ii) an option to create a user defined function to be performed by the robotic module; defining, via the interface, logic and parameters related to the user defined function of the robotic module; and storing, via a processor, the user defined function in a processor of a first housing, where the processor is configured to control the robotic module based on the user-defined function when the robotic module is connected, via a joinery, to the processor, and where the joinery establishes an electrical connection between the first housing and the robotic module. Example implementation of these method steps is further discussed in detail below.
In step S341, a user logs into a web programming interface provided by the present robotic system (e.g., in
In step S342, the option to create a new block is selected on the web programming interface. The new block can be a library (e.g., a set of functions) or a single function, desired to be added. Then, in step S343, a determination is made whether the new block is a library or a function. For example, the determination may be based on user indication whether the new block is a library or a function, checking the extension (e.g., .lib) of a file, and/or analyzing if one function or a plurality of functions are to be included.
Responsive to determination that a library is added, in step S347, a name of the library, and a number of function in the library is extracted or determined. In step S348, a loop is created that iterates till each of the number of functions are analyzed/verified. For example, at each iteration of the loop, i.e., for each function, steps S344, S345, S346, and S349 (discussed below) may be performed. Once all the functions are evaluated, in step S349, the library (or a function) is exported, for example, to a cloud storage (in
Responsive to determination that a function is created, in step S344, the function's name, description, return type, and/or other properties of the function are extracted. For example, the function (and the code therein) is determined or received, for example, by a processor implementing the web programming interface.
Optionally, in step S345, one or more blocks, within already provided functions (e.g., loop, if-else-condition, motor control, etc.) of the web programming interface, may be inserted in the created new block. For example, a block (e.g., a if-else-condition, a motor related function, a sensor related function, etc.) may be chosen for inserted at a desired location in code (e.g., see
In case of the library being created, the step S344 may be executed for each function and for each function, the function's name, description, and return type may be identified.
Once the function (and the code therein) is received, for example, via the web programming interface, in step S346, the method verifies, via a processor, the new block including the newly defined code. The verify step is a condition check that determines whether the newly defined block is in accordance with limitation of the present robotic systems, the robotic modules or their configurations. For example, the limitations of the robotic module may be related to speed, attachment location, orientation, etc. or other physical and/or coding related limitations of the robotic system.
If the verification process fails due to the defined function (or code therein) not meeting the limitations of the robotic system, the method may send error signal or the user has to troubleshoot the errors and fix them.
Once, the new block is verified, the new block may be exported (in step S349) to the robotic module (e.g., in the main PCB of the main component) to implement the new block or in other words, the user-defined functionality.
Referring to
Step S351 involves instructing, via an interface, where to connect a robotic module (e.g., a drive motor, sensor, function motor, etc.) to a certain cube of the main component (e.g. 1st cube of the main component 100). Example locations of a cube were illustrated and discussed with respect to
Once the robotic module is connected to the main component 100, the robotic module is identified, in step S352. For example, the type of the robotic module (e.g., a drive motor, a sensor or a function motor) is identified based on an electrical characteristic of the robotic module. In an embodiment, the electrical characteristic may be an electrical resistance of the robotic module. Thus, in an embodiment, the identification involves passing an electric current (I) through the resistance (R) (or the robotic module in general) and measuring a drop in voltage (V). Based on the drop in voltage and the electric current, the resistance of the robotic module may be determined. For example, R=V/I. Based on the resistance value, the robotic module may be identified as a particular sensor, drive motor, function motor, etc. In embodiment, the connected module may be identified based on a unique address (if already exists) of the robotic module stored in the memory of the robotic module. The address may include the type, the number of the module, location at which it should be connected to the main component, etc., as discussed earlier.
In step S353, information related to the identified robotic module is retrieved from a memory or database. For example, a database of robotic modules that stores properties, name, location, address, and other related information of a robotic module. The memory may be a memory of the main component, cloud, or other memory accessible during the module configuration via the user interface. The retrieved information may be displayed as “Saved Info”, as shown in
Further, the method, in step S354, determines whether the identified robotic module with edited information is already stored in the database or the memory. Responsive to the connected module with edited information already exists, a new address that is available may be assigned to the connected module. For example, a second drive motor (DM2) may be connected, but a drive motor (DM1) may already exist in the database, in which case, a new address may be assigned to the second drive motor (DM2), in step S356. On the other hand, responsive to the fact that the identified robotic module does not exist, then the new name and a new address may be determined and saved, in step S357. For example, the connected robotic module may be a color sensor, which may not already exist in a memory or database. Then, the color sensor may assigned a new address and stored.
Once the robotic modules and related blocks (i.e., functions) are configured or programmed, as discussed above in
A screen of
The second screen (in
Referring to
In an embodiment, the interface in
In an embodiment, the robotic structure may be used to play games, via a gaming interface. For example,
Computer 4500, for example, may include communication ports 4550 connected to and from a network 4540 connected thereto to facilitate data communications. Computer 4500 also includes a central processing unit (CPU) 4520, in the form of one or more processors, for executing program instructions. The exemplary computer platform may also include an internal communication bus 4510, program storage and data storage of different forms such as memory 4502 and database 4504 (e.g., memory includes disk, read only memory (ROM), or random access memory (RAM)), for various data files to be processed and/or communicated by computer 4500, as well as possibly program instructions to be executed by CPU 4520. Computer 4500 may also include an I/O component 4560 supporting input/output flows between the computer and other components (e.g., a robotic module 4525 such as the drive motor, the function motor, the sensors described earlier) and/or user interface elements therein. Computer 4500 may also receive programming and data via network 4540 and the network controller 4506. For example, the network controller 4506 configured to perform a simple network communication function to send and receive signal to and from the network 4540. In an embodiment, the present teachings may be structured for cloud computing whereby a single function is shared and processed in collaboration among a plurality of apparatuses via the network 4560.
Computer 4500, for example, may also be connected to a server 4522 via the network 4540 connected thereto to facilitate data communications. In an embodiment, the server 4522 implements a web programming interface (e.g., as discussed with respect to
Hence, aspects of the present teaching(s) as outlined above, may be embodied in programming. Program aspects of the technology may be thought of as “products” or “articles of manufacture” typically in the form of executable code and/or associated data that is carried on or embodied in a type of machine readable medium. Tangible non-transitory “storage” type media include any or all of the memory or other storage for the computers, processors or the like, or associated modules thereof, such as various semiconductor memories, tape drives, disk drives and the like, which may provide storage at any time for the software programming.
All or portions of the software may at times be communicated through a network such as the Internet or various other telecommunication networks. Such communications, for example, may enable loading of the software from one computer or processor into another, for example, from a management server or host computer of the robotic system into the hardware platform(s) of a computing environment or other system implementing a computing environment or similar functionalities in connection with abuse detection. Thus, another type of media that may bear the software elements includes optical, electrical and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, unless restricted to tangible “storage” media, terms such as computer or machine “readable medium” refer to any medium that participates in providing instructions to a processor for execution.
Hence, a machine-readable medium may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in any computer(s) or the like, which may be used to implement the system or any of its components as shown in the drawings. Volatile storage media include dynamic memory, such as a main memory of such a computer platform. Tangible transmission media include coaxial cables; copper wire and fiber optics, including the wires that form a bus within a computer system. Carrier-wave transmission media may take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium, punch cards paper tape, any other physical storage medium with patterns of holes, a RAM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer may read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a physical processor for execution.
Those skilled in the art will recognize that the present teachings are amenable to a variety of modifications and/or enhancements. For example, although the implementation of various components described above may be embodied in a hardware device, it may also be implemented as a software only solution—e.g., an installation on an existing server. In addition, the functions of the robotic structure, as disclosed herein, may be implemented as a firmware, firmware/software combination, firmware/hardware combination, or a hardware/firmware/software combination.
Turning now to
The mobile device 4600 in this example includes one or more central processing units (CPUs) 4640, one or more graphic processing units (GPUs) 4630, a display 4620, a memory 4660, a communication platform 4610, such as a wireless communication module, storage 4690, and one or more input/output (I/O) devices 4650. Any other suitable component, including but not limited to a system bus or a controller (not shown), may also be included in the mobile device 4600. As shown in
To implement various modules, units, and their functionalities described in the present disclosure, computer hardware platforms may be used as the hardware platform(s) for one or more of the elements described herein. The hardware elements, operating systems and programming languages of such computers are conventional in nature, and it is presumed that those skilled in the art are adequately familiar therewith to adapt those technologies. A computer with user interface elements may be used to implement a personal computer (PC) or other type of work station or terminal device, although a computer may also act as a server if appropriately programmed. It is believed that those skilled in the art are familiar with the structure, programming, and general operation of such computer equipment and as a result the drawings should be self-explanatory.
A modular robotic system comprises of robotic modules, which can be connected with each other, disconnected, and/or reconnected to form different configurations while enabling new functionalities specific to a particular configuration. As a result, multiple possible robot configurations or structures may be obtained from the same number of robotic modules. For example, a robot structure (e.g., a car, an animal, a mechanical tool or apparatus, etc.) can be built by interconnecting a certain number of modules to form a desired structure (e.g., car with four wheels) and programming desired functionality (e.g., steer, move forwards/backwards, etc.) to activate the desired robotic structure to perform a desired task (e.g., driving from a first location to a second location while steering along a desired path or steering around obstructions).
In the present disclosure the terms “robotic module,” “robotic component,” “module,” “programmable module,” and “block,” may be used interchangeably. These terms refer to a single component of the robotic system. In the present disclosure, at least one robotic module is programmable to include a code or algorithm which upon execution, via, a processor performed desired functions of the robotic system.
The terms “robotic system,” “robotic toy,” “robotic structure,” and “robotic configuration,” may be used to refer to any device, apparatus or a toy comprising cooperating parts configured using robotic modules according to the present disclosure. In an embodiment, these terms refers to a system comprising several components (e.g., mechanical, electrical/electronic, software, etc.) related to a robotic module or a set of robotic modules. For example, the robotic system comprises a set of robotic modules, user interfaces used to implement or activate functionalities related to the robotic modules, any programs or configurations build using the robotic modules and the user interface, a web programming interface used to code a particular function to be performed related to a robotic module, a user-defined configuration of the robotic modules, or any other tools, programming interface, etc. relating to the robotic modules.
The robotic structure's physical actions may be conditioned by an interaction of the robotic structure with its surroundings, and the robotic structure may be programmed to respond to sensor inputs, such as physical contact with an object or to light, sound, color, and to change its behavior on the basis of the sensor inputs. In an embodiment, such interaction of the robotic structure may need additional components to be attached to an existing robotic structure, change a position or orientation of a particular component, or other reconfiguration to improve, for example, an operating range of a particular robotic module or the robotic structure. The present disclosure provides connectors that can be coupled to any robotic module of a robotic structure/toy to allow additional components to be connected to the robotic structure and further extend its functionality.
According to the present disclosure, a robotic structure is built by interconnecting, via a joinery or a connector, cooperating robotic modules. The joinery comprises a first connector (also referred as a groove element or groove) with a cavity or groove, and a second connector (also referred as a ridge element or a ridge) having a projecting portion that can be received in the cavity or the groove. The joinery (e.g., comprising the first connector and the second connector) allows interconnection between two modules in multiple orientations. According to the present disclosure, the connectors are also configured to include such joinery to enable connection with any robotic module of the robotic structure.
The joinery of the robotic structure are also configured to easily connect and disconnect cooperating modules, for example, via a snap action. The joinery also includes a locking element, which locks the cooperating modules when connected and easily unlocks upon applying force while disconnecting the modules. The joinery also includes electrical contact points such as pogo pins that establish an electrical connection between cooperating parts thereby enabling communication of signals such as sensor inputs, control commands etc. between the cooperating modules.
In an embodiment, the joinery comprises an X-shaped portions (e.g., see 910 and 950 in
In an embodiment, an orientation may be defined as an angular position or a linear position. In an embodiment, the angular position is described about an axis passing through a robotic module, where the angular positon is described with respect to a face of a robotic module. For example, the angular positions can be 0°, 90°, 270°, and 360°, or 30°, 120°, 210°, and 300°, or any other desired angular position. When the plurality of orientations are defined with respect to a face of the robotic module, the face may be a top face, a bottom face, a front face, a side face, etc. defined based on viewing direction of a user. In an embodiment, the linear position is described as a position along a guide line or channel. It can be understood by a person skilled in the art that based on a shape of the guide or channel, the linear position may along a position along a straight path or a curved path.
In an embodiment, the first processor of the main component 100 is configured to automatically identify the type of the secondary component, when the secondary component is connected to the main component 100. In the present disclosure, example secondary components include, but not limited to, one or more of, the drive motor 200, a function motor 300, the display 800, and sensors 400, 500, 600, 700 (not shown in the present application). Furthermore, the first processor may be configured to determine an orientation and/or a location of the secondary component with respect to the main component 100. According to an embodiment, it may be desirable to identify the correct orientation and location of the secondary component, since the joinery 900 allows the secondary component to be connected in a plurality of orientations with respect to the main component, however only a certain orientation may be desired within a robotic structure. Furthermore, the first processor may be configured to identify an additional component and its orientation when connected via a connector (e.g., a rotatory connector, or a slidable connector) of the present disclosure.
As shown in
Referring to
Now, referring to back to
Referring to
As shown, the drive motor 200 includes at least one ridge 950 accessible from a first face, and a groove 910 accessible from a second face of the drive motor 200. According to the present disclosure, a connector (e.g., a rotatory connector, a sliding connector, or a skin connector) may be connected to either of the ridge 950 or a groove 910. For example, the connector of the present disclosure can be connected to include additional secondary component such as one or more of the sensors 400, 500, 600, 700 (not shown in the present disclosure). Each of the sensors 400-700 include a sensing element configured to sense a sensing characteristic (e.g., color, touch, light, etc.). In an embodiment, the first processor of the main component 100 receives any sensor signal via the joinery and/or the connectors of the present disclosure. The connectors are further described in detail as follows.
In a first mode, the rotatory connector allows free rotation of any robotic component (also referred as a “module”) coupled to the rotatory connector. Thus, the rotatory connector can rotate a component of the robotic system or toy in a desired orientation with respect to another component. The free rotation feature offered by the rotatory connector may be very useful while making and using skins (e.g., see
In a second mode, the rotatory connector allows establishing an electrical connection allowing Daisy chaining of modules from e.g., the main component 100 to the drive motor 200 (or function motor 300) to a display module 800 (also referred as the display 800). In an embodiment, the electrical connection is established in a locked state, for example, align orientation marks (e.g., 415 and 425) and press the rotatable elements 420 and 410 together to stop rotation. Once locked, the rotatory connector can be used as a daisy chaining connector with specific modules such as connection between the main component, the drive motor, the function motor, and/or the sensors that may be used to build a desired robotic toy.
In an embodiment,
The rotatable elements 410 and 420 can be in an unlocked state (see
Referring to
In an embodiment, the first rotatable element 410 includes a first orientation mark 415. The second rotatable element 420 includes a second orientation mark 425. The marks 415 and 425 are orientation marks indicating a desired orientation. Also, the first mark 415 and the second mark 425, when aligned, allows the second rotatable element 420 to be locked in the desired orientation with respect to the first rotatable element 410. In an embodiment, if the first mark 415 and the second mark 425 are misaligned, the first rotatable element 410 and the second rotatable element 420 cannot be locked in the desired orientation.
In an embodiment, the rotatable elements 410 and 420 are locked by pushing the elements inwards, as shown in
The hollow portion 411 is configured to receive a portion (e.g., 427 and 428 in
Furthermore, the hollow portion 411 may include projections 417 at one or more locations at the edge or circumference of the hollow portion 411, where the projections 417 are configured to allow the flange portions 427 and 428 to be inserted in the hollow portion 411 while prevention the second rotatable element 420 from separating while relative rotation between elements 410 and 420. For example, two (or more) projections 417 are located diagonally opposite to each other. The projections 417 extend radially towards the center of the hollow portion 411 thereby blocking the flange portions 427 and 428 once inserted in the hollow portion.
In an embodiment, for orientation purposes, e.g., to guide a user, the orientation marks 415 are formed at an outer surface of the hollow portion 411 (as shown in
In an embodiment, the connecting portion 413 of the first rotatable element 410 includes a groove configured to receive a ridge element of the first component of the robotic system. In an embodiment, the groove (e.g., like groove 910 of the Indian patent Application 201811047472) is an X-shaped depressed portion depressed inward relative to a face of the rotatable element 410. The ridge element of the first robotic component includes an X-shaped protruding portion protruding outward relative to a face of the robotic component. The X-shape of the ridge corresponds to the X-shape of the groove. An example coupling of different robotic components (e.g., 100, 200, 300, etc.) are discussed with respect to
In an embodiment, the flange portion may be continuous (not shown) or segmented (e.g., including 427 and 428 as shown). The segmented flange configuration enable locking functionality in the desired orientation. However, a person skilled in the art can include a continuous flange with similar locking functionality, where the second rotatable element 420 is locked in a desired orientation and enables an electrical connection between connected robotic components as discussed herein.
The flange portions 427 and 428 extend radially outward (e.g., see
In an embodiment, the connecting portion 421 of the second rotatable element 420 includes a groove configured to receive a ridge element of the second component of the robotic system. In an embodiment, the groove 419 (e.g., like groove 910 of the Indian patent Application 201811047472) is an X-shaped depressed portion depressed inward relative to a face of the rotatable element 420. The ridge element of the second robotic component includes an X-shaped protruding portion protruding outward relative to a face of the robotic component, the X-shape of the ridge corresponds to the X-shape of the groove 419. An example coupling of different robotic components (e.g., 100, 200, 300, etc.) are discussed with respect to
In an embodiment, for orientation purposes, e.g., to guide a user, the orientation marks 425 may be formed at locking elements of the connecting portion 421 or at any other location on an outer surface of the connecting portion 421 (as shown in
Referring to
In an embodiment, the electrical connector (e.g., including PCBs discussed earlier) comprises a pin element 954 including a plurality of pins; and the track element 982 having a plurality of tracks corresponding to the plurality of pins of the pin element. In an embodiment, the plurality of pins and the plurality of tracks establishing an electrical connection when the first rotatable element 410 and the second rotatable element 420 are in the locked state thereby allowing electrical signals to be exchanged between the first component and the second component of the robotic system. An example of the electrical connector is further discussed in detail in the Indian patent Application 201811047472 filed on Dec. 14, 2018, which is incorporated herein in its entirety by reference.
It can be understood by a person skilled in the art that the functionality of the rotatory connector is not limited to structural features discussed with respect to
In
In an embodiment, the rotatory connector 40C includes the first rotatable element 410C configured to rotatably couple to the second rotatable element 420C. The coupling involves orienting the element 420C in a desired orientation and locking the element 420C with the element 410C. In an embodiment, the first rotatable element 410C is configured to include radially oriented slots that can receive radially oriented ribs along the circumference of the second rotatable element 420B. In an embodiment, for locking, the slots of the element 410C engages in the ribs of the second rotatable element 420C thereby locking the rotatable element 420B in a desired orientation (e.g., at 0°, 90°, 180°, and 270°). In an embodiment, the markers may or may not be included on the first rotatable and the second rotatable elements. For example, the ribs and slots may be oriented at specific degrees such that together they can serve as an orientation guide.
In an embodiment, the rotatory connector 40 can be modified to include structural elements like ribs to further strength the rotatory connector. In an embodiment, tolerances between movable elements may be adjusted to allow free relative motion between elements of the rotatory connector.
In an embodiment, the slidable connector 60 includes a first slidable element 610 coupled to a second slidable element 620 to allow sliding with respect to each other. In an embodiment, the sliding of the second slidable element 620 with respect to the first slidable element 610 allows the slidable connector 60 to be configured in at least a L-configuration, a T-configuration or other configurations. In any configuration, the slidable connector 60 serves multiple purposes. For example, firstly, the slidable connector 60 allows two robotic modules to be connected to a single port (e.g., one of 910A-910J in
Referring to
Referring to
In an embodiment, the second slidable element 620 includes flexible locking members 621 and 622 (see
Referring to
In an embodiment, the sliding functionality is achieved via a channel and a lip configuration (e.g., shown in
In an embodiment, the flexible locking members 621/622 includes a flange portion 627/629 (see
In an embodiment, the flexible locking members 621/622 includes a ridge 626/628 at the flange portion 627/629. In an embodiment, the ridge 626/628 is configured to: (i) engage with the teeth 615 of the first slidable element 610 to lock the second slidable element 620 to the first slidable element 610 when the flexible locking members 621/622 is released; and (ii) disengage from the teeth 615 of the first slidable element 610 to unlock the second slidable element 620 and allow sliding with respect to the first slidable element 610 when the flexible locking member is compressed. For example, the ridge 626/628 enables locking of the second slidable element 620 in positions e.g., P1/P2/P3/P4/P5.
In an embodiment, the second slidable element 620 may be made of two members or portions. For example, as shown in
In an embodiment, the first slidable element 610 has a ridge 650 configured to be inserted in a groove (e.g., 910) of the first component (e.g., the main component 100 in
In an embodiment, the skin connector 80 includes a ridge 950 (see
In an embodiment, the snap elements 801 and 803 project perpendicular (e.g., in z-direction) to a face (e.g., a top face) of the skin connector. In an embodiment, the projecting direction of the snap elements 801/803 is vertically upward in
The skin connector 80 connects to the robotic modules (e.g., components 100-800 discussed earlier). Accordingly, the ridge 950 is formed to cooperate with the groove element of the robotic module. In another embodiment, instead of ridge 950, a groove 910 may be formed configured to cooperate with the ridge element of the robotic module. Hence, in an embodiment, the ridge 950 may be an X-shaped protruding portion protruding outward relative to a face of the respective components, the X-shape of the ridge corresponds to the X-shape of the groove. In an embodiment, the groove may be an X-shaped depressed portion depressed inward relative to a face of the respective rotatable elements.
In an embodiment, a body 805 of the skin connector has a substantially rectangular or square shaped. As shown in
In another example, a bottom plate and a top plate may be have a different fastening mechanism that enables sandwiching a skin between the bottom plate and the top plate. For example, in
In an embodiment, there is provided an interface (e.g.,
In an embodiment, the LEGO connector 1000 is a plate having connecting elements configured to connect with one or more LEGO pieces (not shown) on one side and to a robotic component (e.g., the main component 100, the drive motor 200, etc.) on an opposite side. For example, as shown in
In an embodiment, the connecting elements e.g., stud receptacles 1001a, 1001b, 100c may be formed only at specified locations (e.g., along the edge and at the center), while maintain a geometric configuration of the LEGO piece. For example, the geometric configuration comprises hole diameters, distance between the connecting elements, height or depth of the connecting elements, or other geometric properties related to the LEGO piece.
In an embodiment, the connecting elements include one or more plus shaped holes (e.g., 1003a-1003d) configured to attached a LEGO piece, where the LEGO piece may be an axle or a shaft. In an embodiment, the plus shaped holes 1003-1003d may be formed at corners of the LEGO connectors. In an embodiment, the distance between the plus shaped holes 1003a and the surrounding stud receptacles e.g., 1001a can be same as a the LEGO piece having the studs and axle portions. In an embodiment, the plus shaped holes may be used to connect the LEGO axle (not shown) on one side and the joinery can connect to the drive motor 200 (not show in
Referring to
In an embodiment, the LEGO connector can be used to generate toy appearances of desired shape by attaching one or more LEGO pieces to the robotic system. Furthermore, depending on type of robotic component, the LEGO piece attached thereto can be moved according to a movement programed in the robotic system. Thus, the LEGO connector can serve as a motion transmitting element for the LEGO pieces.
In an embodiment, the LEGO connector can be made of similar material (e.g., plastic, resin, etc.) as the robotic toy. Furthermore, the LEGO connector may include chamfered edges and clearances so that the LEGO connector can be easily removed and attached to the robotic component.
To briefly summarize, the rotatory connector 40, the slidable connector 60, and the skin connector 80 provides extended functionality (as discussed herein) to the robotic toy system (e.g., shown in
As discussed earlier, for example, the rotatory connector 40 enables coupling of an additional component (e.g., sensors 400-800, function motor 300) in a desired orientation to existing components of the robotic toy system. The additional component extends, for example, an operating range of the robotic toy. In another example, the slidable connector 60 enables coupling of one or more additional components (e.g., sensors) to a single port of the robotic toy. Further, the slidable connector 60 allows changing a position of the additional component, e.g., of a sensor to improve object detection or a sensing range. Finally, the skin connector 80 enables coupling of different skins to the robotic toy that can improve, a user's imagination ability, understanding ability related to a machine, or other educational benefits.
While the foregoing has described what are considered to constitute the present teachings and/or other examples, it is understood that various modifications may be made thereto and that the subject matter disclosed herein may be implemented in various forms and examples, and that the teachings may be applied in numerous applications, only some of which have been described herein. It is intended by the following claims to claim any and all applications, modifications and variations that fall within the true scope of the present teachings.
The above disclosure also encompasses the embodiments noted below.
(1) A robotic system including a first housing comprising a first processor and a first connector, a second housing comprising a second processor and a second connector, the first connector of the first housing being connectable to the second connector of the second housing in a plurality of orientations relative to one another, wherein the first processor and the second processor are configured to communicate with one other when connected in any of the plurality of orientations.
(2) The robotic system of feature (1), in which the first connector comprises a groove; and the second connector comprises a ridge corresponding to the groove, the ridge comprising the plurality of electrical contacts, wherein the groove is configured to receive the ridge and the plurality of electrical contacts in the plurality of orientations.
(3) The robotic system of feature (2), in which the first connector further comprises a track element having a plurality of tracks corresponding to the plurality of contacts of the second connector, wherein the track element is located at a first side of the first connector and receives the plurality of the contacts of the second connector from a second side of the first connector, the second side being opposite to the first side.
(4) The robotic system of features (1) to (3), in which the first connector comprising the track element is included in the first housing and the second connector is included in the second housing.
(5) The robotic system of features (1) to (4), in which the groove of the first housing is an X-shaped depressed portion depressed inward relative to a face of the first housing, and the ridge is an X-shaped protruding portion protruding outward relative to a face of the second housing, the X-shape of the ridge corresponds to the X-shape of the groove.
(6) The robotic system of features (1) to (5), in which the ridge receives the plurality of electrical contacts in a form of pins projecting outward from the X-shaped protruding portion.
(7) The robotic system of feature (6), in which a number of pins is six arranged linearly with an equidistance between adjacent pins.
(8) The robotic system of features (1) to (7), in which the groove includes a cut out portion at a bottom or a plurality of holes configured to receive the plurality of electrical contacts of the ridge.
(9) The robotic system of features (1) to (8), in which the groove is formed within a step portion relative to the face of the first housing.
(10) The robotic system of features (1) to (9), in which the ridge is formed within a pocket relative the face of the second housing.
(11) The robotic system of feature (10), in which the pocket is a depressed portion relative the face of the second housing.
(12) The robotic system of features (1) to (11), in which a height of the ridge is less than a depth of the pocket so defined that the ridge does not project relative to the face of the second housing.
(13) The robotic system of features (1) to (12), in which a depth of the groove of the first housing is approximately the same as the height of the ridge of the second housing, so defined that when the groove receives the ridge of the second housing, the face of the first housing and the face of the second housing touch each other.
(14) The robotic system of features (10) to (13), in which a height of the step portion of the first housing is less than the depth of the pocket of the second housing.
(15) The robotic system of features (1) to (14), in which the second housing is at least one of: a drive motor comprising a first motor configured to receive, via the second connector, a control signal from the first processor of the first housing; a function motor comprising a second motor configured to receive, via the second connector, another control signal from the first processor of the first housing; a display comprising a screen configured to receive, via the second connector, information from the first processor of the first housing; or a sensor configured to generate an output signal corresponding to a characteristic to be measured and send, via the second connector, the output signal to the first processor of the first housing.
(16) The robotic system of features (1) to (15), in which the sensor is at least one of: a color sensor, a touch sensor, an Infrared (IR) sensor, or a Light Dependent Resistor (LCR) sensor.
(17) The robotic system of feature (15), in which the drive motor comprises at least one face including the ridge configured to connect with the groove of the first housing.
(18) The robotic system of feature (15), in which the function motor comprises at least one face including the ridge and at least one another face including the groove.
(19) The robotic system of feature (15), in which the function motor is cube shaped having six faces, wherein each of five faces out of the six faces includes the ridge and one face includes the groove.
(20) The robotic system of feature (19), in which the face of the function motor including the groove is connected to a shaft of the second motor.
(21) The robotic system of features (1) to (20), in which the second housing includes an unique electrical characteristic.
(22) The robotic system of feature (21), in which the unique electrical characteristic is a resistor having a particular resistance value.
(23) The robotic system of feature (21), in which the first processor is further configured to identify the second housing based on the electrical characteristic of the second housing when connected to the first housing.
(24) The robotic system of feature 21, in which the first processor is further configured to: identify the second housing and an orientation of the plurality of the orientations of the second housing relative to the first housing based on an address of the second housing and the orientation; and articulate the second housing, wherein the identified second housing is the drive motor or the function motor.
(25) A method for configuring a robotic module comprising a processor, the method including connecting the robotic module to a first housing; and assigning, via the processor, an identifier to the robotic module, wherein the identifier is configured to identify a type of the robotic module, a number of the robotic module, and/or a location of the robotic module with respect to the first housing.
(26) The method of feature (25), in which the assigning of the identifier includes assigning a first set of bits of a plurality of bits to identify the type of the robotic module, and a second set of bits of the plurality of bits to indicate the number the particular component.
(27) The method of feature (25), in which the assigning of the identifier includes daisy chaining of the plurality of bits corresponding to a plurality of robotic modules connected to the first housing and/or a robotic module of the plurality of robotic modules.
(28) A method of programming related to a robotic module, the method includes selecting, via an interface, i) a predefined function to be performed by the robotic module, or ii) an option to create a user defined function to be performed by the robotic module; defining, via the interface, logic and parameters related to the user defined function of the robotic module; and storing, via a processor, the user defined function in a processor of a first housing, in which the processor is configured to control the robotic module based on the user-defined function when the robotic module is connected, via a joinery, to the processor, and in which the joinery establishes an electrical connection between the first housing and the robotic module.
(29) The method of feature 28, in which the defining the logic involves dragging and dropping of a plurality of pre-defined coding blocks within a programming screen on the interface, and defining the parameters includes assigning values to variables related to the robotic module.
(30) The method of feature 29, in which the robotic module is a drive motor or a function motor, and the parameters comprise a speed, an amount of rotation, and/or a direction of rotation of the drive motor or the function motor.
(31) An communication protocol circuitry, including a printed circuit board including a two-wired interface to communicate information from a first processor to a second processor when connected to the first processor via a connector, in which the connector establishes an electrical connection between the first processor and the second processor.
Claims
1-67. (canceled)
68. A robotic system comprises:
- a first component comprising a first processor and a first connector;
- a second component comprising a second processor and a second connector; and
- a skin connector configured to couple the first component and/or the second component to attach a shaped cover;
- wherein the first connector of the first component is connectable to the second connector of the second component in a desired orientation relative to one another, wherein the first processor and the second processor are configured to communicate with one other when connected in the desired orientation.
69. The robotic system according to claim 68, wherein the skin connector comprises:
- a ridge configured to insert in a groove element of the robotic system; and
- one or more snap elements formed at edges of the skin connector, the one or more snap elements configured to be snap fit in a cavity of a shaped cover thereby giving the robotic system a desired toy form.
70. The robotic system according to claim 69, wherein the one or more snap elements project perpendicular to a first face of the skin connector in a first direction, the first direction being opposite to a projecting direction of the ridge.
71. The robotic system according to claim 70, wherein the one or more snap elements are a cantilever type of elements.
72. The robotic system according to claim 70, wherein a body of the skin connector has a substantially rectangular or square shaped.
73. The robotic system according to claim 72, wherein the body includes a raised portion, the raised portion being raised with respect to the first face, and wherein the raised portion includes a hollow portion in which the ridge is formed.
74. The robotic system of claim 68, wherein the first connector comprises a groove; and the second connector comprises a ridge corresponding to the groove, the ridge comprising a plurality of electrical contacts, wherein the groove is configured to receive the ridge and the plurality of electrical contacts in a plurality of orientations.
75. The robotic system of claim 74, wherein the first connector further comprises a track element having a plurality of tracks corresponding to the plurality of contacts of the second connector, wherein the track element is located at a first side of the first connector and receives the plurality of the contacts of the second connector from a second side of the first connector, the second side being opposite to the first side.
76. The robotic system of claim 75, wherein the first connector comprising the track element is included in a first housing and the second connector is included in a second housing.
77. The robotic system of claim 76, wherein the groove of the first housing is an X-shaped depressed portion depressed inward relative to a face of the first housing, and the ridge is an X-shaped protruding portion protruding outward relative to a face of the second housing, the X-shape of the ridge corresponds to the X-shape of the groove.
78. The robotic system of claim 76, wherein the second housing is at least one of:
- a drive motor comprising a first motor configured to receive, via the second connector, a control signal from the first processor of the first housing;
- a function motor comprising a second motor configured to receive, via the second connector, another control signal from the first processor of the first housing;
- a display comprising a screen configured to receive, via the second connector, information from the first processor of the first housing; and
- a sensor configured to generate an output signal corresponding to a characteristic to be measured and send, via the second connector, the output signal to the first processor of the first housing.
79. The robotic system of claim 78, wherein the first processor is further configured to:
- identify the second housing and an orientation of the plurality of the orientations of the second housing relative to the first housing based on an address of the second housing and the orientation; and
- articulate the second housing, wherein the identified second housing is the drive motor or the function motor.
80. A robotic system comprises:
- a first interlocking toy system comprising: a plurality of pieces configured to interlock with each other via a first interlocking mechanism;
- a second interlocking toy system having a second interlocking mechanism comprising: a first component comprising a first processor, and a second component comprising a second processor, the second component interoperably connected to the first component, and wherein the first processor communicates with the second processor to send receive control signals or sensor signal therebetween; and
- an interface configured to couple, via the second interlocking mechanism at one face, the first component and/or the second component, and couple, via the first interlocking mechanism at another face, at least one piece of the plurality of pieces of the first interlocking toy system at another face to allow interoperability between the first interlocking toy system and the second interlocking toy system.
81. The robotic system according to claim 80, wherein the interface comprises:
- a plurality of connecting elements, formed on a first face, having a first geometric configuration compatible with one or more pieces of a first interlocking toy system; and
- a joinery, formed on a second face, having a second geometric configuration compatible with the second interlocking toy system, the interface enabling an interoperable connection between the first interlocking toy system and the second interlocking toy system.
82. The robotic system according to claim 81, wherein the plurality of connecting elements are studs and/or stud receptacles arranged in the first geometric configuration.
83. The robotic system according to claim 82, wherein the plurality of connecting elements have geometric configuration compatible with the studs and/or stud receptacles of the one or more pieces of the first interlocking toy system.
84. The robotic system according to claim 81, wherein the joinery includes an X-shaped ridge or an X-shaped groove arranged in the second geometric configuration.
85. A method for configuring a robotic module comprising a processor, the method comprising:
- connecting the robotic module to a first housing; and
- assigning, via the processor, an identifier to the robotic module, wherein the identifier is configured to identify a type of the robotic module, a number of the robotic module, and/or a location of the robotic module with respect to the first housing.
86. The method of claim 85, wherein the assigning of the identifier comprises:
- assigning a first set of bits of a plurality of bits to identify the type of the robotic module, and a second set of bits of the plurality of bits to indicate the number a particular component.
87. The method of claim 86, wherein the assigning of the identifier comprises:
- daisy chaining of the plurality of bits corresponding to a plurality of robotic modules connected to the first housing and/or a robotic module of the plurality of robotic modules.
Type: Application
Filed: Dec 10, 2019
Publication Date: Jan 27, 2022
Inventors: Rajeev Gaba (Ghaziabad), Tarun Bhalla (New Delhi), Ishaan Iyer (Gurgaon), Manoj Jakhar (New Delhi)
Application Number: 17/413,142