Patent Description:
Many warehouse environments utilize one or more forklifts and/or other vehicles for moving products into, out of, and within the warehouse. Accordingly, many current solutions utilize a vehicle operator to determine which products need to be moved and to where those products will be moved. While the vehicle operators may be capable of sufficiently navigating the vehicle to perform the desired tasks, oftentimes, vehicle operators make mistakes, take inefficient routes, and/or otherwise slow the process. As such, many current solutions provide semi-automated and/or fully automated operation of the vehicle. While semi-automated and fully automated operation may provide additional options, oftentimes, system failures arise due to miscommunication between a navigation system and a vehicle control system. <CIT> discloses a forklift able to determine a vehicle limit (e.g. preventing too tight a turn, too abrupt a braking action). The forklift can be driven by an operator or with a guide wire system. Switching between one and the other kind of operation is not disclosed. <CIT> discloses discloses a forklift having a navigation system able to determine the path from the destination, and able to follow the path. This applies to both manned and automatically guided vehicles but the document does not disclose the possibility of switching from manned to automatic driving modes.

Dependent claims provide advantageous embodiments.

The embodiments set forth in the drawings are illustrative and exemplary in nature.

<FIG> depicts a computing environment for providing vehicle control limits, according to one or more embodiments shown and described herein. As illustrated, a network <NUM> may facilitate communication among a navigation system <NUM>, a remote computing device <NUM>, and a vehicle <NUM>. The network <NUM> may include a wired and/or wireless local area network, wide area network, and/or other type of network for communicating information. The navigation system <NUM> may be configured as a server or other computing device and may be located at a warehouse or other environment. The navigation system <NUM> may be configured for sending navigation to the vehicle <NUM> and/or receiving navigation data from the vehicle <NUM>. Additionally, the remote computing device <NUM>, which may be implemented as a management computing device or other system, may be configured for processing work orders. The work orders may identify the location of a product that needs to be moved and/or provide other similar information. With the work order information, the navigation system <NUM> and/or remote computing device <NUM> may be configured to determine a vehicle for performing the desired task. Additionally, the navigation system <NUM> may determine an order of priority that tasks are performed by a particular vehicle <NUM>. The navigation system <NUM> may communicate with the vehicle <NUM> to determine the location of the vehicle <NUM>. With the location of the vehicle <NUM>, the navigation system <NUM> may more efficiently assign tasks to the vehicle <NUM>. In accordance with the invention, the vehicle receives a predetermined destination. In examples, the communication between the navigation system <NUM> and the vehicle <NUM> may include sending the predetermined destination and/or routing data to the vehicle <NUM>. The routing data may include a plurality of lines and arcs for reaching a predetermined destination from the current location of the vehicle <NUM>. In some embodiments, however, the vehicle <NUM> receives coordinates of the predetermined destination and determines its own routing to reach those coordinates.

Also included is the remote computing device <NUM>. The remote computing device <NUM> may also be configured as a server or other computing device and may be configured to provide the navigation system <NUM> with the work orders, and/or other information. In some embodiments, the remote computing device <NUM> may be located on the same premises as the navigation system <NUM>, while in some embodiments the remote computing device <NUM> may be located remotely from the navigation system <NUM>. Similarly, depending on the particular embodiment, the remote computing device <NUM> may be configured to service one or more different environments and communicate with one or more different navigation systems.

<FIG> also includes the vehicle <NUM>. The vehicle <NUM> may be configured as a warehouse vehicle, such as a forklift, truck, etc. Additionally, the vehicle <NUM> includes one or more vehicle control systems, such as a steering system, a braking system, a traction system, etc. The vehicle <NUM> also includes a user interface, location tracking sensors (such as laser sensors, light sensors, etc.), and vehicle computing architecture <NUM>, which includes a vehicle control module (VCM) <NUM> and a navigation control module (NCM) <NUM>. As discussed in more detail below, the VCM <NUM> facilitates operator initiated control of the vehicle <NUM> through the use of a manual mode. The NCM <NUM> is configured to send a control command to facilitate system-initiated operation of the vehicle <NUM> through the use of an auto operation mode. Also illustrated is a navigation control interface for facilitating communication and coordination between the VCM <NUM> and the NCM <NUM>.

<FIG> depicts an environment map <NUM> for providing vehicle control limits, according to embodiments shown and disclosed herein. As illustrated, the environment map <NUM> may simulate an environment, such as a warehouse and may include a plurality of products <NUM>. The products may be organized in a predetermined arrangement and may be not only arranged along the floor (in the "x" and "y" directions), but may also be stacked vertically (in the "z" direction). As discussed above, the vehicle <NUM> may be operated in manual mode by an operator, sending a manual command to the vehicle <NUM>. The operator may then implement a manual control function to manually navigate the vehicle to the predetermined destination, perform the desired task, and then proceed to the next task.

If an automatic command has been sent to the vehicle <NUM>, the vehicle <NUM> determines a vehicle condition and operates in automatic mode. Thus, the vehicle <NUM> may implement automatic control from the NCM <NUM>, the navigation system <NUM>, navigation system operator, vehicle operator, and/or other external source by determining an efficient operation of the vehicle <NUM> to perform the task and sending a control command based on the efficient operation, vehicle condition and desired task. With this information, the vehicle <NUM> may travel to a desired location, perform the desired task, and then proceed to the next location.

As an example, if the vehicle <NUM> is currently operating in automatic mode, the vehicle <NUM> may receive a task, a predetermined destination (address D212), and/or a route for reaching the predetermined destination. Depending on the information received, the vehicle <NUM> may calculate a route to the predetermined location at the address D212 and may then perform the task. In this particular example, the task requests the vehicle <NUM> to pick up the product located at the address D212. From the current location of the vehicle <NUM>, the vehicle <NUM> may then use sensors and mapping data to navigate according to the determined path. In some embodiments, the vehicle <NUM> may include a light sensor. The light sensor may determine the relative position of the vehicle <NUM> with regard to the overhead lighting fixtures. Based on this information, and/or other information (such as laser sensor information, odometer readings, etc.), the vehicle <NUM> (and/or the navigation system <NUM>) may ensure that the vehicle <NUM> is on the correct path.

As the vehicle <NUM> is operated in automatic mode, the vehicle receives one or more control signals from the NCM <NUM> to the VCM <NUM>. To prevent the NCM <NUM> from sending a command to the VCM <NUM> that violates a predetermined vehicle limit, the VCM <NUM> and the NCM <NUM> communicate vehicle limit data. Specifically, based on a determined weight of a load, height of the fork, and/or other parameters, the vehicle <NUM> may have an acceleration limit, by which the vehicle <NUM> may not accelerate beyond a predetermined rate. Similarly, the vehicle <NUM> may have a fork height limit, a hoist acceleration limit, a hoist speed limit, etc. a steering limit may also be imposed on the vehicle. If the vehicle <NUM> includes one or more accessories, the vehicle may impose an accessory lower limit, an accessory speed limit, an accessory upper limit, and/or other limits. In accordance with the invention, the vehicle limit comprises at least one of a steering limit and an accessory limit of an accessory on the vehicle.

While these limits may be easily implemented when the vehicle <NUM> operates in manual mode, oftentimes automatic mode may send a command for an action that is not permitted. Accordingly, the VCM <NUM> communicates limit data with the NCM <NUM> to prevent confusion within the vehicle <NUM>.

<FIG> depicts a computing environment for providing control logic in the VCM <NUM>, according to one or more embodiments shown and described herein. In the illustrated embodiment, the VCM <NUM> includes a processor <NUM>, input/output hardware <NUM>, a data storage component <NUM> (which stores limits data 338a, mapping data 338b, and/or other data), and the memory component <NUM>. The limits data 338a may include one or more limits that may be placed on the vehicle <NUM> when in use. Specifically, when the vehicle <NUM> is turning, the maximum speed may be limited. When the vehicle <NUM> has raised the vehicle lift, the maximum speed may be limited. Other limits may also be implemented.

The mapping data 338b may include information for the layout of the environment, as illustrated in <FIG>, as well as the location of products, paths to the products, etc. The memory component <NUM> may be configured as volatile and/or nonvolatile memory and as such, may include random access memory (including SRAM, DRAM, and/or other types of RAM), flash memory, secure digital (SD) memory, registers, compact discs (CD), digital versatile discs (DVD), and/or other types of non-transitory computer-readable mediums. Depending on the particular embodiment, the non-transitory computer-readable medium may reside within the VCM <NUM> and/or external to the VCM <NUM>.

Additionally, the memory component <NUM> may store operating logic <NUM>, traction logic 344a, steering logic 344b, hoist logic 344c, and accessory logic 344d. The operating logic <NUM> may include an operating system and/or other software for managing components of the VCM <NUM>. The traction logic 344a may be configured with one or more algorithms and parameters for facilitating optimal traction control for the vehicle <NUM>. The steering logic 344b may be configured with one or more algorithms and parameters for facilitating optimal steering control of the vehicle <NUM>. The hoist logic 344c may include one or more algorithms and parameters for facilitating optimal hoist control of the vehicle <NUM>. The accessory logic 344d may include one or more algorithms and parameters for facilitating operation of accessories of the vehicle <NUM>. A local communication interface <NUM> is also included in <FIG> and may be implemented as a bus or other communication interface to facilitate communication among the components of the VCM <NUM>.

The processor <NUM> may include any processing component operable to receive and execute instructions (such as from the data storage component <NUM> and/or the memory component <NUM>). The input/output hardware <NUM> may include and/or be configured to interface with a monitor, positioning system, keyboard, touch screen, mouse, printer, image capture device, microphone, speaker, gyroscope, compass, and/or other device for receiving, sending, and/or presenting data. The network interface hardware <NUM> may include and/or be configured for communicating with any wired or wireless networking hardware, including an antenna, a modem, LAN port, wireless fidelity (Wi-Fi) card, WiMax card, mobile communications hardware, and/or other hardware for communicating with other networks and/or devices. From this connection, communication may be facilitated between the VCM <NUM> and other computing devices.

It should be understood that the components illustrated in <FIG> are merely exemplary. While the components in <FIG> are illustrated as residing within the VCM <NUM>, this is merely an example. In some embodiments, one or more of the components may reside external to the VCM <NUM>. It should also be understood that while the VCM <NUM> in <FIG> is illustrated as a single device, this is also merely an example. In some embodiments, the traction logic 344a, steering logic 344b, hoist logic 344c, and/or accessory logic 344d may reside on different devices. Additionally, while the VCM <NUM> is illustrated with traction logic 344a, steering logic 344b, hoist logic 344c, and accessory logic 344d as separate logical components, this is also an example. In some embodiments, a single piece of logic may cause the VCM <NUM> to provide the described functionality. Further, similar components may also be included in the NCM <NUM>, navigation system <NUM>, and remote computing device <NUM> to perform the functionality described herein.

<FIG> depicts a graph <NUM> for providing limits on travel speed versus lift height, according to embodiments shown and described herein. As illustrated, the graph <NUM> indicates a lift height versus travel speed of the vehicle <NUM>, where the maximum travel speed is about <NUM> miles per hour when the lift is <NUM> to about <NUM> inches. From about <NUM> inches to about <NUM> inches, the maximum travel speed is about <NUM> miles per hour. From about <NUM> inches to about <NUM> inches, the maximum speed reduces at a rate of about <NUM> mph per <NUM> inches of lift.

<FIG> depicts a graph <NUM> for providing limits on maximum vehicle speed, versus steer angle, according to embodiments shown and described herein. As illustrated, the graph <NUM> depicts a representation of steer angle versus maximum allowable vehicle speed with <NUM>% of the maximum vehicle speed being allowed when the steer angle is <NUM> to about <NUM> degrees. From about <NUM> degrees to about <NUM> degrees of steer angle, the maximum allowable speed reduces from about <NUM>% to about <NUM>%. From about <NUM> degrees of steer angle to about <NUM> degrees of steer angle, the maximum allowable speed is flat at about <NUM>%.

It should be understood that while the graphs <NUM>, <NUM> of <FIG> and <FIG> depict embodiments of limits that may be placed on the vehicle <NUM>, these are merely examples. Additionally, other limits on the vehicle <NUM> may also be implemented, as depicted below in Tables <NUM> - <NUM>. It should also be understood that the VCM <NUM> may communicate with the NCM <NUM> to coordinate the various conditions of manual operation and automatic operation of the vehicle <NUM>, such as vehicle limit data. As such, Tables <NUM> - <NUM> represent examples of data that may be sent from the VCM <NUM> to the NCM <NUM>, depending on the configuration.

As illustrated, Table <NUM> identifies traction data that may be sent from the VCM <NUM> to the NCM <NUM> via the navigation control interface. Specifically, the purpose of the message in Table <NUM> is traction feedback and vehicle traction limits. While Table <NUM> indicates that the data is sent as an <NUM> byte message, this is merely an example. Regardless, Table <NUM> illustrates that byte <NUM> and byte <NUM> are utilized for traction speed feedback. Bytes <NUM> and <NUM> may be utilized for identifying a traction speed limit. Bytes <NUM> and <NUM> may be utilized to identify a traction acceleration force limit. Bytes <NUM> and <NUM> may be utilized to identify a traction deceleration force limit.

Specifically, the traction speed feedback of bytes <NUM> and <NUM> may be communicated from the VCM <NUM> to the NCM <NUM> to identify a current speed and/or traction state that the vehicle <NUM> is experiencing. Additionally, the vehicle <NUM> may be subject to one or more vehicle limits that are imposed. The vehicle limits may include a speed limit, an acceleration limit, and/or a deceleration limit. In accordance with the invention, the vehicle limit comprises at least one of a steering limit and an accessory limit of an accessory on the vehicle.

Table <NUM> includes steering data that is sent from the VCM <NUM> to the NCM <NUM> via the navigation control interface. Specifically, bytes <NUM> and <NUM> may be utilized to provide a wheel angle feedback (current wheel angle) of the vehicle. Bytes <NUM> and <NUM> may be utilized to identify a counterclockwise maximum wheel angle. Bytes <NUM> and <NUM> may be utilized to identify a clockwise maximum wheel angle. Bytes <NUM> and <NUM> may be utilized to identify a wheel angle rate limit of rotation.

Table <NUM> includes hoist data that may be communicated by the VCM <NUM> to the NCM <NUM> via the navigation control interface. Specifically, the data provided in this message reports information regarding the current state of the fork. Accordingly, bytes <NUM> and <NUM> may be utilized to identify the fork height feedback (current fork height) of the vehicle <NUM>. Bytes <NUM> and <NUM> may be utilized to identify a fork hoist speed limit of the vehicle <NUM>. Bytes <NUM> and <NUM> may be utilized to identify a hoist acceleration limit of the fork. Bytes <NUM> and <NUM> may be utilized to identify a hoist height limit of the fork. Additionally, other data may be provided to the NCM <NUM>, such as current load weight, current vehicle speed, etc. This other data may be provided within one of the data communications depicted in Tables <NUM> - <NUM> and/or via other data messages.

Table <NUM> includes vehicle accessory data that may be communicated by the VCM <NUM> to the NCM <NUM> via the navigation control interface. Specifically, bytes <NUM> and <NUM> may be utilized to identify an accessory position of an accessory on the vehicle <NUM>. Bytes <NUM> and <NUM> may be utilized to identify an accessory upper limit of the vehicle <NUM>. Bytes <NUM> and <NUM> may be utilized to identify an accessory lower limit. Bytes <NUM> and <NUM> may be utilized to identify an accessory speed limit.

It should be understood that while only one accessory is depicted in Table <NUM>, similar data may be provided for other accessories on the vehicle <NUM>. Similarly, based on the functionality of the accessories, the data in Table <NUM> may change for each of accessory to which a limit applies.

In Tables <NUM> - <NUM> above, communication between the VCM <NUM> may indicate one or more limits that are placed on the vehicle <NUM>. Specifically, when operating in manual mode, the vehicle <NUM> may be subject to the limits stored in the data storage component <NUM>, discussed above. However, when the vehicle <NUM> is operating in automatic mode, the navigation system <NUM> and/or the NCM <NUM> may not be aware of the limits on the vehicle <NUM>. Thus, when the navigation system <NUM> and/or the NCM <NUM> provide a speed (or other) command to the VCM <NUM>, the vehicle <NUM> may not be able to provide the requested performance due to the limits. As such, the information in Tables <NUM> - <NUM> may include limit data on the vehicle <NUM>. The limit data may include a plurality of limits, such as depicted in <FIG> and <FIG> and/or may simply be a numerical limit, based on the current conditions of the vehicle <NUM>. By facilitating communication of this data, the navigation system <NUM> and/or NCM <NUM> will be aware of the limits and only request performance that is within the acceptable ranges.

<FIG> depicts a flowchart for implementing vehicle limits, according to embodiments shown and described herein. As illustrated in block <NUM>, a determination may be made regarding the operation mode of the vehicle <NUM>. Specifically, the VCM <NUM>, NCM <NUM>, and/or navigation system <NUM> may determine whether the vehicle <NUM> is currently operating in manual mode or automatic mode. If, in block <NUM>, the vehicle <NUM> is not operating in automatic mode, the process returns to block <NUM>. If the vehicle <NUM> is operating in automatic mode, in block <NUM> the VCM <NUM> may send the vehicle limits to the navigation system <NUM> and/or to the NCM <NUM>. In block <NUM>, the navigation system <NUM> and/or NCM <NUM> sends vehicle commands that are within the vehicle limits.

<FIG> depicts yet another flowchart for implementing vehicle limits, according to embodiments shown and described herein. As illustrated in block <NUM>, a work order may be received, where the work order is related to movement of a load to a three-dimensional destination. In block <NUM> a route for the vehicle <NUM> may be determined to reach the three-dimensional destination for completing the work order. In block <NUM>, a vehicle limit may be determined, where the vehicle limit is based on a current state of the vehicle <NUM>. In block <NUM>, an automatic command is determined based on the there-dimensional destination and the vehicle limit. In block <NUM>, the automatic command is sent to the vehicle <NUM>.

Claim 1:
A system comprising:
a navigation system (<NUM>); and
a vehicle (<NUM>) that comprises a memory component that stores a program that, when executed by a processor of the vehicle, causes the vehicle to perform at least the following:
receive an indication for automatic control of the vehicle to operate the vehicle in automatic mode;
receive a predetermined destination;
calculate a route for the vehicle to reach the predetermined destination according to a determined path for completing a work order from the navigation system;
determine a vehicle limit, wherein the vehicle limit is based on a current state of the vehicle, and wherein the vehicle limit comprises at least one of the following: a steering limit and an accessory limit of an accessory on the vehicle;
communicate the vehicle limit from a vehicle control module, VCM (<NUM>), to a navigation control module, NCM (<NUM>); wherein when the vehicle is operated in automatic mode the VCM and the NCM communicate vehicle limit data to prevent the NCM from sending a vehicle command to the VCM that violates the vehicle limit;
determine, via the NCM, an automatic command based on the destination and the vehicle limit, wherein determining the automatic command comprises:
determining a vehicle condition, and
determining an efficient operation of the vehicle to traverse the route, taking into consideration the vehicle condition and without violating the vehicle limit; and
send the automatic command to the vehicle.