Bulldozers and trailers are motorized machines for moving soil, sand, snow, rubble, or rock during construction work. Many bulldozers and trailers are configured to accept a ripper, which is a large hooked device pivotably actuatable between an first configuration for storage and transportation, and a second configuration to dig within and loosen dense soils.
In one aspect, disclosed herein is a computer-implemented method of operating a ripper attached to a machine, comprising: setting, by a computer, a depth of the ripper to an initial depth; monitoring, by the computer, a ground speed and an acceleration rate of the machine; and automatically adjusting, by the computer, the depth of the ripper, based at least in part on the acceleration rate, to maintain a target ground speed of the machine.
In some embodiments, the automatically adjusting the depth comprises raising the ripper to a first target depth if the acceleration rate has a negative value. In some embodiments, the automatically adjusting the depth comprises lowering the ripper to a second target depth if the acceleration rate has a positive value. In some embodiments, the first target depth is less than the initial depth, and wherein the second target depth is greater than the initial depth. In some embodiments, a target depth for the ripper is calculated based at least in part on a coefficient and the acceleration rate. In some embodiments, the target depth increases when the acceleration rate has a positive value. In some embodiments, the target depth decreases when the acceleration rate has a negative value. In some embodiments, a target depth of the ripper is calculated based at least in part on a product of the acceleration rate and a coefficient. In some embodiments, the target depth has a proportional relationship to the acceleration rate. In some embodiments, the method further comprises, prior to setting the depth of the ripper, determining the coefficient based at least in part on material of the ground. In some embodiments, the target depth is dependent at least in part on a pitch of the machine, a roll of the machine, or both. In some embodiments, the target depth is calculated based at least in part on a machine learning algorithm. In some embodiments, the machine learning algorithm is tuned based at least in part on a hyperparameter. In some embodiments, the method further comprises determining a density level of the ground in a vicinity of the machine. In some embodiments, the method further comprises monitoring a roll of the machine, a pitch of the machine, or both, wherein the depth of the ripper is determined based at least in part on the pitch, the roll, or both and the acceleration rate. In some embodiments, the machine includes an excavator, a grader, a loader, crawler, or a bulldozer. In some embodiments, the ripper is attached to a rear end of the machine. In some embodiments, the method further comprises lowering the ripper on a steeper slope when the ripper is going downhill. In some embodiments, the method further comprises raising the ripper when the ground speed is slower than a target ground speed. In some embodiments, the method further comprises lowering the ripper when the ground speed is faster than the target ground speed.
Another aspect provided herein is a computer-implemented system comprising: a digital processing device comprising: at least one processor, an operating system configured to perform executable instructions, a memory, and a computer program including instructions executable by the digital processing device to create an application for operating a ripper attached to a machine, the application comprising: a module setting a depth of the ripper to an initial depth; a module monitoring a ground speed and an acceleration rate of the machine; and a module automatically adjusting the depth of the ripper, based at least in part on the acceleration rate, to maintain a target ground speed of the machine.
In some embodiments, the module automatically adjusts the depth by raising the ripper to a first target depth if the acceleration rate has a negative value. In some embodiments, the module automatically adjusts the depth by lowering the ripper to a second target depth if the acceleration rate has a positive value. In some embodiments, the first target depth is less than the initial depth, and wherein the second target depth is greater than the initial depth. In some embodiments, a target depth for the ripper is calculated based at least in part on a coefficient and the acceleration rate. In some embodiments, the target depth increases when the acceleration rate has a positive value. In some embodiments, the target depth decreases when the acceleration rate has a negative value. In some embodiments, a target depth of the ripper is calculated based at least in part on a product of the acceleration rate and a coefficient. In some embodiments, the target depth has a proportional relationship to the acceleration rate. In some embodiments, the application further comprises a module, a module determining, prior to setting the depth of the ripper, the coefficient based at least in part on material of the ground. In some embodiments, the target depth is dependent at least in part on a pitch of the machine, a roll of the machine, or both. In some embodiments, the target depth is calculated based at least in part on a machine learning algorithm. In some embodiments, the machine learning algorithm is tuned based at least in part on a hyperparameter. In some embodiments, the application further comprises a module determining a density level of the ground in a vicinity of the machine. In some embodiments, the application further comprises a module monitoring a roll of the machine, a pitch of the machine, or both, wherein the depth of the ripper is determined based at least in part on the pitch, the roll, or both and the acceleration rate. In some embodiments, the machine includes an excavator, a grader, a loader, crawler, or a bulldozer. In some embodiments, the ripper is attached to a rear end of the machine. In some embodiments, the application further comprises a module lowering the ripper on a steeper slope when the ripper is going downhill. In some embodiments, the application further comprises a module raising the ripper when the ground speed is slower than a target ground speed. In some embodiments, the application further comprises a module lowering the ripper when the ground speed is faster than the target ground speed.
Another aspect provided herein is a non-transitory computer-readable storage media encoded with a computer program including instructions executable by a processor to create an application for operating a ripper attached to a machine, the application comprising: a module setting a depth of the ripper to an initial depth; a module monitoring a ground speed and an acceleration rate of the machine; and a module automatically adjusting the depth of the ripper, based at least in part on the acceleration rate, to maintain a target ground speed of the machine.
In some embodiments, the module automatically adjusts the depth by raising the ripper to a first target depth if the acceleration rate has a negative value. In some embodiments, the module automatically adjusts the depth by lowering the ripper to a second target depth if the acceleration rate has a positive value. In some embodiments, the first target depth is less than the initial depth, and wherein the second target depth is greater than the initial depth. In some embodiments, a target depth for the ripper is calculated based at least in part on a coefficient and the acceleration rate. In some embodiments, the target depth increases when the acceleration rate has a positive value. In some embodiments, the target depth decreases when the acceleration rate has a negative value. In some embodiments, a target depth of the ripper is calculated based at least in part on a product of the acceleration rate and a coefficient. In some embodiments, the target depth has a proportional relationship to the acceleration rate. In some embodiments, the application further comprises a module, a module determining, prior to setting the depth of the ripper, the coefficient based at least in part on material of the ground. In some embodiments, the target depth is dependent at least in part on a pitch of the machine, a roll of the machine, or both. In some embodiments, the target depth is calculated based at least in part on a machine learning algorithm. In some embodiments, the machine learning algorithm is tuned based at least in part on a hyperparameter. In some embodiments, the application further comprises a module determining a density level of the ground in a vicinity of the machine. In some embodiments, the application further comprises a module monitoring a roll of the machine, a pitch of the machine, or both, wherein the depth of the ripper is determined based at least in part on the pitch, the roll, or both and the acceleration rate. In some embodiments, the machine includes an excavator, a grader, a loader, crawler, or a bulldozer. In some embodiments, the ripper is attached to a rear end of the machine. In some embodiments, the application further comprises a module lowering the ripper on a steeper slope when the ripper is going downhill. In some embodiments, the application further comprises a module raising the ripper when the ground speed is slower than a target ground speed. In some embodiments, the application further comprises a module lowering the ripper when the ground speed is faster than the target ground speed.
The novel features of the disclosure are set forth with particularity in the appended claims. A better understanding of the features and advantages of the present disclosure will be obtained by reference to the following detailed description that sets forth illustrative embodiments, in which the principles of the disclosure are utilized, and the accompanying drawings of which:
Grading is the process of reshaping land at a construction site. This can include raising or lowering ground levels, adding or removing slopes or leveling the ground surface. In general, grading is performed to create proper drainage and/or preparing land to bear weight, such as buildings, roads, and other structures. Grading varies depending on each project's scale and needs and often involves leveling the land to prepare for building construction or landscaping. Proper grading can confer several benefits. For example, grading can help prevent pooling of water and other liquids that can damage grass or attract mosquitos. It also prevents water from running into buildings, avoiding expensive structural damage. Proper grading can also prevent future construction issues because laying a foundation on unlevel ground, for example, can become costly to repair. A bulldozer blade is efficient at moving loose soil from a worksite. However, to remove large quantities of impacted or solidified earth, a ripper attachment is often employed.
Grading can be challenging for various reasons. First, grading by a human operator often involves estimating the depth at which the grading is occurring and cause potential safety issues, as the grading requires heavy machinery like bulldozers. Also, grading requires manipulating the earth which can vary in soil type, slope, drainage, and groundwater levels. These factors can cause grading to be challenging to control the ripper accurately and consistently, which can lead to repetitious inefficiencies, and damage to the ripper and/or bulldozer. Furthermore, autonomously operating components/tools or extensions of the earth-moving vehicle (EMV) is critical to fully automating the operation of the EMV, which can confer other benefits such as removing dangerous conditions and increasing productivity that can lead to completing projects faster and with greater safety.
As such, provided herein are methods, systems, and media for operating a ripper attached to a machine.
Provided herein are computer-implemented methods, systems, and media for operating a tool (e.g., a ripper) attached to a machine. In some embodiments, per
In some embodiments, the methods and applications herein can maintain the ripper 210 at the initial depth 222 if the speed of the machine 200 is constant (e.g., the machine is neither accelerating nor decelerating). In some embodiments, the methods and applications herein can raise the ripper 210 to the first depth 221 if the speed of the machine 200 decreases below the target ground speed (e.g., the machine is decelerating, wherein its acceleration is negative). In some embodiments, the methods and applications herein can lower the ripper 210 to the second depth 223 if the speed of the machine 200 increases above the target ground speed (e.g., the machine is accelerating, wherein its acceleration is positive).
In some embodiments, the machine 200 can include an excavator, a grader, a loader, crawler, a bulldozer, or any machine that can have a tool attached thereto. In some embodiments, the ripper 210 can be attached to a rear end of the machine 200. In some embodiments, the ripper 210 can be rotatably coupled to a rear end of the machine 200 about one or more axes. In some embodiments, the acceleration of the machine 200 can be calculated in a direction of travel of the machine 200 away from the ripper 210 is rotatably coupled to a rear end of the machine 200.
In some embodiments, the methods and applications herein can maintain the ripper at a target depth if the speed of the machine is constant (e.g., the machine is neither accelerating nor decelerating). In some embodiments, the methods and applications herein can decrease the depth of the ripper if the speed of the machine decreases below the target ground speed (e.g., the machine is decelerating, wherein its acceleration is negative). In some embodiments, the methods and applications herein can increase the depth of the ripper if the speed of the machine increases above the target ground speed (e.g., the machine is accelerating, wherein its acceleration is positive).
In some embodiments, the methods and applications herein can increase the depth of the ripper when the acceleration rate has a positive value (e.g., the machine is accelerating as its speed increases). In some embodiments, the methods and applications herein can decrease the depth of the ripper when the acceleration rate has a negative value (e.g., the machine is decelerating as its speed decreases). In some embodiments, increasing the depth of the ripper can increase a drag force on the ripper to reduce the acceleration of the machine. In some embodiments, decreasing the depth of the ripper can decrease a drag force on the ripper to increase the acceleration of the machine.
In some embodiments, the machine can comprise an accelerometer configured to measure the pitch, the roll, or both, of the machine. In some embodiments, the pitch and the roll of the machine can be measured as 0 degrees when the machine is on a flat surface (e.g., without inclines or declines). In some embodiments, per
In some embodiments, the methods and applications herein can increase the depth of the ripper when the pitch is below a set negative angular threshold (e.g., when the machine is traversing a downwards slope). In some embodiments, the methods and applications herein can increase the depth of the ripper when the pitch is above a set positive angular threshold (e.g., when the machine is traversing an upwards slope). In some embodiments, increasing the depth of the ripper can increase a drag force on the ripper to accommodate for a positive acceleration due to gravity on a downwards slope. In some embodiments, decreasing the depth of the ripper can decrease a drag force on the ripper to accommodate for a negative acceleration due to gravity on an upwards slope.
In some embodiments, the methods and applications herein can increase the depth of the ripper when the roll is above a set positive angular threshold or below a set negative angular threshold (e.g., when the machine is tipping towards the left or right). In some embodiments, the methods and applications herein can decrease the depth of the ripper when the roll is between a set positive angular threshold and a set negative angular threshold (e.g., when the machine's tipping angle is insignificant). In some embodiments, increasing the depth of the ripper can increase a drag force on the ripper to help prevent machine tip-over.
In some embodiments, the methods and applications herein can set the depth of the ripper based at least in part on a coefficient and the acceleration rate of the machine. In some embodiments, the methods and applications herein can set the depth of the ripper based at least in part on a sum of the acceleration rate and a coefficient, a product of the acceleration rate and a coefficient, or both. In some embodiments, the coefficient can be a positive number, wherein the depth of the ripper is proportional to the acceleration rate. In some embodiments, the coefficient can be a negative number, wherein the depth of the ripper is inversely proportional to the acceleration rate.
In some embodiments, the methods and applications herein can set the depth of the ripper based at least in part on a first coefficient associated the acceleration rate of the machine and a sum, product, or both, of one or more additional coefficients associated with, for example, the pitch of the machine, the roll of the machine, a size of the ripper, an air temperature, a ground temperature, a measured force applied to the ripper, and hardness of the ground. In some embodiments, the hardness of the ground, the air temperature, the ground temperature, the measured force applied to the ripper, or any combination thereof can be measured by one or more sensors coupled to the machine.
In one example, the target depth is calculated as:
wherein Dt is the target depth, C1-C5 are coefficients, G is a ground hardness, P is the pitch angle, and R is the roll angle.
In another example, the target depth is calculated as:
wherein Dt is the target depth, C1-C9 are coefficients, E1-E4 are exponents, G is the ground hardness, P is the pitch angle, and R is the roll angle.
In some embodiments, the target depth is calculated based at least in part on a machine learning algorithm. In some embodiments, the machine learning algorithm is tuned based at least in part on a hyperparameter. In some embodiments, the one or more coefficients, the one or more exponents, or both are determined by a machine learning algorithm.
Unless otherwise defined, all technical terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs.
As used herein, the singular forms “a,” “an,” and “the” include plural references unless the context clearly dictates otherwise. Any reference to “or” herein is intended to encompass “and/or” unless otherwise stated.
As used herein, the term “about” in some cases refers to an amount that is approximately the stated amount.
As used herein, the term “about” refers to an amount that is near the stated amount by 10%, 5%, or 1%, including increments therein.
As used herein, the term “about” in reference to a percentage refers to an amount that is greater or less the stated percentage by 10%, 5%, or 1%, including increments therein.
As used herein, the phrases “at least one”, “one or more”, and “and/or” are open-ended expressions that are both conjunctive and disjunctive in operation. For example, each of the expressions “at least one of A, B and C”, “at least one of A, B, or C”, “one or more of A, B, and C”, “one or more of A, B, or C” and “A, B, and/or C” means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B and C together.
Referring to
Computer system 400 may include one or more processors 401, a memory 403, and a storage 408 that communicate with each other, and with other components, via a bus 440. The bus 440 may also link a display 432, one or more input devices 433 (which may, for example, include a keypad, a keyboard, a mouse, a stylus, etc.), one or more output devices 434, one or more storage devices 435, and various tangible storage media 436. All of these elements may interface directly or via one or more interfaces or adaptors to the bus 440. For instance, the various tangible storage media 436 can interface with the bus 440 via storage medium interface 426. Computer system 400 may have any suitable physical form, including but not limited to one or more integrated circuits (ICs), printed circuit boards (PCBs), mobile handheld devices (such as mobile telephones or PDAs), laptop or notebook computers, distributed computer systems, computing grids, or servers.
Computer system 400 includes one or more processor(s) 401 (e.g., central processing units (CPUs) or general purpose graphics processing units (GPGPUs)) that carry out functions. Processor(s) 401 optionally contains a cache memory unit 402 for temporary local storage of instructions, data, or computer addresses. Processor(s) 401 are configured to assist in execution of computer readable instructions. Computer system 400 may provide functionality for the components depicted in
The memory 403 may include various components (e.g., machine readable media) including, but not limited to, a random access memory component (e.g., RAM 404) (e.g., static RAM (SRAM), dynamic RAM (DRAM), ferroelectric random access memory (FRAM), phase-change random access memory (PRAM), etc.), a read-only memory component (e.g., ROM 405), and any combinations thereof. ROM 405 may act to communicate data and instructions unidirectionally to processor(s) 401, and RAM 404 may act to communicate data and instructions bidirectionally with processor(s) 401. ROM 405 and RAM 404 may include any suitable tangible computer-readable media described below. In one example, a basic input/output system 406 (BIOS), including basic routines that help to transfer information between elements within computer system 400, such as during start-up, may be stored in the memory 403.
Fixed storage 408 is connected bidirectionally to processor(s) 401, optionally through storage control unit 407. Fixed storage 408 provides additional data storage capacity and may also include any suitable tangible computer-readable media described herein. Storage 408 may be used to store operating system 409, executable(s) 410, data 411, applications 412 (application programs), and the like. Storage 408 can also include an optical disk drive, a solid-state memory device (e.g., flash-based systems), or a combination of any of the above. Information in storage 408 may, in appropriate cases, be incorporated as virtual memory in memory 403.
In one example, storage device(s) 435 may be removably interfaced with computer system 400 (e.g., via an external port connector (not shown)) via a storage device interface 425. Particularly, storage device(s) 435 and an associated machine-readable medium may provide non-volatile and/or volatile storage of machine-readable instructions, data structures, program modules, and/or other data for the computer system 400. In one example, software may reside, completely or partially, within a machine-readable medium on storage device(s) 435. In another example, software may reside, completely or partially, within processor(s) 401.
Bus 440 connects a wide variety of subsystems. Herein, reference to a bus may encompass one or more digital signal lines serving a common function, where appropriate. Bus 440 may be any of several types of bus structures including, but not limited to, a memory bus, a memory controller, a peripheral bus, a local bus, and any combinations thereof, using any of a variety of bus architectures. As an example and not by way of limitation, such architectures include an Industry Standard Architecture (ISA) bus, an Enhanced ISA (EISA) bus, a Micro Channel Architecture (MCA) bus, a Video Electronics Standards Association local bus (VLB), a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-X) bus, an Accelerated Graphics Port (AGP) bus, HyperTransport (HTX) bus, serial advanced technology attachment (SATA) bus, and any combinations thereof.
Computer system 400 may also include an input device 433. In one example, a user of computer system 400 may enter commands and/or other information into computer system 400 via input device(s) 433. Examples of an input device(s) 433 include, but are not limited to, an alpha-numeric input device (e.g., a keyboard), a pointing device (e.g., a mouse or touchpad), a touchpad, a touch screen, a multi-touch screen, a joystick, a stylus, a gamepad, an audio input device (e.g., a microphone, a voice response system, etc.), an optical scanner, a video or still image capture device (e.g., a camera), and any combinations thereof. In some embodiments, the input device is a Kinect, Leap Motion, or the like. Input device(s) 433 may be interfaced to bus 440 via any of a variety of input interfaces 423 (e.g., input interface 423) including, but not limited to, serial, parallel, game port, USB, FIREWIRE, THUNDERBOLT, or any combination of the above.
In particular embodiments, when computer system 400 is connected to network 430, computer system 400 may communicate with other devices, specifically mobile devices and enterprise systems, distributed computing systems, cloud storage systems, cloud computing systems, and the like, connected to network 430. Communications to and from computer system 400 may be sent through network interface 420. For example, network interface 420 may receive incoming communications (such as requests or responses from other devices) in the form of one or more packets (such as Internet Protocol (IP) packets) from network 430, and computer system 400 may store the incoming communications in memory 403 for processing. Computer system 400 may similarly store outgoing communications (such as requests or responses to other devices) in the form of one or more packets in memory 403 and communicated to network 430 from network interface 420. Processor(s) 401 may access these communication packets stored in memory 403 for processing.
Examples of the network interface 420 include, but are not limited to, a network interface card, a modem, and any combination thereof. Examples of a network 430 or network segment 430 include, but are not limited to, a distributed computing system, a cloud computing system, a wide area network (WAN) (e.g., the Internet, an enterprise network), a local area network (LAN) (e.g., a network associated with an office, a building, a campus or other relatively small geographic space), a telephone network, a direct connection between two computing devices, a peer-to-peer network, and any combinations thereof. A network, such as network 430, may employ a wired and/or a wireless mode of communication. In general, any network topology may be used.
Information and data can be displayed through a display 432. Examples of a display 432 include, but are not limited to, a cathode ray tube (CRT), a liquid crystal display (LCD), a thin film transistor liquid crystal display (TFT-LCD), an organic liquid crystal display (OLED) such as a passive-matrix OLED (PMOLED) or active-matrix OLED (AMOLED) display, a plasma display, and any combinations thereof. The display 432 can interface to the processor(s) 401, memory 403, and fixed storage 408, as well as other devices, such as input device(s) 433, via the bus 440. The display 432 is linked to the bus 440 via a video interface 422, and transport of data between the display 432 and the bus 440 can be controlled via the graphics control 421. In some embodiments, the display is a video projector. In some embodiments, the display is a head-mounted display (HMD) such as a VR headset. In further embodiments, suitable VR headsets include, by way of non-limiting examples, HTC Vive, Oculus Rift, Samsung Gear VR, Microsoft HoloLens, Razer OSVR, FOVE VR, Zeiss VR One, Avegant Glyph, Freefly VR headset, and the like. In still further embodiments, the display is a combination of devices such as those disclosed herein.
In addition to a display 432, computer system 400 may include one or more other peripheral output devices 434 including, but not limited to, an audio speaker, a printer, a storage device, and any combinations thereof. Such peripheral output devices may be connected to the bus 440 via an output interface 424. Examples of an output interface 424 include, but are not limited to, a serial port, a parallel connection, a USB port, a FIREWIRE port, a THUNDERBOLT port, and any combinations thereof.
In addition or as an alternative, computer system 400 may provide functionality as a result of logic hardwired or otherwise embodied in a circuit, which may operate in place of or together with software to execute one or more processes or one or more steps of one or more processes described or illustrated herein. Reference to software in this disclosure may encompass logic, and reference to logic may encompass software. Moreover, reference to a computer-readable medium may encompass a circuit (such as an IC) storing software for execution, a circuit embodying logic for execution, or both, where appropriate. The present disclosure encompasses any suitable combination of hardware, software, or both.
Those of skill in the art will appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality.
The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by one or more processor(s), or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.
In accordance with the description herein, suitable computing devices include, by way of non-limiting examples, cloud computing platforms, distributed computing platforms, server clusters, server computers, desktop computers, laptop computers, notebook computers, sub-notebook computers, netbook computers, netpad computers, set-top computers, media streaming devices, handheld computers, Internet appliances, tablet computers, personal digital assistants, and vehicles. Those of skill in the art will also recognize that select televisions, video players, and digital music players with optional computer network connectivity are suitable for use in the system described herein. Suitable tablet computers, in various embodiments, include those with booklet, slate, and convertible configurations, known to those of skill in the art.
In some embodiments, the computing device includes an operating system configured to perform executable instructions. The operating system is, for example, software, including programs and data, which manages the device's hardware and provides services for execution of applications. Those of skill in the art will recognize that suitable server operating systems include, by way of non-limiting examples, FreeBSD, OpenBSD, NetBSD®, Linux, Apple® Mac OS X Server®, Oracle® Solaris®, Windows Server®, and Novell® NetWare®. Those of skill in the art will recognize that suitable personal computer operating systems include, by way of non-limiting examples, Microsoft® Windows®, Apple® Mac OS X®, UNIX®, and UNIX-like operating systems such as GNU/Linux®. In some embodiments, the operating system is provided by cloud computing.
In some embodiments, the platforms, systems, media, and methods disclosed herein include one or more non-transitory computer readable storage media encoded with a program including instructions executable by the operating system of an optionally networked computing device. In further embodiments, a computer readable storage medium is a tangible component of a computing device. In still further embodiments, a computer readable storage medium is optionally removable from a computing device. In some embodiments, a computer readable storage medium includes, by way of non-limiting examples, CD-ROMs, DVDs, flash memory devices, solid state memory, magnetic disk drives, magnetic tape drives, optical disk drives, distributed computing systems including cloud computing systems and services, and the like. In some cases, the program and instructions are permanently, substantially permanently, semi-permanently, or non-transitorily encoded on the media.
In some embodiments, the platforms, systems, media, and methods disclosed herein include at least one computer program, or use of the same. A computer program includes a sequence of instructions, executable by one or more processor(s) of the computing device's CPU, written to perform a specified task. Computer readable instructions may be implemented as program modules, such as functions, objects, Application Programming Interfaces (APIs), computing data structures, and the like, which perform particular tasks or implement particular abstract data types. In light of the disclosure provided herein, those of skill in the art will recognize that a computer program may be written in various versions of various languages.
The functionality of the computer readable instructions may be combined or distributed as desired in various environments. In some embodiments, a computer program comprises one sequence of instructions. In some embodiments, a computer program comprises a plurality of sequences of instructions. In some embodiments, a computer program is provided from one location. In other embodiments, a computer program is provided from a plurality of locations. In various embodiments, a computer program includes one or more software modules. In various embodiments, a computer program includes, in part or in whole, one or more web applications, one or more mobile applications, one or more standalone applications, extensions, add-ins, or add-ons, or combinations thereof.
In some embodiments, a computer program includes a web application. In light of the disclosure provided herein, those of skill in the art will recognize that a web application, in various embodiments, utilizes one or more software frameworks and one or more database systems. In some embodiments, a web application is created upon a software framework such as Microsoft®.NET or Ruby on Rails (RoR). In some embodiments, a web application utilizes one or more database systems including, by way of non-limiting examples, relational, non-relational, object oriented, associative, and XML database systems. In further embodiments, suitable relational database systems include, by way of non-limiting examples, Microsoft® SQL Server, mySQL™, and Oracle®. Those of skill in the art will also recognize that a web application, in various embodiments, is written in one or more versions of one or more languages. A web application may be written in one or more markup languages, presentation definition languages, client-side scripting languages, server-side coding languages, database query languages, or combinations thereof. In some embodiments, a web application is written to some extent in a markup language such as Hypertext Markup Language (HTML), Extensible Hypertext Markup Language (XHTML), or extensible Markup Language (XML). In some embodiments, a web application is written to some extent in a presentation definition language such as Cascading Style Sheets (CSS). In some embodiments, a web application is written to some extent in a client-side scripting language such as Asynchronous Javascript and XML (AJAX), Flash® ActionScript, JavaScript, or Silverlight®. In some embodiments, a web application is written to some extent in a server-side coding language such as Active Server Pages (ASP), ColdFusion®, Perl, Java™, JavaServer Pages (JSP), Hypertext Preprocessor (PHP), Python™, Ruby, Tcl, Smalltalk, WebDNA®, or Groovy. In some embodiments, a web application is written to some extent in a database query language such as Structured Query Language (SQL). In some embodiments, a web application integrates enterprise server products such as IBM® Lotus Domino®. In some embodiments, a web application includes a media player element. In various further embodiments, a media player element utilizes one or more of many suitable multimedia technologies including, by way of non-limiting examples, Adobe® Flash®, HTML 5, Apple® QuickTime®, Microsoft® Silverlight®, Java™, and Unity®.
Referring to
Referring to
In some embodiments, a computer program includes a mobile application provided to a mobile computing device. In some embodiments, the mobile application is provided to a mobile computing device at the time it is manufactured. In other embodiments, the mobile application is provided to a mobile computing device via the computer network described herein.
In view of the disclosure provided herein, a mobile application is created by techniques known to those of skill in the art using hardware, languages, and development environments known to the art. Those of skill in the art will recognize that mobile applications are written in several languages. Suitable programming languages include, by way of non-limiting examples, C, C++, C#, Objective-C, Java™, JavaScript, Pascal, Object Pascal, Python™, Ruby, VB.NET, WML, and XHTML/HTML with or without CSS, or combinations thereof.
Suitable mobile application development environments are available from several sources. Commercially available development environments include, by way of non-limiting examples, AirplaySDK, alcheMo, Appcelerator®, Celsius, Bedrock, Flash Lite, .NET Compact Framework, Rhomobile, and WorkLight Mobile Platform. Other development environments are available without cost including, by way of non-limiting examples, Lazarus, MobiFlex, MoSync, and PhoneGap.
In some embodiments, a computer program includes a standalone application, which is a program that is run as an independent computer process, not an add-on to an existing process, e.g., not a plug-in. Those of skill in the art will recognize that standalone applications are often compiled. A compiler is a computer program(s) that transforms source code written in a programming language into binary object code such as assembly language or machine code. Suitable compiled programming languages include, by way of non-limiting examples, C, C++, Objective-C, COBOL, Delphi, Eiffel, Java™, Lisp, Python™, Visual Basic, and VB.NET, or combinations thereof. Compilation is often performed, at least in part, to create an executable program. In some embodiments, a computer program includes one or more executable complied applications.
In some embodiments, the platforms, systems, media, and methods disclosed herein include software, server, and/or database modules, or use of the same. In view of the disclosure provided herein, software modules are created by techniques known to those of skill in the art using machines, software, and languages known to the art. The software modules disclosed herein are implemented in a multitude of ways. In various embodiments, a software module comprises a file, a section of code, a programming object, a programming structure, or combinations thereof. In further various embodiments, a software module comprises a plurality of files, a plurality of sections of code, a plurality of programming objects, a plurality of programming structures, or combinations thereof. In various embodiments, the one or more software modules comprise, by way of non-limiting examples, a web application, a mobile application, and a standalone application. In some embodiments, software modules are in one computer program or application. In other embodiments, software modules are in more than one computer program or application. In some embodiments, software modules are hosted on one machine. In other embodiments, software modules are hosted on more than one machine. In further embodiments, software modules are hosted on a distributed computing platform such as a cloud computing platform. In some embodiments, software modules are hosted on one or more machines in one location. In other embodiments, software modules are hosted on one or more machines in more than one location.
In some embodiments, the platforms, systems, media, and methods disclosed herein include one or more databases, or use of the same. In view of the disclosure provided herein, those of skill in the art will recognize that many databases are suitable for storage and retrieval of slope, acceleration, and soil information. In various embodiments, suitable databases include, by way of non-limiting examples, relational databases, non-relational databases, object oriented databases, object databases, entity-relationship model databases, associative databases, and XML databases. Further non-limiting examples include SQL, PostgreSQL, MySQL, Oracle, DB2, and Sybase. In some embodiments, a database is internet-based. In further embodiments, a database is web-based. In still further embodiments, a database is cloud computing-based. In a particular embodiment, a database is a distributed database. In other embodiments, a database is based on one or more local computer storage devices.
In some embodiments, machine learning algorithms are utilized to determine a depth of a ripper of a machine. In some embodiments, machine learning algorithms are utilized to determine the depth of a ripper of a machine based on an acceleration or deceleration of the machine. In some embodiments, machine learning algorithms are utilized to determine the depth of a ripper of a machine based on an acceleration or deceleration of the machine, a roll of the machine, a pitch of the machine, a ground hardness, or any combination thereof.
In some embodiments, the machine learning algorithms herein employ one or more forms of labels including but not limited to human annotated labels and semi-supervised labels. In some embodiments, the machine learning algorithm utilizes regression modeling, wherein relationships between predictor variables and dependent variables are determined and weighted. In one embodiment, for example, the depth of the ripper is a dependent variable and is derived from the at least the acceleration of the machine. In another embodiment, for example, the depth of the ripper is a dependent variable and is derived from an acceleration or deceleration of the machine, a roll of the machine, a pitch of the machine, a ground hardness, or any combination thereof.
In some embodiments, the depth of the ripper is determined detected using a distant supervision method. The distant supervision method can create a large training set seeded by a small hand-annotated training set. The distant supervision method can comprise positive-unlabeled learning with the training set as the ‘positive’ class. The distant supervision method can employ a logistic regression model, a recurrent neural network, or both.
Examples of machine learning algorithms can include a support vector machine (SVM), a naïve Bayes classification, a random forest, a neural network, deep learning, or other supervised learning algorithm or unsupervised learning algorithm for classification and regression. The machine learning algorithms can be trained using one or more training datasets.
In some embodiments, a machine learning algorithm is used to select catalogue images and recommend project scope. A non-limiting example of a multi-variate linear regression model algorithm is seen below: probability=A0+A1(X1)+A2(X2)+A3(X3)+A4(X4)+A5(X5)+A6(X6)+A7(X7) . . . wherein Ai (A1, A2, A3, A4, A5, A6, A7, . . . ) are “weights” or coefficients found during the regression modeling; and Xi (X1, X2, X3, X4, X5, X6, X7, . . . ) are data collected from the User. Any number of Ai and Xi variable can be included in the model. For example, in a non-limiting example wherein there are 7 Xi terms, X1 is the number of property record depictions, X2 is the number of potential accessory dwelling unit landmarks, and X3 is the probability that the accessory dwelling unit can be constructed on the property. In some embodiments, the programming language “R” is used to run the model.
The following illustrative examples are representative of embodiments of the software applications, systems, and methods described herein and are not meant to be limiting in any way.
In one example, the machine is traveling at a target ground speed of 5 miles per hour (mph) with its ripper extending 2 feet below the surface of the soil. As the machine decelerates to 3 mph, the ripper is raised to extend 1.5 feet below the surface of the soil. As the machine accelerates to 6 mph, the ripper is lowered to extend 2.5 feet below the surface of the soil. As the machine detects a positive pitch while it is driving uphill, the ripper is raised to extend 1.5 feet below the surface of the soil to maintain the speed of the machine at 5 mph. As the machine detects a negative pitch while it is driving downhill, the ripper is lowered to extend 2.5 feet below the surface of the soil to maintain the speed of the machine at 5 mph. As the machine detects a negative roll of less than −10 degrees, the ripper is lowered to extend 2.5 feet below the surface of the soil to prevent the machine from tipping over. As the machine detects a positive roll of more than 10 degrees, the ripper is lowered to extend 2.5 feet below the surface of the soil to prevent the machine from tipping over.
While preferred embodiments of the present disclosure have been shown and described herein, it will be obvious to those skilled in the art that such embodiments are provided by way of example only. Numerous variations, changes, and substitutions will now occur to those skilled in the art without departing from the disclosure. It should be understood that various alternatives to the embodiments of the disclosure described herein may be employed in practicing the disclosure.