This disclosure relates in general to payload control and more particularly to a winch system for an airborne payload control system.
The ability for a moving aircraft to control the position of a payload in space may enable a variety of missions. As an example, such an ability would enable a moving aircraft to retrieve a stationary or mobile payload. As another example, such an ability would enable a moving aircraft to carefully place a fragile object on the ground. As yet another example, such an ability would enable a moving aircraft to hold a sensor above the ground while the aircraft is beyond visual and acoustical detection range.
According to one embodiment, a method for a winch system includes receiving, from a controller, instructions to spool a payload line, the payload line comprising a first end and a second end, the first end coupled to a main reel of the winch system and the second end configured to couple to a payload. The method further includes operating, based on the instructions, one or more of a first motor of the winch system and a second motor of the winch system, wherein the one or more of the first motor and the second motor are operated in order to control a position of the second end of the payload line.
Technical advantages of certain embodiments may include controlling the position of a payload during the flight of a fixed-wing aircraft. Additionally, certain embodiments may provide controlled retrieval or release of a stationary or mobile payload. Furthermore, certain embodiments may provide inconspicuous data retrieval. Other technical advantages will be readily apparent to one skilled in the art from the following figures, descriptions, and claims. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some, or none of the enumerated advantages.
For a more complete understanding of the present disclosure and its advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
To facilitate a better understanding of the present disclosure, the following examples of certain embodiments are given. The following examples are not to be read to limit or define the scope of the disclosure. Embodiments of the present disclosure and its advantages are best understood by referring to
This disclosure recognizes using an integrated systems approach to payload release and retrieval. Such approach may permit fixed-wing aircraft to exert helicopter-like control over a payload line. The approach may also permit autonomous unmanned aircraft to hold a payload stationary during flight. Integrating multiple systems for payload release and retrieval as described herein may permit the airborne payload control system to stabilize and control the end of a payload line in both position and altitude.
Aircraft 110 may be any vehicle operable to fly in the air. In some embodiments, aircraft 110 is an unmanned aerial vehicle (“UAV”) that does not require manned operation of aircraft 110. Aircraft 110 may also be any fixed-wing aircraft such as an airplane. This disclosure recognizes that aircraft 110 may, in some embodiments, transport payload 160. In some embodiments, payload 160 is transported within a fuselage of aircraft 110. In other embodiments, payload 160 may be transported via payload line 140. As an example, payload 160 may be coupled to an end of payload line 130 and may be reeled into or out of aircraft 110.
Aircraft 110 may comprise an onboard avionics system. In some embodiments, features of the onboard avionic system may be controlled by one or more controllers (e.g., controller 150 of
Maintaining control over payload 160 may enable various missions such as the controlled retrieval of a stationary or mobile payload. As another example, maintaining control over payload 160 may enable controlled release of payloads (e.g., careful placement of fragile payloads on the ground). As yet another example, maintaining control over payload 160 may enable inconspicuous data retrieval (e.g., holding a payload such as a sensor or camera above the ground while the aircraft flies at an altitude that is visually and acoustically undetectable).
As described above, airborne payload control system 100 may also include winch system 120 and payload line 130. Winch system 120 may, in some embodiments, be located aboard aircraft 110 (e.g., in fuselage of aircraft 110). In other embodiments, winch system 120 is coupled to an exterior wall of aircraft 110. For example, as depicted in
Second end 130b of payload line 130 may be operable to couple to payload 160. In some embodiments, payload 160 is coupled to second end 130b of payload line 130 using a coupling mechanism (not depicted). In some embodiments, coupling mechanism is a magnet, a hook, or a suction cup. Although this disclosure describes particular types of coupling mechanisms, this disclosure recognizes any suitable coupling mechanism operable to couple payload 160. In other embodiments, payload 160 is coupled to second end 130b of payload line 130 without the aid of an additional component. As an example, second end 130b of payload line 130 may be configured to couple to a moving payload 160 such as the weight-shifting coaxial helicopter described in U.S. application Ser. No. 15/085,540 and incorporated by reference herein. In such an example, the weight-shifting coaxial helicopter may fly into or near the second end 130b of payload line 130, causing payload line 130 to get tangled on or between the blades of weight-shifting coaxial helicopter. As a result, the weight-shifting coaxial helicopter is secured or otherwise coupled to second end 130b of payload line 130.
Payload line 130 may comprise any suitable material. For example, payload line 130 may comprise monofilament or braided, synthetic or non-synthetic rope, string, twine, or fishing line. Preferably, payload line 130 comprises a material that has the desired tensile strength, diameter, drag, and shape memory.
Airborne payload control system 100 may also include line sensor 140 as described above. In some embodiments, line sensor 140 is positioned on payload line 130. Line sensor 140 may be operable to detect information about payload line 130. For example, line sensor 140 may be operable to detect information about one or more of a position of the payload line (e.g., a position in space of second end 130b of payload line 130), a velocity of the payload line (e.g., a velocity of second end 130b of payload line 130), and an altitude of second end 130b of payload line 130. Although this disclosure describes certain types of information that may be detected by line sensor 140, this disclosure recognizes that line sensor 140 may detect any suitable information. As used herein, suitable information that may be detected by line sensor 140 includes any information that may be utilized by one or more controllers 150 of airborne payload system 150. In some embodiments, the information detected by line sensor 140 is relayed to other components of airborne payload control system 100 (e.g., via RF signal). As an example, the information detected by line sensor 140 may be sent to one or more controllers 150 of airborne payload control system 100. In some embodiments, controllers 150 may provide instructions to aircraft 110 and/or winch system 120 based on the information detected by line sensor 140. For example, in response to line sensor 140 detecting that the velocity of second end 130b of payload line 130 is increasing in a downward direction, one or more controllers 150 of airborne payload system 100 may instruct winch system 120 to reel in payload line 130 at a rate of speed to correct the downward motion. As another example, in response to line sensor 140 detecting that the altitude of second line 130b of payload line 130 is decreasing, one or more controllers 150 of airborne payload system 100 may instruct aircraft 110 to increase the altitude of aircraft 110 to maintain the desired altitude of second end 130b of payload line 130.
Line sensor 140 may detect information about payload line 130 continuously or periodically. For example, line sensor 140 may continuously detect information about payload line 130 and make such real-time information available to one or more components of airborne payload control system 100. As another example, line sensor 140 may detect information about payload line 130 periodically (e.g., every one second). In a preferred embodiment, line sensor 140 detects and relays real-time information. This disclosure recognizes that control over payload line 130 and/or payload 160 is more precise when real-time information is detected as compared to using periodic information.
In some embodiments, line sensor 140 is under the direction and/or control of controller 150. For example, controller 150 may control the operation of line sensor 140. In such an embodiment, controller 150 may instruct line sensor 140 when to begin detecting information about payload line 130. As an example, controller 150 may instruct line sensor 140 to begin detecting information about payload line 130 when payload 160 is a particular distance from aircraft 110. Controller 150 may also instruct line sensor when, or with what component, to share the detected information. As an example, controller 150 may instruct line sensor 140 to continuously share real-time information with a data link associated with winch system 120.
Airborne payload control system 100 may also include one or more controllers 150 as described above. As illustrated in
In some embodiments, controller 150 includes or is a computer system such as computer system 600 described below in reference to
Airborne payload control system 100 may also include other components such as a tracking and control system 170 for payload 160. The tracking and control system 170 of payload 160 may be configured to sense information about the position or location of payload 160 and relay the sensed information to other components of airborne payload control system 100. As an example, tracking and control system 170 may send information about the location and position of payload 160 to controllers 150 of airborne payload control system 100. Airborne payload control system 100 may in turn use this information to instruct aircraft 110 and/or winch system 120. Although this disclosure describes and depicts airborne payload control system 100 including certain components, airborne payload control system 100 may include any suitable components. For example, this disclosure recognizes that airborne payload control system 100 may include components and features that may be used in conjunction with tracking, control, and transport of payloads.
In operation, winch system 120, under direction from controller 150, may reel payload line 130 out in anticipation of retrieving or releasing payload 160. As an example, winch system 120 may begin reeling out payload line 130 in response to receiving an instruction from controller 150 to increase the length of payload line 150 by 300 feet. In some embodiments, controller 150 sends such instruction to winch system 120 after determining that a payload 160 requiring pick-up is one mile away. This determination may be based on information received from tracking and control system 170 of payload 160. After winch system 120 reels out payload line 130 in accordance with the instructions from controller 150, controller 150 may begin receiving data from line sensor 140 about payload line 130. As an example, controller 150 may receive the following information from line sensor: 3D velocity components (e.g., Vnorth, Veast, Vdown) and 3D position components (e.g., latitude, longitude, altitude). In addition receiving information from line sensor 140, controller 150 may also receive, or continue to receive, information from tracking and control system 170 of payload 170. For example, controller 150 may receive the following information from tracking and control system 170: 3D velocity components (e.g., Vnorth, Veast, Vdown) and 3D position components (e.g., latitude, longitude, altitude). Controller 150 may use the received information to provide operation instructions to one or more of aircraft 110 and winch system 120. As an example, based on the information received by controller 150, controller 150 may instruct winch system to adjust the length of payload line 130. As another example, controller 150 may instruct aircraft 110 to adjust the flight path of aircraft 110. In some embodiments, controller 150 facilitates the operation of aircraft 110 by providing instructions to the onboard avionics system. In some embodiments, controller 150 facilitates the operation of winch system 120 by providing instructions to one or more components of winch system 120 (e.g., first motor 220, second motor 240, etc.). Controller 150 may use the real-time information received from one or more of line sensor 140 and tracking and control system 170 to compute various factors such as optimal headings, flight paths, flight speeds, reel speeds, reel directions, payload line lengths, and payload line tension. Controller 170 may then instruct one or more of aircraft 110 and winch system 120 to make operational adjustments based on the computations. For example, controller 150 may instruct aircraft 110 to change its flight path based on computations. As another example, controller 150 may instruct winch system 120 to increase tension on payload line 130 based on the computations. In some embodiments, implementing the instructions of controller 150 stabilizes the second end 130a of payload line 130. For example, implementing the instructions of controller 150 may permit the second end 130a of payload line 130 to maintain a particular altitude (e.g., 1000 feet MSL) and a particular position (e.g., Latitude 35.3 degrees north, Longitude 120.8 degrees west) as aircraft 110 continues to fly through the air.
Turning now to
In some embodiments, payload line 130 is spooled onto and off of main reel 210 by turning main reel 210. For example, turning main reel 210 in a first direction may feed payload line 130 out and turning main reel 210 in a second direction may reel payload line 130 in. In some embodiments, first motor 220 is operable to turn main reel 210 in both the first and the second direction. First motor 220 may receive instructions to turn main reel 210 from one or more controllers of airborne payload control system 100. As an example, controller 150 of
As described above, winch system 120 may include pinch rollers 230. In some embodiments, payload line 130 may be threaded between first pinch roller 230a and second pinch roller 230b. Pinch rollers 230 may be configured to maintain tension on payload line 130. In some embodiments, tension on payload line 130 is maintained by keeping payload line taught between main reel 210 and pinch rollers 230. This may be achieved by turning pinch rollers 230 in the first and/or second direction. In some embodiments, one or more pinch rollers 230 are rotated by second motor 240.
Second motor 240 may be configured to turn one or more pinch rollers 230. For example, second motor 240 may be configured to turn first pinch roller 230a but not second pinch roller 230b. Second motor 240 may be configured to turn one or more pinch rollers 230 in the first direction and/or the second direction. In some embodiments, second motor 240 receives instructions from one or more controllers of airborne payload control system 100. For example, controller 150 of
In some embodiments, one or more controllers of airborne payload control system 100 may send instructions to one or more of first motor 220 and second motor 240. For example, in response to determining to feed payload line 130 out, controller 150 of
Controller(s) 150 may send instructions to first motor 220 and second motor 240 that enable main reel 210 and pinch rollers 230 to cooperate to feed payload line 130 in and out. For example, in response to determining to feed payload line 130 in, controller 150 of
Each of motors 220 and 240 may be associated with one or more optical encoders (not illustrated). The one or more optical encoders may be configured to detect information about payload line 130 and relay the information to one or more controllers of airborne payload control system 100 (e.g., controller 150). As an example, the information detected by an optical encoder may be used to determine the length of payload line 130 on main reel 210. Such information may in turn be used by controller 150 to provide instructions to one or more components of airborne payload control system 100 (e.g., first motor 220, second motor 240, etc.). For example, in response to determining, based on information from an optical encoder associated with first motor 220, that payload line 130 on main reel 210 is nearly empty, controller 150 sends instructions to reduce the speed of second motor 240 while reeling out payload line 130.
As described above, instructions from controller(s) 150 may be based on information received from line sensor 140. For example, in response to receiving information from line sensor 140, controller 150 may send instructions to one or more of first motor 220 and second motor 240. In this manner, controller(s) 150 may use feedback from line sensor 140 to control the distance, velocity, acceleration, and/or jerk on payload line 130. In some embodiments, the distance, velocity, acceleration, and/or jerk of payload line 130 is controlled to maintain a particular position (e.g., latitude, longitude, and altitude) of second end 130b of payload line 130 during the flight of aircraft 110.
In some embodiments, winch system 120 includes additional components. For example, as illustrated in
This disclosure also contemplates a line cutting feature of winch system 120. In some embodiments, this line cutting feature is performed using components described herein. Such feature may be performed at the direction of controller(s) 150. For example, controller 150 may instruct servo motor 170 to move locking bar 272 into the locked position and, after locking bar 272 is positioned in the locked position, instruct second motor 240 to begin feeding line out, thus causing a friction cut of payload line 130.
Method 400 may begin in step 405 and proceed to step 410. At step 410, controller 150 may receive information about payload line 130. As described above, controller 150 may receive information about payload line 130 from line sensor 140. The information received by controller 150 may comprise one or more of: a position of payload line 130; a velocity of payload line 130; and an altitude of second end 130b of the payload line 130. Although this disclosure recognizes particular types of information that may be sensed by line sensor 140, this disclosure recognizes that line sensor 140 may detect any suitable information (e.g., information that would be helpful in maintaining a position of second end 130b of payload line 130). In some embodiments, after receiving information about payload line 130, method 400 proceeds to step 420.
At step 420, controller 150 provides instructions to aircraft 110 and winch system 120 based on information received at step 410. In some embodiments, the instructions provided by controller 150 at step 420 cause a position of second end 130b of payload line 130 to be maintained. As described above, controller 150 may provide instructions to an onboard avionic system operable to control one or more of the flight path, speed, orbit, and/or altitude of aircraft 110. Controller 150 may also provide instructions to one or more of first motor 220 and/or second motor 240. As described above, instructions to first motor 220 may include instructions regarding one or more of a direction of turning main reel 210, a speed at which to turn main reel 210, a tension on payload line 130, and an application of a braking functionality. Instructions to second motor 220 may include instructions regarding one or more of a direction of turning one or more pinch rollers 130, a speed of turning one or more pinch rollers 130, a tension on payload line 130, and an application of a braking functionality. Controller 150 may also provide instructions to one or more servo motors of winch system 120. For example, controller 150 may instruct servo motor 270 to move locking bar 272 from a first position to a second position. As another example, controller 150 may instruct servo motor 310 to move shaft 320 from a first position to a second position. In some embodiments, after performing step 420, method 400 proceeds to an end step 425.
Method 500 may begin in step 505 and proceed to step 510. At step 510, one or more of first motor 220 and second motor 240 receives instructions to spool payload line 130. In some embodiments, the received instructions instruct first motor 220 and/or second motor 240 to spool payload line 130 in or out. As described above, payload line 130 may be spooled out by turning one or more of main reel 210 and/or pinch rollers 130 in the first direction and payload line 130 may be spooled in by turning one or more of main reel 210 and/or pinch rollers 130 in the second direction.
In some embodiments, payload line 130 is spooled out by instructing first motor 220 to perform a braking function and instructing second motor 240 to turn in the first direction. In some other embodiments, payload line 130 is spooled in by instructing first motor 220 to turn in the second direction and instructing second motor 240 to apply a braking function. In some embodiments, the received instructions instruct first motor 220 and/or second motor 240 to operate at a particular speed. In other embodiments, the received instructions instruct first motor 220 and/or second motor 240 to pull payload line 130 taught. Although this disclosure describes particular types of instructions that may be received from one or more controllers of airborne payload control system 100, this disclosure recognizes that the received instructions may include any suitable information that may enable winch system 120 to control the position of second end 130b of payload line 130. In some embodiments, after first motor 220 and/or second motor 240 receives instructions to spool payload line 130, the method 500 proceeds to step 520.
At step 520, first motor 220 and/or second motor 240 operate based on the instructions received at step 510. For example, first motor 220 may apply a braking function in response to receiving an instruction to perform a braking function. As another example, second motor 240 may begin turning pinch roller 230a at a particular rate (e.g., 150 rpm) in the first direction in order to increase the length of payload line 130. The instructions may be implemented serially or simultaneously. In some embodiments, implementing the instructions received at step 510 cause the position of second end 130b of payload line 130 (e.g., latitude, longitude, and altitude) to be maintained.
This disclosure contemplates any suitable number of computer systems 600. This disclosure contemplates computer system 600 taking any suitable physical form. As example and not by way of limitation, computer system 600 may be an embedded computer system, a system-on-chip (SOC), a single-board computer system (SBC) (such as, for example, a computer-on-module (COM) or system-on-module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a mesh of computer systems, a mobile telephone, a personal digital assistant (PDA), a server, a tablet computer system, or a combination of two or more of these. Where appropriate, computer system 600 may include one or more computer systems 600; be unitary or distributed; span multiple locations; span multiple machines; span multiple data centers; or reside in a cloud, which may include one or more cloud components in one or more networks. Where appropriate, one or more computer systems 600 may perform without substantial spatial or temporal limitation one or more steps of one or more methods described or illustrated herein. As an example and not by way of limitation, one or more computer systems 600 may perform in real time or in batch mode one or more steps of one or more methods described or illustrated herein. One or more computer systems 600 may perform at different times or at different locations one or more steps of one or more methods described or illustrated herein, where appropriate.
In particular embodiments, computer system 600 includes a processor 610, memory 620, storage 630, an input/output (I/O) interface 640, a communication interface 650, and a bus 660. Although this disclosure describes and illustrates a particular computer system having a particular number of particular components in a particular arrangement, this disclosure contemplates any suitable computer system having any suitable number of any suitable components in any suitable arrangement.
In particular embodiments, processor 610 includes hardware for executing instructions, such as those making up a computer program. As an example and not by way of limitation, to execute instructions, processor 610 may retrieve (or fetch) the instructions from an internal register, an internal cache, memory 620, or storage 630;
decode and execute them; and then write one or more results to an internal register, an internal cache, memory 620, or storage 630. In particular embodiments, processor 610 may include one or more internal caches for data, instructions, or addresses. This disclosure contemplates processor 610 including any suitable number of any suitable internal caches, where appropriate. As an example and not by way of limitation, processor 610 may include one or more instruction caches, one or more data caches, and one or more translation lookaside buffers (TLBs). Instructions in the instruction caches may be copies of instructions in memory 620 or storage 630, and the instruction caches may speed up retrieval of those instructions by processor 610. Data in the data caches may be copies of data in memory 620 or storage 630 for instructions executing at processor 610 to operate on; the results of previous instructions executed at processor 610 for access by subsequent instructions executing at processor 610 or for writing to memory 620 or storage 630; or other suitable data. The data caches may speed up read or write operations by processor 610. The TLBs may speed up virtual-address translation for processor 610. In particular embodiments, processor 610 may include one or more internal registers for data, instructions, or addresses. This disclosure contemplates processor 610 including any suitable number of any suitable internal registers, where appropriate. Where appropriate, processor 610 may include one or more arithmetic logic units (ALUs); be a multi-core processor; or include one or more processors 610. Although this disclosure describes and illustrates a particular processor, this disclosure contemplates any suitable processor.
In particular embodiments, memory 620 includes main memory for storing instructions for processor 610 to execute or data for processor 610 to operate on. As an example and not by way of limitation, computer system 600 may load instructions from storage 630 or another source (such as, for example, another computer system 600) to memory 620. Processor 610 may then load the instructions from memory 620 to an internal register or internal cache. To execute the instructions, processor 610 may retrieve the instructions from the internal register or internal cache and decode them. During or after execution of the instructions, processor 610 may write one or more results (which may be intermediate or final results) to the internal register or internal cache. Processor 610 may then write one or more of those results to memory 620. In particular embodiments, processor 610 executes only instructions in one or more internal registers or internal caches or in memory 620 (as opposed to storage 630 or elsewhere) and operates only on data in one or more internal registers or internal caches or in memory 620 (as opposed to storage 630 or elsewhere). One or more memory buses (which may each include an address bus and a data bus) may couple processor 610 to memory 620. Bus 660 may include one or more memory buses, as described below. In particular embodiments, one or more memory management units (MMUs) reside between processor 610 and memory 620 and facilitate accesses to memory 620 requested by processor 610. In particular embodiments, memory 620 includes random access memory (RAM). This RAM may be volatile memory, where appropriate Where appropriate, this RAM may be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, where appropriate, this RAM may be single-ported or multi-ported RAM. This disclosure contemplates any suitable RAM. Memory 620 may include one or more memories 620, where appropriate. Although this disclosure describes and illustrates particular memory, this disclosure contemplates any suitable memory.
In particular embodiments, storage 630 includes mass storage for data or instructions. As an example and not by way of limitation, storage 630 may include a hard disk drive (HDD), a floppy disk drive, flash memory, an optical disc, a magneto-optical disc, magnetic tape, or a Universal Serial Bus (USB) drive or a combination of two or more of these. Storage 630 may include removable or non-removable (or fixed) media, where appropriate. Storage 630 may be internal or external to computer system 600, where appropriate. In particular embodiments, storage 630 is non-volatile, solid-state memory. In particular embodiments, storage 630 includes read-only memory (ROM). Where appropriate, this ROM may be mask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM), or flash memory or a combination of two or more of these. This disclosure contemplates mass storage 630 taking any suitable physical form. Storage 630 may include one or more storage control units facilitating communication between processor 610 and storage 630, where appropriate. Where appropriate, storage 630 may include one or more storages 630. Although this disclosure describes and illustrates particular storage, this disclosure contemplates any suitable storage.
In particular embodiments, I/O interface 640 includes hardware, software, or both, providing one or more interfaces for communication between computer system 600 and one or more I/O devices. Computer system 600 may include one or more of these I/O devices, where appropriate. One or more of these I/O devices may enable communication between a person and computer system 600. As an example and not by way of limitation, an I/O device may include a keyboard, keypad, microphone, monitor, mouse, printer, scanner, speaker, still camera, stylus, tablet, touch screen, trackball, video camera, another suitable I/O device or a combination of two or more of these. An I/O device may include one or more sensors. This disclosure contemplates any suitable I/O devices and any suitable I/O interfaces 640 for them. Where appropriate, I/O interface 640 may include one or more device or software drivers enabling processor 610 to drive one or more of these I/O devices. I/O interface 640 may include one or more I/O interfaces 640, where appropriate. Although this disclosure describes and illustrates a particular I/O interface, this disclosure contemplates any suitable I/O interface.
In particular embodiments, communication interface 650 includes hardware, software, or both providing one or more interfaces for communication (such as, for example, packet-based communication) between computer system 600 and one or more other computer systems 600 or one or more networks. As an example and not by way of limitation, communication interface 650 may include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI network. This disclosure contemplates any suitable network and any suitable communication interface 650 for it. As an example and not by way of limitation, computer system 600 may communicate with an ad hoc network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), or one or more portions of the Internet or a combination of two or more of these. One or more portions of one or more of these networks may be wired or wireless. As an example, computer system 600 may communicate with a wireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), a WI-FI network, a WI-MAX network, a cellular telephone network (such as, for example, a Global System for Mobile Communications (GSM) network), or other suitable wireless network or a combination of two or more of these. Computer system 600 may include any suitable communication interface 650 for any of these networks, where appropriate. Communication interface 650 may include one or more communication interfaces 610, where appropriate. Although this disclosure describes and illustrates a particular communication interface, this disclosure contemplates any suitable communication interface.
In particular embodiments, bus 660 includes hardware, software, or both coupling components of computer system 600 to each other. As an example and not by way of limitation, bus 660 may include an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT) interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBAND interconnect, a low-pin-count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCIe) bus, a serial advanced technology attachment (SATA) bus, a Video Electronics Standards Association local (VLB) bus, or another suitable bus or a combination of two or more of these. Bus 660 may include one or more buses 712, where appropriate. Although this disclosure describes and illustrates a particular bus, this disclosure contemplates any suitable bus or interconnect.
The components of computer system 600 may be integrated or separated. In some embodiments, components of computer system 600 may each be housed within a single chassis. The operations of computer system 600 may be performed by more, fewer, or other components. Additionally, operations of computer system 600 may be performed using any suitable logic that may comprise software, hardware, other logic, or any suitable combination of the preceding.
Herein, a computer-readable non-transitory storage medium or media may include one or more semiconductor-based or other integrated circuits (ICs) (such, as for example, field-programmable gate arrays (FPGAs) or application-specific ICs (ASICs)), hard disk drives (HDDs), hybrid hard drives (HHDs), optical discs, optical disc drives (ODDs), magneto-optical discs, magneto-optical drives, floppy diskettes, floppy disk drives (FDDs), magnetic tapes, solid-state drives (SSDs), RAM-drives, SECURE DIGITAL cards or drives, any other suitable computer-readable non-transitory storage media, or any suitable combination of two or more of these, where appropriate. A computer-readable non-transitory storage medium may be volatile, non-volatile, or a combination of volatile and non-volatile, where appropriate.
Herein, “or” is inclusive and not exclusive, unless expressly indicated otherwise or indicated otherwise by context. Therefore, herein, “A or B” means “A, B, or both,” unless expressly indicated otherwise or indicated otherwise by context. Moreover, “and” is both joint and several, unless expressly indicated otherwise or indicated otherwise by context. Therefore, herein, “A and B” means “A and B, jointly or severally,” unless expressly indicated otherwise or indicated otherwise by context.
The scope of this disclosure encompasses all changes, substitutions, variations, alterations, and modifications to the example embodiments described or illustrated herein that a person having ordinary skill in the art would comprehend. The scope of this disclosure is not limited to the example embodiments described or illustrated herein. Moreover, although this disclosure describes and illustrates respective embodiments herein as including particular components, elements, functions, operations, or steps, any of these embodiments may include any combination or permutation of any of the components, elements, functions, operations, or steps described or illustrated anywhere herein that a person having ordinary skill in the art would comprehend. Furthermore, reference in the appended claims to an apparatus or system or a component of an apparatus or system being adapted to, arranged to, capable of, configured to, enabled to, operable to, or operative to perform a particular function encompasses that apparatus, system, component, whether or not it or that particular function is activated, turned on, or unlocked, as long as that apparatus, system, or component is so adapted, arranged, capable, configured, enabled, operable, or operative.