The present disclosure relates generally to engagement between a work machine and an implement.
Some work machines, such as agricultural work machines (e.g., combine harvesters) are used in combination with an implement, such as an agricultural head, to perform work. The work may be harvesting a crop in a field. In this example, a combine harvester connected with an agricultural head is moved through a field where the head operates to harvester crop. The harvested crop is directed into the combine harvester where the crop is processed, for example, to separate grain from other crop material.
A first aspect of the present disclosure is directed to an apparatus. The apparatus may include one or more processors and a non-transitory computer-readable storage medium coupled to the one or more processors and storing programming instructions for execution by the one or more processors. The programming instructions may instruct the one or more processors to sense an orientation of an agricultural head; determine a tilt of the agricultural head based on the orientation of the agricultural head; compare a tilt of the agricultural head to a tilt of a feederhouse of an agricultural harvester; determine a difference between the tilt of the feederhouse and the tilt of the head; and move the feederhouse to align the tilt of the feederhouse with the tilt of the agricultural head.
A second aspect of the present disclosure is directed to a computer-implemented method performed by one or more processors for automatically aligning a feederhouse of an agricultural harvester with an agricultural head. The method may include sensing an orientation of an agricultural head; determining a tilt of the agricultural head based on the orientation of the agricultural head; comparing a tilt of the agricultural head to a tilt of a feederhouse of an agricultural harvester; determining a difference between the tilt of the feederhouse and the tilt of the head; and moving the feederhouse to align the tilt of the feederhouse with the tilt of the agricultural head.
The various aspects of the present disclosure may include one or more of the following features. Programming instructions to instruct the one or more processors to sense an orientation of the agricultural head may include programming instructions to receive an image of an agricultural head. Programming instructions to instruct the one or more processors to receive the image of the agricultural head may include programming instructions to instruct the one or more processors to receive the image from a camera located on the agricultural harvester. Programming instructions to instruct the one or more processors to sense the orientation of an agricultural head may include programming instructions to instruct the one or more processors to determine the orientation of the agricultural head based on the image. Programming instructions may include programming instructions to instruct the one or more processors to sense an orientation of the feederhouse and determine the tilt of the feederhouse based on the orientation of the feederhouse. Programming instructions to instruct the one or more processors to sense the orientation of the feederhouse may include programming instructions to instruct the one or more processors to sense the orientation of the feederhouse with one of a pitch sensor and roll sensor. Programming instructions to instruct the one or more processors to move the feederhouse to align the tilt of the feederhouse with the tilt of the agricultural head may include programming instructions to cause the one or more processors to actuate an actuator configured to pivot the feederhouse. Programming instructions to instruct the one or more processors to move the feederhouse to align the tilt of the feederhouse with the tilt of the agricultural head may include programming instructions to alter one of a lateral tilt of the feederhouse and a longitudinal tilt of the feederhouse. Programming instructions to instruct the one or more processors to sense an orientation of an agricultural head may include programming instructions to instruct the one or more processors to sense a feature of the agricultural head.
An orientation of the feederhouse may be sensed, and the tilt of the feederhouse may be determined based on the orientation of the feederhouse. Sensing the orientation of the feederhouse may include sensing the orientation of the feederhouse with one of a pitch sensor and a roll sensor. Moving the feederhouse to align the tilt of the feederhouse with the tilt of the agricultural head may include actuating an actuator configured to pivot the feederhouse. Moving the feederhouse to align the tilt of the feederhouse with the tilt of the agricultural head may include altering one of a lateral tilt of the feederhouse and a longitudinal tilt of the feederhouse. Sensing an orientation of an agricultural head may include sensing a feature of the agricultural head.
Other features and aspects will become apparent by consideration of the detailed description and accompanying drawings.
The detailed description of the drawings refers to the accompanying figures in which:
For the purposes of promoting an understanding of the principles of the present disclosure, reference will now be made to the implementations illustrated in the drawings, and specific language will be used to describe the same. It will nevertheless be understood that no limitation of the scope of the disclosure is intended. Any alterations and further modifications to the described devices, systems, or methods and any further application of the principles of the present disclosure are fully contemplated as would normally occur to one skilled in the art to which the disclosure relates. In particular, it is fully contemplated that the features, components, and/or steps described with respect to one implementation may be combined with the features, components, and/or steps described with respect to other implementations of the present disclosure.
The present disclosure is directed to systems and methods for connecting an implement to a work machine. For example, the present disclosure is directed to connecting an agricultural implement to an agricultural work machine. The present disclosure encompasses automatically controlling a feature of the agricultural work machine as the work machine is connected to the agricultural head. For example, in the example of a combine harvester, the combine harvester includes a feederhouse that extends from a front end of the combine harvester. The agricultural implement engages the feederhouse to connect the agricultural head to the combine harvester.
Words of orientation, such as “up,” “down,” “top,” “bottom,” “above,” “below,” “leading,” “trailing,” “front,” “back,” “forward,” and “rearward” are used in the context of the illustrated examples as would be understood by one skilled in the art and are not intended to be limiting to the disclosure. For example, for a particular type of vehicle in a conventional configuration and orientation, one skilled in the art would understand these terms as the terms apply to the particular vehicle.
For example, the term “forward” (and the like) corresponds to a forward direction of travel of a head or combine harvester, such as during a harvesting operation. Likewise, the term “rearward” (and the like) corresponds to a direction opposite the forward direction of travel. In this regard, for example, a “forward facing” feature on a head may generally face in the direction that the head travels during normal operation, while a “rearward facing” feature may generally face opposite that direction.
Also as used herein, with respect to a head (or components thereof), unless otherwise defined or limited, the term “leading” (and the like) indicates a direction of travel of the head during normal operation (e.g., the forward direction of travel of a harvester vehicle carrying a head). Similarly, the term “trailing” (and the like) indicates a direction that is opposite the leading direction. In this regard, for example, a “leading” edge of a head may be generally disposed at the front of the head, with respect to the direction travel of the head during normal operation (e.g., as carried by a combine harvester). Likewise, a “trailing” edge of a head may be generally disposed at the back of the head opposite the leading edge, with respect to the direction of travel of the head during normal operation.
Although the present disclosure is made in the context of agriculture, the scope of the disclosure is not so limited. Rather, the scope of the disclosure encompasses other industries, particularly those industries where connecting an implement to a work machine is needed or otherwise desired.
Coupling an agricultural head to a harvester can be challenging. Generally, a head is located on the ground or on a platform, such as a movable platform (e.g., a trailer) that allows the head to be moved from one location to another over conventional roads. To connect the harvester to the head, longitudinal alignment between the harvester and the head is needed. For example, as shown in
Additionally, connecting a head to a harvester is further complicated by aligning the head and a feederhouse of the harvester vertically. As shown in
Still further, connecting the head 200 to the harvester may also involve aligning a tilt of a feederhouse of a harvester with a tilt of a head.
To alter a tilt of the feederhouse 208 and, hence, the mounting structure 210, the actuators 224 can be actuated to alter a lateral orientation of the feederhouse 208. In this way, the lateral orientation of the feederhouse 208 can be made to align with the lateral orientation of the head 204 and, hence, the mounting structure 212 of the head 204.
Connecting a head with a harvester is further complicated by the limited view provided to an operator in a cab of the harvester. The position within the cab provides the operator with limited visibility and, consequently, information as to a position and orientation of the head relative to the harvester. Additionally, the operator's position can cause difficulty in judging a position and orientation of the feederhouse in order to control a position of the feederhouse, e.g., height, tilt, and lateral position, and make satisfactory engagement with the head.
To overcome these difficulties, the present disclosure provides for automated control of the feederhouse of a harvester to align the feederhouse with a head, thereby reducing time and effort required to manually connect the harvester and the head.
The third actuator 514 is operable to adjust a direction of movement of the harvester. For example, the third actuator 514 forms part of a steering system and is operable to adjust a steering angle of the harvester (e.g., by altering an angle of the wheels of the harvest) to control a direction of travel of the harvester. The third actuator 514 is operable in response to output from the controller 502. The propulsion system 516 is operable to control a rate of travel of the harvester. For example, the propulsion system 516 is operable in response to output from the controller 502 to control a rate of speed of the harvester. Together, the controller 502 operates the third actuator 514 and the propulsion system 516 to control a direction and speed of movement of the harvester and, hence, a path traveled by the harvester.
The control system 500 also includes a proximity sensor 518. The proximity sensor 518 is included on the harvester and is operable to sense a distance of an object from the harvester. For example, the proximity sensor 518 is operable to sense a distance of the head from the harvester, and this distance information is provided to the controller 502. Example proximity sensors 518 include laser sensors and ultrasonic sensors. The control system 500 may also include a tilt sensor 530 that is operable to detect a lateral tilt of the harvester. In some implementations, the tilt sensor 530 is a tilt sensor, a roll and pitch sensor, an inertial measurement sensor, or another type of sensor operable to sense a tilt of an object. As indicated, the sensor 530 is operable at least to sense a lateral tilt of the harvester.
The control system 500 may also include or be communicably coupled to a remote database 520, which may be in the form of cloud storage, a remote server, or some other type of electronic storage configured to store information. The various components of the control system 500 are communicably coupled to the controller 802, such as via a wired or wireless connection.
In some implementations, the controller 502 is an electronic computer, such as computer 1002 described in more detail below. The controller 502 includes a processor 522 communicably coupled to a memory 524. Additional details of the controller 502, such as processor 522 and memory 524, are described below in the context of computer 1002. In some implementations, the controller 502 is communicably coupled with a network, such as in a manner described in more detail below in the context of
The input device 508 is communicably coupled via a wired or wireless connection. Example input devices 508 include a keyboard, keypad, one or more buttons, a slider bar, a dial, a knob, a mouse, or a joystick. The display 506 is communicably coupled to the controller 502 via a wired or wireless connection. The display 506 displays information, such as information related to the operation of control system 500. For example, information displayed by the display 506 may include a position of the head (e.g., pitch and lateral tilt), a speed and direction of movement of the harvester, and a distance between the harvester (and, in some instances, the feederhouse) and the head. In some instances, the information displayed by the display 506 is displayed via a graphical user interface (GUI) 528. Example displays include cathode ray tubes (CRT), liquid crystal displays (LCDs), or plasma displays. Other types of displays are also within the scope of the present disclosure. In some implementations, the display 506 is a touch screen that is operable to receive input from a user via a user's touch. In some implementations in which the display 506 is a touch screen, the input device 508 may be omitted.
The harvester 600 also includes actuators 622, which may be similar to actuators 224, 510, and 512, that are operable to adjust a position of the feederhouse 618. For example, the actuators 224 are operable to alter a pitch (elevation) of the feederhouse 618 and to alter a lateral tilt of the feederhouse 618. The harvester also includes an actuator 624, which may be similar to actuator 514, is used to change a direction of travel of the harvester 600. For example, the actuator 624 may form part of a steering system and is used to alter a steering angle of a wheel or track of the harvester 600 to alter a travel direction thereof. Further, the harvester 600 includes a propulsion device 626 (e.g., an engine, a motor, or other motive apparatus) that is operable to propel the harvester 600 over the ground 628. The harvester 600 also includes an electronic controller 630 that is operable to receive input from sensors (e.g., image sensors 602 and 610 as well as proximity sensor 616), determines an orientation of the head 614, and operates the actuators 622, 624 and propulsion device 626 to connect the head 614 to the feederhouse 618. The harvester 600 also includes a tilt sensor 632 that is operable to sense a lateral tilt of the harvester 600.
Referring to
In other implementations, the controller determines the tilt angle of the head 800 based on detected points on the head. For example, the controller may detect two or more points on the head, such as corners 810. The controller then generates a line 812 using points 810. The generated line 812 is then used to determine the tilt angle using a horizontal reference, such as horizontal line 802.
The angle α represents an accurate angular tilt of the head 800 relative to the combine as a result of the image sensor used to capture the image being arranged on the combine in alignment with a lateral axis is that would be horizontal when the harvester was located on a level ground surface. However, in other implementations where the image sensor may not be aligned with a lateral axis of the harvester, the angle α is determinable using a correction angle that accounts for the angular offset of the image sensor relative to a lateral axis of the harvester.
The described approaches to determining a lateral tilt of the head in the context of the captured image are provided merely as examples. Other types of image analysis may be used to detect the lateral tilt of the head 800.
At 706, a lateral tilt angle of the head is determined. The tilt angle of the head may be determined as described herein, for example. At 708, an angular tilt of the feederhouse of the head relative to the harvester is determined. For example, the angular tilt of the feederhouse may be determined relative to another part of the harvester, such as the base (which may be similar to base 12) or cab of the harvester. Particularly, as shown in
In some implementations, a lateral tilt of the feederhouse relative to the harvester (e.g., a lateral axis defined by the harvester, such as a rotational axis of a wheel of the harvester) may be determined using a tilt sensor. For example, a pitch or roll sensor may be used to determine a lateral tilt of the feederhouse. In some instances where the harvester is on a sloped surface, a lateral tilt of the feederhouse relative to the harvester may be determined using a first tilt sensor provided on the feederhouse and a second tilt sensor provided on the harvester, such as a base of the harvester. The outputs from the first and second tilt sensors can be used to determine a lateral tilt of the feederhouse relative to the harvester.
In some implementations, a pitch of the feederhouse may be altered to align the feederhouse with the head. In some instances, one or more pitch sensors on the harvester may be used. For example, a pitch of the feederhouse may be determined using a first pitch sensor on the harvester that senses a pitch of the harvester overall and a second pitch sensor on the feederhouse that determines a pitch of the feederhouse. The outputs from the first and second pitch sensors may be used to control a pitch of the feederhouse. In some implementations, a first roll sensor that senses a pitch of the harvester overall and an amount of extension of the actuators used to position the feederhouse is used to determine the pitch of the feederhouse relative to the harvester. These pieces of information can be used to control a pitch of the feederhouse to align the pitch of the feederhouse with a pitch of the head.
At 710, the lateral tilt of the head is compared with the lateral tilt of the feederhouse. Particularly, the angles α and β are compared, and a correction angular value is determined, such as by the controller. For example, in some implementations, the comparison of angles α and β involves determining a difference between the angles α and β. At 712, a determination is made as to whether the head and the feederhouse are misaligned. At 714, if the feederhouse and the head are misaligned, then the feederhouse is moved, based on the comparison of angles α and β, to align the feederhouse with the head. For example, the lateral tilt of the feederhouse is altered. In some implementations, the feederhouse is moved with actuators, such as actuators 224, 510, 512, and 622, to alter an angular orientation of the feederhouse to correspond to the angular position of the head.
At 716, a distance between the feederhouse (e.g., between a mounting structure of the feederhouse) and the head is determining. For example, a proximity sensor may be used to sense a distance between the harvester and the head, and the sensor outputs a signal representing the separation distance to a controller that uses the sensor output to determine the distance separating the feederhouse from the head. At 718, a determination is made as to whether there is space between the feederhouse and the head. At 720, if space exists between the feederhouse and the head, the harvester is advanced towards the head. In some implementations, the controller uses the separation distance to control operation of the propulsion device to move the harvester towards the head. At 722, one or more additional images of the head are captured. At 724, the one or more additional images are used to determine longitudinal alignment between the harvester and the head. For example, referring to
At 728, a determination is made as to whether engagement between the feederhouse and the head has occurred. Engagement may be detected based on an accelerometer that detects an impact or vibration that would occur upon contact between the feederhouse and the head. At 730, if engagement is detected, advancement of the harvester is ceased, and, at 732, the head is connected to the feederhouse, such as by actuation of a lock that secures the head to the feederhouse. If engagement is not detected, the method 700 returns to 704 to maintain angular alignment with, longitudinal alignment with, and advancement of the harvester towards the head.
The method 700 is provided merely as an example. The method 700 may be modified and still be within the scope of the present disclosure. For example, in some implementations, the image captured at 704 is used to determine a longitudinal alignment between the head and the harvester, and this comparison may be used to alter a direction of travel of the harvester, such as by altering a steering angle of the harvester. For example, the order of the described features may be altered, one or more features may be omitted, one or more features may be added, or a combination of these with the method 700 still remaining within the scope of the present disclosure. For example, the method 700 may include determining a currently selected steering angle and an amount of change to the steering angle, based on the currently selected steering angle, needed to move the harvester in a direction to achieve connection of the head to the harvester. Further, the method 700 may include detecting a currently selected orientation of the feederhouse and determining an amount of movement of the feederhouse, based on the currently selected orientation, to match an orientation of the head to achieve connection of the head to the harvester.
In some implementations, one or more aspects of the method 700, described above, may be displayed to an operator, such as on a display in a cab of a harvester. For example, in some instances, the information may be displayed on a display similar to display 506. In some instances, a determination of a lateral tilt of the head, a lateral tilt of the feederhouse, or both may be displayed on the display. Further, a controller, such as controller 702, may also display instructions to the operator as to how to move the feederhouse so that the lateral tilt of the feederhouse aligns with the lateral tilt of the head. In some instances, misalignment of the harvester relative to the head and guidance to align the harvester and the head may be indicated on a display with guidance lines. The guidance lines indicate to an operator how to maneuver, e.g., turn the harvester, in order to align the feederhouse of the harvester with the head, thereby providing a successful coupling between the head and the feederhouse. Thus, the scope of the present disclosure provides for both aligning and coupling a harvester and a head in an automated fashion as well as providing information to an operator to achieve all or a portion of the operations of aligning the feederhouse with the head and coupling the feederhouse with the head manually.
In some instances, alignment of a head and a feederhouse is accomplished using two or more lasers.
In the illustrated example, the target areas 1004 are positioned symmetrically relative to the mounting structure 1002. Particularly, in some implementations, the targets areas 1004 are positioned adjacent to corners defined by the mounting structure 1002. However, in other implementations, the target areas 1004 may be arranged in any desired configuration. Further, although four target areas 1004 are shown, in other implementations, fewer target areas corresponding to few lasers provided on the harvester.
The control system 1100 may also include or be communicably coupled to a remote database 1130 (similar to remote database 520), which may be in the form of cloud storage, a remote server, or some other type of electronic storage configured to store information. The various components of the control system 1100 are communicably coupled to the controller 502, such as via a wired or wireless connection. Similar to the controller 502, the controller 1102 includes a processor 1132, similar to processor 522, and a memory 1134, similar to memory 524. The processor 1132 executes software 1136 to control operation of the control system 1100, as described herein. For example, in some instances, the software 1136 includes executable instructions to accomplish a method to align a feederhouse with a head, such as the method 1200 described below. The display 1104 includes a GUI 1138, which may be similar to GUI 528.
At 1210, alignment of a laser and a target area is detected. At 1212, the feederhouse is moved with a pivoting motion, with a center of the rotation being the laser for which alignment with a target area has been determined. In some implementations, the feederhouse is moved with the pivoting motion in a first radial direction with a selected amount of rotation. If an alignment between another laser and target area is not detected, the direction of rotation about the center of rotation is reversed, and the feederhouse is pivoted about the center of rotation by a selected amount. At 1214, alignment of another laser and target area is determined, indicating that the feederhouse and the mounting structure of the head is aligned. At 1216, pivoting the feederhouse is ceased upon determining that another laser is aligned with a target area.
In some implementations, the method 1000 includes additional features. For example, at 1218, a distance between the feederhouse and the head is sensed. For example, the distance may be sensed with a proximity sensor, such as proximity sensor 1112. At 1220, if space is detected between the harvester and the head, the harvester is advanced towards the head. At 1222, a determination is made as to whether engagement between the feederhouse and the head has occurred. Engagement may be detected based on an accelerometer that detects an impact or vibration that would occur upon contact between the feederhouse and the head. At 1224, if engagement is detected, advancement of the harvester is ceased, and, at 1226, the head is connected to the feederhouse, such as by actuation of a lock that secures the head to the feederhouse. If engagement is not detected, the method 1200 returns to 1218 where a distance is sensed and advancement of the harvester towards the head.
In some implementations, one or more aspects of the method 1200, described above, may be accomplished by an operator of the harvester. For example, in some implementations, visible lasers are used. Consequently, where the light from the lasers strikes the head may be visible to the operator of the harvester. As a result, the operator may use the reflected laser light to adjust an orientation of the feederhouse and, in some instances, the harvester itself, in order to align the lateral tilt of the feederhouse with the lateral tilt of the head as well as align a longitudinal position of the harvester with a longitudinal position of the head.
Without in any way limiting the scope, interpretation, or application of the claims appearing below, a technical effect of one or more of the example implementations disclosed herein is reduce or eliminate the difficulty with attaching a head to a harvester. Attaching a head to a harvester is a skill that is developed with experience. Therefore, coupling a head to a harvester can become problematic when inexperienced operators are responsible for making this connection and may involve damage to the harvester, the head, or both when a coupling task is improperly executed. Accordingly, another technical effect of one or more of the example implementations disclosed herein is a reduced risk of damage to the harvester, head, or both. Another technical effect of one or more of the example implementations disclosed herein is a reduction in time and cost associated with successfully connecting a head to a harvester.
The computer 1302 can serve in a role as a client, a network component, a server, a database, a persistency, or components of a computer system for performing the subject matter described in the present disclosure. The illustrated computer 1302 is communicably coupled with a network 1330. In some implementations, one or more components of the computer 1302 can be configured to operate within different environments, including cloud-computing-based environments, local environments, global environments, and combinations of environments.
At a high level, the computer 1302 is an electronic computing device operable to receive, transmit, process, store, and manage data and information associated with the described subject matter. According to some implementations, the computer 1302 can also include, or be communicably coupled with, an application server, an email server, a web server, a caching server, a streaming data server, or a combination of servers.
The computer 1302 can receive requests over network 1330 from a client application (for example, executing on another computer 1302). The computer 1302 can respond to the received requests by processing the received requests using software applications. Requests can also be sent to the computer 1302 from internal users (for example, from a command console), external (or third) parties, automated applications, entities, individuals, systems, and computers.
Each of the components of the computer 1302 can communicate using a system bus 1303. In some implementations, any or all of the components of the computer 1302, including hardware or software components, can interface with each other or the interface 1304 (or a combination of both), over the system bus 1303. Interfaces can use an application programming interface (API) 1312, a service layer 1313, or a combination of the API 1312 and service layer 1313. The API 1312 can include specifications for routines, data structures, and object classes. The API 1312 can be either computer-language independent or dependent. The API 1312 can refer to a complete interface, a single function, or a set of APIs.
The service layer 1313 can provide software services to the computer 1302 and other components (whether illustrated or not) that are communicably coupled to the computer 1302. The functionality of the computer 1302 can be accessible for all service consumers using this service layer. Software services, such as those provided by the service layer 1313, can provide reusable, defined functionalities through a defined interface. For example, the interface can be software written in JAVA, C++, or a language providing data in extensible markup language (XML) format. While illustrated as an integrated component of the computer 1302, in alternative implementations, the API 1312 or the service layer 1313 can be stand-alone components in relation to other components of the computer 1302 and other components communicably coupled to the computer 1302. Moreover, any or all parts of the API 1312 or the service layer 1313 can be implemented as child or sub-modules of another software module, enterprise application, or hardware module without departing from the scope of the present disclosure.
The computer 1302 includes an interface 1304. Although illustrated as a single interface 1304 in
The computer 1302 includes a processor 1305. Although illustrated as a single processor 1305 in
The computer 1302 also includes a database 1306 that can hold data for the computer 1302 and other components connected to the network 1330 (whether illustrated or not). For example, database 1306 can be an in-memory, conventional, or a database storing data consistent with the present disclosure. In some implementations, database 1306 can be a combination of two or more different database types (for example, hybrid in-memory and conventional databases) according to particular needs, desires, or particular implementations of the computer 1302 and the described functionality. Although illustrated as a single database 1306 in
The computer 1302 also includes a memory 1307 that can hold data for the computer 1302 or a combination of components connected to the network 1330 (whether illustrated or not). Memory 1307 can store any data consistent with the present disclosure. In some implementations, memory 1307 can be a combination of two or more different types of memory (for example, a combination of semiconductor and magnetic storage) according to particular needs, desires, or particular implementations of the computer 1302 and the described functionality. Although illustrated as a single memory 1307 in
The application 1308 can be an algorithmic software engine providing functionality according to particular needs, desires, or particular implementations of the computer 1302 and the described functionality. For example, application 1308 can serve as one or more components, modules, or applications. Further, although illustrated as a single application 1308, the application 1308 can be implemented as multiple applications 1308 on the computer 1302. In addition, although illustrated as internal to the computer 1302, in alternative implementations, the application 1308 can be external to the computer 1302.
The computer 1302 can also include a power supply 1314. The power supply 1014 can include a rechargeable or non-rechargeable battery that can be configured to be either user- or non-user-replaceable. In some implementations, the power supply 1314 can include power-conversion and management circuits, including recharging, standby, and power management functionalities. In some implementations, the power-supply 1314 can include a power plug to allow the computer 1302 to be plugged into a wall socket or a power source to, for example, power the computer 1302 or recharge a rechargeable battery.
There can be any number of computers 1302 associated with, or external to, a computer system containing computer 1302, with each computer 1302 communicating over network 1330. Further, the terms “client,” “user,” and other appropriate terminology can be used interchangeably, as appropriate, without departing from the scope of the present disclosure. Moreover, the present disclosure contemplates that many users can use one computer 1302 and one user can use multiple computers 1302.
Implementations of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Software implementations of the described subject matter can be implemented as one or more computer programs. Each computer program can include one or more modules of computer program instructions encoded on a tangible, non-transitory, computer-readable computer-storage medium for execution by, or to control the operation of, data processing apparatus. Alternatively, or additionally, the program instructions can be encoded in/on an artificially generated propagated signal. The example, the signal can be a machine-generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to receiver apparatus for execution by a data processing apparatus. The computer-storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of computer-storage mediums.
The terms “data processing apparatus,” “computer,” and “electronic computer device” (or equivalent as understood by one of ordinary skill in the art) refer to data processing hardware. For example, a data processing apparatus can encompass all kinds of apparatus, devices, and machines for processing data, including by way of example, a programmable processor, a computer, or multiple processors or computers. The apparatus can also include special purpose logic circuitry including, for example, a central processing unit (CPU), a field programmable gate array (FPGA), or an application-specific integrated circuit (ASIC). In some implementations, the data processing apparatus or special purpose logic circuitry (or a combination of the data processing apparatus or special purpose logic circuitry) can be hardware-or software-based (or a combination of both hardware-and software-based). The apparatus can optionally include code that creates an execution environment for computer programs, for example, code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of execution environments. The present disclosure contemplates the use of data processing apparatuses with or without conventional operating systems, for example, LINUX, UNIX, WINDOWS, MAC OS, ANDROID, or IOS.
A computer program, which can also be referred to or described as a program, software, a software application, a module, a software module, a script, or code, can be written in any form of programming language. Programming languages can include, for example, compiled languages, interpreted languages, declarative languages, or procedural languages. Programs can be deployed in any form, including as stand-alone programs, modules, components, subroutines, or units for use in a computing environment. A computer program can, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data, for example, one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files storing one or more modules, sub-programs, or portions of code. A computer program can be deployed for execution on one computer or on multiple computers that are located, for example, at one site or distributed across multiple sites that are interconnected by a communication network. While portions of the programs illustrated in the various figures may be shown as individual modules that implement the various features and functionality through various objects, methods, or processes, the programs can instead include a number of sub-modules, third-party services, components, and libraries. Conversely, the features and functionality of various components can be combined into single components as appropriate. Thresholds used to make computational determinations can be statically, dynamically, or both statically and dynamically determined.
The methods, processes, or logic flows described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The methods, processes, or logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, for example, a CPU, an FPGA, or an ASIC.
Computers suitable for the execution of a computer program can be based on one or more of general and special purpose microprocessors and other kinds of CPUs. The elements of a computer are a CPU for performing or executing instructions and one or more memory devices for storing instructions and data. Generally, a CPU can receive instructions and data from (and write data to) a memory. A computer can also include, or be operatively coupled to, one or more mass storage devices for storing data. In some implementations, a computer can receive data from, and transfer data to, the mass storage devices including, for example, magnetic, magneto-optical disks, or optical disks. Moreover, a computer can be embedded in another device, for example, a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device such as a universal serial bus (USB) flash drive.
Computer-readable media (transitory or non-transitory, as appropriate) suitable for storing computer program instructions and data can include all forms of permanent/non-permanent and volatile/non-volatile memory, media, and memory devices. Computer-readable media can include, for example, semiconductor memory devices such as random access memory (RAM), read-only memory (ROM), phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory devices. Computer-readable media can also include, for example, magnetic devices such as tape, cartridges, cassettes, and internal/removable disks. Computer-readable media can also include magneto-optical disks and optical memory devices and technologies including, for example, digital video disc (DVD), CD-ROM, DVD+/-R, DVD-RAM, DVD-ROM, HD-DVD, and BLURAY. The memory can store various objects or data, including caches, classes, frameworks, applications, modules, backup data, jobs, web pages, web page templates, data structures, database tables, repositories, and dynamic information. Types of objects and data stored in memory can include parameters, variables, algorithms, instructions, rules, constraints, and references. Additionally, the memory can include logs, policies, security or access data, and reporting files. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
Implementations of the subject matter described in the present disclosure can be implemented on a computer having a display device for providing interaction with a user, including displaying information to (and receiving input from) the user. Types of display devices can include, for example, a cathode ray tube (CRT), a liquid crystal display (LCD), a light-emitting diode (LED), and a plasma monitor. Display devices can include a keyboard and pointing devices including, for example, a mouse, a trackball, or a trackpad. User input can also be provided to the computer through the use of a touchscreen, such as a tablet computer surface with pressure sensitivity or a multi-touch screen using capacitive or electric sensing. Other kinds of devices can be used to provide for interaction with a user, including to receive user feedback including, for example, sensory feedback including visual feedback, auditory feedback, or tactile feedback. Input from the user can be received in the form of acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to, and receiving documents from, a device that is used by the user. For example, the computer can send web pages to a web browser on a user's client device in response to requests received from the web browser.
The term “graphical user interface,” or “GUI,” can be used in the singular or the plural to describe one or more graphical user interfaces and each of the displays of a particular graphical user interface. Therefore, a GUI can represent any graphical user interface, including, but not limited to, a web browser, a touch screen, or a command line interface (CLI) that processes information and efficiently presents the information results to the user. In general, a GUI can include a plurality of user interface (UI) elements, some or all associated with a web browser, such as interactive fields, pull-down lists, and buttons. These and other UI elements can be related to or represent the functions of the web browser.
Implementations of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, for example, as a data server, or that includes a middleware component, for example, an application server. Moreover, the computing system can include a front-end component, for example, a client computer having one or both of a graphical user interface or a Web browser through which a user can interact with the computer. The components of the system can be interconnected by any form or medium of wireline or wireless digital data communication (or a combination of data communication) in a communication network. Examples of communication networks include a local area network (LAN), a radio access network (RAN), a metropolitan area network (MAN), a wide area network (WAN), Worldwide Interoperability for Microwave Access (WIMAX), a wireless local area network (WLAN) (for example, using 802.11 a/b/g/n or 802.20 or a combination of protocols), all or a portion of the Internet, or any other communication system or systems at one or more locations (or a combination of communication networks). The network can communicate with, for example, Internet Protocol (IP) packets, frame relay frames, asynchronous transfer mode (ATM) cells, voice, video, data, or a combination of communication types between network addresses.
Wireless connections within the scope of the present disclosure include wireless protocols, such as, 802.15 protocols (e.g., a BLUETOOTH®), 802.11 protocols, 802.20 protocols (e.g., WI-FI®), or a combination of different wireless protocols.
The computing system can include clients and servers. A client and server can generally be remote from each other and can typically interact through a communication network. The relationship of client and server can arise by virtue of computer programs running on the respective computers and having a client-server relationship.
Cluster file systems can be any file system type accessible from multiple servers for read and update. Locking or consistency tracking may not be necessary since the locking of exchange file system can be done at application layer. Furthermore, Unicode data files can be different from non-Unicode data files.
While this specification contains many specific implementation details, these should not be construed as limitations on the scope of what may be claimed, but rather as descriptions of features that may be specific to particular implementations. Certain features that are described in this specification in the context of separate implementations can also be implemented, in combination, in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations, separately, or in any suitable sub-combination. Moreover, although previously described features may be described as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can, in some cases, be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.
Particular implementations of the subject matter have been described. Other implementations, alterations, and permutations of the described implementations are within the scope of the following claims as will be apparent to those skilled in the art. While operations are depicted in the drawings or claims in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed (some operations may be considered optional), to achieve desirable results. In certain circumstances, multitasking or parallel processing (or a combination of multitasking and parallel processing) may be advantageous and performed as deemed appropriate.
Moreover, the separation or integration of various system modules and components in the previously described implementations should not be understood as requiring such separation or integration in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Accordingly, the previously described example implementations do not define or constrain the present disclosure. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of the present disclosure.
Furthermore, any claimed implementation is considered to be applicable to at least a computer-implemented method; a non-transitory, computer-readable medium storing computer-readable instructions to perform the computer-implemented method; and a computer system comprising a computer memory interoperably coupled with a hardware processor configured to perform the computer-implemented method or the instructions stored on the non-transitory, computer-readable medium.
While the above describes example implementations of the present disclosure, these descriptions should not be viewed in a limiting sense. Rather, other variations and modifications may be made without departing from the scope and spirit of the present disclosure as defined in the appended claims.