Patent Description:
In a typical stock picking operation, an operator fills orders from available stock items that are located in storage areas provided along one or more aisles of a warehouse or distribution center. A method for operating a materials handling vehicle comprising monitoring by a controller of a first vehicle drive parameter corresponding to a first direction of travel of the vehicle is known from <CIT>. This document also discloses a system for operating a materials handling vehicle comprising a memory storing executable instructions, a processor in communication with the memory, wherein the processor when executing the executable instructions, monitors a first vehicle drive parameter corresponding to a first direction of travel of the vehicle. The operator drives the vehicle between various pick locations where item(s) are to be picked. The operator may drive the vehicle either by using the control structures on the vehicle, or via a wireless remote control device that is associated with the vehicle, such as the remote control device disclosed in commonly owned <CIT>.

In accordance with a first aspect of the present invention, a method is provided for operating a materials handling vehicle comprising: monitoring, by a controller, a first vehicle drive parameter corresponding to a first direction of travel of the vehicle during a first manual operation of the vehicle by an operator; concurrently monitoring, by the controller, a second vehicle drive parameter corresponding to a second direction different from the first direction of travel during the first manual operation of the vehicle by an operator; receiving, by the controller after the first manual operation of the vehicle, a request to implement a first semi-automated driving operation; and based on the first and second monitored vehicle drive parameters during the first manual operation, controlling, by the controller, implementation of the first semi-automated driving operation.

The first vehicle drive parameter may comprise acceleration in the first direction and the second vehicle drive parameter may comprise acceleration in the second direction.

The first and second directions may be substantially orthogonal to each other.

The method may further comprise: calculating a first value indicative of acceleration in the first direction; calculating a second value indicative of acceleration in the second direction; and modifying the first value based on the second value if the second value falls outside of a predefined mid-range. Based on the modified value, implementation of the first semi-automated driving operation may be controlled by the controller.

Controlling implementation of the first semi-automated driving operation may comprise limiting a maximum acceleration of the vehicle.

In accordance with a second unclaimed aspect, a method is provided for operating a materials handling vehicle comprising: monitoring, by a controller, a vehicle drive parameter during a most recent manual operation of the vehicle by an operator; replacing, by the controller, any stored first data regarding the monitored vehicle drive parameter associated with a previous manual operation of the vehicle by the operator with second data regarding the monitored vehicle drive parameter during the most recent manual operation of the vehicle, the second data not being based on the first data; receiving, by the controller, a request to implement a semi-automated driving operation; and based on the second data regarding the monitored vehicle drive parameter corresponding to the most recent manual operation, controlling by the controller, implementation of the semi-automated driving operation.

The second data may comprise sequential individual values associated with the vehicle drive parameter.

The individual values may be grouped into a plurality of subsets of values, each subset comprising a same predetermined number of adjacent individual values; and for each of the plurality of subsets, calculating a respective arithmetic or weighted average associated with that subset based at least in part on the individual values in that subset.

The method may further comprise: selecting a particular one of the respective arithmetic or weighted averages; and based on the particular one of the arithmetic or weighted averages, controlling by the controller, implementation of the semi-automated driving operation.

Wherein controlling implementation of the semi-automated driving operation may comprise limiting a maximum acceleration of the vehicle.

The particular one weighted average may comprise a maximum of the respective arithmetic or weighted averages.

In accordance with a third unclaimed aspect, a system is provided for operating a materials handling vehicle comprising: a memory storing executable instructions; a processor in communication with the memory, the processor when executing the executable instructions: monitors a first vehicle drive parameter corresponding to a first direction of travel of the vehicle during a first manual operation of the vehicle by an operator; concurrently monitors a second vehicle drive parameter corresponding to a second direction different from the first direction of travel during the first manual operation of the vehicle by an operator; receives, after the first manual operation of the vehicle, a request to implement a first semi-automated driving operation; and controls implementation of the first semi-automated driving operation based on the first and second monitored vehicle drive parameters during the first manual operation.

The processor when executing the executable instructions: may calculate a first value indicative of acceleration in the first direction; may calculate a second value indicative of acceleration in the second direction; and may modify the first value based on the second value if the second value falls outside of a predefined mid-range.

The processor when executing the executable instructions: may control implementation of the first semi-automated driving operation based on the modified value.

In accordance with a fourth, unclaimed aspect, a system is provided for operating a materials handling vehicle comprising: a memory storing executable instructions; a processor in communication with the memory, the processor when executing the executable instructions: monitors a vehicle drive parameter during a most recent manual operation of the vehicle by an operator; replaces any stored first data regarding the monitored vehicle drive parameter associated with a previous manual operation of the vehicle by the operator with second data regarding the monitored vehicle drive parameter during the most recent manual operation of the vehicle, the second data not being based on the first data; receives a request to implement a semi-automated driving operation; and controls implementation of the semi-automated driving operation based on the second data regarding the monitored vehicle drive parameter corresponding to the most recent manual operation.

The processor when executing the executable instructions: may group the individual values into a plurality of subsets of values, each subset comprising a same predetermined number of adjacent individual values; and for each of the plurality of subsets, may calculate a respective arithmetic or weighted average associated with that subset based at least in part on the individual values in that subset.

The processor when executing the executable instructions: may select a particular one of the respective arithmetic or weighted averages; and may control implementation of the semi-automated driving operation based on the particular one of the arithmetic or weighted averages.

Controlling implementation of the semi-automated driving operation may comprise limiting a maximum acceleration of the vehicle.

The particular one arithmetic or weighted average may comprise a maximum of the respective arithmetic or weighted averages.

In the following detailed description of the illustrated embodiments, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration, and not by way of limitation, specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and that changes may be made and that the invention is defined by the appended claims.

Referring now to the drawings, and particularly to <FIG>, a materials handling vehicle, which is illustrated as a low level order picking truck <NUM>, includes in general a load handling assembly <NUM> that extends from a power unit <NUM>. The load handling assembly <NUM> includes a pair of forks <NUM>, each fork <NUM> having a load supporting wheel assembly <NUM>. The load handling assembly <NUM> may include other load handling features in addition to, or in lieu of the illustrated arrangement of the forks <NUM>, such as a load backrest, scissors-type elevating forks, outriggers or separate height adjustable forks. Still further, the load handling assembly <NUM> may include load handling features such as a mast, a load platform, collection cage or other support structure carried by the forks <NUM> or otherwise provided for handling a load supported and carried by the truck <NUM> or pushed or pulled by the truck, i.e., such as by a tugger vehicle.

The illustrated power unit <NUM> comprises a step-through operator's station <NUM> dividing a first end section 14A of the power unit <NUM> (opposite the forks <NUM>) from a second end section 14B (proximate the forks <NUM>). The step-through operator's station <NUM> provides a platform <NUM> upon which an operator may stand to drive the truck <NUM> and/or to provide a position from which the operator may operate the various included features of the truck <NUM>.

A first work area is provided towards the first end section 14A of the power unit <NUM> and includes a control area <NUM> for driving the truck <NUM> when the operator is standing on the platform <NUM> and for controlling the features of the load handling assembly <NUM>. The first end section 14A defines a compartment <NUM> for containing a battery, control electronics, including a controller <NUM> (see <FIG>), and motor(s), such as a traction motor, steer motor and lift motor for the forks (not shown).

As shown for purposes of illustration, and not by way of limitation, the control area <NUM> comprises a handle <NUM> for steering the truck <NUM>, which may include controls such as grips, butterfly switches, thumbwheels, rocker switches, a hand wheel, a steering tiller, etc., for controlling the acceleration/braking and travel direction of the truck <NUM>. For example, as shown, a control such as a switch grip <NUM> may be provided on the handle <NUM>, which is spring biased to a center neutral position. Rotating the switch grip <NUM> forward and upward will cause the truck <NUM> to move forward, e.g., power unit first, at an acceleration proportional to the amount of rotation of the switch grip <NUM> until the truck <NUM> reaches a predefined maximum speed, at which point the truck <NUM> is no longer permitted to accelerate to a higher speed. For example, if the switch grip <NUM> is very quickly rotated <NUM>% of a maximum angle of rotation capable for the grip <NUM>, the truck <NUM> will accelerate at approximately <NUM>% of the maximum acceleration capable for the truck until the truck reaches <NUM>% of the maximum speed capable for the truck. It is also contemplated that acceleration may be determined using an acceleration map stored in memory where the rotation angle of the grip <NUM> is used as an input into and has a corresponding acceleration value in the acceleration map. The acceleration values in the acceleration map corresponding to the grip rotation angles may be proportional to the grip rotation angles or vary in any desired manner. There may also be a velocity map stored in memory where the rotation angle of the grip <NUM> is used as an input into and has a corresponding maximum velocity value stored in the velocity map. For example, when the grip <NUM> is rotated <NUM>% of the maximum angle capable for the grip <NUM>, the truck will accelerate at a corresponding acceleration value stored in the acceleration map to a maximum velocity value stored in the velocity map corresponding to the grip angle of <NUM>% of the maximum angle. Similarly, rotating the switch grip <NUM> toward the rear and downward of the truck <NUM> will cause the truck <NUM> to move in reverse, e.g., forks first, at an acceleration proportional to the amount of rotation of the switch grip <NUM> until the truck <NUM> reaches a predefined maximum speed, at which point the truck <NUM> is no longer permitted to accelerate to a higher speed.

Presence sensors <NUM> may be provided to detect the presence of an operator on the truck <NUM>. For example, presence sensors <NUM> may be located on, above or under the platform floor, or otherwise provided about the operator's station <NUM>. In the exemplary truck <NUM> of <FIG>, the presence sensors <NUM> are shown in dashed lines indicating that they are positioned under the platform floor. Under this arrangement, the presence sensors <NUM> may comprise load sensors, switches, etc. As an alternative, the presence sensors <NUM> may be implemented above the platform floor, such as by using ultrasonic, capacitive or other suitable sensing technology. The utilization of presence sensors <NUM> will be described in greater detail herein.

An antenna <NUM> extends vertically from the power unit <NUM> and is provided for receiving control signals from a corresponding wireless remote control device <NUM>. It is also contemplated that the antenna <NUM> may be provided within the compartment <NUM> of the power unit <NUM> or elsewhere on the truck <NUM>. The remote control device <NUM> may comprise a transmitter that is worn or otherwise maintained by the operator. The remote control device <NUM> is manually operable by an operator, e.g., by pressing a button or other control, to cause the remote control device <NUM> to wirelessly transmit at least a first type of signal designating a travel request to the truck <NUM>. The travel request is a command that requests the corresponding truck <NUM> to travel by a predetermined amount, as will be described in greater detail herein.

The truck <NUM> also comprises one or more obstacle sensors <NUM>, which are provided about the truck <NUM>, e.g., towards the first end section of the power unit <NUM> and/or to the sides of the power unit <NUM>. The obstacle sensors <NUM> include at least one contactless obstacle sensor on the truck <NUM>, and are operable to define at least one detection zone. For example, at least one detection zone may define an area at least partially in front of a forward traveling direction of the truck <NUM> when the truck <NUM> is traveling in response to a wirelessly received travel request from the remote control device <NUM>.

The obstacle sensors <NUM> may comprise any suitable proximity detection technology, such as ultrasonic sensors, optical recognition devices, infrared sensors, laser scanner sensors, etc., which are capable of detecting the presence of objects/obstacles or are capable of generating signals that can be analyzed to detect the presence of objects/obstacles within the predefined detection zone(s) of the power unit <NUM>.

In practice, the truck <NUM> may be implemented in other formats, styles and features, such as an end control pallet truck that includes a steering tiller arm that is coupled to a tiller handle for steering the truck. Similarly, although the remote control device <NUM> is illustrated as a glove-like structure <NUM>, numerous implementations of the remote control device <NUM> may be implemented, including for example, finger worn, lanyard or sash mounted, etc. Still further, the truck, remote control system and/or components thereof, including the remote control device <NUM>, may comprise any additional and/or alternative features or implementations, examples of which are disclosed in any one or more of the following commonly owned patents/published patent applications: <CIT> entitled "SYSTEMS AND METHODS OF REMOTELY CONTROLLING A MATERIALS HANDLING VEHICLE;" <CIT> entitled "SYSTEMS AND METHODS OF REMOTELY CONTROLLING A MATERIALS HANDLING VEHICLE;" <CIT> entitled "SYSTEMS AND METHODS OF REMOTELY CONTROLLING A MATERIALS HANDLING VEHICLE;" <CIT>, entitled "APPARATUS FOR REMOTELY CONTROLLING A MATERIALS HANDLING VEHICLE;" <CIT>, entitled "MULTIPLE ZONE SENSING FOR MATERIALS HANDLING VEHICLES;" <CIT>, entitled "MULTIPLE ZONE SENSING FOR REMOTELY CONTROLLED MATERIALS HANDLING VEHICLES;" and/or <CIT>, entitled "ELECTRICAL STEERING ASSIST FOR MATERIAL HANDLING VEHICLE;".

Referring to <FIG>, a block diagram illustrates a control arrangement for integrating remote control commands with the truck <NUM>. The antenna <NUM> is coupled to a receiver <NUM> for receiving commands issued by the remote control device <NUM>. The receiver <NUM> passes the received control signals to the controller <NUM>, which implements the appropriate response to the received commands and may thus also be referred to herein as a master controller. In this regard, the controller <NUM> is implemented in hardware and may also execute software (including firmware, resident software, micro-code, etc.). Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.

Thus, the controller <NUM> may comprise an electronic controller defining, at least in part, a data processing system suitable for storing and/or executing program code and may include at least one processor coupled directly or indirectly to memory elements, e.g., through a system bus or other suitable connection. The memory elements can include local memory employed during actual execution of the program code, memory that is integrated into a microcontroller or application specific integrated circuit (ASIC), a programmable gate array or other reconfigurable processing device, etc. The at least one processor may include any processing component operable to receive and execute executable instructions (such as program code from one or more memory elements). The at least one processor may comprise any kind of a device which receives input data, processes that data through computer instructions, and generates output data. Such a processor can be a microcontroller, a hand-held device, laptop or notebook computer, desktop computer, microcomputer, digital signal processor (DSP), mainframe, server, cell phone, personal digital assistant, other programmable computer devices, or any combination thereof. Such processors can also be implemented using programmable logic devices such as field programmable gate arrays (FPGAs) or, alternatively, realized as application specific integrated circuits (ASICs) or similar devices. The term "processor" is also intended to encompass a combination of two or more of the above recited devices, e.g., two or more microcontrollers.

The response implemented by the controller <NUM> in response to wirelessly received commands, e.g., via the wireless transmitter <NUM> and corresponding antennae <NUM> and receiver <NUM>, may comprise one or more actions, or inactions, depending upon the logic that is being implemented. Positive actions may comprise controlling, adjusting or otherwise affecting one or more components of the truck <NUM>. The controller <NUM> may also receive information from other inputs <NUM>, e.g., from sources such as the presence sensors <NUM>, the obstacle sensors <NUM>, switches, load sensors, encoders and other devices/features available to the truck <NUM> to determine appropriate action in response to the received commands from the remote control device <NUM>. The sensors <NUM>, <NUM>, etc. may be coupled to the controller <NUM> via the inputs <NUM> or via a suitable truck network, such as a control area network (CAN) bus <NUM>.

In one embodiment, the controller <NUM> may comprise an accelerometer which may measure physical acceleration of the truck <NUM> along three axes. It is also contemplated that the accelerometer <NUM> may be separate from the controller <NUM> but coupled to and in communication with the controller <NUM> for generating and transmitting to the controller <NUM> acceleration signals, see <FIG>. For example, the accelerometer <NUM> may measure the acceleration of the truck <NUM> in a direction of travel DT (also referred to herein as a first direction of travel) of the truck <NUM>, which, in the <FIG> embodiment, is collinear with an axis X. The direction of travel DT or first direction of travel may be defined as the direction in which the truck <NUM> is moving, either in a forward or power unit first direction or a reverse or forks first direction. The accelerometer <NUM> may further measure the acceleration of the truck <NUM> along a transverse direction TR (also referred to herein as a second direction) generally <NUM> degrees to the direction of travel DT of the truck <NUM>, which transverse direction TR, in the <FIG> embodiment, is collinear with an axis Y. The accelerometer <NUM> may also measure the acceleration of the truck <NUM> in a further direction transverse to both the direction of travel DT and the transverse direction TR, which further direction is generally collinear with a Z axis.

In an exemplary arrangement, the remote control device <NUM> is operative to wirelessly transmit a control signal that represents a first type signal such as a travel command to the receiver <NUM> on the truck <NUM>. The travel command is also referred to herein as a "travel signal", "travel request" or "go signal". The travel request is used to initiate a request to the truck <NUM> to travel by a predetermined amount, e.g., to cause the truck <NUM> to advance or jog, typically only in the power unit first direction, by a limited travel distance. The limited travel distance may be defined by an approximate travel distance, travel time or other measure. In one implementation, the truck may be driven continuously as long as an operator provides a travel request not lasting longer than a predetermined time amount, e.g., <NUM> seconds. After the operator no longer provides a travel request or if the travel request has been provided for more than the predetermined time period, a traction motor effecting truck movement is no longer activated and the truck is permitted to coast to a stop. The truck <NUM> may be controlled to travel in a generally straight direction or along a previously determined heading.

Thus, a first type signal received by the receiver <NUM> is communicated to the controller <NUM>. If the controller <NUM> determines that the travel signal is a valid travel signal and that the current vehicle conditions are appropriate (explained in greater detail below), the controller <NUM> sends a signal to the appropriate control configuration of the particular truck <NUM> to advance and then stop the truck <NUM>. Stopping the truck <NUM> may be implemented, for example, by either allowing the truck <NUM> to coast to a stop or by initiating a brake operation to cause the truck <NUM> to brake to a stop.

As an example, the controller <NUM> may be communicably coupled to a traction control system, illustrated as a traction motor controller <NUM> of the truck <NUM>. The traction motor controller <NUM> is coupled to a traction motor <NUM> that drives at least one driven wheel <NUM> of the truck <NUM>. The controller <NUM> may communicate with the traction motor controller <NUM> so as to accelerate, decelerate, adjust and/or otherwise limit the speed of the truck <NUM> in response to receiving a travel request from the remote control device <NUM>. The controller <NUM> may also be communicably coupled to a steer controller <NUM>, which is coupled to a steer motor <NUM> that steers at least one steered wheel <NUM> of the truck <NUM>. In this regard, the truck <NUM> may be controlled by the controller <NUM> to travel an intended path or maintain an intended heading in response to receiving a travel request from the remote control device <NUM>.

As yet another illustrative example, the controller <NUM> may be communicably coupled to a brake controller <NUM> that controls truck brakes <NUM> to decelerate, stop or otherwise control the speed of the truck <NUM> in response to receiving a travel request from the remote control device <NUM>. Still further, the controller <NUM> may be communicably coupled to other vehicle features, such as main contactors <NUM>, and/or other outputs <NUM> associated with the truck <NUM>, where applicable, to implement desired actions in response to implementing remote travel functionality.

According to various aspects of the present invention, the controller <NUM> may communicate with the receiver <NUM> and with the traction controller <NUM> to operate the truck <NUM> under remote control in response to receiving travel commands from the associated remote control device <NUM>.

Correspondingly, if the truck <NUM> is moving in response to a command received by remote wireless control, the controller <NUM> may dynamically alter, control, adjust or otherwise affect the remote control operation, e.g., by stopping the truck <NUM>, changing the steer angle of the truck <NUM>, or taking other actions. Thus, the particular vehicle features, the state/condition of one or more vehicle features, vehicle environment, etc., may influence the manner in which the controller <NUM> responds to travel requests from the remote control device <NUM>.

The controller <NUM> may refuse to acknowledge a received travel request depending upon predetermined condition(s), e.g., that relate to environmental or operational factor(s). For example, the controller <NUM> may disregard an otherwise valid travel request based upon information obtained from one or more of the sensors <NUM>, <NUM>. As an illustration, according to various aspects of the present invention, the controller <NUM> may optionally consider factors such as whether an operator is on the truck <NUM> when determining whether to respond to a travel command from the remote control device <NUM>. As noted above, the truck <NUM> may comprise at least one presence sensor <NUM> for detecting whether an operator is positioned on the truck <NUM>. In this regard, the controller <NUM> may be further configured to respond to a travel request to operate the truck <NUM> under remote control when the presence sensor(s) <NUM> designate that no operator is on the truck <NUM>. Thus, in this implementation, the truck <NUM> cannot be operated in response to wireless commands from the transmitter unless the operator is physically off of the truck <NUM>. Similarly, if the object sensors <NUM> detect that an object, including the operator, is adjacent and/or proximate to the truck <NUM>, the controller <NUM> may refuse to acknowledge a travel request from the transmitter <NUM>. Thus, in an exemplary implementation, an operator must be located within a limited range of the truck <NUM>, e.g., close enough to the truck <NUM> to be in wireless communication range (which may be limited to set a maximum distance of the operator from the truck <NUM>). Other arrangements may alternatively be implemented.

Any other number of reasonable conditions, factors, parameters or other considerations may also/alternatively be implemented by the controller <NUM> to interpret and take action in response to received signals from the transmitter. Other exemplary factors are set out in greater detail in any one or more of the following commonly owned patents/published patent applications: <CIT>, entitled "SYSTEMS AND METHODS OF REMOTELY CONTROLLING A MATERIALS HANDLING VEHICLE;" <CIT>, entitled "SYSTEMS AND METHODS OF REMOTELY CONTROLLING A MATERIALS HANDLING VEHICLE;" <CIT>, entitled "SYSTEMS AND METHODS OF REMOTELY CONTROLLING A MATERIALS HANDLING VEHICLE;" <CIT>, entitled "APPARATUS FOR REMOTELY CONTROLLING A MATERIALS HANDLING VEHICLE;" <CIT>, entitled "MULTIPLE ZONE SENSING FOR MATERIALS HANDLING VEHICLES;" and <CIT>, entitled "MULTIPLE ZONE SENSING FOR REMOTELY CONTROLLED MATERIALS HANDLING VEHICLES;".

Upon acknowledgement of a travel request, the controller <NUM> interacts with the traction motor controller <NUM>, e.g., directly or indirectly, e.g., via a bus such as the CAN bus <NUM> if utilized, to advance the truck <NUM> by a limited amount. Depending upon the particular implementation, the controller <NUM> may interact with the traction motor controller <NUM> and optionally, the steer controller <NUM>, to advance the truck <NUM> by a predetermined distance. Alternatively, the controller <NUM> may interact with the traction motor controller <NUM> and optionally, the steer controller <NUM>, to advance the truck <NUM> for a period of time in response to the detection and maintained actuation of a travel control on the remote <NUM>. As yet another illustrative example, the truck <NUM> may be configured to jog for as long as a travel control signal is received. Still further, the controller <NUM> may be configured to "time out" and stop the travel of the truck <NUM> based upon a predetermined event, such as exceeding a predetermined time period or travel distance regardless of the detection of maintained actuation of a corresponding control on the remote control device <NUM>.

The remote control device <NUM> may also be operative to transmit a second type signal, such as a "stop signal", designating that the truck <NUM> should brake and/or otherwise come to rest. The second type signal may also be implied, e.g., after implementing a "travel" command, e.g., after the truck <NUM> has traveled a predetermined distance, traveled for a predetermined time, etc., under remote control in response to the travel command. If the controller <NUM> determines that a wirelessly received signal is a stop signal, the controller <NUM> sends a signal to the traction controller <NUM>, the brake controller <NUM> and/or other truck component to bring the truck <NUM> to a rest. As an alternative to a stop signal, the second type signal may comprise a "coast signal" or a "controlled deceleration signal" designating that the truck <NUM> should coast, eventually slowing to rest.

The time that it takes to bring the truck <NUM> to a complete rest may vary, depending for example, upon the intended application, the environmental conditions, the capabilities of the particular truck <NUM>, the load on the truck <NUM> and other similar factors. For example, after completing an appropriate jog movement, it may be desirable to allow the truck <NUM> to "coast" some distance before coming to rest so that the truck <NUM> stops slowly. This may be achieved by utilizing regenerative braking to slow the truck <NUM> to a stop. Alternatively, a braking operation may be applied after a predetermined delay time to allow a predetermined range of additional travel to the truck <NUM> after the initiation of the stop operation. It may also be desirable to bring the truck <NUM> to a relatively quicker stop, e.g., if an object is detected in the travel path of the truck <NUM> or if an immediate stop is desired after a successful jog operation. For example, the controller may apply predetermined torque to the braking operation. Under such conditions, the controller <NUM> may instruct the brake controller <NUM> to apply the brakes <NUM> to stop the truck <NUM>.

As noted above, an operator may stand on the platform <NUM> within the operator's station <NUM> to manually operate the truck <NUM>, i.e., operate the truck in a manual mode. The operator may steer the truck <NUM> via the handle <NUM> and, further, may cause the truck <NUM> to accelerate via rotation of the switch grip <NUM>. As also noted above, rotation of the switch grip <NUM> forward and upward will cause the truck <NUM> to move forward, e.g., power unit first, at an acceleration that may be proportional to the amount of rotation of the switch grip <NUM>. Similarly, rotating the switch grip <NUM> toward the rear and downward of the truck <NUM> will cause the truck <NUM> to move in reverse, e.g., forks first, at an acceleration that may be proportional to the amount of rotation of the switch grip <NUM>.

As also noted above, the controller <NUM> may communicate with the receiver <NUM> and with the traction controller <NUM> to operate the truck <NUM> under remote control in response to receiving travel commands from the associated remote control device <NUM>. The travel request is used to initiate a request to the truck <NUM> to travel by a predetermined amount, e.g., to cause the truck <NUM> to advance or jog in the first direction of travel, i.e., in the power unit first direction, by a limited travel distance. Hence, the operator may operate the truck <NUM> in a remote control mode when the operator is not physically present on the truck but is walking near the truck <NUM> such as during a picking operation, i.e., when the operator is located off the truck <NUM> and picking or gathering pick items from warehouse storage areas to be loaded on the truck <NUM>. Operating the truck <NUM> in the remote control mode is also referred to herein as "semi-automated" operation of the truck <NUM>.

When an operator is using the truck <NUM>, such as during a picking operation within a warehouse, the operator typically uses the truck <NUM> in both the manual mode and the remote control mode.

Previously, a vehicle controller stored a predefined, fixed vehicle parameter, e.g., a maximum acceleration, to limit the maximum acceleration of the vehicle during operation of the vehicle in the remote control mode. This predefined maximum acceleration limit was sometimes too high, e.g., if the truck was being loaded with a tall stack of articles/packages defining loads that were unstable, and too low if the truck was being loaded with a short stack of articles/packages defining loads that were stable.

In accordance with the present invention, the controller <NUM> monitors one or more drive parameters during a most recent manual operation of the truck <NUM>, which one or more drive parameters correspond to a driving behavior or trait of an operator of the truck <NUM>. If the one or more drive parameters are high, this may correspond to the operator driving the truck <NUM> briskly. If the one or more drive parameters are low, this may correspond to the operator driving the truck <NUM> conservatively or cautiously. Instead of using one or more predefined, fixed drive parameters for vehicle control during remote control operation of the truck <NUM>, the present invention calculates one or more adaptive drive parameters for use by the controller <NUM> during a next remote control operation of the truck <NUM> based on the one or more drive parameters monitored during a most recent manual operation of the truck <NUM>. Since the one or more drive parameters calculated for use in the next remote control operation of the truck <NUM> are based on recent driving behavior of the operator, i.e., the one or more drive parameters monitored during the most recent manual mode operation of the truck <NUM>, it is believed that the present invention more accurately and appropriately defines the one or more drive parameters to be used during a next remote control operation of the truck <NUM> such that the one or more drive parameters more closely match to the most recent driving behavior of the operator.

An example control algorithm, or process, for the controller <NUM> is illustrated in <FIG> for monitoring first and second drive parameters, e.g., acceleration in first and second directions, during a most recent manual operation of the truck <NUM> to calculate a corresponding adaptive drive parameter, e.g., a maximum acceleration, to be used by the controller <NUM> when the truck <NUM> is next operated in the remote control mode.

In step <NUM>, the controller <NUM> monitors concurrently during a most recent manual operation of the vehicle, a first drive parameter, e.g., a first acceleration, corresponding to a first direction of travel of the vehicle or truck <NUM> and a second drive parameter, e.g., a second acceleration, corresponding to a second direction, which is different from the first direction of travel. In the illustrated embodiment, the first direction of travel may be defined by the direction of travel DT of the truck <NUM>, see <FIG>, and the second direction may be defined by the transverse direction TR. Hence, the first and second directions may be substantially orthogonal to one another. The controller <NUM> replaces any stored data, i.e., first stored data, regarding the monitored first and second vehicle drive parameters corresponding to the previous manual operation of the vehicle by the operator with recent data, i.e., second data, regarding the monitored first and second vehicle drive parameters during the most recent manual operation of the vehicle, wherein the recent data is not calculated using or based on the previously stored data from the previous manual operation of the vehicle. The vehicle may have been operated in a remote control mode after the previous manual operation of the vehicle and before the most recent manual operation of the vehicle.

An operator may vary acceleration of the truck <NUM> based on factors such as the curvature of the path along which the truck <NUM> is being driven, the turning angle of the truck <NUM>, the current floor conditions, e.g., a wet/slippery floor surface or a dry/non-slippery floor surface, and/or the weight and height of any load being carried by the truck <NUM>. For example, if the truck <NUM> is being driven without a load or with a stable load, e.g., the load has a low height, over a long, straight path, on a dry/non-slippery floor surface, then values for the first acceleration may be high. However, if the truck <NUM> has an unstable load, e.g., the load has a high height, such that the load may shift or fall from the truck <NUM> if the truck <NUM> is accelerated quickly, then values for the first acceleration may be low. Also, if the truck <NUM> is being turned at a sharp angle and driven at a high speed, then values for the first acceleration may be high and values for the second acceleration may also be high.

In step <NUM>, the controller <NUM> receives, after the most recent manual operation of the vehicle or truck <NUM>, a request to implement a semi-automated driving operation, i.e., a request to operate the truck <NUM> in the remote control mode. In the illustrated embodiment and as discussed above, the controller <NUM> may receive a travel request from the remote control device <NUM>. Such a travel request may define a request to implement a first semi-automated driving operation.

In step <NUM>, the controller <NUM>, based on the first and second monitored vehicle drive parameters during the most recent manual operation of the truck <NUM>, implements the semi-automated driving operation of the truck <NUM>. The controller <NUM>, based on the recent data regarding the monitored first and second vehicle drive parameters during the most recent manual operation of the vehicle, calculates a first value indicative of acceleration of the truck <NUM> in the first direction and a second value indicative of acceleration of the truck <NUM> in the second direction. The controller <NUM> modifies the first value indicative of acceleration in the first direction based on the second value indicative of acceleration in the second direction if the second value falls outside of a pre-defined range. The first value, whether modified or not based on whether the second value falls outside or within the pre-defined range, defines a maximum acceleration that cannot be exceeded during the semi-automated driving operation of the truck <NUM>.

An example control algorithm, or process, for the controller <NUM> is illustrated in <FIG> for calculating a first value indicative of acceleration of the truck <NUM> in the first direction during the most recent manual operation of the truck <NUM>. In step <NUM>, a sequence of positive acceleration values in the first direction from the accelerometer <NUM> are collected during the most recent manual operation of the vehicle, wherein the first direction is defined by the direction of travel DT of the truck <NUM>, and stored in memory by the controller <NUM>. Rotation of the switch grip <NUM> forward and upward will cause the truck <NUM> to move forward, e.g., power unit first, at a positive acceleration in the power unit first direction proportional to the amount of rotation of the switch grip <NUM>. Similarly, rotating the switch grip <NUM> toward the rear and downward of the truck <NUM> will cause the truck <NUM> to move in reverse, e.g., forks first, at a positive acceleration in the forks first direction proportional to the amount of rotation of the switch grip <NUM>. As the truck <NUM> accelerates in either the power unit first direction or the forks first direction, both considered the first direction as defined by the direction of travel DT of the truck <NUM>, the accelerometer <NUM> generates a sequence of positive acceleration values that are stored in memory by the controller <NUM>. Negative acceleration values, such as occurring during braking, are not collected for use in calculating the first value indicative of acceleration of the truck <NUM> in the first direction during the most recent manual operation of the vehicle.

In step <NUM>, the acceleration values in the first direction collected during the most recent manual operation of the truck <NUM> are filtered with a weighted average equation so as to make maximum outliers less weighted and effect smoothing. Example equation <NUM>, set out below, may be used to filter the collected acceleration values in the first direction to calculate weighted average values based on the collected acceleration values in the first direction from the most recent manual operation of the truck <NUM>.

For purposes of illustration, sample calculations will now be provided based on non-real sample values, which simulate collected acceleration values in the first direction, and are set out in Table <NUM> of <FIG>. <MAT> <MAT> <MAT>.

The remaining weighted average values based on the sample values set out in Table <NUM> of <FIG> are calculated in a similar manner. The results are set out in Table <NUM> of <FIG>.

Thus, with respect to Equation <NUM>, the values ax_[(i*m)+<NUM>], ax_[(i*m)+<NUM>], and ax_[(i*m)+<NUM>] are used in the calculation of a weighted average value wax-(i+<NUM>). According to the example of <FIG>, "i" can range from <NUM> to <NUM>, but for purposes of Equation <NUM>, "i" ranges from <NUM> to <NUM>. Accordingly, the <NUM> acceleration values (i.e., ax_j, "j" = <NUM> individual collected acceleration values in the Example of <FIG>) in the table of <FIG> can be arranged as <NUM> distinct subsets each having <NUM> elements. Other than the first subset, which, as noted above, comprise an arithmetic average of the first three "start" acceleration values in the first direction, for each of the subsequent <NUM> subsets, a weighted average is calculated according to Equation <NUM>. The example initial arithmetic average and the example <NUM> weighted averages are shown in <FIG>. One of ordinary skill will readily recognize that the subset size of <NUM> values is merely an example and that utilizing <NUM> subsets is an example amount as well.

In step <NUM> of <FIG>, a maximum acceleration in the first direction defined by the direction of travel DT of the truck <NUM> is determined using example Equation <NUM>, set out below: <MAT>.

Based on the results from Table <NUM> of <FIG>, max(wax- i) = ax- <NUM> = <NUM>.

It is noted that ax-wa-max may be selected from any number of initial arithmetic and weighted average values (wax- i) calculated. For example, the average values (wax- i) calculated during a predetermined time period, e.g., the last ten seconds, may be considered. It is also contemplated that a predetermined number of initial arithmetic and weighted average values (wax- i) calculated, e.g., <NUM> average values, without taking time into account, may be considered. It is further contemplated that all of the initial arithmetic and weighted average values (wax- i) calculated during the entirety of the most recent manual operation of the truck <NUM> may be considered. In the illustrated example, nine (<NUM>) values of initial arithmetic and weighted averages (wx- i) were considered. However, less than <NUM> or greater than <NUM> values of initial arithmetic and weighted averages (wax- i) can be considered when selecting max(ax-wa-i) = maximum value of the initial arithmetic and weighted averages (wax- i) calculated, which defines the ax-wa-max = maximum acceleration in the first direction. The maximum acceleration in the first direction (ax-wa-max) defines the first value indicative of acceleration of the vehicle in the first direction during the most recent manual operation of the vehicle. Instead of selecting the maximum or highest value from the set of initial arithmetic and weighted average values (wax- i) considered as the maximum acceleration in the first direction ax-wa-max, it is contemplated that a second or a third highest value of the initial arithmetic and weighted average values (wax- i) considered may be selected as the maximum acceleration in the first direction ax-wa-max. It is further contemplated that the set of initial arithmetic and weighted average values (wax- i) considered may be averaged to determine the maximum acceleration in the first direction ax-wa-max.

An example control algorithm, or process, for the controller <NUM> is illustrated in <FIG> for calculating a second value indicative of acceleration of the truck <NUM> in the second direction during the most recent manual operation of the truck <NUM>. In step <NUM>, a sequence of acceleration values in the second direction from the accelerometer <NUM> are collected, wherein the second direction is defined by the transverse direction TR, see <FIG>, and stored in memory by the controller <NUM>.

In step <NUM>, the collected acceleration values in the second direction collected during the most recent manual operation of the truck <NUM> are filtered with a weighted average equation so as to make maximum outliers less weighted and effect smoothing. Example equation <NUM>, set out below, may be used to filter the collected acceleration values in the second direction from the most recent manual operation of the truck <NUM>.

For purposes of illustration, sample calculations will now be provided based on non-real sample values, which simulate collected acceleration values in the second direction, and are set out in Table <NUM> of <FIG>. <MAT> <MAT>.

The remaining weighted average value based on the sample values set out in Table <NUM> of <FIG> is calculated in a similar manner. The results are set out in Table <NUM> of <FIG>.

In step <NUM> of <FIG>, a maximum acceleration in the second direction defined by the transverse direction TR of the truck <NUM> is determined using Equation <NUM>, set out below: <MAT>.

Based on the results from Table <NUM> of <FIG>, max(way- i) = way- <NUM> = <NUM>.

It is noted that ay-wa-max may be selected from the initial arithmetic average or any number of weighted averages (way-(i+<NUM>)) calculated. For example, the initial arithmetic and weighted average values (way- i) calculated during a predetermined time period, e.g., the last ten seconds, may be considered. It is also contemplated that a predetermined number of the initial arithmetic and weighted average values (way- i) calculated, e.g., <NUM> average values, without taking time into account, may be considered. It is further contemplated that all of the initial arithmetic and weighted average values (way- i) calculated during the entirety of the most recent manual operation of the truck <NUM> may be considered. In the illustrated example, three (<NUM>) values of the initial arithmetic and weighted averages (way- j) were considered. However, less than <NUM> or greater than <NUM> values of the initial arithmetic and weighted averages (way- i) can be considered when selecting max(way- i) = maximum value of the initial arithmetic and weighted averages (way- i) calculated, which defines the ay-wa-max = maximum acceleration in the second direction. The maximum acceleration of the vehicle in the second direction (ay-wa-max) defines the second value indicative of acceleration of the vehicle in the second direction during the most recent manual operation of the vehicle.

An example control algorithm, or process, for the controller <NUM> is illustrated in <FIG> for calculating a maximum acceleration to be used during a next semi-automated driving operation based on the first and second values indicative of acceleration of the truck <NUM> in the first and second directions during the prior or most recent manual operation of the truck <NUM>. As noted above, the first value indicative of acceleration of the truck <NUM> in the first direction is defined by the maximum acceleration in the first direction (ax-wa-max) and the second value indicative of acceleration of the truck <NUM> in the second direction is defined by the maximum acceleration in the second direction (ay-wa-max). During operation of the truck <NUM>, an operator may drive the truck <NUM> quickly along a generally straight path, but slowly during a turn. To factor in the operator driving the truck <NUM> slowly during a turn, in step <NUM>, the controller <NUM> compares the maximum acceleration in the second direction (ay-wa-max) to empirically determined ranges set out in a lookup table stored in memory to determine if a correction to the maximum acceleration in the first direction (ax-wa-max) is appropriate.

As explained in detail below, the maximum acceleration in the second direction (ay-wa-max) can be used to correct, or adjust, the calculated maximum acceleration in the first direction ax-wa-max when determining the maximum acceleration for the next semi-automated driving operation. The maximum acceleration in the second direction (ay-wa-max) is likely indicative of the operator's evaluation of the stability of the truck <NUM> and its current load. If the maximum acceleration in the second direction is greater than a first empirically derived value or within an empirically derived "high acceleration" range, then that can indicate the operator believes the load is relatively stable and the maximum acceleration for the next semi-automated driving operation can be increased. However, if the maximum acceleration in the second direction is less than a second empirically derived value or falls within an empirically defined "low acceleration" range, then that can indicate the operator believes the load could be unstable even though the calculated maximum acceleration in the first direction is relatively high. Thus, in this second instance, the maximum acceleration for the next semi-automated driving operation can be decreased. If the maximum acceleration in the second direction is in-between the first and the second empirically derived values or within an empirically defined medium range, then no correction, or adjustment, of the maximum acceleration for the next semi-automated driving operation is made. High, low and medium ranges (or empirically derived first and second values) can be empirically determined for a particular vehicle in a controlled environment where the vehicle is operated at various maximum accelerations in the first and second directions, various high, low and medium ranges of differing values are created and, using the maximum acceleration values in the second direction, correction factors are determined and used to adjust the maximum acceleration values in the first direction. Preferred high, low and medium ranges, which allow for an optimum acceleration in the first direction yet allow the truck to carry and support loads in a stable manner are selected.

An exemplary simulated lookup table based on non-real values is set out in <FIG>, which table contains three separate ranges for the maximum acceleration in the second direction (ay-wa-max). If the maximum acceleration in the second direction falls within either the high or the low acceleration range depicted in the lookup table of <FIG>, a corresponding correction factor is used in determining the maximum acceleration to be used during the next semi-automated driving operation of the truck <NUM>. If the maximum acceleration in the second direction falls within the middle acceleration range (or mid-range) depicted in the lookup table of <FIG>, no correction factor corresponding to the maximum acceleration in the second direction is used in determining the maximum acceleration for use during the next semi-automated driving operation of the truck <NUM>.

In the example discussed above, the maximum acceleration in the second direction (ay-wa-max) = <NUM>. This value falls within the high acceleration range, which corresponds to a correction factor of +<NUM>%.

In step <NUM>, the maximum acceleration to be used during a next semi-automated driving operation (which may also be referred to as "a semi-automated driving operation maximum acceleration") is calculated using example Equation <NUM>: <MAT>.

A sample calculation for max. acc based on the sample values discussed above will now be provided.

Hence, in this example, the controller <NUM> communicates with the traction motor controller <NUM> so as to limit the maximum acceleration of the truck <NUM> in the first direction during a next semi-automated or remote control operation to <NUM>/s<NUM>.

It is also contemplated that the controller <NUM> may calculate a first value indicative of deceleration of the vehicle in the first direction during the most recent manual operation of the vehicle using equations <NUM> and <NUM> set out above, wherein the absolute value of each deceleration value collected from the most recent manual operation of the vehicle is used in calculating the first value using equations <NUM> and <NUM>. Deceleration values corresponding to emergency breaking, which deceleration values may have very high magnitudes, are ignored in calculating the first value indicative of deceleration of the vehicle.

In the event that the truck <NUM> does not have an accelerometer, acceleration values in the first and second directions can be calculated in alternative manners. For example, acceleration in the direction of travel DT or first direction can be determined using a velocity sensor, wherein a velocity sensor may be provided on a traction motor controller. The controller <NUM> may differentiate the velocity or speed values to calculate acceleration values. Acceleration may also be derived from the angular position of the switch grip <NUM> relative to a home position, which grip <NUM>, as noted above, controls the acceleration/braking of the truck <NUM>. Using the angular position of the grip <NUM> as an input into a lookup table, a truck acceleration is chosen from the lookup table which corresponds specific grip angular position values with specific acceleration values. Maximum velocity values may also be provided by the lookup table based on grip angular positions.

Acceleration in the transverse direction TR or second direction can be determined using the following equation: accelerationy = v<NUM>/r
where v = truck speed; and
r = radius of a curve through which the truck moves;.

The radius r may be calculated using the following equation:<MAT>.

Claim 1:
A method for operating a materials handling vehicle (<NUM>) comprising:
monitoring, by a controller (<NUM>), a first vehicle drive parameter corresponding to a first direction of travel of the vehicle (<NUM>) during a first manual operation of the vehicle (<NUM>) by an operator;
concurrently monitoring, by the controller (<NUM>), a second vehicle drive parameter corresponding to a second direction different from the first direction of travel during the first manual operation of the vehicle (<NUM>) by an operator;
receiving, by the controller (<NUM>) after the first manual operation of the vehicle (<NUM>), a request to implement a first semi-automated driving operation; and
based on the first and second monitored vehicle drive parameters during the first manual operation, controlling, by the controller (<NUM>), implementation of the first semi-automated driving operation.