The present inventive concepts relate to the field of robotics and autonomous mobile robots (AMRs). In particular, the inventive concepts may be related to systems and methods in the field of providing repeatable, general processes for autonomous mobile robots (AMRs) that can be transferred between systems, facilities, and customers.
Within increasing numbers and types of environments autonomous vehicles may travel through areas and/or along pathways that are shared with other vehicles and/or pedestrians. Such other vehicles can include other autonomous vehicles, semi-autonomous vehicles, and/or manually operated vehicles. The autonomous vehicles can take a variety of forms and can be referred to using various terms, such as mobile robots, robotic vehicles, automated guided vehicles, and/or autonomous mobile robots (AMRs). In some cases, these vehicles can be configured for operation in an autonomous mode where they self-navigate or in a manual mode where a human directs the vehicle's navigation. Herein, vehicles that are configured for autonomous navigation are referred to as AMRs.
Multiple AMRs may have access to an environment. The environment can be within, for example, a warehouse or large storage space or facility and the AMRs can include, but are not limited to, pallet lifts, pallet trucks, and tuggers. AMRs require user defined instruction to move material in a facility. The instructions ultimately direct the AMR where and when to move material.
Industrial automation succeeds because customers have a lot of repeatable processes. Repeatable processes lead to automation, which leads to generalization across sites, customers, and industries. In order to generalize across sites, customers, and industries, there needs to be a way to scale basic building blocks of what it means to accomplish meaningful work. To facilitate this, there needs to be a way to extract common, high-level components such that they can be exported from one system and imported into another.
It is critical to create repeatable processes to effectively manage material flow. Without leveraging pattern modeling, the application logic is unable to scale and support complex applications.
Currently, in the case of AMRs, each customer's robotic application must be manually designed and implemented from scratch every time. Given that there is not a way to export applications, the time and effort taken to install one facility's fleet of AMRs cannot be transferred to another, even if the other is exactly the same.
In accordance with one aspect of the inventive concepts, provided is a job builder system, comprising: at least one processor coupled to at least one computer storage device and a template building computer program code executable by the at least one processor and configured to generate a set of user interactive computer screens on a display that enable a user to generate and store a reusable job template. The template building computer program code is executable for rendering mechanisms that enable the user to: define a trigger, define one or more behaviors executable by an autonomous system in response to the trigger; for each behavior, define a location field with an unspecified location; and store the job template as a downloadable and customizable job template for use by one or more autonomous systems.
In various embodiments, the system further comprises at least one database of behaviors that are user selectable.
In various embodiments, the one or more autonomous systems comprises a plurality of autonomous mobile robots (AMRs).
In various embodiments, the system is configured to export the job template to a job template storage system configured to store a plurality of job templates.
In various embodiments, the job builder system is further configured to import job templates from a job template storage system configured to store a plurality of job templates.
In various embodiments, the job template storage system is remote to the job builder system.
In various embodiments, the job template storage system is local to the job builder system.
In various embodiments, the system further comprises a job template storage system configured to store the job template.
In various embodiments, the job template storage system is accessible by plurality of remote systems for export and/or import of job templates.
In various embodiments, the job template storage system is configured to enable a first system to upload a job template for use by a first set of autonomous systems in a first environment and a second system to download the job template for use by a second set of autonomous system in a second environment.
In various embodiments, the job template storage system is configured to store the job template in a job template library configured to store a plurality of job templates.
In various embodiments, the job template storage system is configured to organize or logically relate job templates in the job template library based on tasks type, customer, or facility.
In various embodiments, the system further comprises job generation program code configured to generate a user interactive display that enables a user to select the job template and to define locations for each location field to generate a job for execution by the autonomous system.
In various embodiments, the job generation program code is further configured to assign the job to one or more autonomous systems.
In various embodiments, the one or more autonomous system comprises one or more autonomous mobile robots (AMRs).
In various embodiments, the template building program code is further executable to extract a job template from a job defined for performance of a task.
In various embodiments, the template building program code is further executable to extract a sequence of triggers and associated behaviors with unspecified locations to extract the job template.
In various embodiments, the template building program code is further configured to store the extracted job template as a new downloadable and customizable job template for use by one or more autonomous systems.
In accordance with another aspect of the inventive concepts, provided is a job builder method, comprising: providing at least one processor coupled to at least one computer storage device; and generating a set of user interactive computer screens on a display that enable a user to generate and store a reusable job template. Generating the user interactive computer screens enables: defining a trigger, defining one or more behaviors executable by an autonomous system in response to the trigger; for each behavior, defining a location field with an unspecified location; and storing the job template as a downloadable and customizable job template for use by one or more autonomous systems.
In various embodiments, the method further comprises storing the job template is at least one database of behaviors that are user selectable.
In various embodiments, the one or more autonomous systems comprises a plurality of autonomous mobile robots (AMRs).
In various embodiments, the method further comprises exporting the job template to a In various embodiments, the method further comprises importing job templates from a job template storage system configured to store a plurality of job templates.
In various embodiments, the job template storage system is remote to the job builder system.
In various embodiments, the job template storage system is local to the job builder system.
In various embodiments, the method further comprises storing the job template in a job template storage system.
In various embodiments, the job template storage system is accessible by plurality of remote systems for export and/or import of job templates.
In various embodiments, the method further comprises a first system uploading a job template for use by a first set of autonomous systems in a first environment to the job template storage system and a second system downloading the job template for use by a second set of autonomous system in a second environment.
In various embodiments, the method further comprises the job template storage system storing the job template in a job template library configured to store a plurality of job templates.
In various embodiments, the method further comprises the job template storage system organizing or logically relating job templates in the job template library based on tasks type, customer, or facility.
In various embodiments, the method further comprises job generation program code generating a user interactive display enabling a user to select the job template and to define locations for each location field to generate a job for execution by the autonomous system.
In various embodiments, the method further comprises the job generation program code assigning the job to one or more autonomous systems.
In various embodiments, the one or more autonomous system comprises one or more autonomous mobile robots (AMRs).
In various embodiments, the method further comprises extracting a job template from a job defined for performance of a task.
In various embodiments, extracting the job template includes extracting a sequence of triggers and associated behaviors with unspecified locations to.
In various embodiments, the method further comprises storing the extracted job template as a new downloadable and customizable job template for use by one or more autonomous systems.
In accordance with various aspects of the inventive concepts, provided is a a job template comprising a model of instructions for task performance when executed by at least one autonomous mobile robot (AMR) in a first system and a transfer system comprising at least one processor configured to export the job template from the first system and import the job template to a second system.
In various embodiments, the system further comprises at least one processor at the second system configured to provide site-specific details to the job template to create a job.
In various embodiments, further comprises a management system at the second system configured to store the job template.
In various embodiments, the system further comprises a storage system configured to store the job template.
In various embodiments, the system further comprises a user interface in the first system and/or the second system configured to allow a user to select the job template and generate a job by adding details to the job template.
In accordance with various aspects of the inventive concepts, provided is a method, comprising: providing at least one autonomous mobile robot (AMR); generating model repeatable instructions for execution of movement of the at least one AMR in a first system; exporting the model repeatable instructions from the first system; and importing the model repeatable instructions to a second system.
In various embodiments, the method further comprises storing the job template in a storage system.
In various embodiments, selecting the job template using a user interface in the first system and/or the second system and generating a job by adding details to the selected job template and saving the job.
In accordance with various aspects of the inventive concepts, provided is a system, comprising: at least one processor coupled to at least one memory and a computer program code executable by the at least one processor to: generate a set of template builder displays soliciting user inputs defining a model of instructions for task performance; and store the model of instructions as a job template useable by any of a plurality of autonomous mobile robots (AMRs); and generate a set of job builder displays soliciting user inputs to create a job based on the job template, the job builder displays configured to enable a user to select the job template, add site-specific details to the selected job template, and save the job.
In various embodiments, the job template comprises at least one trigger having an associated one or more behaviors to the performed by an AMR at a location in response to occurrence of the at least one trigger.
In various embodiments, the job comprises the at least one trigger having the associated one or more behaviors to the performed by an AMR at locations indicated by the site-specific details in response to occurrence of the at least one trigger.
In various embodiments, the system is further configured to receive a message indicating occurrence of the trigger and in response assign the job to an AMR from the plurality of AMRs for execution.
In various embodiments, the system is configured to wirelessly communicate the job to the AMR.
In various embodiments, the system is further configured to monitor a plurality of AMRs and select the AMR from the plurality of AMR based on availability and/or location of the AMR.
In various embodiments, the system further comprises a transfer system comprising at least one processor configured to export the job template from a first system comprising the plurality of AMRs to a second system for use by AMRs associated with the second system.
In various embodiments, the system further comprises a storage system comprising a library configured to job templates.
In various embodiments, the library is configured to import job templates from external or remote systems and/or export job templates to external or remote systems.
In various embodiments, the library is configured to organize stored job templates based on job type, AMR type, customer, and/or facility.
In accordance with various aspects of the inventive concepts, provided is a method, comprising: providing at least one processor coupled to at least one memory; generating a set of template builder displays soliciting user inputs defining a model of instructions for task performance; storing the model of instructions as a job template useable by any of a plurality of autonomous mobile robot (AMRs); generating a set of job builder displays soliciting user inputs to create a job based on the job template, the job builder displays configured to enable a user to select the job template, add site-specific details to the selected job template, and saving the job.
In various embodiments, the job template comprises at least one trigger having an associated one or more behaviors to the performed by an AMR at a location in response to occurrence of the at least one trigger.
In various embodiments, the at least one trigger having the associated one or more behaviors to the performed by an AMR at locations indicated by the site-specific details in response to occurrence of the at least one trigger.
In various embodiments, the method further comprises receiving a message indicating occurrence of the trigger and in response assigning the job to an AMR from the plurality of AMRs for execution.
In various embodiments, the method further comprises wirelessly communicating the job to the AMR.
In various embodiments, the method further comprises monitoring a plurality of AMRs and selecting the AMR from the plurality of AMR based on availability and/or location of the AMR.
In various embodiments, the method further comprises exporting the job template from a first system comprising the plurality of AMRs to a transfer system and from the transfer system to a second system for use by AMRs associated with the second system.
In various embodiments, the method further comprises storing the job template in a storage system comprising a library of job templates.
In various embodiments, the library is configured to import job templates from external or remote systems and/or export job templates to external or remote systems.
In various embodiments, the method further comprises organizing stored job templates in the library based on job type, AMR type, customer, and/or facility.
The present inventive concepts will become more apparent in view of the attached drawings and accompanying detailed description. The embodiments depicted therein are provided by way of example, not by way of limitation, wherein like reference numerals refer to the same or similar elements. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating aspects of the invention. In the drawings:
Various aspects of the inventive concepts will be described more fully hereinafter with reference to the accompanying drawings, in which some exemplary embodiments are shown. The present inventive concept may, however, be embodied in many different forms and should not be construed as limited to the exemplary embodiments set forth herein.
It will be understood that, although the terms first, second, etc. are be used herein to describe various elements, these elements should not be limited by these terms. These terms are used to distinguish one element from another, but not to imply a required sequence of elements. For example, a first element can be termed a second element, and, similarly, a second element can be termed a first element, without departing from the scope of the present invention. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
It will be understood that when an element is referred to as being “on” or “connected” or “coupled” to another element, it can be directly on or connected or coupled to the other element or intervening elements can be present. In contrast, when an element is referred to as being “directly on” or “directly connected” or “directly coupled” to another element, there are no intervening elements present. Other words used to describe the relationship between elements should be interpreted in a like fashion (e.g., “between” versus “directly between,” “adjacent” versus “directly adjacent,” etc.).
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a,” “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes” and/or “including,” when used herein, specify the presence of stated features, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and/or groups thereof.
Spatially relative terms, such as “beneath,” “below,” “lower,” “above,” “upper” and the like may be used to describe an element and/or feature's relationship to another element(s) and/or feature(s) as, for example, illustrated in the figures. It will be understood that the spatially relative terms are intended to encompass different orientations of the device in use and/or operation in addition to the orientation depicted in the figures. For example, if the device in the figures is turned over, elements described as “below” and/or “beneath” other elements or features would then be oriented “above” the other elements or features. The device may be otherwise oriented (e.g., rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein interpreted accordingly.
To the extent that functional features, operations, and/or steps are described herein, or otherwise understood to be included within various embodiments of the inventive concept, such functional features, operations, and/or steps can be embodied in functional blocks, units, modules, operations and/or methods. And to the extent that such functional blocks, units, modules, operations and/or methods include computer program code, such computer program code can be stored in a computer readable medium, e.g., such as non-transitory memory and media, that is executable by at least one computer processor.
In accordance with an aspect of the inventive concepts, a system and method are provided for providing repeatable, general processes for robotic vehicles, such as autonomous mobile robots (AMRs), that can be transferred between systems, facilities, and customers. The system and method provide a modular job framework that can be duplicated and modified using job templates enabling pattern modeling of tasks, such as material flow tasks, across disconnected physical sites or among different AMRs at the same site.
In accordance with aspects of the inventive concepts, provided is a system and a method that implement a process flow configuration tool that enables the generation of job templates that can be reused and customized for different jobs and/or different settings. In some embodiments, the job templates apply to material handling and flow tasks, such as picks and drop of loads in a warehouse or other goods storage setting. A pick occurs when the AMR acquires a load for transport and a drop occurs with the AMR delivers the load, both of which happen at predetermined locations along a route auto-navigated by the AMR. The inventive concepts improve efficiency, saving time and labor in the creation of jobs to be executed by robotic vehicles, where the jobs are created using reusable and customizable job templates.
The framework refers to the components that make up a job, such as its behaviors, triggers, robot groups, etc. The job template refers to an entity that contains a specific configuration of behaviors, triggers, robot groups etc. For instance, one such job template might be titled “Simple job” and contain a single pick step and a single drop step, each at a different location, triggered by an operator, with no robot group (see, for example,
In various embodiments, the templates may include common core components, for example, triggers, robot groups, behaviors, such as a specific sequence of steps, a location or location group for performance of the behaviors. The sequence of steps can embody behaviors to be performed at one or more locations. If a step requires a location group, the source of the location input may be specified. (See, for example, US Provisional Appl. 63/430,190 filed on Dec. 5, 2022, entitled Configuring a System that Handles Uncertainty with Human and Logic Collaboration in a Material Flow Automation Solution, for more information on location group steps, the contents of which are incorporated herein by reference.)
In various embodiments, the system and method utilize the inventive concepts of U.S. Provisional Appl. 63/430,174 filed on Dec. 5, 2022, entitled Process Centric User Configurable Step Framework for Composing Material Flow Automation, which is incorporated herein by reference, as a fundamental building block that is used to model repeatable tasks for the robots to perform. Given that there is a way to construct meaningful material movements, the system and method abstracts the common core components while ignoring the specific implementation details. The system and method take the number of steps, that is, instructions for execution of material movement, and the types of behaviors performed at the steps, but not the specific behavior to be performed, and allows a user to export the job, e.g., as a usable template. The specific behaviors can be defined as part of customization with the template is used to define a job.
For example, in the basic job template called “Simple job”, named because the structure follows a straightforward pattern of a pickup point and a drop off point, this job template can contain:
In a material flow application, when using this job template as a starting point for creating a job that can later be requested, a user must fill in the specific pick and drop locations or select a location group for each step. The templates provide starting points for common job patterns that are reusable and customizable. In some embodiments, a graphical user interface (GUI) may be used for creating new job templates, selecting existing job templates, and/or customizing job templates.
In some embodiments, a job template can be extracted from a defined job, as a manner of generating a job template. To extract a job template, a job template processor strips out or otherwise leaves out specifics of the job, maintaining behaviors and triggers in a defined sequence, but omitting definitions of specific locations and AMR to perform the job.
In some embodiments, a job template can be maintained within a system that services a plurality of AMRs within an environment and reused for different jobs and/or by different AMRs within the same environment. Regardless of how it was generated, a job templated can be electronically exported from one system and electronically imported to another for use by other AMRs in a different environment, e.g., at another facility or for another customer. Systems that import a job template, therefore, must be configured to electronically access the template, as well as customize and store the template in a format usable by its resources, e.g., robotic vehicles. Once imported, the template serves as an outline of a job for robot vehicles to perform and can subsequently be “filled in” and/or modified with the environment-specific details (for example, behaviors, locations, AMR assignment) needed to generate a job from the job template that is applicable to the importing environment.
Therefore, the system and method in accordance with the inventive concepts, abstract the common components, making the process easier to scale, more efficient, and much less error prone.
The system and method allow job templates to be quickly cloned and disseminated, or exported, to other relevant sites eliminating the need for each new install to be built and configured from scratch. In some embodiments, job templates can be stored in a library of job templates that are individually downloadable and/or accessible. In some embodiments, job templates can be stored in a library of job templates, where some job templates can be grouped or logically related to create a set of job templates that is downloadable, or importable. A set of job templates can be related to specific tasks and/or a set of related or complimentary tasks.
The system and method can be used by a customer to quickly and efficiently expand workflow patterns across facilities by utilizing the same job template or templates across those facilities. Once one facility is setup and configured correctly, the workflows (expressed in job templates) can easily be exported from the initial site and imported to various other sites. This allows for rapid, more efficient, and less error-prone expansion, uniformity, and efficiency. The system and method can be used to either export single workflow patterns or bulk workflow patterns expressed in one or more job templates.
In this embodiment, AMR 100 includes a payload area 102 configured to transport a pallet 104 loaded with goods 106, as a palletized load. To engage and carry pallet 104, the AMR may include a pair of forks 110, including a first and second fork 110a, b (not shown). Outriggers 108 extend from the robotic vehicle in the direction of the forks to stabilize the vehicle, particularly when carrying palletized load 106. AMR 100 can comprise a battery area 112 for holding one or more batteries. In various embodiments, the one or more batteries can be configured for charging via a charging interface 113. AMR 100 can also include a main housing 115 within which various control elements and subsystems can be disposed, including those that enable the robotic vehicle to navigate from place to place.
Forks 110 extend from the AMR in a first direction. The AMR is configured to travel in the first direction and, alternatively, in a second direction. The second direction can be considered opposite to the first direction, understanding that the AMRs have turning capability in both directions.
The AMR 100 may include a plurality of sensors 150 that provide various forms of sensor data that enable the robotic vehicle to safely navigate throughout an environment, engage with objects to be transported, and avoid obstructions. In various embodiments, the sensor data from one or more of the sensors 150 can be used for path adaptation, including avoidance of detected objects, obstructions, hazards, humans, other robotic vehicles, and/or congestion during navigation. The sensors 150 can include one or more cameras, stereo cameras 152, radars, and/or laser imaging, detection, and ranging (LiDAR) scanners 154. One or more of the sensors 150 can form part of a 2D or 3D high-resolution imaging system.
In various embodiments, a user interface can be provided to input route planning information or other task planning information, such as job definition using job templates, or trigger inputs. A user interface (UI) 111 can be provided on the AMR or on a computer that communicates with the AMR, such as a laptop, tablet, phablet, desktop, mobile phone, or other such computer device having a user interface. A “wizard” may be generated at or within the UI to assist a user in inputting information necessary for task and/or route planning, e.g., the wizard user interface can present computer displays that guide a user through entering task and route information, and building jobs from job templates.
AMR 100 can be configured with the sensing, processing, and memory devices and subsystems necessary and/or useful for executing job templates to perform tasks, in accordance with aspects of the inventive concepts. AMR 100 takes the form of an AMR pallet lift, but the inventive concepts could be embodied in any of a variety of other types of robotic vehicles and AMRs, including, but not limited to, pallet trucks, tuggers, and the like. In other embodiments, the inventive concepts could be applied in other context with robotic vehicle that perform other tasks.
As is shown in
In this embodiment, processor 10 and memory 12 are shown onboard AMR 100 of
The functional elements of AMR 100 can further include a navigation module 170 configured to access environmental data, such as the electronic map, and path information stored in memory 12, as examples. Navigation module 170 can communicate instructions to a drive control subsystem 120 to cause the robotic vehicle 100 to navigate its path within the environment. During vehicle travel, navigation module 170 may receive information from one or more sensors 150, via a sensor interface (I/F) 140, to control and adjust the navigation of the robotic vehicle. For example, sensors 150 may provide sensor data to navigation module 170 and/or drive control subsystem 120 in response to sensed objects and/or conditions in the environment to control and/or alter the robotic vehicle's navigation. As examples, sensors 150 can be configured to collect sensor data related to objects, obstructions, equipment, goods to be picked, hazards, completion of a task, and/or presence of humans and/or other robotic vehicles.
A safety module 130 can also make use of sensor data from one or more of sensors 150, including LiDAR scanners 154, to interrupt and/or take over control of drive control subsystem 120 in accordance with applicable safety standard and practices, such as those recommended or dictated by the United States Occupational Safety and Health Administration (OSHA) for certain safety ratings. For example, if safety sensors detect objects in the path as a safety hazard, such sensor data can be used to cause the drive control subsystem 120 to stop the vehicle to avoid the hazard.
Sensors 150 can include one or more stereo cameras 152 and/or other volumetric sensors, sonar sensors, and/or LiDAR scanners or sensors 154, as examples. Inventive concepts are not limited to particular types of sensors. In various embodiments, sensor data from one or more of sensors 150, e.g., one or more stereo cameras 152 and/or LiDAR scanners 154, can be used to generate and/or update a 2-dimensional or 3-dimensional model or map of the environment, and sensor data from one or more of the sensors 150 can be used for the determining location of AMR 100 within the environment relative to the electronic map of the environment.
The robotic vehicle may also include a human user interface module 205, which can process inputs and output of graphical user interface (GUI) 111 of the AMR. UI module 205 can be configured to process human operator inputs provided via UI 111, e.g., operator entry or indication of a pick or drop complete operation at a location on the AMR's path. Other human inputs could also be accommodated, such as inputting map, path, and/or configuration information.
In various embodiments, the UI 111 and UI module 205 cooperate in generation of jobs to be executed by AMR 100. That is, the UI module 205 can generate screens at the UI 111 that enable a user to selectively import job templates and customize the job templates to create a job to be executed by AMR 100. For example, the screens at UI 111 can include prompts and mechanisms that enable the user to start with a job template and then add specifics, such as identifying locations for performance of behaviors embodied in the job template, to create a job, such as a workflow job.
The AMR can include a communication module 160 configured to enable communications with supervisor 200 and/or any other external systems, such as other AMRs and/or human handheld or wearable devices used in the performance of job tasks. Communication module 160 can include hardware, software, firmware, receivers, and transmitters that enable communication with supervisor 200 and any other external systems over any now known or hereafter developed communication technology, such as various types of wireless technology including, but not limited to, Wi-Fi, Bluetooth, cellular, global positioning system (GPS), radio frequency (RF), and so on.
As an example, supervisor 200 could wirelessly communicate a path for AMR 100 to navigate for the vehicle to perform a task or series of tasks as part of a job. The path can be relative to a map of the environment stored in memory and, optionally, updated from time-to-time, e.g., in real-time, from vehicle sensor data collected in real-time as AMR 100 navigates and/or performs its tasks. The sensor data can include sensor data from sensors 150. As an example, in a warehouse setting the path could include a plurality of stops along a route for the picking and loading and/or the unloading of goods. The path can include a plurality of path segments. The navigation from one stop to another can comprise one or more path segments. Supervisor 200 can also monitor AMR 100, such as to determine robotic vehicle's location within an environment, battery status and/or fuel level, and/or other operating, vehicle, performance, and/or load parameters.
In various embodiments, a job builder system 215 (or job builder 215) can be provided and configured to create or generate, modify or update, delete, and save or store job templates electronically in a job builder storage 210. The job builder system can include job builder program job executable by at least one processor to generate and save job templates. Job builder 215 can also be used to later modify or delete job templates. Job builder 215 can also be used to export job templates to other systems or AMRs and/or import job templates from other systems or AMRs. Job builder 215 can embody the functionality to manage all aspects of job template generation, storage, import, export, modification, and deletion.
A job template can include one or more sequenced behaviors with one or more defined triggers that queue an associated behavior. For example, if a behavior is to identify a drop surface for dropping a pallet, a trigger could be the AMR locating itself at the infrastructure location on its route where the drop surface is expected to be located. As another example, a behavior could be to navigate to a next stop once a load is picked and the trigger could be operator input via UI 111. There are numerous types of behaviors, sequences of behaviors, and triggers that can be defined, depending on the workflow.
Job builder 215 may form part of supervisor 200 in some embodiments or may be a standalone system or can be part of another system serving the environment in which the AMRs operate in other embodiments. In some embodiments, job builder 215 may be configured to export job templates to an external or remote system, such as a job template storage system 250. Additionally, or alternatively, in some embodiments, job builder 215 may be configured to import job templates from job template storage system 250. In some embodiments, AMR 100 may be configured to export job templates to an external or remote system, such as a job template storage system 250. Additionally, or alternatively, in some embodiments, AMR 100 may be configured to import job templates from job template storage system 250. In various embodiments, AMR 100 and/or job builder 215 may be configured to communicate with job template storage system 250 via a network 190, which can be or include the Internet, World Wide Web, or other remote access system.
Job templates can be exported into (or uploaded into) and imported out of (or downloaded from) job template storage system 210. In some embodiments, job templates can be stored in a library of job templates locally in job builder storage 210 and/or in job template storage system 250 so that the job templates can be individually downloadable and/or accessible. The library may organize the job templates in different manners. For example, in some embodiments, the job templates may be organized by customer, facility, robotic vehicle type, and/or by job type. As an example, a drop task delivering goods may be one type of job and a pick task acquiring goods may be another type of job, as examples. A workflow can be built by combining a plurality of tasks, each task defined in the workflow using a job template for task definition within the context of the workflow and/or a plurality of tasks can be combined in a single job template. The tasks in a job template may be defined by behaviors with triggers, and the job template can define the sequence of behaviors and triggers.
While the job builder 215 is shown as part of supervisor 200 in
In some embodiments, once job templates have been created, job builder 215 can be installed in a new facility with a library of job templates for use in creating new jobs, which are stored in job builder storage. In some embodiments, job builder 215 can be installed as part of a new supervisor installation. Users can use these templates as a starting point for creating jobs that can later be requested. The library can be maintained by adding, deleting, and/or modifying job templates over time. For example, each time a new job is defined for an AMR, a new job template can be generated from the new job and saved in job template storage system 210.
In some embodiments, a job template library in a job builder system serving a facility can be updated from external sources, such as job template storage system 250. In some embodiments, job template storage system 250 can be updated by one or more job builder systems serving one or more facilities. Depending on the embodiment, the updates can be “pushed” or “pulled” from the external sources by the job builder system, supervisor, and/or job template storage system 250.
In various embodiments, job builder 215 is accessible via a user interface device to enable a user to generate, save, modify and delete job templates. As examples, the user interface could be a UI 206 that forms part of, or otherwise able to access, job builder 215 and/or supervisor 200. UI 206 can be or include a computer display, laptop, tablet, kiosk, or mobile device, as examples. The user interface could also be UI 111 of the AMR. These user interfaces, or other types of user interfaces, could be use to create new job templates for later use by users creating jobs. In some embodiments, job builder 215 can be used to process a job created for an AMR and extract a job template from the job, by maintaining definitions of the structure of behaviors and triggers, while omitting the job-specific details, such as identified AMR or AMRs locations and so on associated with a specific job.
Job builder 215 is also accessible via a user interface device to create jobs from job templates, by saving an instance of the template and adding job-specific details regarding locations of behaviors, triggers, and AMR or AMRs that will execute the workflow defined in the newly created job. Users can select a job template as a starting point for that job from stored job templates, which will create a partially filled out job and the user must fill in the details, such as the specific location/location group at each step. The job may be created from the job template via a user interface, such as UI 206 and/or UI 111 (and UI 205).
Templates created by a user can be exported from one facility to another via file transfer or, in a cloud system, automatically and be available for a given user. For example, consider a user that has several facilities, each with its own copy and installation of supervisor 200 and these facilities have a common complex job pattern. This pattern can be created as a template, exported, and transferred to the other copies of the supervisor 200 at the other facilities.
As illustrated in
Therefore, more generally, referring to method 400 of
Once the job template is saved and stored, method 400 can, optionally, continued to step 412 where the job template is exported to another system and/or database. Referring to
In optional step 414, the exported job template can be imported to a second system. Referring to
The template is used to create a job which includes the elements in the framework. A job can be requested by a user. A requested job that is assigned to an AMR is translated into instructions that the AMR understands and those instructions are sent to the AMR for execution.
In some embodiments, the user interface may be employed in a job configuration process as previously described and in such embodiments the user interface may present elements such as illustrated in
In accordance with principles of inventive concepts, a system and method may generate and present to an operator a plain language description of the tentative choice the operator has made. The plain language description may be generated by the system, for example, using a processor such as that of the job builder 215 and/or supervisor 200 to execute a variable lookup process, for example. In a job configuration process variables are generated in, for example, configuring a trigger or step and a system and method in accordance with principles of inventive concepts employs the variable selections by storing and linking the selections together to form a sentence when the configuration process or a portion thereof is completed. The variables can be options for fields defined within the job template being used to generate the job. Other methods of generating plain language text for presentation to an operator are contemplated within the scope of inventive concepts. In the example embodiment of
As with the creation of triggers, the system provides plain language echoes of selections made during the configuration of job steps. As previously described, each step may include two elements that can be described as “Go Here” and “Do This.” Once the operator has created and configured their desired steps or behaviors the operator may request a review of their tentative selections by requesting a summary. In example embodiments, a system and method in accordance with inventive concepts may provide a “Job Summary” tab on the GUI supported, for example, by job builder tool 215, which can be a tool of the supervisor 200 or other fleet management system. With the job summary provided by the system, the operator can read through their job steps in paragraph form to confirm the accuracy of the job configuration (e.g., “Step 1, the robot will travel to location 13 to pick a pallet, Step 2, etc.) In example embodiments, systems and methods in accordance with inventive concepts may be applied to various aspects including, but not limited to: Job descriptions, Trigger descriptions, Integration descriptions (that is, how an external system such as a PLC engages with AMRs), configuring data reporting on system performance, configuring power management logic and scheduling, and error reporting (where errors are stated in plain language, rather than as a cryptic message such as “error code BC0022,” for example).
Those skilled in the art will appreciate that the displays of
While the foregoing has described what are considered to be the best mode and/or other preferred embodiments, it is understood that various modifications can be made therein and that aspects of the inventive concepts herein may be implemented in various forms and embodiments, and that they may be applied in numerous applications, only some of which have been described herein. It is intended by the following claims to claim that which is literally described and all equivalents thereto, including all modifications and variations that fall within the scope of each claim.
It is appreciated that certain features of the inventive concepts, which are, for clarity, described in the context of separate embodiments, may also be provide in combination in a single embodiment. Conversely, various features of the inventive concepts which are, for brevity, described in the context of a single embodiment may also be provided separately or in any suitable sub-combination.
For example, it will be appreciated that all of the features set out in any of the claims (whether independent or dependent) can combined in any given way.
Below follows an itemized list of statements describing embodiments in accordance with the inventive concepts:
1. A job builder system, comprising:
2. The system of statement 1, or any other statement or combination of statements, further comprising at least one database of behaviors that are user selectable.
3. The system of statement 1, or any other statement or combination of statements, wherein the one or more autonomous systems comprises a plurality of autonomous mobile robots (AMRs).
4. The system of statement 1, or any other statement or combination of statements, wherein the system is configured to export the job template to a job template storage system configured to store a plurality of job templates.
5. The system of statement 1, or any other statement or combination of statements, wherein the job builder system is further configured to import job templates from a job template storage system configured to store a plurality of job templates.
6 The system of statement 4 or 5, or any other statement or combination of statements, wherein the job template storage system is remote to the job builder system.
7. The system of statement 4 or 5, or any other statement or combination of statements, wherein the job template storage system is local to the job builder system.
8. The system of statement 1, or any other statement or combination of statements, further comprising a job template storage system configured to store the job template.
9. The system of statement 1, or any other statement or combination of statements, wherein the job template storage system is accessible by plurality of remote systems for export and/or import of job templates.
10. The system of statement 9, or any other statement or combination of statements, wherein the job template storage system is configured to enable a first system to upload a job template for use by a first set of autonomous systems in a first environment and a second system to download the job template for use by a second set of autonomous system in a second environment.
11. The system of statement 8, or any other statement or combination of statements, wherein the job template storage system is configured to store the job template in a job template library configured to store a plurality of job templates.
12. The system of statement 11, or any other statement or combination of statements, wherein the job template storage system is configured to organize or logically relate job templates in the job template library based on tasks type, customer, or facility.
13. The system of statement 1 or 3, or any other statement or combination of statements, further comprising job generation program code configured to generate a user interactive display that enables a user to select the job template and to define locations for each location field to generate a job for execution by the autonomous system.
14. The system of statement 13, or any other statement or combination of statements, wherein the job generation program code is further configured to assign the job to one or more autonomous systems.
15. The system of statement 14, or any other statement or combination of statements, wherein the one or more autonomous system comprises one or more autonomous mobile robots (AMRs).
16. The system of statement 1, or any other statement or combination of statements, wherein the template building program code is further executable to extract a job template from a job defined for performance of a task.
17. The system of statement 16, or any other statement or combination of statements, wherein the template building program code is further executable to extract a sequence of triggers and associated behaviors with unspecified locations to extract the job template.
18. The system of statement 17, or any other statement or combination of statements, wherein the template building program code is further configured to store the extracted job template as a new downloadable and customizable job template for use by one or more autonomous systems.
19. A job builder method, comprising:
20 The method of statement 19, or any other statement or combination of statements, further comprising selecting the behaviors from at least one database of behaviors.
21. The method of statement 19, or any other statement or combination of statements, wherein the one or more autonomous systems comprises a plurality of autonomous mobile robots (AMRs).
22. The method of statement 19, or any other statement or combination of statements, further comprising exporting the job template to a job template storage system configured to store a plurality of job templates.
23. The method of statement 19, or any other statement or combination of statements, further comprising importing job templates from a job template storage system configured to store a plurality of job templates.
24. The method of statement 22 or 23, or any other statement or combination of statements, wherein the job template storage system is remote to the job builder system.
25. The method of statement 22 or 23, or any other statement or combination of statements, wherein the job template storage system is local to the job builder system.
26. The method of statement 19, or any other statement or combination of statements, further comprising storing the job template in a job template storage system.
27. The method of statement 26, or any other statement or combination of statements, wherein the job template storage system is accessible by plurality of remote systems for export and/or import of job templates.
28. The method of statement 27, or any other statement or combination of statements, further comprising:
29. The method of statement 26, or any other statement or combination of statements, further comprising the job template storage system storing the job template in a job template library configured to store a plurality of job templates.
30. The method of statement 29, or any other statement or combination of statements, further comprising the job template storage system organizing or logically relating job templates in the job template library based on tasks type, customer, or facility.
31. The method of statement 19 or 21, or any other statement or combination of statements, further comprising job generation program code generating a user interactive display enabling a user to select the job template and to define locations for each location field to generate a job for execution by the autonomous system.
32. The method of statement 31, or any other statement or combination of statements, further comprising the job generation program code assigning the job to one or more autonomous systems.
33. The method of statement 32, or any other statement or combination of statements, wherein the one or more autonomous system comprises one or more autonomous mobile robots (AMRs).
34. The method of statement 19, or any other statement or combination of statements, further comprising extracting a job template from a job defined for performance of a task.
35. The method of statement 34, or any other statement or combination of statements, wherein extracting the job template includes extracting a sequence of triggers and associated behaviors with unspecified locations.
36. The method of statement 35, or any other statement or combination of statements, further comprising storing the extracted job template as a new downloadable and customizable job template for use by one or more autonomous systems.
37. A job builder system, comprising:
38. The system of statement 37, or any other statement or combination of statements, further comprising at least one processor at the second system configured to provide site-specific details to the job template to create a job.
39. The system of statement 37, or any other statement or combination of statements, further comprising a management system at the second system configured to store the job template.
40. The system of statement 37, or any other statement or combination of statements, further comprising a storage system configured to store the job template.
41. The system of statement 37, or any other statement or combination of statements, further comprising a user interface in the first system and/or the second system configured to allow a user to select the job template and generate a job by adding details to the job template.
42. A job template building method, comprising:
43 The method of statement 42, or any other statement or combination of statements, further comprising storing the job template in a storage system.
44. The method of statement 42, or any other statement or combination of statements, selecting the job template using a user interface in the first system and/or the second system and generating a job by adding details to the selected job template and saving the job.
45. A system, comprising:
46. The system of statement 42, or any other statement or combination of statements, wherein the job template comprises at least one trigger having an associated one or more behaviors to the performed by an AMR at a location in response to occurrence of the at least one trigger.
47. The system of statement 46, or any other statement or combination of statements, wherein the job comprises the at least one trigger having the associated one or more behaviors to the performed by an AMR at locations indicated by the site-specific details in response to occurrence of the at least one trigger.
48. The system of statement 46, or any other statement or combination of statements, wherein the system is further configured to receive a message indicating occurrence of the trigger and in response assign the job to an AMR from the plurality of AMRs for execution.
49. The system of statement 48, or any other statement or combination of statements, wherein the system is configured to wirelessly communicate the job to the AMR.
50. The system of statement 48 or 49, or any other statement or combination of statements, wherein the system is further configured to monitor a plurality of AMRs and select the AMR from the plurality of AMR based on availability and/or location of the AMR.
51. The system of statement 45, or any other statement or combination of statements, further comprising a transfer system comprising at least one processor configured to export the job template from a first system comprising the plurality of AMRs to a second system for use by AMRs associated with the second system.
52. The system of statement 45 or 51, or any other statement or combination of statements, further comprising a storage system comprising a library configured to job templates.
53. The system of statement 52, or any other statement or combination of statements, wherein the library is configured to import job templates from external or remote systems and/or export job templates to external or remote systems.
54 The system of statement 52, or any other statement or combination of statements, wherein the library is configured to organize stored job templates based on job type, AMR type, customer, and/or facility.
55. A method, comprising:
56. The method of statement 55, or any other statement or combination of statements, wherein the job template comprises at least one trigger having an associated one or more behaviors to the performed by an AMR at a location in response to occurrence of the at least one trigger.
57. The method of statement 56, or any other statement or combination of statements, wherein the job comprises the at least one trigger having the associated one or more behaviors to the performed by an AMR at locations indicated by the site-specific details in response to occurrence of the at least one trigger.
58 The method of statement 56, or any other statement or combination of statements, further comprising receiving a message indicating occurrence of the trigger and in response assigning the job to an AMR from the plurality of AMRs for execution.
59 The method of statement 58, or any other statement or combination of statements, further comprising wirelessly communicating the job to the AMR.
60. The method of statement 58 or 59, or any other statement or combination of statements, further comprising monitoring a plurality of AMRs and selecting the AMR from the plurality of AMR based on availability and/or location of the AMR.
61. The method of statement 55, or any other statement or combination of statements, further comprising exporting the job template from a first system comprising the plurality of AMRs to a transfer system and from the transfer system to a second system for use by AMRs associated with the second system.
62. The method of statement 55 or 61, or any other statement or combination of statements, further comprising storing the job template in a storage system comprising a library of job templates.
63. The system of statement 62, or any other statement or combination of statements, wherein the library is configured to import job templates from external or remote systems and/or export job templates to external or remote systems.
64. The system of statement 62, or any other statement or combination of statements, further comprising organizing stored job templates in the library based on job type, AMR type, customer, and/or facility.
The present application may be related to U.S. Provisional Appl. 63/430,180 filed on Dec. 5, 2022, entitled System for Process Flow Templating and Duplication of Tasks Within Material Flow Automation, the contents of which are incorporated herein by reference. The present application may be related to International Application No. PCT/US23/016556 filed on Mar. 28, 2023, entitled A Hybrid, Context-Aware Localization System For Ground Vehicles; International Application No. PCT/US23/016565 filed on Mar. 28, 2023, entitled Safety Field Switching Based On End Effector Conditions In Vehicles; International Application No. PCT/US23/016608 filed on Mar. 28, 2023, entitled Dense Data Registration From An Actuatable Vehicle-Mounted Sensor; International Application No. PCT/U.S. Pat. No. 23,016,589, filed on Mar. 28, 2023, entitled Extrinsic Calibration Of A Vehicle-Mounted Sensor Using Natural Vehicle Features; International Application No. PCT/US23/016615, filed on Mar. 28, 2023, entitled Continuous And Discrete Estimation Of Payload Engagement Disengagement Sensing; International Application No. PCT/US23/016617, filed on Mar. 28, 2023, entitled Passively Actuated Sensor System; International Application No. PCT/US23/016643, filed on Mar. 28, 2023, entitled Automated Identification Of Potential Obstructions In A Targeted Drop Zone; International Application No. PCT/US23/016641, filed on Mar. 28, 2023, entitled Localization of Horizontal Infrastructure Using Point Clouds; International Application No. PCT/US23/016591, filed on Mar. 28, 2023, entitled Robotic Vehicle Navigation With Dynamic Path Adjusting; International Application No. PCT/US23/016612, filed on Mar. 28, 2023, entitled Segmentation of Detected Objects Into Obstructions and Allowed Objects; International Application No. PCT/US23/016554, filed on Mar. 28, 2023, entitled Validating the Pose of a Robotic Vehicle That Allows It To Interact With An Object On Fixed Infrastructure; and International Application No. PCT/US23/016551, filed on Mar. 28, 2023, entitled A System for AMRs That Leverages Priors When Localizing and Manipulating Industrial Infrastructure; International Application No.: PCT/US23/024114, filed on Jun. 1, 2023, entitled System and Method for Generating Complex Runtime Path Networks from Incomplete Demonstration of Trained Activities; International Application No.: PCT/US23/023699, filed on May 26, 2023, entitled System and Method for Performing Interactions with Physical Objects Based on Fusion of Multiple Sensors; International Application No.: PCT/US23/024411, filed on Jun. 5, 2023, entitled Lane Grid Setup for Autonomous Mobile Robots (AMRs); International Application No.: PCT/US23/033818, filed on Sep. 27, 2023, entitled Shared Resource Management System and Method; International Application No.: PCT/US23/079141, filed on Nov. 8, 2023, entitled System And Method For Definition Of A Zone Of Dynamic Behavior With A Continuum Of Possible Actins and Locations Within Same; International Application No.: PCT/US23/078890, filed on Nov. 7, 2023, entitled Method And System For Calibrating A Light-Curtain; International Application No.: PCT/US23/036650, filed on Nov. 2, 2023, entitled System and Method for Optimized Traffic Flow Through Intersections with Conditional Convoying Based on Path Network Analysis; US Provisional Appl. 63/430,184 filed on Dec. 5, 2022, entitled Just in Time Destination Definition and Route Planning; US Provisional Appl. 63/430,182 filed on Dec. 5, 2022, entitled Composable Patterns of Material Flow Logic for the Automation of Movement; U.S. Provisional Appl. 63/430,174 filed on Dec. 5, 2022, entitled Process Centric User Configurable Step Framework for Composing Material Flow Automation; U.S. Provisional Appl. 63/430,195 filed on Dec. 5, 2022, entitled Generation of “Plain Language” Descriptions Summary of Automation Logic; US Provisional Appl. 63/430,171 filed on Dec. 5, 2022, entitled Hybrid Autonomous System Enabling and Tracking Human Integration into Automated Material Flow; US Provisional Appl. 63/430,190 filed on Dec. 5, 2022, entitled Configuring a System That Handles Uncertainty with Human and Logic Collaboration in A Material Flow Automation Solution; U.S. Provisional Appl. 63/430,200 filed on Dec. 5, 2022, entitled A Method for Abstracting Integrations Between Industrial Controls and Autonomous Mobile Robots (AMRs); and US Provisional Appl. 63/430,170 filed on Dec. 5, 2022, entitled Visualization of Physical Space Robot Queuing Areas as Non Work Locations for Robotic Operations, each of which is incorporated herein by reference in its entirety. The present application may be related to U.S. patent application Ser. No. 11/350,195, filed on Feb. 8, 2006, U.S. Pat. No. 7,466,766, Issued on Nov. 4, 2008, entitled Multidimensional Evidence Grids and System and Methods for Applying Same; U.S. patent application Ser. No. 12/263,983 filed on Nov. 3, 2008, U.S. Pat. No. 8,427,472, Issued on Apr. 23, 2013, entitled Multidimensional Evidence Grids and System and Methods for Applying Same; U.S. patent application Ser. No. 11/760,859, filed on Jun. 11, 2007, U.S. Pat. No. 7,880,637, Issued on Feb. 1, 2011, entitled Low-Profile Signal Device and Method For Providing Color-Coded Signals; U.S. patent application Ser. No. 12/361,300 filed on Jan. 28, 2009, U.S. Pat. No. 8,892,256, Issued on Nov. 18, 2014, entitled Methods For Real-Time and Near-Real Time Interactions With Robots That Service A Facility; U.S. patent application Ser. No. 12/361,441, filed on Jan. 28, 2009, U.S. Pat. No. 8,838,268, Issued on Sep. 16, 2014, entitled Service Robot And Method Of Operating Same; U.S. patent application Ser. No. 14/487,860, filed on Sep. 16, 2014, U.S. Pat. No. 9,603,499, Issued on Mar. 28, 2017, entitled Service Robot And Method Of Operating Same; U.S. patent application Ser. No. 12/361,379, filed on Jan. 28, 2009, U.S. Pat. No. 8,433,442, Issued on Apr. 30, 2013, entitled Methods For Repurposing Temporal-Spatial Information Collected By Service Robots; U.S. patent application Ser. No. 12/371,281, filed on Feb. 13, 2009, U.S. Pat. No. 8,755,936, Issued on Jun. 17, 2014, entitled Distributed Multi-Robot System; U.S. patent application Ser. No. 12/542,279, filed on Aug. 17, 2009, U.S. Pat. No. 8,169,596, Issued on May 1, 2012, entitled System And Method Using A Multi-Plane Curtain; U.S. patent application Ser. No. 13/460,096, filed on Apr. 30, 2012, U.S. Pat. No. 9,310,608, Issued on Apr. 12, 2016, entitled System And Method Using A Multi-Plane Curtain; U.S. patent application Ser. No. 15/096,748, filed on Apr. 12, 2016, U.S. Pat. No. 9,910,137, Issued on Mar. 6, 2018, entitled System and Method Using A Multi-Plane Curtain; U.S. patent application Ser. No. 13/530,876, filed on Jun. 22, 2012, U.S. Pat. No. 8,892,241, Issued on Nov. 18, 2014, entitled Robot-Enabled Case Picking; U.S. patent application Ser. No. 14/543,241, filed on Nov. 17, 2014, U.S. Pat. No. 9,592,961, Issued on Mar. 14, 2017, entitled Robot-Enabled Case Picking; U.S. patent application Ser. No. 13/168,639, filed on Jun. 24, 2011, U.S. Pat. No. 8,864,164, Issued on Oct. 21, 2014, entitled Tugger Attachment; US Design Patent Appl. 29/398,127, filed on Jul. 26, 2011, U.S. Pat. No. D680,142, Issued on Apr. 16, 2013, entitled Multi-Camera Head; US Design Patent Appl. 29/471,328, filed on Oct. 30, 2013, U.S. Pat. No. D730,847, Issued on Jun. 2, 2015, entitled Vehicle Interface Module; U.S. patent application Ser. No. 14/196,147, filed on Mar. 4, 2014, U.S. Pat. No. 9,965,856, Issued on May 8, 2018, entitled Ranging Cameras Using A Common Substrate; U.S. patent application Ser. No. 16/103,389, filed on Aug. 14, 2018, U.S. Pat. No. 11,292,498, Issued on Apr. 5, 2022, entitled Laterally Operating Payload Handling Device; U.S. patent application Ser. No. 17/712,660, filed on Apr. 4, 2022, US Publication Number 2022/0297734, Published on Sep. 22, 2022, entitled Laterally Operating Payload Handling Device; U.S. patent application Ser. No. 16/892,549, filed on Jun. 4, 2020, U.S. Pat. No. 11,693,403, Issued on Jul. 4, 2023, entitled Dynamic Allocation And Coordination of Auto-Navigating Vehicles and Selectors; U.S. patent application Ser. No. 18/199,052, filed on May 18, 2023, Publication Number 2023/0376030, Published on Nov. 23, 2023, entitled Dynamic Allocation And Coordination of Auto-Navigating Vehicles and Selectors; U.S. patent application Ser. No. 17/163,973, filed on Feb. 1, 2021, US Publication Number 2021/0237596, Published on Aug. 5, 2021, entitled Vehicle Auto-Charging System and Method; U.S. patent application Ser. No. 17/197,516, filed on Mar. 10, 2021, US Publication Number 2021/0284198, Published on Sep. 16, 2021, entitled Self-Driving Vehicle Path Adaptation System and Method; U.S. patent application Ser. No. 17/490,345, filed on Sep. 30, 2021, US Publication Number 2022/0100195, Published on Mar. 31, 2022, entitled Vehicle Object-Engagement Scanning System And Method; U.S. patent application Ser. No. 17/478,338, filed on Sep. 17, 2021, US Publication Number 2022/0088980, Published on Mar. 24, 2022, entitled Mechanically-Adaptable Hitch Guide; U.S. patent application Ser. No. 29/832,212, filed on Mar. 25, 2022, entitled Mobile Robot, each of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63430180 | Dec 2022 | US |