robot vehicle
Machine learning-enabled robotic vehicles with sensors and docking control circuitry improve docking accuracy and safety by adapting to platform and load variations, ensuring efficient transport.
Patent Information
- Application Number
- JP2025532604
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-12-05
- Filing Date
- 2023-12-05
- Publication Date
- 2025-11-28
AI Technical Summary
Robotic vehicles face challenges in accurately docking with platforms due to variations in platform characteristics, location, and load conditions, which can lead to damage or inefficiencies in transporting goods.
The use of machine learning-trained robotic vehicles equipped with sensors and docking control circuitry to analyze platform and load characteristics, determine a confidence level for docking, and adjust positioning operations to minimize damage and ensure successful transport.
Enhances the ability of robotic vehicles to safely and efficiently dock with and transport platforms by dynamically adjusting operations based on real-time sensor data, reducing the risk of damage to platforms, loads, and vehicles.
Smart Images

Figure 2025538720000001_ABST
Abstract
Description
[Technical Field]
[0001] This application claims priority to U.S. Patent Application No. 18 / 075,156, filed December 5, 2022, the entire contents of which are incorporated herein by reference.
[0002] The present disclosure relates generally to robotic vehicles, and more particularly to systems, apparatus, and methods for facilitating docking of a robotic vehicle with a platform. [Background technology]
[0003] A robotic vehicle (e.g., a robotic truck) can include forks (also called tines or tines) to enable the vehicle to lift and move objects (e.g., pallets) within an environment such as a warehouse. Summary of the Invention
[0004] According to a first aspect, there is provided an autonomous vehicle comprising: a memory; machine-readable instructions; and a processor circuit for executing the machine-readable instructions, the processor circuit being configured, in use, to: identify characteristics associated with a platform; determine a confidence level associated with docking of the autonomous vehicle with a platform vehicle based on the characteristics associated with the platform; identify a positioning operation to be performed by the autonomous vehicle with respect to the platform based on the confidence level and the characteristics of the platform; and cause the autonomous vehicle to perform the identified positioning operation. The processor circuit may perform a comparison of the confidence level with a threshold and then either i) identify the positioning operation if the confidence level meets the threshold, or ii) cause an alert to be output if the confidence level does not meet the threshold. The characteristics associated with the platform include one or more of: a shape of the platform, a size of the platform, an orientation of the platform within an environment, a position of the platform within an environment, a construction status of the platform, a maintenance status of the platform, or a characteristic of a load supported by the platform.
[0005] The characteristic associated with the platform may be a first characteristic, and the processor circuit may then identify a second characteristic associated with the platform based on data corresponding to output of the sensor when the forks of the autonomous vehicle are at least partially engaged with the platform, adjust the positioning operation based on the second characteristic, and output instructions to cause the autonomous vehicle to perform the adjusted positioning operation.
[0006] The processor circuit may determine an orientation of the platform relative to the forks of the autonomous vehicle based on data corresponding to output of the sensors of the autonomous vehicle when the forks of the autonomous vehicle are at least partially engaged with the platform, adjust a positioning operation based on the orientation, and output instructions to cause the autonomous vehicle to perform the adjusted positioning operation. The processor circuit may identify characteristics associated with the platform based on image data output by the sensors of the autonomous vehicle. The processor circuit may execute one or more machine learning models to determine the confidence level.
[0007] The characteristics associated with the platform may include a weight of a load supported by the platform, and the processor circuit may identify a first positioning operation for the autonomous vehicle to move forks of the autonomous vehicle to a first position relative to the platform if the load is associated with a first weight, and may identify a second positioning operation for the autonomous vehicle to move the forks to a second position relative to the platform if the load is associated with a second weight.
[0008] According to a second aspect, there is provided a method for operating an autonomous vehicle, the method comprising the steps of: i) identifying one or more characteristics of a platform; ii) selecting a positioning operation to be performed by the autonomous vehicle with respect to the platform based on the one or more characteristics identified in step i); and iii) outputting instructions to cause the autonomous vehicle to perform the positioning operation selected in step ii).
[0009] If one or more additional platform characteristics are identified during performance of the positioning operation selected in step ii), the method further comprises a) modifying the previously selected positioning operation or b) selecting an additional positioning operation. Thus, the autonomous vehicle may abort the positioning operation, for example, if it detects significant damage to the platform. Alternatively, the autonomous vehicle may adapt the previously selected positioning operation, for example, to pick from a different location on the platform. In a further alternative, the autonomous vehicle may perform an additional positioning operation, for example, disengaging from the platform and / or subsequently re-engaging at a different location or from a different orientation on the platform.
[0010] In a further alternative, in step i), a first characteristic of the platform may be identified, and a second characteristic of the platform may be identified during performance of the selected positioning operation in step ii), the second characteristic of the platform being identified based on data corresponding to output of a sensor when forks of the autonomous vehicle are at least partially engaged with the platform, and the method further comprises: iv) adjusting the positioning operation based on the second characteristic; and v) outputting instructions to the autonomous vehicle to perform the adjusted positioning operation. In step i), the one or more characteristics of the platform may comprise one or more characteristics of a load carried by the platform.
[0011] In step i), characteristics of a load to be carried by the platform are identified, and in step ii), if the identified characteristic of the load is a first load characteristic, a first positioning operation may be selected for the autonomous vehicle to move forks of the autonomous vehicle to a first position relative to the platform, or if the identified characteristic of the load is a second load characteristic, a second positioning operation may be selected for the autonomous vehicle to move forks of the autonomous vehicle to a second position relative to the platform.
[0012] In step ii), selecting a positioning operation may include executing one or more machine learning models to select the positioning operation. In step i), one or more characteristics of the platform are identified based on outputs of one or more sensors, the one or more sensors being carried by at least one of the platform or the autonomous vehicle. In step i), the one or more characteristics of the platform may be identified based on an orientation or position of the platform within an environment. The positioning operation selected in step ii) may cause the autonomous vehicle to perform a first positioning operation such that the autonomous vehicle docks with the platform. The autonomous vehicle may perform a further positioning operation to undock from the platform. The autonomous vehicle undocks from the platform in response to an indication that the autonomous vehicle has reached the predetermined destination.
[0013] According to a third aspect, there is provided a non-transitory machine-readable storage medium comprising machine-readable code that, when executed, causes the above-described method to be performed. [Brief explanation of the drawings]
[0014] [Figure 1] FIG. 1 shows a schematic diagram of an example system according to the teachings of the present disclosure. [Figure 2] FIG. 2 illustrates an example system including the example robotic vehicle of FIG. 1 and an example docking control circuit according to the teachings of this disclosure. [Figure 3] FIG. 3 is a block diagram of an exemplary machine learning model training circuit. [Figure 4] FIG. 4 is a block diagram of an exemplary docking control circuit. [Figure 5] FIG. 5 is a flowchart representing example machine-readable instructions and / or example operations that may be executed by an example processor circuit to implement the machine learning training circuit of FIG. [Figure 6]FIG. 6 is a flowchart representing example machine-readable instructions and / or example operations that may be executed by an example processor circuit to implement the docking control circuit of FIG. DETAILED DESCRIPTION OF THE INVENTION
[0015] Platforms, such as pallets, may be used in warehouses to support goods and allow the goods to be transported from one location to another while on the platform. Platforms may vary in size, shape, material, weight, state of repair, etc. Also, the placement of a platform within a warehouse may affect access to the platform. For example, a platform may be positioned between other platforms and / or against one or more walls.
[0016] Robotic vehicles, such as autonomous vehicles, may include forks for lifting platforms, such as pallets (e.g., if the platform includes openings for receiving the forks), and moving the platform to another location in the environment. However, differences in the characteristics and / or location of each platform may affect the ability of the robotic vehicle to dock (e.g., autonomously engage or interface) with the platform for the purpose of transporting it. Also, the platform may or may not support a load (e.g., goods). The presence or absence of goods supported by the platform, the type of goods, the placement of goods on the platform, etc. may also affect the ability of the robotic vehicle to autonomously dock with the platform for transport purposes.
[0017] Disclosed herein are examples of machine learning-trained robotic vehicles (e.g., autonomous vehicles, robotic trucks, robotic pallet jacks) having forks for supporting and / or transporting objects, such as platforms containing goods, in environments such as warehouses. The examples disclosed herein use machine learning to train the robotic vehicle to dock with platforms, such as pallets. The examples disclosed herein generate a machine learning docking algorithm to determine a confidence, probability, or likelihood that the robotic vehicle will be able to dock with and / or transport the platform without damaging or substantially damaging the platform, any load supported by the platform, and / or the vehicle, based on variables such as the state and / or location of the platform in the environment, the type of load, and the placement of the load on the platform. In examples where a likelihood of a successful docking event with a platform is identified, the example machine learning docking algorithm is used to cause the robotic vehicle to execute movements, for example, to position the forks relative to the platform to enable the robotic vehicle to transport the platform based on characteristics of the platform and / or the load. For example, if a heavy load is placed on one side of the platform, the example machine learning algorithms disclosed herein can be trained to cause the robotic vehicle to center its forks under the load to reduce the likelihood of the load tipping during transport.
[0018] Examples of robotic vehicles disclosed herein include sensors (e.g., image sensors, distance sensors, force sensors, etc.) to monitor, for example, engagement of the forks with the platform. Examples disclosed herein can dynamically adjust the operation of the robotic vehicle to, for example, abort efforts to lift the platform if sensor data indicates that the surface of the platform is damaged (e.g., if the surface was obscured from view when the initial confidence determination was made). Examples disclosed herein can generate instructions to cause the robotic vehicle to perform operations to disengage from the platform when the robotic vehicle arrives at its destination to further prevent damage or substantial damage to the platform, load, and / or vehicle.
[0019] 1 shows a schematic diagram of an example of a system 100 including a robotic vehicle 102 for docking or engaging with a platform located within an environment 104 to transport and move the platform. The environment 104 may include, for example, a warehouse. In the example of FIG. 1, a first platform 106 and a second platform 108 are located within the environment 104. Additional platforms 106, 108 and / or robotic vehicles 102 may be located within the environment 104.
[0020] The first platform 106 may include a pallet having a surface 109 for supporting a first load 110. The second platform 108 may include a pallet having a surface 111 for supporting a second load 112. The first load 110 and the second load 112 may include, for example, inventory. In some examples, the first load 110 and / or the second load 112 may be moved from a first location to a second location within the environment 104, for example, to load the loads 110, 112 onto a truck. In some examples, the first platform 106 and / or the second platform 108 do not include a load disposed thereon. In such examples, the first platform 106 and / or the second platform 106, 108 may be moved from a first location to a second location within the environment 104 to place a load on the respective platform 106, 108.
[0021] The robotic vehicle 102 includes a first fork 114 and a second fork 116 extending from a body 117 of the robotic vehicle 102. The forks 114, 116 can be inserted into one or more openings or slots 118 defined in the first platform 106 to dock with the first platform 106. In other words, when the forks 114, 116 are inserted into the openings 118, the first platform 106 is engaged or coupled with the first platform 106 such that the robotic vehicle 102 can support or carry the first platform 106 and transport the first platform 106. For example, when the robotic vehicle 102 docks with the first platform 106 via the forks 114, 116, the robotic vehicle 102 can lift the first platform 106 off the ground on which it rests, carry the first platform 106, and move the first platform 106 within the environment 104. Similarly, the robotic vehicle 102 can dock with the second platform 108 via insertion of the forks 114, 116 into openings 118 defined in the second platform 108 to transport the second platform 108.
[0022] 1 , the robotic vehicle 102 may include an autonomous vehicle capable of docking with the platforms 106, 108 with or without limited user input control during operation of the robotic vehicle 102. For example, the robotic vehicle 102 may autonomously position or maneuver the forks 114, 116 relative to the openings 118 of the respective platforms 106, 108 to insert the forks 114, 116 into the openings 118 without input from a human operator. In some examples, the robotic vehicle 102 is a remotely driven vehicle. In such examples, the robotic vehicle 102 moves to a location within the environment 104 and / or engages with the platforms 106, 108 in response to input provided by a remote user.
[0023] In some examples, differences between the characteristics of the first platform 106 and the second platform 108, the location of the platforms 106, 108 within the environment 104, and / or the characteristics of the loads 110, 112 (or the absence of loads 110, 112) may affect the ability of the robotic vehicle 102 to dock with the platforms 106, 108 and transport the platforms 106, 108 and any loads 110, 112 supported by the platforms 106, 108. In particular, the platform, load, and / or environmental variables, as well as the specifications of the robotic vehicle 102 (e.g., weight capacity, fork size), may affect the ability of the robotic vehicle 102 to dock with and / or transport the platforms 106, 108 without damaging or substantially damaging the platforms 106, 108, the loads 110, 112, and / or the robotic vehicle 102. For example, characteristics of the first platform 106, such as the size, shape, and / or material of the first platform 106, may differ from the characteristics of the second platform 108. Accordingly, the robotic vehicle 102 may perform a different positioning maneuver to dock with the first platform 106 differently than with the second platform 108. In some examples, the robotic vehicle 102 may not include forks 114, 116 that are long enough to support platforms larger than a certain size, for example.
[0024] In some examples, the condition or state or repair of the first and second platforms 106, 108 may be different. For example, the first platform 106 may include a damaged portion and the second platform 108 may not include the damaged portion. If the robotic vehicle 102 positions the forks 114, 116 such that the weight of the first platform 106 is supported by the robotic vehicle 102 at the damaged portion, the first platform 106 may be further damaged or destroyed.
[0025] In some examples, the first platform 106 may be stationary at a position within the environment 104 where there are no other platforms and / or objects in the vicinity of the first platform 106. However, the second platform 108 may be located, for example, between two other platforms within the environment 104, in a corner of a room, on a shelf, under a shelf, etc. Accordingly, the robotic vehicle 102 may maneuver differently to dock with and / or lift the first platform 106 than the second platform 108 based on differences in the locations and / or characteristics of the environment 104 proximate the platforms 106, 108. For example, when the second platform 108 is located adjacent to (e.g., wedged against) a wall or another pallet, the forces output by the robotic vehicle 102 when docking with or lifting the second platform 108 may affect (e.g., impact) the other pallet and / or wall.
[0026] As disclosed herein, the first platform 106 and / or the second platform 108 may or may not support a corresponding load 110, 112 at a given time. The presence or absence of load 110, 112 supported by the respective platforms 106, 108, the type of load 110, 112, the weight of the load 110, 112, and the placement of the load 110, 112 on the platforms 106, 108 can affect the ability of the robotic vehicle 102 to autonomously dock with the platforms 106, 108 for the purpose of transporting the platforms 106, 108. For example, the weight distribution of the load 110 may be substantially uniform across the surface 109 of the first platform 106, while the weight distribution of the load 112 may be located substantially to one side of the surface 111 of the second platform 108. As another example, the load 110 may occupy a substantial area of the surface 109 of the first platform 106 , while the load 112 may occupy an area that is less than the area of the surface 111 of the second platform 108 .
[0027] Such differences in loads 110, 112 can affect how robotic vehicle 102 positions forks 114, 116 relative to platforms 106, 108. In some examples, robotic vehicle 102 may be unable to support a certain weight above a certain threshold. As another example, second load 112 may include packaging 119 disposed around second load 112, while first load 110 does not include packaging 119.
[0028] 1 may include sensors for generating output corresponding to data indicative of characteristics of the platforms 106, 108, the payloads 110, 112, and / or the environment 104, regarding the position of the platforms 106, 108, and / or other conditions of the environment 104 that may affect the docking of the robotic vehicle 102 with the platforms 106, 108. The example robotic vehicle 102 of FIG. 1 may include one or more sensors 120 carried by the body 117 and / or forks 114, 116 of the robotic vehicle 102. The robotic vehicle sensors 120 may include, for example, image sensors, force sensors, weight sensors, proximity sensors, infrared sensors, LIDAR sensors, etc.
[0029] In some examples, one or more sensors 122 are positioned within the environment 104. The environmental sensors 122 may include, for example, image sensors for capturing images of the environment 104, including the platforms 106, 108. In some examples, the platforms 106, 108 may include one or more sensors 124 disposed thereon for outputting signals indicative of, for example, the weight of the loads 110, 112 supported by the platforms 106, 108. The environmental sensors 122 and / or the platform sensors 124 may include other types of sensors.
[0030] 1 , the outputs of sensors 120, 122, 124 are analyzed by docking control circuitry 126 (e.g., processor circuitry) to manage the docking of robotic vehicle 102 with platforms 106, 108. In particular, docking control circuitry 126 analyzes the outputs of sensors 120, 122, 124 to detect characteristics of platforms 106, 108, payloads 110, 112, and / or variables in environment 104, e.g., obstacles, hazards, etc., that may affect the docking of robotic vehicle 102 with platforms 106, 108. The illustrated docking control circuitry 126 takes the sensor data into account and executes machine learning models to determine whether to initiate a docking event (e.g., whether to attempt docking) with platforms 106, 108 for robotic vehicle 102 to transport platforms 106, 108. In particular, the docking control circuitry 126 executes machine learning models to determine the likelihood that the robotic vehicle 102 will dock with and / or transport the platforms 106, 108 without damaging the platforms 106, 108, the payloads 110, 112, and / or the robotic vehicle 102.
[0031] For example, the docking control circuitry 126 can analyze the image data output by the sensors 120, 122, 124 to detect physical characteristics of the platforms 106, 108. The characteristics (i.e., physical characteristics) of each platform 106, 108 can include, for example, the size of the platform 106, 108, the shape of the platform 106, 108, the material (e.g., wood, plastic) of the platform 106, 108, and / or the platform quality. Characteristics related to the quality of each platform 106, 108 can include the construction of the platform 106, 108 (i.e., platform construction condition) or changes to the platform 106, 108 over time (i.e., platform maintenance condition). The platform construction condition can take into account variables in creating the platform 106, 108, such as whether the platform 106, 108 is formed from scrap wood or durable plastic. The platform maintenance status can take into account the effects of damage to the platform 106, 108 during use, for example, which can affect the structural integrity of the surface of the platform 106, 108, cause the surface to become uneven, etc. The quality of the platform 106, 108 can affect the platform 106, 108's ability to support a load as well as its engagement with the forks 114, 116 of the robotic vehicle 102 (e.g., an uneven platform surface can affect the balance of the platform 106, 108 on the forks 114, 116 of the vehicle 102).
[0032] Based on the image data and the machine learning model, the docking control circuitry 126 determines a confidence level of the robotic vehicle 102's ability to dock with the platform 106, 108, taking into account the physical characteristics of the platform 106, 108, the capabilities or specifications of the robotic vehicle 102 (e.g., fork size), and the risk of damage to the platform 106, 108, the load 110, 112, and / or the robotic vehicle 102. As another example, the docking control circuitry 126 can analyze the output of the sensors 120, 122, 124 to identify the location of the platform 106, 108 within the environment 104 and determine whether the robotic vehicle 102 can dock with and / or transport the platform 106, 108, for example, without damaging another platform or a wall on which the platform 106, 108 rests.
[0033] If, based on the confidence analysis, the example docking control circuitry 126 determines that the robotic vehicle 102 should initiate a docking event, the docking control circuitry 126 executes a machine learning model to guide the robotic vehicle 102 regarding engagement with the platforms 106, 108. For example, if the docking control circuitry 126 determines that the robotic vehicle 102 should dock with a first platform 106, the docking control circuitry 126 can generate instructions for the robotic vehicle 102 to move the forks 114, 116 (e.g., adjust the width between the forks 114, 116, the angle at which the forks 114, 116 enter the opening 118 in the platform 106, etc.) based on the detected placement of the load 110 on the platform 106 to reduce the risk of the load 110 tipping during transport of the platform 106.
[0034] 1 monitors the outputs of the sensors 120, 122, 124 during docking of the robotic vehicle 102 with the platforms 106, 108 to determine whether adjustments should be made to the positioning of the robotic vehicle 102 relative to the platforms 106, 108. In some examples, the docking control circuit 126 determines whether to abort the docking event based on sensor data generated during the docking event. As one example, the docking control circuit 126 may determine, based on the outputs of the sensors 120 of the forks 114, 116, that a repair condition of the first platform 106 could result in damage to the platform where such platform condition would not otherwise be detectable until the forks 114, 116 were at least partially inserted into the openings 118 of the first platform 106. If the docking control circuit 126 determines that the docking event should be aborted, the docking control circuit 126 may cause an alert to be output to notify a human operator.
[0035] 1 may also generate instructions to cause the robotic vehicle 102 to perform a maneuver to disengage or decouple from the platform 106, 108 after transporting the platform 106, 108 to a particular location based on, for example, characteristics of the platform 106, 108, the payload 110, 112, and / or the environment 104. The docking control circuitry 126 may provide sensor data and / or instructions generated during monitoring of the robotic vehicle 102 during docking, transport, and / or undocking of the platform 106, 108 for refinement and / or further training of machine learning models. For example, if the load 110, 112 falls off the robotic vehicle 102 during transport, the docking control circuitry 126 can record relevant data (e.g., load characteristics, position of the forks 114, 116, etc.) for training machine learning models.
[0036] FIG. 2 shows a schematic diagram of the robotic vehicle 102 of the system 100 described above with reference to FIG. The robotic vehicle 102 of Figure 2 includes wheels 200 coupled to the body 117 of the robotic vehicle 102, allowing the robotic vehicle 102 to move, for example, to transport platforms 106, 108. The robotic vehicle 102 of Figure 2 includes one or more motors 204 (e.g., electric motors and / or other drive mechanisms) for causing movement of the robotic vehicle 102 via the wheels 200 of the robotic vehicle 102. The robotic vehicle 102 includes motor control circuitry 206 for controlling, for example, the speed of the robotic vehicle 102.
[0037] The robotic vehicle 102 includes forks 114, 116 supported by a body 117 of the robotic vehicle 102. The robotic vehicle 102 includes one or more actuators 208 for causing movement of the forks 114, 116. The actuators 208 can extend the forks 114, 116 relative to the body 117, for example, to enter openings 118 in the platforms 106, 108, or retract the forks 114, 116 relative to the body 117, for example, to disengage from the platforms 106, 108. The robotic vehicle 102 includes fork actuator control circuitry 210 for controlling the actuation of the forks 114, 116.
[0038] As disclosed herein, the robotic vehicle 102 may be an autonomous vehicle. The robotic vehicle 102 includes vehicle control circuitry 211 for controlling the movement of the autonomous vehicle 102. In the example of Figure 2, the vehicle control circuitry 211 is implemented by a processor circuitry 220 of the robotic vehicle 102. The robotic vehicle 102 moves to a position within the environment 104 with no or limited user input control during the movement of the vehicle 102.
[0039] 2 includes one or more sensors 120. The sensors 120 may include, for example, image sensors, force sensors, weight sensors, proximity sensors, infrared sensors, LIDAR sensors, etc. As disclosed herein, the robotic vehicle sensors 120 output signals corresponding to data that can be used to evaluate whether the robotic vehicle 102 should dock or attempt to dock with the platforms 106, 108.
[0040] In some examples, the robotic vehicle 102 includes a display screen 212 for presenting data to a user of the robotic vehicle 102. In such examples, a display controller 214 (e.g., a graphics processing unit (GPU)) of the example robotic vehicle 102 of FIG. 2 controls the operation of the display screen 212 and facilitates the rendering of content (e.g., a display frame associated with a graphical user interface) via the display screen 212. The example robotic vehicle 102 of FIG. 2 includes a power source 216, such as a battery, for providing power to components of the robotic vehicle 102 communicatively coupled via a bus 218. In some examples, the robotic vehicle 102 includes a speaker 219 for providing audio output to a user interacting with the robotic vehicle 102.
[0041] 2, the docking control circuitry 126 of FIG. 1 is implemented by executable instructions executing on the processor circuitry 220 of the robotic vehicle 102. However, in other examples, the docking control circuitry 126 is implemented by the processor circuitry 222 of another user device 224 (e.g., a smartphone, a wearable device, etc.) that communicates with the robotic vehicle 102, and / or by a cloud-based computing device 226. In other examples, one or more components of the docking control circuitry 126 are implemented by dedicated circuitry located on the robotic vehicle 102 and / or the user device 224. These components may be implemented in software, hardware, or any combination of two or more of software, firmware, and / or hardware.
[0042] Artificial intelligence (AI), including machine learning (ML), deep learning (DL), and / or other artificial machine-driven logic, enables machines to process input data using models and generate outputs based on patterns and / or associations previously learned by the models through a training process. For example, a model may be trained with data to recognize patterns and / or associations and follow such patterns and / or associations when processing other inputs in a way that results in outputs consistent with the recognized patterns and / or associations.
[0043] 3 is a block diagram of a machine learning model training circuit 300 for training a machine learning model executed by the docking control circuit 126 to determine whether the robotic vehicle 102 should dock with the platform 106, 108, and for controlling or guiding the robotic vehicle 102 in engaging and / or transporting with the platform 106, 108 when the docking control circuit 126 determines that a docking event should occur. The machine learning model training circuit 300 of FIG. 3 may be instantiated by a processor circuit, such as a central processing unit (CPU) that executes instructions, or an equivalent processing device, such as a suitable ASIC or FPGA. It should be understood that some or all of the circuits of FIG. 3 may be instantiated simultaneously or at different times.
[0044] The example machine learning model training circuit 300 of Figure 3 includes a training control circuit 302, a neural network training circuit 304, and a neural network processor circuit 306. In some examples, the training control circuit 302 is instantiated by a processor circuit that executes training control instructions and / or is configured to perform operations such as those represented by the flowchart of Figure 5. In some examples, the neural network training circuit 304 is instantiated by a processor circuit that executes training control instructions and / or is configured to perform operations such as those represented by the flowchart of Figure 5.
[0045] Generally, implementing an ML / AI system involves two phases: a learning / training phase and an inference phase. In the learning / training phase, a training algorithm is used to train a model to act according to patterns and / or associations, for example, based on training data. Generally, a model contains internal parameters that guide how input data is transformed into output data, such as through a series of nodes and connections within the model to convert the input data to output data. Additionally, hyperparameters are used as part of the training process to control how learning is performed (e.g., learning rate, number of layers used in a machine learning model, etc.). Hyperparameters are defined as training parameters that are determined before the training process begins.
[0046] Different types of training may be performed based on the type and / or expected output of the ML / AI model. For example, supervised training uses inputs and corresponding expected (e.g., labeled) outputs to select parameters for the ML / AI model (e.g., by iterating over combinations of selected parameters) that reduce model error. As used herein, labeling refers to the expected output (e.g., classification, expected output value, etc.) of the machine learning model. Alternatively, unsupervised training involves inferring patterns from inputs to select parameters for the ML / AI model.
[0047] In the examples disclosed herein, training is performed either remotely (e.g., in the cloud or on a server) or locally (e.g., on the robotic vehicle 102). Training is performed using hyperparameters that control how learning is performed (e.g., learning rate, number of layers used in the machine learning model, etc.). Training is performed using training data.
[0048] In the examples disclosed herein, the training data may originate from, for example, the robotic vehicle 102, other robotic vehicles, other types of vehicles (e.g., manually operated vehicles), sensors carried by the vehicle, sensors carried by the platform (e.g., platforms 106, 108, or other platforms), and / or sensors located in the environment (e.g., environment 104, other environments). If supervised training is used, the training data is labeled. In some examples, the training data is preprocessed. In some examples, retraining may be performed. Such retraining may be performed, for example, in response to data collected by the robotic vehicle 102 during docking to, transfer to, and / or undocking from platforms 106, 108.
[0049] Once training is complete, the model is deployed for use as an executable configuration that processes inputs and provides outputs based on the network of nodes and connections defined in the model. The model may be stored locally in memory or remotely (e.g., in the cloud) before being executed by the docking control circuitry 126.
[0050] Once trained, the deployed model may be operated in an inference phase to process data. In the inference phase, data to be analyzed (e.g., live data) is input into the model, which executes it to produce output. This inference phase can be thought of as running the model to apply learned patterns and / or associations to the live data. In some examples, the input data undergoes preprocessing before being used as input to the machine learning model. Additionally, in some examples, the output data may undergo post-processing after being generated by the AI model to convert the output into a useful result (e.g., a representation of the data, instructions executed by a machine, etc.).
[0051] In some examples, the output of the deployed model may be captured and provided as feedback. The feedback may be analyzed to determine the accuracy of the deployed model. If the feedback indicates that the accuracy of the deployed model is below a threshold or other criterion, training of an updated model may be triggered using the feedback and updated training dataset, hyperparameters, etc. to generate an updated deployed model.
[0052] In the examples disclosed herein, the neural network processor circuit 306 of Figure 3 implements one or more neural networks. The example neural network training circuit 304 of Figure 3 performs training of the neural network implemented by the neural network processor circuit 306. In some examples disclosed herein, the training is performed using a stochastic gradient descent algorithm. However, other approaches for training neural networks may additionally or alternatively be used.
[0053] 3 instructs neural network training circuit 304 to perform training of the neural network using training data 308. In the example of FIG. 3, the training data 308 used by neural network training circuit 304 to train the neural network is stored in database 310.
[0054] 3, training data 308 may include images of platforms (e.g., pallets) having different characteristics, such as size, shape, weight, state of repair, platform material, and / or material surrounding the platform, such as wrapping. Training data 308 may include images of the platform in different orientations and / or positions, such as on the floor, on the bed of a truck, partially surrounded by obstacles (e.g., other platforms, equipment, walls, etc.). Training data 308 may be based on sensor data generated during operation of a manual or user-controlled vehicle and / or during operation of robotic vehicle 102 or other robotic vehicles.
[0055] The training data 308 may include images of vehicles performing maneuvers to engage, lift, and / or transport platforms of different sizes, shapes, states of repair, orientations, positions, etc. The training data 308 may include sensor data associated with the performance of successful, favorable, and / or safe docking and undocking operations by the manually operated vehicle and / or robotic vehicle. The training data 308 may include sensor data associated with unsuccessful, unfavorable, and / or unsafe docking and undocking operations performed by the manually operated vehicle and / or robotic vehicle, such as when the platform, the load carried by the platform, and / or the vehicle is damaged. The sensor data associated with successful and / or unsuccessful operations may include sensor outputs generated before, during, and / or after engagement with the platform.
[0056] In some examples, training data 308 includes data captured while a user is docking a vehicle, such as a forklift, with a platform in manual mode (i.e., the user is operating the vehicle, providing inputs at the vehicle to position the forks relative to the platform, etc.). In such examples, training data 308 may include, for example, images (e.g., video frames) of the vehicle docking with the platform while being operated by the user, outputs of sensors (e.g., force sensors, proximity sensors) on the vehicle while performing an operator-controlled docking operation, etc. Training data 308 may include examples of successful and unsuccessful manually-controlled docking events. Training data 308 may also include data captured during manually-controlled undocking events.
[0057] The training data 308 may be labeled to indicate the type of docking or undocking operation (e.g., a successful, preferred, safe docking / undocking operation, a failed, unpreferred, unsafe docking / undocking operation, etc.) For example, the training data 308 may include labels indicating whether the platform is in a state to be lifted by a vehicle, whether a particular type of robotic vehicle can carry the platform (e.g., based on weight limits, vehicle fork style), whether the platform is in a position that allows it to be lifted, whether the docking operation is associated with a successful docking operation or a failed docking operation, etc.
[0058] The neural network training circuit 304 uses the training data 308 to train a neural network implemented by the neural network processor circuit 306. For example, the neural network training circuit 304 trains the neural network to determine, for example, the reliability or likelihood that a robotic vehicle can dock with and / or transport a platform without causing damage or substantial damage to the platform, the payload carried by the platform, and / or the robotic vehicle. Characteristics of the platform, the payload, and / or the environment can be used as weights in training the neural network model to generate a reliability prediction. One or more docking reliability models 312 are generated as a result of the neural network training. The docking reliability models 312 are stored in a database 314. The databases 310, 314 may be the same or different storage devices.
[0059] 3, the neural network training circuit 304 trains a neural network to guide the robotic vehicle in positioning and moving the vehicle body and / or vehicle forks to mate with, lift, and transport a platform based on characteristics associated with the platform, the load, and / or the environment. One or more docking positioning models 316 are generated as a result of the neural network training. The docking positioning models 316 are stored in a database 314.
[0060] In some examples, the neural network training circuit 304 trains the neural network to identify potential risks of damage or substantial damage to the platform, the load, and / or the robotic vehicle while the robotic vehicle is engaged with or engaged with the platform. For example, the neural network training circuit 304 may train the neural network to identify when the weight distribution of the load while the platform is being transported by the robotic vehicle is likely to result in the load falling from the platform (e.g., because the load overhangs the forks). One or more docking performance models 318 are generated as a result of the neural network training. The docking performance models 318 are stored in the database 314. As disclosed herein, the docking confidence model 312, the docking positioning model 316, and / or the docking performance monitoring model 318 are executed by the docking control circuit 126 to manage platform docking events for the robotic vehicle 102 of FIGS. 1 and 2 .
[0061] While an exemplary manner of implementing the machine learning model training circuit 300 is illustrated in Figure 3, it should be understood that one or more of the elements illustrated in Figure 3 may be implemented in different manners. Furthermore, the machine learning model training circuit 300, or any of its components, may be implemented solely by hardware or by hardware in combination with software and / or firmware. Furthermore, the exemplary machine learning model training circuit 300 may include one or more elements, processes, and / or devices in addition to or instead of those illustrated in Figure 3, and / or may include two or more of any or all of the illustrated elements, processes, and devices.
[0062] 4 is a block diagram of the example docking control circuitry 126 of FIGS. 1 and 2 for executing machine learning models to selectively determine whether a robotic vehicle (e.g., the robotic vehicle 102 of FIGS. 1 and 2 ) should initiate a docking event with a platform to transport the platform and whether to guide the robotic vehicle regarding engagement with the platform. The docking control circuitry 126 of FIG. 4 may be instantiated by a processor circuit such as a CPU or equivalent processing device, e.g., a suitable ASIC or FPGA. Additionally or alternatively, the docking control circuitry 126 of FIG. 4 may be instantiated (e.g., instantiated, caused to exist for any length of time, embodied, implemented, etc.) by an ASIC or FPGA configured to perform operations corresponding to instructions.
[0063] The example docking control circuit 126 of FIG. 4 includes a platform classification circuit 400, a reliability determination circuit 402, a docking position control circuit 404, a monitoring circuit 406, and a feedback circuit 408. In some examples, the platform classification circuit 400 is instantiated by a processor circuit that executes platform classification instructions and / or is configured to perform operations such as those represented by the flowchart of FIG. 6. In some examples, the reliability determination circuit 402 is instantiated by a processor circuit that executes reliability determination instructions and / or is configured to perform operations such as those represented by the flowchart of FIG. 6. In some examples, the docking position control circuit 404 is instantiated by a processor circuit that executes docking position control instructions and / or is configured to perform operations such as those represented by the flowchart of FIG. 6. In some examples, the monitoring circuit 406 is instantiated by a processor circuit that executes monitoring instructions and / or is configured to perform operations such as those represented by the flowchart of FIG. 6. In some examples, the feedback circuit 408 is instantiated by a processor circuit that executes feedback instructions and / or is configured to perform operations such as those represented by the flowchart of FIG. 6.
[0064] The example platform classification circuit 400 of Figure 4 identifies or classifies platforms 106, 108 that are candidates for docking with the robotic vehicle 102. The candidate platforms 106, 108 may be platforms that the robotic vehicle 102 is requested, commanded, or assigned to transport. The example platform classification circuit 400 of Figure 4 accesses sensor data (e.g., image data, weight data, proximity data) corresponding to the output of the robotic vehicle sensors 120, the environmental sensors 122, and / or the platform sensors 124. The platform classification circuit 400 analyzes (e.g., recognizes) characteristics of the candidate platforms 106, 108, the payloads 110, 112 carried by the platforms 106, 108, and / or the environment 104 based on the sensor outputs.
[0065] For example, the platform classification circuit 400 may perform image analysis to identify or recognize the platform 106, 108 that the robotic vehicle 102 is assigned to transport. The platform classification circuit 400 analyzes the sensor data to identify characteristics of the selected platform 106, 108, such as the size, shape, and material of the platform 106, 108. In some examples, the platform classification circuit 400 identifies characteristics of the load 110, 112 to be carried by the platform 106, 108 based on the analysis of the sensor data, such as the size of the load 110, 112, the weight of the load 110, 112, the load type based on image analysis of a barcode or label on the load 110, 112, etc. In some examples, the platform classification circuit 400 identifies the position and / or orientation of the platform 106, 108 within the environment 104 based on the sensor data. In some examples, the platform classification circuit 400 identifies hazards or obstacles within the environment 104 based on the sensor data. The platform classification circuit 400 stores characteristics of the platforms 106, 108, the payloads 110, 112, and / or the environment 104 as platform classification data 412 in a database 410. In some examples, the docking control circuit 126 includes the database 410. In some examples, the database 410 is located external to the docking control circuit 126 in a location accessible to the docking control circuit 126, as shown in FIG.
[0066] The example reliability determination circuit 402 executes the docking reliability model 312 to predict, for example, the likelihood that the robotic vehicle 102 will be able to dock with and / or transport the platforms 106, 108 without causing damage or substantial damage to the platforms 106, 108, the payloads 110, 112, and / or the robotic vehicle 102 based on the platform classification 412. The reliability determination circuit 402 can access the docking reliability model 312 from the database 314. The databases 314, 410 can be stored in the same storage device or different storage devices.
[0067] As a result of executing the docking confidence model 312, the confidence determination circuit 402 assigns a confidence level to the candidate platform 106, 108 that indicates the likelihood that the robotic vehicle 102 will dock with and / or carry the platform 106, 108 without damaging or substantially damaging the platform 106, 108, the payload 110, 112, or the robotic vehicle 102. The platform classification data 412 can act as weights that influence the confidence level when executing the docking confidence model 312. For example, a platform that is wider than the robotic vehicle 102 may decrease the confidence level, while a platform that is smaller than the robotic vehicle may increase the confidence level. As another example, a higher confidence level may result if the platform 106, 108 is alone in the environment, while a platform 106, 108 placed between two other pallets or between a wall and another pallet may result in a lower confidence determination.
[0068] The confidence determination circuit 402 determines whether the confidence level meets a confidence threshold 414. The confidence threshold 414 may be defined based on user input and stored in the database 410. If the confidence level meets the confidence threshold 414, the confidence determination circuit 402 outputs instructions indicating that the robotic vehicle 102 should initiate a docking event with the platforms 106, 108. For example, the confidence determination circuit 402 may communicate with the vehicle control circuit 211 and / or the motor control circuit 206 ( FIG. 2 ) of the robotic vehicle 102 to move the robotic vehicle 102 to a position that includes the platforms 106, 108.
[0069] If the confidence level does not meet the confidence threshold 414, the confidence determination circuit 402 refrains from outputting a command to engage the robotic vehicle 102 with the platform 106, 108. In some such examples, the confidence determination circuit 402 causes an alert to be output (e.g., via the display screen 212 and / or speaker 219 of the robotic vehicle 102) to indicate that an operator should assist in retrieving the platform 106, 108 (e.g., by manually maneuvering the robotic vehicle 102). In some examples, a user can override the alert in order to dock the robotic vehicle 102 with the platform 106, 108.
[0070] In examples where the confidence determination circuitry 402 determines that the confidence level meets the confidence threshold 414 and therefore the robotic vehicle 102 should engage with the platform 106, 108, the docking position control circuitry 404 executes the docking positioning model 316 to cause the robotic vehicle 102 to perform one or more positioning maneuvers to engage with the platform 106, 108. In particular, the docking position control circuitry 404 executes the docking positioning model 316 to determine, identify, or select a maneuver for the robotic vehicle 102 to perform to engage with the platform 106, 108 based on the platform classification data 412.
[0071] For example, as a result of execution of the docking positioning model 316, the docking position control circuitry 404 can determine whether the robotic vehicle 102 should move the forks 114, 116 up, down, left / right, etc. based on the orientation, size, and / or shape of the platforms 106, 108. As a result of execution of the docking positioning model 316, the docking position control circuitry 404 can determine whether the robotic vehicle 102 should adjust the width between the forks 114, 116, whether to adjust the angle at which the forks 114, 116 engage the platforms 106, 108, and / or whether to engage a particular side of the platforms 106, 108 based on the type of platform, the orientation of the platforms 106, 108, obstacles in the environment 104 proximate the platforms 106, 108, etc. The docking position control circuitry 404 can determine a particular maneuver for positioning the forks 114, 116 relative to the platforms 106, 108 based on the weight of the load 110, 112. For example, the docking position control circuit 404 may determine that the forks 114, 116 should be separated a first amount to support a first load weight and a second amount to support a second load weight that is different from the first load weight.
[0072] The docking position control circuit 404 outputs commands that cause the robotic vehicle 102 to perform operations. For example, the docking position control circuit 404 can output commands that are implemented by the fork actuator control circuit 210 to cause the fork actuator 208 to move the forks 114, 116 based on the commands.
[0073] In some examples, the docking position control circuitry 404 executes the docking positioning model 316 to cause the robotic vehicle 102 to perform an operation to disengage or undock from the platform 106, 108. For example, the vehicle control circuitry 211 ( FIG. 2 ) of the robotic vehicle 102 can indicate to the docking position control circuitry 404 that the robotic vehicle 102 has arrived at its destination on the platform 106, 108. In response, the docking position control circuitry 404 can execute the docking positioning model 316 to cause the robotic vehicle 102 to disengage from the platform 106, 108 at the destination. As a result of the execution of the docking positioning model 316 taking into account the platform classification data 412, the undocking operation is based on factors such as the platform type, the weight distribution of the payload 110, 112, etc. Thus, the docking position control circuitry 404 can identify a positioning maneuver to disengage the platforms 106, 108 that prevents damage or substantial damage to the platforms 106, 108, the payload 110, 112, or the robotic vehicle 102.
[0074] 4 analyzes the outputs of the sensors 120, 122, 124 while the robotic vehicle 102 is engaged with or engaged with the platforms 106, 108. Based on data corresponding to the outputs of the sensors 120, 122, 124, the monitoring circuitry 406 determines, for example, whether a change to the positioning operation should be implemented by the robotic vehicle 102 or whether the docking event should be aborted. For example, as disclosed herein, the forks 114, 116 of the robotic vehicle 102 may include sensors 120 that output images of the surfaces 109, 111 of the platforms 106, 108 when the forks 114, 116 are at least partially positioned within the openings 118 of the platforms 106, 108. The monitoring circuitry 406 can analyze the image data to determine whether one or more portions of the surfaces 109, 111 show signs of wear or whether an obstruction is present on the platforms 106, 108, such as material placed between (e.g., suspended between) slots in the platforms 106, 108. In some such examples, the monitoring circuitry 406 communicates with the docking position control circuitry 404 to cause the robotic vehicle 102, for example, to reposition the forks 114, 116 relative to the platforms 106, 108 so that the forks 114, 116 do not engage the worn portions of the platform surfaces 109, 111. In some such examples, the monitoring circuitry 406 outputs commands to disengage the robotic vehicle 102 from the platform 106, 108 and abort the docking operation, for example, if the monitoring circuitry 406 predicts that the load 110, 112 may be damaged if the forks 114, 116 engage the platform surface 109, 111 due to the repair condition of the platform 106, 108.
[0075] The monitoring circuitry 406 executes the docking performance monitoring model 318 to identify potential risks of damage to the platforms 106, 108, the loads 110, 112, and / or the robotic vehicle 102 while the robotic vehicle 102 is engaged with or engaged with the platforms 106, 108. For example, based on data corresponding to output by the sensors 120, 122, 124 and the execution of the docking performance monitoring model 318, the monitoring circuitry 406 can identify the orientation of the platforms 106, 108 as they are carried by the forks 114, 116. As a result of execution of the docking performance monitoring model 318, the monitoring circuitry 406 can recognize that the forks 114, 116 have engaged the platform 106, 108 such that the platform 106, 108 overhangs the forks 114, 116 an amount that could cause the platform 106, 108 to fall during transport or in another orientation that could affect the ability of the robotic vehicle 102 to transport the platform 106, 108. In some examples, the monitoring circuitry 406 recognizes that the forks 114, 116 are bent and therefore the platform 106, 108 is tilted. In some such examples, the monitoring circuitry 406 outputs a command for the robotic vehicle 102 to disengage from the platform 106, 108. For example, the monitoring circuitry 406 communicates with the docking position control circuitry 404 to cause the robotic vehicle 102 to perform coordinated operations to return the platforms 106, 108 to the ground, disengage from the platforms 106, 108, and re-engage with the platforms 106, 108 to prevent or minimize the risk of the payloads 110, 112 falling during transport.
[0076] In some examples, the monitoring circuitry 406 causes an alert to be output (e.g., via the display screen 212 and / or speaker 219 of the robotic vehicle 102) to inform the operator of the performance of the robotic vehicle 102 regarding docking and / or transporting the platforms 106, 108. In some examples, the user can override the alert to allow the robotic vehicle 102 to continue transporting the platforms 106, 108.
[0077] 3 to facilitate training, retraining, and / or refinement of the docking confidence model 312, the docking positioning model 316, and / or the docking performance monitoring model 318 based on data collected during docking events performed by the robotic vehicle 102. The feedback circuit 408 may provide data associated with the positioning of the forks 114, 116 prior to engagement with the platform 106, 108 and the repositioning of the forks 114, 116 during docking, for use in refinement and / or retraining the machine learning models 312, 316, 318, for example. For example, the feedback circuit 408 may communicate with the machine learning model training circuit 300 to notify the machine learning model training circuit 300 that a particular method for lifting the platform 106 previously associated with the docking positioning model 316 resulted in damage to the platform 106, 108 and / or the load 110, 112. Thus, the machine learning model training circuit 300 can retrain the docking performance model 318 to prevent the robotic vehicle 102 from lifting other platforms and / or cargoes that have similar characteristics to the similarly damaged platform and / or cargo.
[0078] In some examples, the docking control circuitry 126 includes a means for classifying. For example, the means for classifying may be implemented by the platform classification circuitry 400.
[0079] In some examples, the docking control circuitry 126 includes a means for determining trustworthiness. For example, the means for determining trustworthiness may be implemented by the trustworthiness determination circuitry 402. In some examples, the trustworthiness determination circuitry 402 may be instantiated by a processor circuit, such as the example processor circuitry 812 of FIG. 8.
[0080] In some examples, the docking control circuitry 126 includes means for position control. For example, the means for position control may be implemented by the docking position control circuitry 404. In some examples, the docking position control circuitry 404 may be instantiated by a processor circuit, such as the example processor circuitry 812 of FIG. 8.
[0081] In some examples, docking control circuitry 126 includes means for monitoring. For example, the means for monitoring may be implemented by monitoring circuitry 406. In some examples, monitoring circuitry 406 may be instantiated by a processor circuit, such as example processor circuitry 812 of FIG. 8. The instructions are executed without executing software or firmware, although other structures are suitable as well.
[0082] In some examples, the docking control circuitry 126 includes means for providing feedback. For example, the means for providing feedback may be implemented by the feedback circuitry 408.
[0083] 1 and 2 is illustrated in Figure 3, one or more of the elements, processes, and / or devices illustrated in Figure 3 may be combined, divided, rearranged, omitted, removed, and / or implemented in any other manner. Furthermore, the example platform classification circuit 400, the example confidence determination circuit 402, the example docking position control circuit 404, the example monitoring circuit 406, the example feedback circuit 408, and / or, more generally, the example docking control circuit 126 of Figures 1 and 2 may be implemented solely by hardware or by hardware in combination with software and / or firmware.
[0084] A flowchart representing exemplary machine-readable instructions that may be executed to configure a processor circuit to implement the machine learning model training circuit 300 of Figure 3 is shown in Figure 5. A flowchart representing exemplary machine-readable instructions that may be executed to configure a processor circuit to implement the docking control circuit 126 of Figure 4 is shown in Figure 6.
[0085] 5 and 6, many other ways of implementing the example machine learning model training circuit 300 and / or docking control circuit 126 may alternatively be used. For example, the order of execution of the blocks may be changed, and / or some of the described blocks may be changed, eliminated, or combined.
[0086] As described above, the example operations of Figures 5 and 6 may be implemented using executable instructions (e.g., computer and / or machine readable instructions) stored on one or more non-transitory computer and / or machine readable media, such as a hard disk drive, a CD, or other such device.
[0087] 5 is a flowchart representing example machine-readable instructions and / or example operations 500 that may be executed and / or instantiated by a processor circuit to train a neural network to manage the docking of a robotic vehicle with a platform. The machine-readable instructions and / or operations 500 of FIG. 5 begin at block 502, where the training control circuitry 302 accesses reference data. The reference data may include, for example, image data, force sensor data, proximity sensor data, etc. generated in association with the vehicle performing operations including docking or attempting to dock with a platform, lifting the platform, transporting the platform, etc., and the platform may have different sizes, shapes, different loads, no loads, different orientations, different positions in the environment, etc.
[0088] At block 504, the training control circuit 302 labels the reference data to identify preferred, successful, and / or safe actions for docking with the platform, for example, based on platform and / or cargo characteristics. The training control circuit 302 may also label the reference data to identify unpreferred, unsuccessful, and / or unsafe actions for docking with the platform, for example, based on platform and / or cargo characteristics. At block 506, the example training control circuit 302 generates training data 308 based on the labeled content.
[0089] At block 508, the training control circuit 302 instructs the neural network training circuit 304 to perform training of the neural network implemented by the neural network processor circuit 306. As a result of the training, a docking confidence model 312, a docking positioning model 316, and / or a docking performance model 316 are generated at block 510. The example instructions 500 of FIG. 5 end when no additional training (e.g., retraining) is to be performed (blocks 512, 514).
[0090] FIG. 6 is a flowchart representing example machine-readable instructions and / or example operations 600 that may be executed and / or instantiated by a processor circuit to manage the docking of a robotic vehicle (e.g., the robotic vehicle 102 of FIGS. 1 and 2 ) with a platform (e.g., the platforms 106, 108, a pallet). The machine-readable instructions and / or operations 600 of FIG. 6 begin at block 602, where the platform classification circuit 400 identifies characteristics associated with candidate platforms 106, 108 for docking with the robotic vehicle 102. The platforms 106, 108 may include platforms 106, 108 that the robotic vehicle 102 is assigned to transport. In the example of FIG. 6 , the platform classification circuit 400 identifies the characteristics based on sensor output from sensors 120 on the vehicle 102, sensors 122 in the environment 104 including the platforms 106, 108, and / or sensors 124 on the platforms 106, 108 to generate platform classification data 412. The characteristics may include characteristics of the platforms 106, 108 (e.g., size, shape, material), characteristics of the cargo 110, 112 carried by the platforms, if any (e.g., type, placement on the platforms 106, 108, weight), and / or characteristics of the environment 104 that may affect docking (e.g., location of the platforms, other platforms, and / or objects in proximity (e.g., adjacent, touching) the candidate platforms 106, 108), etc.
[0091] At block 604, the confidence determination circuit 402 executes the docking confidence model 312 to determine a confidence level associated with a docking event between the robotic vehicle 102 and the candidate platform 106, 108 based on the platform classification data 412 for the particular platform 106, 108. At block 606, the confidence determination circuit 402 determines whether the confidence level meets the confidence threshold 414 such that the likelihood of docking between the robotic vehicle 102 and the platform 106, 108 will allow the vehicle 102 to engage and carry the platform without causing damage or substantial damage to the platform 106, 108, the payload 110, 112, and / or the vehicle 102.
[0092] In instances where the confidence determination circuit 402 determines that the confidence level meets the confidence threshold 414, the docking position control circuit 404 executes the docking positioning model 316 to either engage or mate the robotic vehicle 102 with the platform 106, 108 or to command the robotic vehicle 102 to mate or dock with the platform 102, 104, at block 608. For example, as a result of executing the docking positioning model 316 taking into account the platform classification data 412, the docking position control circuit 404 causes the robotic vehicle 102 to perform a particular maneuver to position the forks 114, 116 for engagement with the platform 106, 108.
[0093] In block 610, the monitoring circuitry 406 monitors the outputs of the sensors 120, 122, 124 generated while the robotic vehicle 102 is engaged with or engaged with the platforms 106, 108 to determine whether adjustments to the docking operation should be performed. For example, the monitoring circuitry 406 may determine that the docking operation should be adjusted based on force sensor outputs indicating that the weight associated with the platforms 106, 108 is not balanced between the forks 114, 116 and therefore likely to fall. In block 612, the docking position control circuitry 404 executes the docking positioning model 316 to cause the robotic vehicle 102 to adjust its docking operation with the platforms 106, 108 or to perform an operation to abort docking with the platforms 102, 104.
[0094] In some examples, rather than adjusting the docking operation, the monitoring circuitry 406 determines that the docking operation should be aborted (block 614). The monitoring circuitry 406 may determine that the docking operation should be aborted based on, for example, image data illustrating the state of repairs on the platforms 106, 108 that may not have been otherwise visible until the forks 114, 116 were at least partially within the openings 118 in the platforms 106, 108. If the monitoring circuitry 406 determines that the docking operation should be aborted, control proceeds to block 620, where the docking position control circuitry 404 executes the docking positioning model 316 to cause the robotic vehicle 102 to abort the docking operation.
[0095] If the monitoring circuitry 406 does not identify an adjustment to the docking operation, control proceeds to block 616, where the docking position control circuitry 404 receives an indication from the vehicle control circuitry 211 that the robotic vehicle 102 has reached its destination on the platform 106, 108. Control also proceeds to block 616 after an adjustment has been made to the docking operation. In response to the indication that the vehicle 102 has reached its destination, in block 618, the docking position control circuitry 404 executes the docking positioning model 316 to cause the robotic vehicle 102 to perform a maneuver to undock or disengage from the platform 106, 108 without damaging or substantially damaging the platform 106, 108, the payload 110, 112, or the robotic vehicle 102.
[0096] In block 622, the feedback circuit 408 provides feedback to the machine learning model training circuit 300 based, for example, on data logged or recorded during a docking event, where the docking event was successful (e.g., the platform was transported to the destination via the vehicle 102 without damage or substantial damage to the platform 106, 108, the load 110, or the vehicle 102) or the docking event was unsuccessful (e.g., the load fell off the vehicle 102 during transport, the docking operation was aborted). For example, the feedback circuit 408 may provide data indicative of the positions of the forks 114, 116 during successful and / or unsuccessful docking events with the robotic vehicle 102, as well as corresponding platform classification data 412 for use in retraining the models 312, 316, 318. In some embodiments, the feedback circuit 408 may store data (e.g., from successful and / or unsuccessful docking events) and later provide it to the machine learning model training circuit 300. Additionally, in examples where the confidence determination circuit 402 determines that the confidence level does not meet the threshold 414 (block 606), the feedback circuit 408 may provide the corresponding platform classification data 412 for retraining of the models 312, 316, 318. The example instructions 600 end when no further candidate platforms have been identified for docking with the robotic vehicle 102 (blocks 624, 626).
[0097] From the foregoing, it should be appreciated that exemplary systems, methods, apparatus, and articles of manufacture are disclosed that provide selective docking between a robotic vehicle and a platform (e.g., a pallet) based on characteristics associated with the pallet and / or load carried by the platform to facilitate transport of the platform via the vehicle. Examples disclosed herein implement machine learning models to evaluate whether the robotic vehicle should initiate a docking event with the platform based on associated platform characteristics. Based on a confidence analysis, when the vehicle docks with the platform, examples disclosed herein implement machine learning models to direct or guide the coupling between the robotic vehicle and the platform to prevent damage or substantial damage to the platform, any load carried by the platform, and / or the robotic vehicle. Examples disclosed herein monitor docking between the vehicle and platform and provide dynamic adjustments to the docking operation to maintain the structural integrity of the platform, the load, and / or the vehicle.
[0098] From the foregoing, it will be understood that the present invention is implemented in software within an autonomous vehicle (either entirely or with parts of computing processes running on other computing resources (e.g., local servers, cloud computing platforms, etc.)). Such software may be provided on physical media, such as, for example, a DVD, CD-ROM, USB memory stick, etc., or may be accessible via download, for example, from an ISP over the Internet.
[0099] The following claims are incorporated into this detailed description by this reference. Although certain example systems, methods, apparatus, and articles of manufacture are disclosed herein, the scope of coverage of this patent is not limited thereto. Rather, this patent covers all systems, methods, apparatus, and articles of manufacture that fairly fall within the scope of the claims of this patent.
Claims
1. An autonomous vehicle, a memory; machine-readable instructions; and a processor circuit for executing the machine-readable instructions, the processor circuitry performing, in use: Identify the characteristics associated with the platform; determining a level of confidence associated with the autonomous vehicle docking with a platform vehicle based on the characteristics associated with the platform; identifying a positioning maneuver to be performed by the autonomous vehicle with respect to the platform based on the trust level and the characteristics of the platform; an autonomous vehicle configured to cause the autonomous vehicle to perform the identified positioning maneuver;
2. The processor circuit performs a comparison of the confidence level with a threshold value, and then: i) identifying the positioning operation if the confidence level meets the threshold; or ii) outputting an alert if the confidence level does not meet a threshold.
3. The characteristic associated with the platform is a first characteristic associated with the platform, and the processor circuitry further comprises: identifying a second characteristic associated with the platform based on data corresponding to an output of a sensor when a fork of the autonomous vehicle is at least partially engaged with the platform; adjusting the positioning operation based on the second characteristic; 3. The autonomous vehicle of claim 1 or claim 2, configured to output instructions that cause the autonomous vehicle to perform the coordinated positioning maneuver.
4. The processor circuitry further comprises: determining an orientation of the platform relative to the forks of the autonomous vehicle based on data corresponding to outputs of sensors of the autonomous vehicle when the forks of the autonomous vehicle are at least partially engaged with the platform; adjusting the positioning operation based on the orientation; The autonomous vehicle of claim 1 , configured to output instructions that cause the autonomous vehicle to perform the coordinated positioning maneuver.
5. 5. The autonomous vehicle of claim 1, wherein the processor circuitry is further configured to identify the characteristics associated with the platform based on image data output by a sensor of the autonomous vehicle.
6. The autonomous vehicle of claim 1 , wherein the processor circuitry executes one or more machine learning models to determine confidence levels.
7. The characteristic associated with the platform comprises a weight of a load supported by the platform, and the processor circuitry: identifying a first positioning maneuver for the autonomous vehicle to move forks of the autonomous vehicle to a first position relative to the platform if the load is associated with a first weight; 7. The autonomous vehicle of claim 1, configured to identify a second positioning maneuver for the autonomous vehicle to move the forks to a second position relative to the platform when the load is associated with a second weight.
8. 1. A method of operating an autonomous vehicle, the method comprising: i) identifying one or more characteristics of a platform; ii) selecting a positioning maneuver to be performed by the autonomous vehicle relative to the platform based on one or more characteristics identified in step i); and and iii) outputting an instruction to cause the autonomous vehicle to perform the positioning operation selected in step ii).
9. If one or more further platform characteristics are identified during execution of the positioning operation selected in step ii), the method further comprises: a) modifying a previously selected positioning operation; or The method of claim 8 further comprising the step of: b) selecting a further positioning operation.
10. In step i), a first characteristic of the platform is identified; a second characteristic of the platform is identified during performance of the positioning operation selected in step ii), the second characteristic of the platform being identified based on data corresponding to an output of a sensor when a fork of the autonomous vehicle at least partially engages the platform; iv) adjusting the positioning operation based on the second characteristic; and and v) outputting instructions to the autonomous vehicle to perform the coordinated positioning maneuver.
11. 11. The method of any one of claims 8 to 10, wherein in step i) the one or more characteristics of a platform may comprise one or more characteristics of a load carried by the platform.
12. 12. The method of claim 11, wherein in step i), characteristics of the load to be carried by the platform are identified, and in step ii), if the identified characteristic of the load is a first load characteristic, selecting a first positioning operation for the autonomous vehicle to move forks of the autonomous vehicle to a first position relative to the platform, or if the identified characteristic of the load is a second load characteristic, selecting a second positioning operation for the autonomous vehicle to move forks of the autonomous vehicle to a second position relative to the platform.
13. 13. The method of claim 8, wherein in step ii) selecting the positioning operation comprises running one or more machine learning models to select the positioning operation.
14. 12. The method of claim 8, wherein in step i) the one or more characteristics of a platform are identified based on outputs of one or more sensors, the one or more sensors being carried by at least one of the platform or the autonomous vehicle.
15. 15. The method of any one of claims 8 to 14, wherein in step i) the one or more characteristics of a platform are identified based on an orientation or position of the platform within an environment.
16. 16. The method of claim 8, wherein the positioning operation selected in step ii) causes the autonomous vehicle to perform a first positioning operation such that the autonomous vehicle docks with the platform.
17. The method of claim 16 , wherein the autonomous vehicle performs a further positioning maneuver to undock from the platform.
18. 18. The method of claim 17, wherein the autonomous vehicle performs the further positioning operation to undock from the platform in response to an indication that the autonomous vehicle has reached a predetermined destination.
19. A non-transitory machine-readable storage medium comprising machine-readable code that, when executed, causes the method of any one of claims 8 to 18 to be performed.
Citation Information
Patent Citations
Positioning device and vehicle
JP2021039388A
Methods and Systems for Detecting, Recognizing, and Localizing Pallets
US20180304468A1