Robotic platforms or simply robotics are often employed in a wide array of manufacturing technologies including automobile manufacturing and circuit chip fabrication to name just a couple. Although robotic platforms typically enhance manufacturing processes, fabrication and operation of the robotic platforms themselves is often very expensive and requires a highly skilled workforce. As a result, the use of robotics is mostly limited to special, high-value applications, where production quantities, product value, extreme precision, safety, or where other special factors are involved.
Features of the present disclosure are illustrated by way of example and not limited in the following figure(s), in which like numerals indicate like elements, in which:
For simplicity and illustrative purposes, the present disclosure is described by referring mainly to an example thereof. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be readily apparent however, that the present disclosure may be practiced without limitation to these specific details. In other instances, some methods and structures have not been described in detail so as not to unnecessarily obscure the present disclosure. As used herein, the terms “a” and “an” are intended to denote at least one of a particular element, the term “includes” means includes but not limited to, the term “including” means including but not limited to, and the term “based on” means based at least in part on.
Disclosed herein is an apparatus, which is also referred to herein as a strut, that includes a first elongated member and a second elongated member. The first elongated member is also referred to herein as a first member and the second elongated member is also referred to herein as a second member. Generally, speaking, the second member is partially inserted into the first member and the depth of the partial insertion may be controlled by a control circuit and a driving mechanism. That is, the control circuit, which may be contained in the apparatus, may control the driving mechanism to cause the first member to either cover more or less of the second member, thereby varying the length of the apparatus. In one example, the control circuit may receive instructions from an external controller and may execute the instructions in an autonomous manner, i.e., may execute the instructions without further instructions from the external controller. In another example, the control circuit may learn a particular routine to follow through recording of detected movements of the apparatus over a time period. In this example, the control circuit may execute the learned routine to repeat the training routine and perform a desired function.
According to an example, first ends of a plurality of the apparatuses may be rotatably connected to a first mount and second ends of the apparatuses may be connected to a second mount through the use of, for instance, clevis joints. In addition, each of the apparatuses may operate independently of each other, such that, the lengths of the apparatuses may vary from each other over various time periods. In this regard, an end effector attached to the first mount may be moved to desired positions in three-dimensional space by appropriately varying the lengths of the apparatuses. For instance, when at least six apparatuses are rotatably connected to the first mount and the second mount, the end effector attached to the first mount may be maneuvered with six degrees of freedom. In operation, the control circuits in the apparatuses may function as a parallel processing system that holistically controls and coordinates the motions of a resulting mechanism without the need for an external controller.
In one implementation, the apparatuses may be employed in a robotics platform, for instance, as a platform that is to maneuver a robotic arm to desired positions and orientations over a period of time. As each of the apparatuses includes a respective control circuit and is therefore able to operate in an autonomous manner, the robotic platforms implementing the apparatuses disclosed herein may be fabricated and programmed in a relatively simpler manner than is possible with conventional fabrication and programming techniques. In one regard, the apparatuses disclosed herein may enable the creation of a massively configurable platform for the creation of motion products.
With reference first to
As shown in
As described in greater detail herein below, the apparatus 100 includes a driving mechanism that moves the first elongated member 110 linearly with respect to the second elongated member 112. The apparatus 100 also includes a control circuit that controls the driving mechanism and thus controls the length of the apparatus 100. In one regard, the control circuit may follow a programmed routine to thus enable the apparatus 100 to be extended to different lengths at different points in time. The apparatus 100 may learn the programmed routine through receipt of physical movement inputs or may receive the programmed routine. In either of these examples, the apparatus 100 may perform the programmed routine without requiring receipt of external commands.
The driving mechanism may be provided in the second elongated member 112 and actuation of the driving mechanism may cause the first elongated member 110 to move linearly with respect to the second elongated member 112. By way of particular example, the first elongated member 110 may be a track tube element and the second elongated member 112 may be a motor tube element, in which the rotation of the drive mechanism in the motor tube element causes linear motion of the track tube element.
In
Turning now to
As shown in
The second elongated member 112 is depicted in
Although particular reference is made in the present disclosure to the driving mechanism 140 having the features of the rotary to linear motion apparatus described in U.S. patent application Ser. No. 14/082,160, it should be understood that other suitable driving mechanisms may be employed in the apparatus 100 without departing from a scope of the apparatus 100. For instance, the driving mechanism 140 may have a ball screw or other mechanical device for varying the position of the first elongate member 110 with respect to the second elongate member 112.
Also depicted in
Turning now to
Although not particularly shown in
As shown in
The electrically conductive coil 202 may be excited with an alternating current supplied between a first end 206 and a second end 208 of the electrically conductive coil 202. When the first elongated member 110, which may be formed of a ferromagnetic material, is moved over the electrically conductive coil 202, the alternating current in the electrically conductive coil 202 induces an alternating magnetic field in the first elongated member 110. The inductance of the electrically conductive coil 202 may be varied as the first elongated member 110 covers more or less of the electrically conductive coil 202. The level of inductance of the electrically conductive coil 202 may thus be measured to determine the position of the first elongated member 110 with respect to the second elongated member 112. That is, the control circuit 150 may be programmed with a correlation between the inductance level of the electrically conductive coil 202 and the position of the first elongated member 110 with respect to the second elongated member 112.
Although particular reference is made in the present disclosure to the position sensor 202 being formed of an electrically conductive coil and that an inductance level in the electrically conductive coil is measured to determine the position of the first elongated member 110, it should be understood that other suitable position sensors, such as sensors that employ an encoder, or a laser, etc., may be employed in the apparatus 100 without departing from a scope of the apparatus 100.
With reference now to
Similarly to
The processor 302 may be one or more central processing units (CPUs), semiconductor-based microprocessors, an application specific integrated circuit (ASIC), and/or other hardware devices suitable for retrieval and execution of instructions stored in the memory 304, which may be a non-transitory machine-readable storage medium. The processor 302 may fetch, decode, and execute instructions stored in the memory 304 to instruct the driving mechanism circuit 308 to control operation of the driving mechanism 140.
The memory 304 may be any electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. Thus, the memory 304 may be, for example, Random Access Memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, and the like. In some implementations, the memory 304 may be a non-transitory storage medium, where the term “non-transitory” does not encompass transitory propagating signals.
According to an example, the processor 302 may instruct the driving mechanism circuit 308 to cause the driving mechanism 140, i.e., control delivery of power to the driving mechanism 140, to vary the position of the first elongated member 110 in response to receipt of a load on the apparatus 100 by the load cell 152. In this example, the position sensor 202 may measure a tensile or compressive force being applied onto the apparatus 100 and may communicate the measured force to the load cell circuit 310. The load cell circuit 310 may communicate the measured force to the processor 302, and the processor 302 may determine, for instance, based upon programmed instructions stored in the memory 304, how the driving mechanism 140 is to be operated responsive to the measured force.
By way of example, if the measured force is a compressive force, the processor 302 may determine that the length of the apparatus 100 is to be reduced and may therefore send an instruction to the driving mechanism circuit 308 to cause the driving mechanism 140 to reduce the length of the apparatus 100 by linearly moving the first elongated member 110 to cover more of the second elongated member 112. In addition, the processor 302 may determine not send the instruction to the driving mechanism circuit 308 unless the measured load exceeds a predetermined threshold, for instance, a load that is greater than the weight of the apparatus 100 itself, a load corresponding to an extraneous movement, etc. In any regard, the processor 302 may instruct the driving mechanism circuit 308 to continue moving the first elongated member 110 until the load cell 152 stops communicating a measured force or when the first elongated member 110 has reached a stop point.
According to an example, the processor 302 may track or record various forces that the load cell 152 detects over time and may generate a routine from the tracked forces. For instance, a user may train the processor 302 to cause the first end 114 of the first elongated member 110 to move to a plurality of positions at various times by physically moving the first end 114 of the first elongated member 110 to the plurality of positions at predetermined times. That is, a user may train the processor 302 by physically moving the first end 114 in the manner that the user desires and the processor 302 may develop a routine based on the loads detected by the load cell 152 of the movements over time and may store the routine in the memory 304. The processor 302 may then cause the driving mechanism 140 to perform the routine. That is, the processor 302 may instruct the driving mechanism circuit 308 to control the driving mechanism 140 to vary the position of the first elongated member 110 to different positions according to the timing at which the first elongated member 110 was moved during the training. The processor 302 may determine the timing from the clock circuit 306 and may determine the position of the first elongated member 110 from information received from the position sensor 202 via the position sensor circuit 312.
In the example above, the apparatus 100, and particularly, the processor 302, may operate autonomously as instructions from an external controller (not shown) may not be required for the processor 302 to operate.
In another example, the processor 302 may be programmed to perform a specified routine by an external controller (not shown). For instance, the processor 302 may receive programming instructions from the external controller through the input/output interface 314 and may store the received programming instructions in the memory 304. The processor 302 may also communicate data to the external controller via the input/output interface 314. The input/output interface 314 may include hardware and/or software to enable the processor 302 to communicate with the external controller and/or to other apparatuses 100, as described in greater detail herein below. The input/output interface 314 may enable a wireless connection to the external controller and/or other apparatuses 100, for instance through a peer-to-peer connection such as Wi-Fi, Bluetooth™, etc. The input/output interface 314 may also enable a wired connection to the external controller and/or other apparatuses 100. In this example, power may also be provided to the components of the apparatus 100 through the wired connection. In any regard, the processor 302 may form a network, e.g., a peer-to-peer network, with the processor 302 of another apparatus 100.
Alternatively, however, the components of the apparatus 100 may receive power through a separate power supply 320. For instance, the power supply 320 may include a wired connection to a power source that is external to the apparatus 100. In another example, the power supply 320 may be a battery, such as a rechargeable battery that is provided within the apparatus 100. In a further example, the power supply 320 may be a combination of a wired connection to a power source and an internal battery. By way of example, the internal battery may operate to supply supplemental power to the wired connection to the power source, for instance, when additional power is needed by the apparatus 100.
In a particular example, the apparatus 100 is to communicate with other apparatuses 100 such that the apparatuses 100 may share data and operate in a coordinated manner. In this example, the apparatuses 100 may communicate with each other over a field bus connection or via any of the wireless communications techniques discussed above. The apparatuses 100 may communicate various types of data to each other, for instance, if one of the apparatuses 100 detects a problem, that apparatus 100 may communicate that information to the other apparatuses 100 such that all of the apparatuses 100 cease their operations.
According to an example, the apparatus 100 may be connected to at least one other apparatus 100 via a connector and the apparatuses 100 may operate together. That is, the first attachment device 122 of one apparatus 100 may be connected to a first part of an end effector and the first attachment device 122 of another apparatus 100 may be connected to another part of the end effector. In addition, each of the apparatuses 100 may operate separately from each other. For instance, one of the apparatuses 100 may be extended while the other one of the apparatuses 100 may be retracted. In this regard, the position, orientation, and the angle of the end effector may be varied by varying the lengths of the apparatuses 100. Various examples of systems of apparatuses 100 are described with respect to
With reference first to
The system 400 depicted in
In one example, therefore, each of the apparatuses 100 may operate autonomously from the other apparatuses 100 in the system 400. Additionally, the apparatuses 100 may not be in communication with each other. In other examples, however, the apparatuses 100 may communicate with each other through respective input/output interfaces 314. As described above with respect to
With reference now to
Turning now to
According to an example, the apparatuses 100 in each of the systems 600 may perform the movements according to the timing of the movements as identified in respective predefined routines for the apparatuses 100. In this example, the apparatuses 100 in the respective systems 600 may not be in communication with the other apparatuses 100 in the other respective systems 600. However, in another example, the apparatuses 100 in a first system 600 may be in communication with the apparatuses 100 in one or more of the other systems 600. In this example, when an apparatus 100 in the first system 600 completes its movement, the processor 302 in that apparatus 100 may communicate an indication to the processors 302 in the apparatuses 100 of the second system 600 that its movement has been completed. The processors 302 in the apparatuses 100 of the second system 600 may initiate movements of the apparatuses 100 of the second system 600 following receipt of the communication. This process may be repeated by the processors 302 in the apparatuses 100 of the second system 600, the third 600, and the fourth system 600. In one regard, therefore, the processors 302 in the apparatuses 100 of all of these systems 600 may work together in response to a single instruction to move the walking platform 610 in any of a number of directions.
As may be seen from the examples described above, the apparatus 100 disclosed herein may be implemented in a variety of different applications. In some applications, the apparatus 100 may operate autonomously with respect to other apparatuses 100 or an external controller. In other applications, the apparatus 100 may operate cooperatively with other apparatuses 100. In any of these applications, the processors 302 in an apparatus 100 may communicate with the processors 302 in the other apparatuses 100.
Turning now to
As shown in
As also shown in
With reference now to
Generally speaking the control circuit 150, and more particularly, the processor 302 of the control circuit 150, may implement the methods 800, 900. With reference first to
As discussed in greater detail herein above, rotation of the driving mechanism 140 in the first direction may cause the second member 112 to be inserted deeper into the first member 110 and rotation of the driving mechanism 140 in the second direction may cause the second member 112 to be drawn out from the first member 110. In this regard, the control circuit 150 may cause the first member 110 to be moved in the direction in which the physical load is detected to be applied.
At block 810, the control circuit 150 may at least one of communicate data to a second control circuit in a second apparatus and receive data from the second control circuit in the second apparatus to enable the control circuit and the second control circuit to operate in at least one of a sequenced, synchronized, and coordinated manner with each other without external control. In one regard, the control circuit 150 may operate autonomously but in conjunction with another control circuit.
Turning now to
In another example, the control circuit 150 may, in response to the detection of a tensile or compressive force while the driving mechanism 140 is rotating, instruct the driving mechanism 140 to stop rotating. In this example, the control circuit 150 may interpret the detection of the tensile or compressive force as an indication that the apparatus has contacted a surface or object. In one regard, the contact with the surface or object may be an indication of an error and in another regard, the contact with the surface or object may be an indication that an end effector has reached an intended destination, e.g., an object that the end effector is to manipulate.
At block 910, the control circuit 150 may record the movement of the first member 110 at one of blocks 906 and 908. At block 912, the control circuit 150 may determine whether the first member 110 experienced an additional movement, for instance, based upon the determination as to whether a detected physical load was received from the load cell 152 within a predetermined period of time. In response to a determination that an additional movement was experienced, the control circuit 150 may repeat blocks 904-912. In response to a determination that an additional movement was not experienced within the predetermined period of time at block 912, the control circuit 150 may generate a program routine from the recorded movements as indicated at block 914, in which the program routine duplicates the movements and the timing of the movements. At block 916, the control circuit 150 may execute the program routine.
In another example, the control circuit 150 may be programmed, for instance, through input of a keyboard stroke or gesture on an external controller. The programming may be combined with the physical movement of the apparatus 100. In this example, the control circuit 150 may be programmed by an external controller to move to certain waypoints and the control circuit 150 may be programmed through physical movements at the waypoints.
Some or all of the operations set forth in the methods 800 and 900 may be contained as utilities, programs, or subprograms, in any desired computer accessible medium. In addition, the methods 800 and 900 may be embodied by computer programs, which may exist in a variety of forms both active and inactive. For example, they may exist as machine readable instructions, including source code, object code, executable code or other formats. Any of the above may be embodied on a non-transitory computer-readable storage medium.
Examples of non-transitory computer-readable storage media include computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above.
Although described specifically throughout the entirety of the instant disclosure, representative examples of the present disclosure have utility over a wide range of applications, and the above discussion is not intended and should not be construed to be limiting, but is offered as an illustrative discussion of aspects of the disclosure.
What has been described and illustrated herein are examples of the disclosure along with some variations. The terms, descriptions and figures used herein are set forth by way of illustration only and are not meant as limitations. Many variations are possible within the scope of the disclosure, which is intended to be defined by the following claims—and their equivalents—in which all terms are meant in their broadest reasonable sense unless otherwise indicated.
This application claims the benefit of priority to U.S. Provisional Application No. 62/009,840, filed on Jun. 9, 2014, entitled “Autonomous Elements Especially Suitable for Automation Platforms,” the disclosure of which is hereby incorporated by reference in its entirety. This application also shares some subject matter with co-pending U.S. patent application Ser. No. 14/082,160, filed on Nov. 17, 2013, entitled “Rotary to Linear Transmission,” the disclosure of which is hereby incorporated by reference in its entirety.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2015/034744 | 6/8/2015 | WO | 00 |