Autonomous technician system for component handling and installation

The autonomous technician system addresses compatibility and installation challenges by verifying and installing components using robots, improving e-commerce platform efficiency and user satisfaction.

JP2025128051APending Publication Date: 2025-09-02EBAY INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2025025515
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-02-21
Filing Date
2025-02-20
Publication Date
2025-09-02

AI Technical Summary

Technical Problem

Existing e-commerce platforms face challenges in ensuring component compatibility and successful installation due to buyer knowledge gaps and inaccurate component descriptions, leading to increased return rates and frustration.

Method used

An autonomous technician system comprising robots that verify component compatibility, transport, and install components using sensors, machine learning models, and dynamic tool heads to ensure accurate and efficient integration with user devices.

Benefits of technology

Reduces component incompatibility issues, decreases return rates, and enhances installation precision, thereby increasing buyer confidence and reducing platform workload.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025128051000001_ABST
    Figure 2025128051000001_ABST
Patent Text Reader

Abstract

To provide an autonomous technician system for component handling and installation.SOLUTION: An autonomous technician includes one or more robots to perform operations including component condition verification, component transport, and component installation. The one or more robots verify the compatibility of the component with a different apparatus. The component is listed by a seller in an item listing, and is purchased by a buyer of an apparatus to which the component is installed by the one or more robots. In variations, the one or more robots transport the component from the seller to the location of the apparatus of the buyer. The one or more robots further utilize various installation protocols based on the state of the component and that of the apparatus.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] Electronic commerce platforms, also known as e-commerce platforms, support transactions between buyers and sellers of goods and services via item listings. The goods offered by sellers may include components for vehicles, appliances, and other devices. Such platforms support buyers' searches for specific device components, such as those used to repair, enhance, or replace other devices.

[0002] It is often the buyer's responsibility to ensure that components purchased through an item listing are suitable for the buyer's intended use of the component. Because knowledge of component compatibility can vary widely among buyers, and some buyers prefer to complete transactions with little or no knowledge of whether the component is compatible with their device, situations can arise in which the purchased component is incompatible with the device. Such situations can lead to frustration for buyers and sellers. Furthermore, such situations can increase the return rate of purchased items across the Platform, increasing the workload placed on the Platform to facilitate item returns, relist returned items, and so on. Summary of the Invention

[0003] Techniques for controlling at least one autonomous technician for handling and installing components are described. In one or more implementations, a system for the autonomous technician includes at least one robot configured to verify the component at a first location, e.g., a location associated with a seller of the component or associated with an e-commerce platform. In particular, the component is verified for a device located at a second location, e.g., a location associated with a purchaser of the component. The at least one robot verifies compatibility of the component with the device. In one or more implementations, the at least one robot further transports the component to the second location and installs the component on the device.

[0004] This Summary introduces a selection of concepts in a simplified form that are further described below in the Detailed Description. As such, this Summary is not intended to identify essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. [Brief explanation of the drawings]

[0005] The detailed description will be made with reference to the accompanying drawings, in which entities depicted may represent one or more entities, and therefore references may be made interchangeably in the description to singular or plural forms of the entities. [Figure 1] FIG. 1 is a diagram of an environment in an example implementation operable to employ at least one autonomous technician deployable by a service provider system as described herein. [Figure 2] FIG. 2 is a diagram of an example implementation illustrating the generation of a list of components via a service provider system. [Figure 3] FIG. 3 is a diagram of an example implementation showing a transaction including a list of components from a service provider system and an associated request for assistance from an autonomous technician. [Figure 4] FIG. 4 is a diagram illustrating a robot implementing an autonomous engineer, showing sensors, I / O devices, a movement framework, and other features of the robot. [Figure 5] FIG. 5 is a diagram of an example implementation illustrating component verification performed by an autonomous engineer. [Figure 6] FIG. 6 is a diagram of an example implementation illustrating route generation performed by an autonomous technician. [Figure 7] FIG. 7 is a diagram illustrating an example route generated by an autonomous technician, where the autonomous technician is shown in the first stage of the route. [Figure 8] FIG. 8 is a diagram illustrating an exemplary route, with the autonomous technician shown in the second stage of the route. [Figure 9] FIG. 9 is a diagram illustrating an example route, with the autonomous technician shown in the third stage of the route. [Figure 10] FIG. 10 is a diagram illustrating a robot implementing an autonomous technician, showing the robot's installation tool framework and component support framework. [Figure 11] FIG. 11 is a perspective view of an exemplary dynamic tool head included in an autonomous engineer, with the dynamic tool head in a stowed position. [Figure 12] FIG. 12 is another perspective view of the dynamic tool head with a first portion of the dynamic tool head expanded. [Figure 13] FIG. 13 is another perspective view of the dynamic tool head with the second portion of the dynamic tool head expanded. [Figure 14] FIG. 14 is another perspective view of the dynamic tool head with the third portion of the dynamic tool head expanded. [Figure 15] FIG. 15 is a diagram of an example implementation illustrating device validation performed by an autonomous technician. [Figure 16] FIG. 16 is a diagram of an example implementation showing inputs to an autonomous technician installation control module. [Figure 17] FIG. 17 is a flow diagram illustrating a procedure in an exemplary implementation that includes validating components of a device. [Figure 18] FIG. 18 is a flow diagram illustrating a procedure in an exemplary implementation that involves transporting components for a device from a seller's location to a buyer's location. [Figure 19] FIG. 19 is a flow diagram illustrating a procedure in an exemplary implementation, including installing components for a device. [Figure 20] FIG. 20 illustrates a procedure in an exemplary implementation of an autonomous technician system for component handling and installation. [Figure 21] FIG. 21 is a diagram of an example system including an example computing device that represents one or more computing systems and / or devices for implementing various techniques described herein. DETAILED DESCRIPTION OF THE INVENTION

[0006] [overview] The service provider system supports the e-commerce platform and provides access to the item listings. Purchasers navigate the item listings via an application, such as a web browser or a web-based application (e.g., a "mobile app"), to locate products to purchase. The item listings managed by the service provider system and made available for viewing via the e-commerce platform may be for different types of items or categories of items. For example, some item listings are for consumer electronics, while other item listings are for automotive accessories.

[0007] Such platforms support item listings for memory and storage components for computing devices and / or components configured to be installed in other devices, such as filters, radios, cameras, and engine parts for vehicles. Indeed, e-commerce platforms may publish item listings for any of a variety of items that are “components” intended to be installed in connection with or combined with another device, system, or apparatus. A purchaser navigates through the item listing and completes a transaction via the item listing to order such a component. In one exemplary scenario, for example, a purchaser owns a particular make and model vehicle and wishes to order a replacement side mirror for the vehicle. The purchaser navigates through item listings for various vehicle side mirrors and identifies an item listing that describes a side mirror that the purchaser believes is compatible with the vehicle make and model. The purchaser then completes the transaction via the item listing to purchase the side mirror and receives the side mirror via a delivery service or local pickup.

[0008] Often, a purchaser is expected to use their own knowledge or expertise to determine whether a given component described in an item list is compatible with a device or equipment owned by the purchaser, such as a vehicle. However, a purchaser may not have sufficient knowledge to accurately assess whether a listed component is compatible. A purchaser who purchases a component with the expectation that the component will be compatible with their device may be disappointed when the component is delivered and the purchaser finds that they are unable to install the component due to an unexpected compatibility issue.

[0009] Some conventional approaches to reducing the occurrence of unexpected compatibility issues include implementing search filters that utilize device information entered by a buyer. For example, a buyer searching for components for a particular device enters information describing the device through an interface. The platform searches a catalog of various devices based on the information provided by the buyer. The platform identifies which device entries in the catalog have attributes that match the device description entered by the buyer. The identified device entries are associated with a particular group of compatible components, and a list of components identified as compatible with the device is provided to the buyer by the platform as a search result. In one exemplary scenario, a buyer enters information describing the make and model of their vehicle, and the platform returns an item list of components compatible with the particular vehicle.

[0010] However, such approaches may be subject to error. As one example, such approaches do not account for oversights or misrepresentations in the component descriptions in the item list. In situations where the component descriptions in the item list are inaccurate given the actual components delivered to the purchaser, unexpected compatibility issues may arise. Furthermore, such approaches rely on information provided by the purchaser to accurately identify the purchaser's equipment (e.g., device). In some situations, the purchaser does not have such information or provides inaccurate information.

[0011] Furthermore, even if a purchaser completes a transaction for a component that is compatible with their device, the purchaser may not have sufficient knowledge to perform the component installation. If the installation is more complicated than expected and / or sufficient instructions are not provided, the purchaser may be disappointed. Therefore, it is desirable to reduce the occurrence of component incompatibility and increase the success of component installation.

[0012] Therefore, techniques for component condition verification and component installation that address these technical challenges are described herein. In one or more implementations, a robot or multiple robots form an autonomous technician configured to perform operations including verifying whether a component purchased via an item list matches the component description in the item list. The autonomous technician detects the component condition via one or more sensors and determines an identifier for the component. The autonomous technician compares the identifier with known identifiers to determine whether the component is compatible with the purchaser's device. In one or more implementations, after compatibility is determined, the autonomous technician is further configured to transport the purchased component to the purchaser's location and / or perform installation of the component on the purchaser's device. To do so, the autonomous technician uses a mobility framework for transporting the purchased component to the purchaser's location and an installation tool framework for installing the component on the purchaser's device.

[0013] In one or more implementations, the autonomous technician is further configured to communicate electronically with a service provider system supporting the e-commerce platform. For example, the autonomous technician communicates with the service provider system via a wired or wireless connection to receive instructions for deployment, receive data from the service provider system's database, receive component transaction information, etc.

[0014] In accordance with the described techniques, following completion of a transaction using, for example, an item list including a component seller and a component buyer, the autonomous technician receives a communication from the service provider system. Examples of the communication include, but are not limited to, communications to deploy the autonomous technician to perform operations including component verification, component delivery, and component installation, to name a few. The autonomous technician receives the component from the seller, for example, by picking up the component at the seller's location. In one or more implementations, the autonomous technician further delivers the component to the buyer's location and / or installs the component on equipment at the buyer's location.

[0015] In some implementations, the autonomous technician includes a single robot configured to perform all operations including verifying the condition of the component, transporting the component to the buyer's location, and installing the component on the buyer's equipment. In other implementations, the autonomous technician includes multiple robots, each configured to perform a different operation. In one example, a first robot performs an operation related to verifying the condition of the component. A second robot receives the component from the first robot and transports the component to the buyer's location. A third robot receives the component delivered to the buyer's location by the second robot and installs the component on the buyer's equipment. In another example, the autonomous technician includes two robots, where the first robot is configured to verify the condition of the component and the second robot is configured to install the component on the buyer's equipment. In this example, the first robot and / or the second robot transport the component to the buyer's location following verification of the condition of the component. It should be understood that the autonomous technician may include any number of robots at each step of the process, e.g., one or more robots for performing inspection, one or more robots for transporting items, and / or one or more robots for installing items. Additionally, a given robot may be configured to perform multiple steps, e.g., one or more of inspection, transport, and installation, without departing from the spirit of the described technology.

[0016] In one or more implementations, an autonomous technician robot that performs the installation of components on a device includes a dynamic tool head that is adjustable based on the installation operation performed by the robot. The dynamic tool head includes various tools that are retracted or extended based on the installation operation being performed. For example, during the installation of a first fastener of a component on a device, the dynamic tool head extends (extends) a first tool to rotate the first fastener and retracts another tool that is not used to rotate the first fastener. During the installation of a different second fastener, the dynamic tool head extends a second tool to engage the second fastener and optionally retracts the first tool. The operation of the dynamic tool head is controlled in some implementations via one or more machine learning models, resulting in improved suitability of the robot for a variety of different component installation operations. By configuring the autonomous technician in this way, the autonomous technician performs operations such as verifying component condition and installing the component on a device, thereby complementing services offered by e-commerce platforms to increase buyer confidence and reduce item return rates.

[0017] In some aspects, the technology described herein relates to a system of one or more robots implementing an autonomous technician, the system including the autonomous technician configured to perform operations including verifying a component at a first location for a device located at a second location, the operations including verifying compatibility of the component with the device, verifying the component, transporting the component to the second location, and attaching the component to the device.

[0018] In some aspects, the techniques described herein relate to a system, wherein the autonomous technician includes one or more sensors, and verifying compatibility of the component with the device includes evaluating the component at a first location using the one or more sensors, determining an identifier for the component based on output of the one or more sensors during the evaluating, and matching the identifier with the device.

[0019] In some aspects, the technology described herein relates to a system, wherein an autonomous technician includes a dynamic tool head, and installing a component on a device using the autonomous technician includes detecting a shape of a fastener to be rotated during installation and adjusting the dynamic tool head based on the detected shape of the fastener.

[0020] In some aspects, the technology described herein relates to a system, wherein an autonomous engineer includes one or more sensors, a movement framework, and an inference module configured to receive feedback from the one or more sensors and issue commands to the movement framework based on the received feedback.

[0021] In some aspects, the technologies described herein relate to a system, wherein the autonomous technician includes a component-aware machine learning model stored in a memory, the component-aware machine learning model being trained with data including a plurality of component identifiers, and wherein determining the identifiers of the components is performed using the component-aware machine learning model.

[0022] In some aspects, the technology described herein relates to a system, wherein an autonomous technician includes an installation procedure machine learning model stored in a memory, the installation procedure machine learning model being trained with data including a plurality of installation instructions, and installing a component on a device is performed using the installation procedure machine learning model.

[0023] In some aspects, the technology described herein relates to a system, wherein an autonomous technician includes a component recognition machine learning model and an installation procedure machine learning model, wherein the component recognition machine learning model is trained with data including a plurality of component identifiers, and the installation procedure machine learning model is trained with data including a plurality of installation instructions, and an output of the component recognition machine learning model is an input of the installation procedure machine learning model.

[0024] In some aspects, the technology described herein relates to a system, wherein an autonomous technician includes a location and routing module, and transporting a component to a second location includes receiving transaction data associated with the component, the transaction data including location data describing the second location; receiving the transaction data; generating a route to the second location via the location and routing module based on the location data; and transporting the component to the second location along the route.

[0025] In some aspects, the technology described herein relates to a system, where an autonomous technician includes a first robot configured to verify a component at a first location for a device located at a second location, and a second robot configured to install the component on the device.

[0026] In some aspects, the technology described herein relates to a system, wherein an autonomous technician includes a network communication module configured to retrieve component installation data via wired or wireless communication in response to determining an identifier of a component using one or more sensors.

[0027] In some aspects, the technology described herein relates to a system where a network communication module retrieves component installation data from a service provider system that includes a list of components.

[0028] In some aspects, the technology described herein relates to a system, wherein a first location is associated with a seller of a component and a second location is associated with a purchaser of the component.

[0029] In some aspects, the techniques described herein relate to a method performed by one or more robots of an autonomous technician, the method including: the autonomous technician verifying a component at a first location for a device located at a second location; the autonomous technician transporting the component to the second location; and the autonomous technician installing the component on the device.

[0030] In some aspects, the techniques described herein relate to a method, wherein verifying a component at a first location for a device disposed at a second location includes an autonomous technician evaluating the component using one or more sensors of the autonomous technician, the autonomous technician determining an identifier for the component based on output of the one or more sensors during the evaluating, and the autonomous technician matching the identifier with the device.

[0031] In some aspects, the techniques described herein relate to a method, wherein transporting a component to a second location includes: an autonomous technician receiving location data describing the second location; the autonomous technician generating a route to the second location based on the location data; and the autonomous technician transporting the component to the second location along the route.

[0032] In some aspects, the techniques described herein relate to a method, wherein verifying a component at a first location for a device located at a second location is performed by an autonomous technician using a first machine learning model of the autonomous technician, and installing the component on the device is performed by the autonomous technician using a second machine learning model of the autonomous technician.

[0033] In some aspects, the techniques described herein relate to a method, wherein a first machine learning model is trained with data describing a plurality of known component identifiers, and a second machine learning model is trained with data describing a plurality of attachment protocols.

[0034] In some aspects, the techniques described herein relate to a method, further including: an autonomous technician acquiring image data describing a device using one or more sensors of the autonomous technician; the autonomous technician detecting a state of the device based on the image data; and the autonomous technician verifying a state of the device located at a second location by using a machine learning model to determine whether the detected state of the device matches the described state of the device.

[0035] In some aspects, the technology described herein relates to one or more computer-readable storage media storing executable instructions that, in response to execution by an autonomous technician implemented by one or more robots, cause the autonomous technician to perform operations, including validating a component at a first location for a device located at a second location, including verifying compatibility of the component with the device; transporting the component to the second location; and attaching the component to the device.

[0036] In some aspects, the techniques described herein relate to one or more computer-readable storage media, wherein the operations further include inputting data describing the component into a first machine learning model for validating the component; generating a route from the first location to the second location along which the autonomous technician should travel for transporting the component to the second location; inputting data describing one or more installation protocols into a second machine learning model for installing the component on the device; and validating the condition of the device located at the second location by inputting the data describing the device into a third machine learning model.

[0037] In the following description, an exemplary environment in which the techniques described herein can be used is first described. Then, details of implementations and example procedures that can be performed in the exemplary environment as well as other environments are described. The execution of the exemplary procedures is not limited to the exemplary environment, and the exemplary environment is not limited to the execution of the exemplary procedures.

[0038] [Example environment] 1 is a diagram of an environment 100 in an example implementation operable to use the technology for autonomous engineers as described herein. The illustrated environment 100 includes a service provider system 102 that can be configured in various ways.

[0039] In a variation, the service provider system 102 is or includes a computing device or multiple computing devices communicatively coupled to one another. The service provider system 102 supports the operation of the modules and other systems described herein to implement a platform 122. The platform 122 is implemented as an electronic commerce (e-commerce) website or other online marketplace accessible to end users. End users access the platform 122 through electronic devices external to the service provider system 102. In this example, these devices include the buyer computing device 112 and the seller computing device 108. The external electronic devices can be configured as personal computers, smartphones, etc. The platform 122 is accessible to end users via a network 104. The network 104 is the Internet in some examples.

[0040] In one or more implementations, the service provider system 102 includes one or more of electronic storage media, transient and non-transitory memory, one or more electronic processors, and other components configured to facilitate operation of the platform 122. The service provider system 102, in some examples, includes multiple servers, databases, and / or other electronic devices to support storage of data such as item listings, transaction data, buyer and seller profile information, and other data associated with the operation of the service provider system 102 and / or the content provided by the service provider system 102 to end users. In such a configuration, the multiple servers and / or other electronic devices are utilized to perform operations "via the cloud," as described in connection with FIG. 21 .

[0041] The service provider system 102 is also configured to electronically communicate with a database 106, such as for storing and retrieving data associated with item listings. In one or more implementations, the database 106 includes a non-transitory storage medium configured to store data used for item listings. The data is retrieved by the service provider system 102 and then provided to an external device for browsing the item listings through the platform 122. Examples of item listing data include, but are not limited to, digital images of the associated items, videos of the associated items, item prices, item descriptions, item conditions, item ownership history, and item authenticity designations, to name a few. Thus, the item listing data represents a grouping of data associated with the items and used to electronically publish listings of the items.

[0042] In one or more implementations, the buyer computing device 112 utilizes an application such as a website browser to navigate to the platform 122. Alternatively, or in addition, the buyer computing device 112 utilizes a separate application, such as a web-based application (e.g., a "mobile app") installed on the buyer computing device 112, to access the platform 122's user interface. The buyer computing device 112 further accesses the platform 122's functionality and / or services through an extension of the platform 122's user interface. According to the described techniques, the buyer computing device 112 communicates a request to view one or more item listings to the service provider system 102. The service provider system 102 then retrieves data related to the item listings from the database 106. The service provider system 102 further provides the buyer computing device 112 with access to the item listings via the platform 122.

[0043] The item list is generated through the merchant computing device's interaction with the service provider system 102. For example, the merchant computing device 108, through use of the platform 122, communicates information describing the components 110 offered for sale via the item list to the service provider system 102. The information describing the components 110 is stored in the database 106 and used to populate an item list associated with the components 110 on the platform 122. The item list is also stored in the database 106 and implemented as a web page or other user interface of the platform 122 (e.g., an item page within a web-based application). The buyer computing device 112 can view the item list through interaction with the platform 122, as described above.

[0044] In accordance with the described techniques, the service provider system 102 also electronically communicates with one or more robots, such as robot 116, collectively referred to herein as autonomous technician 120. Autonomous technician 120 is implemented to perform operations such as component condition verification, component transport, and component installation, as described above and below. In at least some implementations, platform 122 deploys autonomous technician 120 in response to completion of a transaction through platform 122.

[0045] As an example, consider a scenario in which a buyer utilizing a buyer computing device 112 completes a transaction via the platform 122 to purchase a component 110 described by an item list published by the platform 122. In this example, the component 110 is an accessory or replacement part for the buyer's equipment 114. The service provider system 102 communicates a prompt to the buyer computing device 112 to confirm whether installation assistance for the component 110 is desired. In other words, the service provider system 102 prompts the buyer via a user interface to select whether to involve an autonomous technician 120, such as by deploying the autonomous technician 120 to perform one or more of verification, delivery, and / or installation of the component 110. In this scenario, the buyer computing device 112 responds by confirming that installation assistance is desired, for example, by providing a selection via a user interface to deploy the autonomous technician 120. In this example, the confirmation indicates that the component 110 will be installed on the buyer's equipment 114. In response to the confirmation, the service provider system 102 communicates deployment instructions to the autonomous technician 120. By way of example, the deployment instructions include commands to perform one or more actions, such as, for example, verifying the condition of the component 110, transporting the component to the buyer's location, and installing the component 110 on the buyer's equipment 114. In the example that follows, based on the instructions, the autonomous technician 120 is deployed, verifies the component (e.g., at the seller's location), transports the component to the equipment 114, and installs the component 110 on the equipment 114 to form the assembly 118.

[0046] Performing component validation via autonomous technician 120 provides the technical effect of reducing the occurrence of unexpected component incompatibilities with a component purchaser's device. In addition, the actions performed by autonomous technician 120 provide various other technical effects.

[0047] As an example, the autonomous technician 120 verifies the condition of the component 110. The autonomous technician detects the condition of the component 110 and compares the detected condition to the condition described by the item list. This reduces the possibility of degradation of the component 110 or other unforeseen aspects of the component 110 that prevent the component 110 from being installed on the device 114. Additionally, verification of the condition of the component 110 by the autonomous technician 120 can reduce or eliminate back-and-forth communication through the platform 122 that results from miscommunicating the condition of the component 110 in the item list, which reduces the communication and / or processing load on the platform 122. Similarly, verification reduces the occurrence of return shipment communication through the platform 122, further reducing the communication and / or processing load on the platform 122.

[0048] The autonomous technician 120 further verifies the compatibility of the component 110 with the device 114 by referencing one or more compatibility libraries after detecting the actual state of the component 110. This provides an additional layer of assurance of the compatibility of the component 110 with the device 114 by identifying potential issues not listed on the item list that may prevent the component 110 from being installed.

[0049] In addition to verifying the state of the component 110, in one or more implementations, the autonomous technician 120 verifies the actual state of the device 114 before installing the component 110 on the device 114. Verifying the actual state of the device 114 includes detecting characteristics of the device 114 by assessing and / or measuring the device 114 itself. As a result, the autonomous technician 120 can identify potential problems that may arise with the installation of the component 110 on the device 114 due to one or more conditions of the device 114, for example, previous modifications or installations made to the device 114.

[0050] In one or more implementations, the autonomous technician 120 is configured to adapt to one or more detected conditions by updating an installation protocol for the component 110 and using the updated protocol to install the component 110 on a device having such conditions.

[0051] In situations where information describing the device 114 is stored in the purchaser's profile on the platform 122, the autonomous technician 120 can update the stored information based on the actual condition of the device 114. This, in turn, increases the accuracy of the information describing the device 114 and increases the ease and accuracy of further installations of the device 114. Furthermore, if the autonomous technician 120 detects a discrepancy in the information stored in the compatibility library based on the detected actual condition of the device 114, the autonomous technician 120 can communicate with the database 106 to update the compatibility library and / or installation protocol accordingly. This increases the accuracy of the compatibility information and the effectiveness of the installation protocol, increasing the success of future component installation operations.

[0052] By transporting the component 110 to the location of the device 114, the autonomous technician 120 reduces the amount of time and / or cost associated with shipping the component 110. Additionally, because the location of the autonomous technician 120 is tracked by the service provider system 102, the accuracy of tracking the location of the component 110 as it moves with the robot 116 is improved compared to traditional delivery approaches, such as the postal service. In one or more implementations, the form factor and / or structure of the robot 116 can reduce the likelihood of degradation of the component 110 while it is being transported to the location of the device 114 compared to traditional delivery approaches. For example, the autonomous technician 120 can include multiple different robots. Based on the attributes of the component 110, a particular robot having a form factor and structure for deployment can be selected to increase support for the component 110 during transport and reduce the likelihood of degradation of the component 110. In some examples, the weight capacity of the deployed robot is higher than the weight capacity associated with delivering the component 110 via the postal service. Thus, the autonomous technician 120 assists in the delivery of components that would otherwise face challenges using traditional delivery methods.

[0053] Using an autonomous technician 120 to install a component 110 on an apparatus 114 increases the likelihood that the component 110 will be installed according to the installation instructions on the component 110, compared to other approaches, such as human installation. The autonomous technician 120 may also be more accurate than a human installer when installing the component 110. Installing the component 110 with greater precision according to the installation instructions on the component 110 improves the reliability of the installation and / or the durability of the resulting assembly 118. Such installation may also reduce the likelihood of unintended surface contact or other adverse conditions that may result in degradation of portions of the apparatus 114 and / or component 110.

[0054] Furthermore, the autonomous technician 120 may support advanced and / or complex installation protocols that would be difficult or impractical for a human to perform. For example, the shape and / or structure of the robot 116 may facilitate the installation of the component 110 in areas of the equipment 114 that are difficult or impossible for a human to access. The robot 116 may also employ devices with lifting capabilities to lift portions of the equipment 114 and / or component 110 that would otherwise be difficult or impossible for a human to lift. Additionally, following the installation of the component 110 on the equipment 114, the autonomous technician 120 may be operable to verify the installation of the component 110 within the assembly 118 and / or test the operation of the assembly 118 to confirm the quality of the installation.

[0055] In general, the functions, features, and concepts described in connection with the above and following examples are used in the context of the exemplary procedures described in this section. Furthermore, functions, features, and concepts described in connection with different figures and examples in this document are interchangeable with one another and are not limited to implementation in the context of a particular figure or procedure. Furthermore, blocks associated with different representative procedures and corresponding figures herein may be applied together and / or combined in different ways. Thus, individual functions, features, and concepts described in connection with different exemplary environments, devices, components, figures, and procedures herein may be used in any appropriate combination and are not limited to the specific combinations represented by the examples enumerated in this description.

[0056] [Autonomous technician handling and installing components] The following description describes techniques for autonomous engineers that can be implemented using the described systems and devices. Aspects of the procedures are implemented in hardware, firmware, software, or a combination thereof. The procedures are illustrated as a set of blocks that specify operations that can be performed by the hardware and are not necessarily limited to the order shown for performing the operations by each block. The procedure blocks specify operations as instructions that can be programmed by, for example, hardware (e.g., processor, microprocessor, controller, firmware), thereby creating a dedicated machine for executing an algorithm such as that illustrated by the flow diagram. As a result, the instructions can be stored in a computer-readable storage medium that causes the hardware to execute the algorithm.

[0057] Figures 17-19 show flow diagrams illustrating algorithms as step-by-step procedures. Specifically, Figure 17 shows procedure 1700 for verifying the condition of a component via an autonomous technician, Figure 18 shows procedure 1800 for transporting the component to a purchaser's location via an autonomous technician, and Figure 19 shows procedure 1900 for installing the component on a purchaser's equipment via an autonomous technician. Some of the following description will refer to Figures 1-16 in parallel with procedure 1700 of Figure 17, procedure 1800 of Figure 18, and procedure 1900 of Figure 19. In some implementations, the procedures depicted by Figures 17-19 are performed via a single robot of an autonomous technician, e.g., robot 116, while in others, the procedures are performed by one or more robots.

[0058] Referring to FIG. 2, an exemplary implementation of the service provider system 102 is shown, illustrating operations for generating a component list 202. In this example, a seller inputs information describing items to be listed via a platform 122 implemented by the service provider system 102. The items are components for a device or equipment, such as parts for installation on a vehicle. The seller computing device 108 communicates the information input by the seller, represented as component list data 200, to the service provider system 102. In response to receiving the component list data 200, the service provider system 102 generates and publishes the component list 202. The component list 202 includes information about the components (e.g., items) associated with the component list 202, either provided by the seller based on the received input or automatically generated by, for example, one or more machine learning models. By way of example and not limitation, component list data 200 may include one or more of a digital image of the component, a video of the component, a text description of the component, a selected category of the component, a selected or described condition of the component, a wear description of the component, a compatibility description of the component, a make and / or model of the component, a price of the component, a description of similar components, an ownership history, etc. Component list 202 is stored using one or more databases of service provider system 102, such as database 106.

[0059] 3, an exemplary implementation is shown illustrating operations for generating a robot-assisted request 308 in response to a transaction involving an item list. In this example, a purchaser utilizes a purchaser computing device 112 to communicate information to the service provider system 102 through the platform 122. The communicated information includes device compatibility data 300 and search criteria 302.

[0060] The device suitability data 300 includes information describing the purchaser's device 114. Such information may include, for example, the make and / or model of the device 114, the manufacturer of the device 114, the date of manufacture of the device 114, one or more images of the device 114 or a portion of the device 114, one or more videos of the device 114 or a portion of the device 114, etc. It should be understood that the suitability data 300 may include various information and / or types of information that describe or convey aspects about the device 114 related to its suitability without departing from the spirit or scope of the described technology. The device suitability data 300 is utilized by the service provider system 102 to filter search results provided to the purchaser, as described below.

[0061] The search criteria 302 include information describing the component the purchaser is seeking to purchase for installation in the device 114. For example, the search criteria 302 is a search query that includes one or more of text, audio, images, or video. In one example, the device 114 is a vehicle and the search criteria 302 specifies a type of vehicle component, such as a vehicle radio.

[0062] The service provider system 102 receives the device compatibility data 300 and the search criteria 302. The service provider system 102 then communicates at least one retrieved item list to the buyer computing device 112 based on the device compatibility data 300 and the search criteria 302. One such item list is the component list 202. The service provider system 102 uses the device compatibility data 300 and the search criteria 302 to identify the component list 202 from the multiple item lists.

[0063] In at least one implementation, the service provider system 102 determines a first set of item lists from the plurality of item lists based on the device compatibility data 300. The item lists in the first set of item lists are associated with items that are compatible with the device 114 (for installation on the device 114) according to information included in the item lists. The service provider system 102 determines whether the items are compatible with the device 114 by comparing the device compatibility data 300 to data in one or more compatibility libraries in the database 106 and / or data included in the item lists that can indicate compatibility, e.g., a list of makes and / or models for which the components of the item lists are compatible.

[0064] The service provider system 102 further determines a second set of item lists from the first set of item lists. The second set of item lists is a subset of the first set of item lists and is based on the search criteria 302, e.g., the item lists that further match the search criteria 302. Thus, the second set of lists includes the lists from the first set that further match the search criteria 302. As described above, the search criteria 302 can specify a particular type of item or component, and the search criteria 302 can be used to further filter the set of item lists for components determined to be compatible with the device 114.

[0065] Consider a scenario in which the device 114 is a particular make and model vehicle. In one or more implementations, a first set of item lists includes a list of components compatible with the particular make and model vehicle. Further, in this scenario, the search criteria 302 describes a particular type of item, such as a vehicle radio. Thus, the first set of lists includes a list of components compatible with the vehicle, and the second set of lists includes a list of vehicle radios compatible with the vehicle.

[0066] In this scenario, the service provider system 102 determines a first set of item lists from the device compatibility data 300 and determines a second set of item lists from the first set of item lists, although in some cases these operations are reversed. For example, the service provider system 102 can determine a first set of item lists based on search criteria and determine a second set of item lists from the first set based on the device compatibility data 300.

[0067] To complete a transaction for component 110, purchaser computing device 112 provides input 304, which is received by service provider system 102. In one or more implementations, input 304 includes data for executing the transaction for component 110, examples of which include electronic communications such as payment information, purchaser location information, delivery selection information, etc. Information related to the completed transaction is represented as transaction data 306.

[0068] In at least one implementation, the input 304 includes confirmation that installation assistance for the component 110 is requested, for example, as a robot-assisted request 308. In accordance with the described techniques, the service provider system 102 communicates the transaction data 306 and the robot-assisted request 308 to the autonomous technician 120 as part of instructions for deployment of the autonomous technician 120. As a result, the autonomous technician 120 is deployed, via one or more robots, such as the robot 116, to perform at least one of an item verification, an item transport, and / or an item installation operation as described herein.

[0069] 4, one exemplary implementation of the robot 116 is shown. The robot 116 includes various modules and components that enable the robot 116 to perform one or more operations, such as component condition verification, component transport, and component installation. It should be understood that a robot configured to perform any one or more or a portion of these operations may include more, different, or fewer components than those depicted in FIG. 4 without departing from the spirit or scope of the described technology.

[0070] Alternatively, or additionally, robot 116 is one of two or more robots used by autonomous technician 120 to perform any of the various operations described herein. Each of the two or more robots may include various subsets, all, or different components of the configuration depicted in FIG. 4. As an example, autonomous technician 120 can be configured to include a first robot and a second robot, where the first robot includes state verification module 440 but does not include installation tool framework 434, and the second robot includes installation tool framework 434 but does not include state verification module 440.

[0071] In this example, the illustrated robot 116 includes sensors 400. The sensors 400 are used by the robot 116 to sense conditions in the robot's 116's environment and / or measure parameters associated with items (e.g., components 110). The sensors 400, in one or more implementations, may include at least one of a camera 402, a microphone 404, an on-board diagnostics (OBD) interface 406, a multimeter 408, a microscope 410, a scale 412, a radio frequency (RF) detector 414, and a spectrometer 416, to name a few. In some implementations, the robot 116 includes different, fewer, or additional sensors, and / or one or more of the sensors shown in FIG. 4 are omitted.

[0072] In at least one scenario, the robot 116 uses the sensors 400 to verify the condition of the items involved in the transaction through an item list. Performing the condition verification involves electronic communication between the sensors 400 and a condition verification module 440. The condition verification module 440 receives measurements and / or other data from the sensors 400 and provides commands to control the sensors 400 (and / or the architecture of the robot 116) to obtain those measurements and / or other data. When performing the item condition verification, the robot 116 can acquire digital image data of the item via, for example, the camera 402, the microscope 410, and / or the spectrometer 416. The robot 116 can then compare the acquired digital image data with other reference digital image data, such as digital images of the item provided by the manufacturer that are maintained in the database 106. Based on the comparison, the robot 116 determines whether the condition of the item matches (or substantially matches) the condition represented by the reference data. In one or more implementations, this determination can be performed by using one or more machine learning models to analyze the digital image data acquired via the sensors and compare the data to the reference digital image data.

[0073] In at least one implementation, the determination includes matching one or more identifiers of the item indicated by the reference data with one or more identifiers or identifying features identified in the digital image acquired by the sensor 400. For example, one or more machine learning models are trained to perform image recognition operations such as edge detection, image segmentation, pattern detection, etc. to identify identifiers or identifying features in the digital image.

[0074] Additionally, in some implementations, the robot 116 acquires other data from the sensors 400 and compares such other acquired data to other reference data contained in the database 106. For example, the robot 116 acquires the weight of the item via the scale 412 and compares the weight to the expected weight of the item stored in the reference data. Based on the comparison, the robot 116 determines whether the measured weight is within a tolerance of the reference weight (e.g., less than a 5% difference from the reference weight). Thus, the reference weight and the measured weight are identifiers of the item that are matched by the robot 116. Item condition verification performed by the robot 116, in some examples, includes multiple operations, such as determining that the visual appearance of the item matches the visual appearance represented by the reference data, that the measured weight of the item matches the reference weight, etc.

[0075] The robot 116 additionally includes input / output devices 418 that provide an interface between a person within the vicinity of the robot 116 and various control modules and other components of the robot 116. The robot 116 is shown as including a speaker 420 configured to output audio signals, a display screen 422 configured to output information for display, and a keyboard 424 configured to receive input for communication between a person and the robot 116. In some implementations, the input / output devices 418 include different configurations with more, fewer, or different input / output devices 418.

[0076] In one or more implementations, the input / output device 418 communicates with a text-to-speech module 442, such as to convert text data into audio signals and vice versa. For example, the robot 116 receives text input via a keyboard 424 and outputs an audio signal, including a voice based on the text data, via a speaker 420. In one or more implementations, the microphone 404 is used by the text-to-speech module 442 to receive the audio signal, which converts the received audio signal into text data. In one or more implementations, the robot 116 can communicate with a buyer through the buyer computing device 112 and / or with a seller through the seller computing device 108. These communications may include electronic communications sent to the buyer computing device 112 and / or the seller computing device 108, such as by using a short-range wireless transmitter integrated into the network communication module 438. Alternatively or additionally, the robot 116 communicates electronically with the service provider system 102, which in turn communicates electronically with the buyer computing device 112 and / or the seller computing device 108 to provide communications related to the operation of the robot 116 to the buyer and / or seller.

[0077] In at least one implementation, the robot 116 includes a locomotion framework 426 that includes components used to support movement of the robot 116, such as moving the robot 116 from one location to another. The locomotion framework 426 is shown as including wheels 428, gyroscopes 430, propellers 432, and a locomotion controller 450. However, it should be understood that the locomotion framework 426 may include more, different, or fewer components to support the movement of the robot without departing from the spirit or scope of the described technology.

[0078] By way of example, wheels 428 are used by the robot 116 for ground locomotion, and propellers 432 are used by the robot 116 for aerial locomotion. In some implementations, the robot 116 is configured as an unmanned aerial vehicle (UAV), also known as a drone. However, in other implementations, the robot 116 includes wheels 428 or other devices for ground locomotion, but does not include propellers 432. The gyroscope 430 supports the robot 116's upright movement and its movement over various ground terrains, such as unpaved land.

[0079] In one or more implementations, the movement controller 450 controls the operation of the components of the movement framework 426 based on signals received at the movement controller 450 from the sensors 400. Such signals may include, for example, one or more of image data from the camera 402 and audio data from the microphone 404. The movement controller 450 additionally receives signals and data from the location and routing module 444, such as data describing the geographic location of the robot 116. In some implementations, the robot 116 is a stationary robot and does not include the movement framework 426.

[0080] The movement framework 426 is configured to electronically communicate with a location and routing module 444 for movement of the robot 116. The location and routing module 444 processes location data for the robot 116, such as data describing the geographic location of the robot 116. The location data is obtained by the robot 116 via the network communication module 438 via communication with one or more sources of location data, such as a global positioning system, a wireless router, a cellular network component, etc. The location and routing module 444 can identify the geographic location of the robot 116 and generate a movement route for the robot 116 based on the robot's location data as well as other entities.

[0081] In one exemplary scenario, the robot 116 receives transaction data 306. The location and routing module 444 processes the transaction data 306 and generates at least a portion of a route to a seller's location having the component 110. Alternatively or additionally, the location and routing module 444 generates at least a portion of a route to a buyer's location associated with the device 114. The location and routing module 444 is further in electronic communication with the movement framework 426 to support movement of the robot 116 along one or more routes.

[0082] The robot 116 is shown as including an installation tool framework 434. The installation tool framework 434 includes components configured to support the attachment of items to other devices. For example, the robot 116 uses the installation tool framework 434 to attach the component 110 to the apparatus 114. In one or more implementations, the installation tool framework 434 includes a dynamic tool head 436, as described in further detail below. Alternatively or additionally, the robot 116 includes and / or controls one or more of a plurality of different tools. In one or more implementations, the robot 116 controls the dynamic tool head 436 and / or any of a plurality of different tools to attach the component 110 to the apparatus 114. In one or more scenarios, the robot 116 removes a different component from the apparatus 114 before attaching the component 110. For example, the robot 116 uses the installation tool framework 434 to replace a component on the apparatus 114 with the component 110. Alternatively or additionally, the robot 116 uses the installation tool framework 434 to at least partially remove or disassemble a component of the apparatus 114 and then install the component 110. In at least one scenario, the robot 116 also uses the installation tool framework 434 to at least partially re-install or re-assemble the at least partially removed or disassembled component after the component 110 has been installed.

[0083] To install a component, in one or more implementations, the installation tool framework 434 receives instructions and / or commands to install the component on one or more other devices or apparatuses. For example, the installation tool framework 434 receives such instructions and / or commands through electronic communication with an installation protocol module 446. In at least one scenario, for example, the robot 116 receives transaction data 306 including information about the described condition of the component 110 provided by the seller. Using the transaction data 306, the robot 116 communicates with the service provider system 102 and the database 106 to receive an installation protocol related to the installation of the component 110 on the purchaser's equipment 114. As described further below, the installation protocol module 446 includes one or more machine learning models that control the operations performed using the installation tool framework 434 via the installation protocol module 446.

[0084] In one or more implementations, the robot 116 further includes a component support framework 448. In at least one implementation, the robot 116 uses the component support framework 448 in combination with the attachment tool framework 434 while performing the attachment of components to other devices. By way of example, the component support framework 448 includes various gripping instruments and other devices that stabilize the apparatus 114 relative to the robot 116 and increase the ease of attaching components to the apparatus. The component support framework 448 is described in more detail below. In some implementations, the robot 116 controls the devices of the component support framework 448, at least in part, through electronic communication with the attachment protocol module 446. For example, the robot 116 uses the attachment protocol module 446 to issue commands to the component support framework 448 to control the devices of the component support framework 448 to attach components to other devices.

[0085] In one or more implementations, the robot 116 communicates electronically with the service provider system 102 via the network communication module 438. Electronic communication via the network communication module 438 includes wired or wireless communication. As an example, the robot 116 communicates wirelessly with the service provider system 102 via the network communication module 438 using a cellular communication network. Alternatively or additionally, the robot 116 communicates wirelessly with the service provider system 102 via the network communication module 438 using a wireless (e.g., Wi-Fi) network. Indeed, other communication protocols and / or networks may be used in accordance with the described techniques. In one or more scenarios, communications are transmitted via the network 104.

[0086] In some implementations, the robot 116 includes additional components not shown in Figure 5. For example, the robot 116 can be configured to include one or more batteries configured to power the electronic components of the robot 116. The robot 116 can further be configured to include a wired power connection, such as a cable power supply.

[0087] In the illustrated example, the robot 116 includes an inference module 460. In one or more implementations, the inference module 460 coordinates communication between various components of the robot 116. For example, the inference module 460 controls electronic communication between the state verification module 440, the attachment protocol module 446, and the movement controller 450. Thus, the robot 116 uses the inference module 460 to coordinate and otherwise manage operations described herein associated with the state verification module 440, the attachment protocol module 446, and the movement controller 450, respectively. In one scenario, the inference module 460 activates the state verification module 440 to perform component verification. The inference module 460 then electronically controls or activates other components of the robot 116 in response to the results of the component verification.

[0088] The illustrated robot 116 includes a processing system 452, one or more computer-readable media 456, and input / output devices 418, communicatively coupled to each other. Although not shown, the robot 116 further includes a system bus or other data and command transfer system that couples the various components to each other. For example, the system bus may include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and / or a processor or local bus utilizing any of a variety of bus architectures. Various other examples, such as control lines and data lines, are also contemplated.

[0089] Processing system 452 represents functionality that performs one or more operations using hardware. Accordingly, processing system 452 is shown as including hardware elements 454 configured as processors, functional blocks, etc. This includes exemplary implementations in hardware as system-specific integrated circuits formed using one or more semiconductors or other logic devices. Hardware elements 454 are not limited by the material from which they are formed or the processing mechanisms employed therein. For example, a processor may be comprised of semiconductor(s) and / or transistors (e.g., electronic integrated circuits (ICs)). In such a context, processor-executable instructions are, for example, electronically executable instructions.

[0090] Computer-readable medium 456 is shown as including memory / storage 458. Memory / storage 458 represents memory / storage capacity associated with one or more computer-readable media. In one example, memory / storage 458 includes volatile media (such as random access memory (RAM)) and / or non-volatile media (such as read-only memory (ROM), flash memory, optical disks, magnetic disks, etc.). In another example, memory / storage 458 includes fixed media (e.g., RAM, ROM, fixed hard drives, etc.) and removable media (e.g., flash memory, removable hard drives, optical disks, etc.). Computer-readable medium 456 may be configured in a variety of other ways, as further described below.

[0091] The input / output devices 418 represent functionality that allows user input to enter commands and information into the robot 116 and also allows information to be presented via other components or devices using various input / output devices. Examples of input devices include a keyboard 424, a cursor control device (e.g., a mouse), an additional microphone or microphones 404, a scanner, touch functionality (e.g., a capacitive or other sensor configured to detect physical touch), an additional camera or cameras 402 (e.g., employing visible and / or non-visible wavelengths such as infrared frequencies to recognize movements as gestures without touch), etc. Examples of output devices include a display screen 422 (e.g., a monitor or projector), speakers 420, a printer, a network card, a tactile response device, etc. Thus, the robot 116 can be configured in various ways to support user interaction.

[0092] An implementation of the described modules and techniques may be stored on or transmitted across some form of computer-readable media. For example, computer-readable media includes various media accessible to the service provider system 102. By way of example and not limitation, computer-readable media includes "computer-readable storage media" and "computer-readable signal media."

[0093] As mentioned above, hardware elements 454 and computer-readable media 456 represent modules, programmable device logic, and / or fixed device logic implemented in the form of hardware that can be employed in some implementations to implement at least some aspects of the techniques described herein, such as to execute one or more instructions. Hardware includes components of integrated circuits or on-chip systems, system specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), and other implementations in silicon or other hardware. In this context, hardware operates both as a computing device that executes program tasks defined by the instructions and / or logic embodied by the hardware, as well as hardware utilized to store instructions for execution, such as the computer-readable storage media mentioned above.

[0094] Combinations of the foregoing can also be employed to implement the various techniques described herein. Accordingly, software, hardware, or executable modules can be implemented as one or more instructions and / or logic embodied on some form of computer-readable storage medium and / or by one or more hardware elements 454. For example, the robot 116 is configured to implement particular instructions and / or functions corresponding to software and / or hardware modules. Thus, implementation of modules executable by the robot 116 as software is achieved at least in part in hardware, for example, through the use of computer-readable storage media and / or hardware elements 454 of the processing system 452. The instructions and / or functions can be executable / operable by one or more articles of manufacture (e.g., the processing system 452) to implement the techniques, modules, and examples described herein.

[0095] The techniques described herein can be supported by various configurations of robot 116 and are not limited to the specific examples of the techniques described herein. This functionality can also be implemented in whole or in part through the use of a distributed system, such as via a "cloud" similar to the exemplary cloud shown by FIG. 21 and described further below.

[0096] 5, an example implementation illustrating operations for component state verification is shown. In the illustrated implementation, the robot 116 is located at the location of the seller and the component 110. For example, following completion of a transaction involving the component list 202, the robot 116 is deployed by the service provider system 102 to perform state verification of the component 110. In some scenarios, the robot 116 travels to the location of the seller and the component 110 using the movement framework 426. In other scenarios, the seller or platform 122 transports or delivers the component 110 to the location of the robot 116 for verification of the state of the component 110 by the robot 116. The robot 116 can be deployed from a location such as a warehouse or other hub that serves as a storage location for the robot 116 while the robot 116 is not in use.

[0097] The robot 116 receives the transaction data 306 and the component 110. The robot 116 evaluates the component by obtaining data describing the component 110 via the sensors 400 (block 1702 of FIG. 17 ). The data describing the component 110 includes, for example, a digital image of the component 110, weight measurements of the component 110, size measurements of the component 110, etc. The data is provided to the condition verification module 440, which performs component condition verification, for example, by using a machine learning model 506. The machine learning model 506 is referred to herein as a component-aware machine learning model. In some implementations, the machine learning model 506 is a deep neural network trained with data describing various types of components. The condition verification module 440 uses the machine learning model 506 to determine an identifier for the component 110, such as the identifier 510, that matches a known identifier stored in the database 106 (block 1704 of FIG. 17 ). The machine learning model 506 is trained with data describing multiple component identifiers that the machine learning model 506 leverages to detect identifiers of the component 110 (and other components provided to the robot 116 for state verification). In one or more implementations, the machine learning model 506 performs operations such as image recognition, image content matching, and similarity analysis, to name a few.

[0098] The condition validation module 440 communicates with the database 106 via the network communication module 438 to retrieve reference data to be used in performing operations for component condition validation. The reference data may include data from a universal purchase code (UPC) database 500, a manufacturer part number (MPN) database 502, one or more compatibility libraries such as a compatibility library 504, and the like.

[0099] As described above, the robot 116 can acquire data describing the component 110 via the sensors 400, such as a digital image of the actual condition of the component 110. The robot 116 uses a machine learning model 506 to determine one or more identifiers of the component 110 that are used to verify the condition of the component 110. One such identifier 510 includes a visible manufacturer part number, such as a part number stamped on the component 110 or included on a sticker affixed to the component 110. Additionally and / or alternatively, the visible manufacturer part number may be included on the packaging of the component 110, and acquiring the data describing the component 110 via the sensors 400 may include acquiring the visible manufacturer part number from the packaging of the component 110.

[0100] Condition verification module 440 detects a manufacturer part number and compares the detected manufacturer part number to multiple part numbers, such as from MPN database 502, associated with various components. Condition verification module 440 verifies that the detected manufacturer part number matches a part number included in MPN database 502 associated with the component. Condition verification module 440 further compares other detected identifiers with reference data from database 106 to verify whether the identifiers match reference data associated with the component identified by the matched part number in MPN database 502. Based on the identifier match, condition verification module 440 determines that component 110 is the same brand and / or model as the component identified by the matched part number in MPN database 502.

[0101] Other exemplary identifiers include, but are not limited to, the relative positioning of the edges and / or surfaces of component 110, the measured size of component 110, the texture and / or patterning of component 110, the material of component 110, the color of component 110, the translucency or transparency of component 110, the reflectivity of component 110, the labeling of component 110 (e.g., by stamping, sticker, printing, etc.), and the sound produced by component 110, among others.

[0102] In one or more implementations, the condition verification module 440 compares the identified component 110 to the description of the component 110 contained in the component list 202. For example, the condition verification module 440 processes the data obtained via the sensor 400 using the machine learning model 506 to determine attributes of the component 110, such as wear, missing features, surface finish and / or texture, weight, and / or density, to name a few. The condition verification module 440 then determines, based on the determined attributes, whether the description of the component 110 from the component list 202 matches the actual condition of the component 110. Other example characteristics of the component 110 that can be detected via the sensor 400 and the condition verification module 440 include connectivity of the wireless communication connection of the component 110 using the RF detector 414, continuity of the electrical circuit or other portion of the component 110 using the multimeter 408, connectivity of the electronic port of the component 110 using the OBD interface 406, filter degradation of the component 110 using a particulate detector (not shown), etc.

[0103] The condition validation module 440 further determines whether the component 110 is compatible with the device 114 based on the detected identifier. For example, data received by the robot 116 from the compatibility library 504 indicates various components that are compatible for installation on the device 114 (based on the device compatibility data 300). The robot 116 identifies the condition of the component 110 based on the identifier, as described above, and determines whether the data from the compatibility library 504 indicates that the component 110 is compatible for installation on the device 114.

[0104] The compatibility of component 110 with equipment 114 may also depend on the actual state of equipment 114. For example, equipment compatibility data 300 describes equipment 114, but the actual state of equipment 114 may differ from the state described by equipment compatibility data 300 due to modification, incorrect documentation, wear, manufacturing errors, etc. To verify the actual state of equipment 114, robot 116 may perform additional verification operations with respect to equipment 114, as further described below with reference to FIG.

[0105] The condition validation module 440 compares the detected identifier of the component 110 with known reference identifiers contained in the compatibility library 504, UPC database 500, and / or MPN database 502 associated with various devices to determine the compatibility of the component 110 with the device 114 (block 1706 shown by FIG. 17 ). Consider a scenario where the device 114 is a particular make and model of vehicle. Within the compatibility library 504, the particular make and model of the vehicle is associated with various identifiers, e.g., data describing serial numbers of parts compatible with the vehicle make and model. Identifiers associated with a particular make and model of vehicle include, for example, a particular electronic connection assembly for the vehicle radio, a particular wheel size, a particular air filter housing length, etc.

[0106] Condition validation module 440 compares the detected identifier of component 110 with identifiers in compatibility library 504 associated with a particular make and model of vehicle to determine a match between the identifiers. In this exemplary scenario, component 110 is a vehicle air filter. Condition validation module 440 detects the length of component 110, for example, via measuring component 110 through sensor 400, and stores the detected length as an identifier for component 110. Condition validation module 440 then compares the detected length of component 110 with air filter housing length identifiers associated with device 114 in compatibility library 504 to determine whether component 110 is compatible with the vehicle, for example, whether component 110 fits within the vehicle's air filter housing.

[0107] The state verification module 440 outputs the component verification result 508 (block 1708 of FIG. 17 ), such as to the service provider system 102. The component verification result 508 indicates whether the actual state of the component 110 matches the state listed in the component list 202. If the states match, the service provider system 102 commands the robot 116 (or another robot of the autonomous technician 120) to transport the component to the buyer's location for installation on the buyer's equipment 114.

[0108] However, if the states do not match, the service provider system 102 performs a different set of actions. In some implementations, if the states do not match, the service provider system 102 provides a notification or alert to the buyer through the platform 122, via text message, or via another type of communication, indicating that the state of the component 110 differs from the state described in the component list 202. The service provider system 102 prompts the buyer for confirmation to proceed with delivery of the component or to cancel the transaction. In some implementations, the service provider system 102 cancels the transaction and suggests an alternative component list for a similar component to the buyer. Other responses are possible without departing from the described techniques.

[0109] 6 , an implementation illustrating operation of the autonomous technician 120 for determining a travel route for the robot 116 is shown. The robot 116 includes a location and routing module 444 that receives transaction data 306 and component list data 200 (block 1802 of FIG. 18 ). The transaction data 306 includes data describing the location of the component 110 (e.g., a first location such as a warehouse, fulfillment center, or seller's home) and data describing the location of the device 114 (e.g., a second location such as a repair facility, holding center, or buyer's home). The autonomous technician verifies the component 110 at the first location for the device 114 at the second location. In at least one implementation described below, the first location is the location of the seller of the component 110, and the second location is the location of the buyer of the component 110.

[0110] In at least one implementation, the transaction data 306 includes buyer location data 600 and seller location data 602. The buyer location data 600 includes data identifying the location (e.g., physical address) of the buyer having the device 114, and the seller location data 602 includes data identifying the location of the seller having the component 110. The buyer location data 600 and the seller location data 602 are obtained during the transaction of the component 110, e.g., extracted from the buyer's and seller's respective user profiles and / or entered into a user interface as part of the execution of the transaction. In some circumstances, the buyer enters the buyer location data 600 while completing the transaction, and the seller enters the seller location data 602 while generating the component listing 202 associated with the component 110. In some examples, the seller location data 602 is obtained directly from the component listing data 200. The buyer location data 600 (e.g., destination) and the seller location data 602 (e.g., starting location or origin) are stored by the service provider system 102. In one or more implementations, the service provider system 102 coordinates with the robot-assistance request 308 to provide the route start and destination locations to the location and routing module 444 of the robot 116 .

[0111] The location and routing module 444 receives the buyer location data 600 and the seller location data 602 and generates a determined route 604 for the robot 116 based on, for example, the buyer location and the seller location (block 1804 of FIG. 18 ). In some cases, the determined route 604 includes a first stage from the robot's 116's starting location (e.g., a warehouse or other previous location) to the seller's location, a second stage from the seller's location to the buyer's location, and a third stage, such as from the buyer's location back to the starting location or to a next location for one or more of component verification, component transfer, or component installation.

[0112] 7-9 show examples of determined routes 604. A deployment location 700 indicates a starting location of the robot 116, e.g., the location of the robot 116 before the start of the robot's 116's movement to a seller's location 708 (e.g., a first location). In one or more implementations, this first location is associated with the seller, such as the seller's residence, the seller's workplace, or a location where the seller has designated an autonomous technician to meet, to name a few. In at least one scenario, the seller's location, e.g., the first location, corresponds to a location associated with the platform 122, such as a warehouse utilized by the platform 122.

[0113] The robot 116, shown schematically in FIG. 7, moves from a deployment location 700 toward a seller location 708 along a first stage 702 of a determined route 604. A movement framework 426 supports the movement of the robot 116 (e.g., on the ground and / or in the air) along the determined route 604. A movement controller 450 included in the movement framework 426 receives signals and other feedback from the sensors 400 and the location and routing module 444 (block 1806 of FIG. 18 ), and the movement controller 450 issues commands to other components of the movement framework 426 to support the movement of the robot 116.

[0114] In these examples, the robot 116 retrieves the component 110 at the seller's location 708, e.g., in response to verifying the component at the seller's location 708. The robot 116 then transports the component 110 to a buyer's location 710, e.g., a second location. In one or more implementations, this second location is associated with the buyer, such as the buyer's residence, the buyer's workplace, a location where the buyer's device is stranded (e.g., on the side of the road), or a location where the buyer otherwise specifies to meet an autonomous technician to install the component on the device, to name a few. In at least one scenario, the buyer's location, e.g., the second location, corresponds to a location associated with the platform 122, such as a store utilized by the platform 122 to install the component.

[0115] As an example, the robot 116 loads the component 110 and travels with the component 110 from the seller's location 708 to the buyer's location 710 along the second stage 704 of the determined route 604 (block 1808 of FIG. 18 ). After the robot 116 arrives at the buyer's location 710 with the component 110, the robot 116 (or another robot 116) attaches the component 110 to the buyer's equipment 114. In some examples, the robot 116 communicates its arrival at the buyer's location 710 to the buyer, e.g., via communication with the service provider system 102, which then communicates with the buyer's computing device 112 through the platform 122. In some scenarios, the buyer provides the robot 116 with temporary access to the equipment 114, such as via a code to an electronic lock, e.g., a door lock, vehicle lock, or garage panel. In one or more embodiments, information for unlocking such an electronic lock is included in the transaction data 306. After attaching the component 110 to the equipment 114, the robot 116 moves from the purchaser location 710 to another location, such as by returning to the deployment location 700 along the third stage 706 of the determined route 604, as shown in Figure 9. To assist in attaching the component 110 to the equipment 114, the robot 116 includes various devices, as described below.

[0116] 10 illustrates an implementation of the installation tool framework 434 and the component support framework 448 of the robot 116. In the illustrated implementation, the installation tool framework 434 includes an installation control module 1000, an attachment 1002, and a fastener 1012. The installation control module 1000 is configured to communicate with the service provider system 102 and the database 106 via the network communication module 438. The installation control module 1000 receives installation instructions from the installation protocol module 446 and performs operations using the attachment 1002, the fastener 1012, and the component support framework 448 according to the installation instructions. Example operations are further described below with reference to FIG. 16 .

[0117] In one or more implementations, the appendage 1002 includes a dynamic tool head 436. In some implementations, the appendage 1002 is a rigid appendage, e.g., an arm. In other implementations, the appendage 1002 has a different structure, such as a flexible, articulated structure that supports bending and rotation or twisting of the appendage 1002.

[0118] The dynamic tool head 436 includes various tools, examples of which include, but are not limited to, sockets 1004, pins 1006, drivers 1008, shapers 1010, etc. Of course, the dynamic tool head 436 may have different tools in variations. The robot 116 controls the dynamic tool head 436 to use one or more tools included in the dynamic tool head 436 while other tools in the dynamic tool head 436 are stowed, e.g., retracted. For example, the mounting control module 1000 commands the dynamic tool head 436 to perform an operation with certain ones of the sockets 1004 extended and other ones of the sockets 1004 retracted. Exemplary implementations of the dynamic tool head 436 are shown in FIGS. 11-14 and described below.

[0119] The component support framework 448 includes various devices that function alone or in combination with the devices of the dynamic tool head 436. In the illustrated embodiment, the component support framework 448 includes a gripping device 1014, a clamping device 1016, a support structure 1018, and a lifting device 1020. However, other devices are possible. The gripping device 1014 is a device such as pliers used to grip portions of other devices, such as the component 110 and / or the apparatus 114. The clamping device 1016 is a device such as a clamp used to secure the position of other devices or to temporarily connect two devices. The support structure 1018 is a frame or other structure, such as a platform, used to hold another device or apparatus. The lifting device 1020 is a device used to elevate the position of other devices, for example, to lift the other device relative to the ground. The various devices, in some implementations, electronically communicate with the mounting control module 1000 to receive commands from the mounting control module 1000. For example, the attachment control module 1000 can issue instructions to the device for movement of the device, the movement being performed via actuation of one or more actuators (e.g., solenoids, pistons, etc.) of the device.

[0120] 11-14 collectively, there are shown various implementations of the dynamic tool head 436. The dynamic tool head 436 is shown disposed on the end of the appendage 1002. Movement of the appendage 1002 and the dynamic tool head 436 is controlled via the attachment control module 1000 as described above.

[0121] The dynamic tool head 436 is shown including a toolset 1100. The toolset 1100 includes tools, such as the socket 1004 described above. The toolset 1100 is shown including a first socket 1106, a second socket 1108, and a third socket 1110. The sockets are retractable within the dynamic tool head 436 along an axis 1104, as shown by FIG. 11 , so that the sockets do not extend outward from the front end 1102 of the dynamic tool head 436. However, the attachment control module 1000 can instruct the dynamic tool head 436 to extend one or more of the sockets. Similarly, the attachment control module 1000 can instruct the dynamic tool head 436 to retract one or more of the sockets.

[0122] For example, Figure 12 shows the first socket 1106 in the extended position. The first socket 1106 has a larger first width 1200. Figure 13 shows the first socket 1106 in the retracted position and the second socket 1108 in the extended position. The second socket 1108 has a second width 1300 that is smaller than the first width 1200. Figure 14 shows the first socket 1106 and the second socket 1108 in their retracted positions and the third socket 1110 in the extended position. The third socket 1110 has a third width 1400 that is smaller than both the first width 1200 and the second width 1300.

[0123] The installation control module 1000 controls which tools are extended to support the dynamic tool head 436's interaction with various sizes of fasteners or other items. For example, while installing the component 110 on the apparatus 114, the installation procedure may include adjusting various nuts or bolts of different sizes. The installation control module 1000 can control the dynamic tool head 436 to adjust which sockets are in the extended position. The installation control module 1000 can then control the dynamic tool head 436 to use the extended portions to loosen or tighten the nuts or bolts according to the installation instructions.

[0124] 15 , an implementation of a robot 116 for verifying the condition of a device 114 is shown. In some cases, the robot 116 verifies the condition of the device 114 before attaching a component 110 to the device 114.

[0125] For example, the robot 116 detects the condition of the equipment 114 (e.g., assesses the equipment 114) by acquiring data describing the equipment 114 via the sensors 400 (block 1902 of FIG. 19 ). The sensor output 1500 from the sensors 400 includes digital images of the equipment 114 acquired via the cameras 402. The condition validation module 440 receives the sensor output 1500 and processes the sensor output 1500 through one or more machine learning models, such as a machine learning model 1502. In one or more implementations, the machine learning model 1502 is or includes a deep neural network or a large-scale language model (e.g., in an ensemble of models). The machine learning model 1502 has been trained with data describing manufacturing conditions of different equipment. In at least one implementation, the machine learning model 1502 has been trained with image data describing various equipment, e.g., vehicles. The state validation module 440 then uses the machine learning model 1502 to identify the make and model of the device 114, such as in situations where the device 114 is a vehicle.

[0126] The condition of the device 114 verified by the condition verification module 440 may also, in some examples, include the wear and / or modification status of the device 114. As one example, the condition verification module 440, via the machine learning model 1502, determines whether the device 114 was modified at some point after its manufacture based on the sensor output 1500. As examples, modification of the device 114 may include the installation of an aftermarket component on the device 114, modification of a component of the device 114, removal of a component from the device 114, etc.

[0127] The state verification module 440 outputs a device verification result 1504 to, for example, the service provider system 102. The service provider system 102 performs various actions based on the contents of the device verification result 1504. In a scenario in which the device verification result 1504 indicates that the device 114 has not been modified relative to its manufacturing state, the service provider system 102 communicates with the robot 116 to instruct the robot 116 to proceed with installing the component 110 on the device 114. In a different scenario in which the device verification result 1504 indicates that the device 114 has been modified since manufacturing, the service provider system 102 communicates with the robot 116 to provide updated instructions to the robot 116. The updated instructions can include, for example, an updated installation procedure to be performed by the robot 116, where the updated installation procedure takes into account the modifications made to the device 114. In at least one implementation, the robot 116 is configured to modify the installation instructions on the fly via the installation protocol module 446 using another learning model, as described below with reference to FIG. 16 . Alternatively, in a scenario where the device validation results 1504 indicate that the device 114 has been modified after manufacture or its compatibility cannot otherwise be verified, the service provider system 102 may communicate an instruction to the robot 116 to cancel the installation of the component 110 on the device 114.

[0128] FIG. 16 illustrates an exemplary implementation of a robot 116 that performs the installation of a component 110 on a device 114. In this example, an installation protocol module 446 of the robot 116 receives device validation results 1504 and component validation results 508. Based on the contents of these results, the robot 116 communicates with a database 106 to retrieve various installation protocols (block 1904 of FIG. 19 ). In at least one example, the database 106 includes one or more installation protocol libraries, such as a protocol library 1600, and one or more application programming interfaces (APIs), such as an application programming interface 1602. The installation protocol module 446 processes the device validation results 1504 and the component validation results 508 using a machine learning model 1606 trained with data describing multiple installation protocols. In at least one implementation, the machine learning model is a neural network, e.g., a deep neural network.

[0129] In at least one implementation, the output of the machine learning model 1606 indicates one or more protocols and / or APIs to be retrieved from the database 106. The attachment protocol module 446 retrieves the one or more protocols and / or APIs and provides the retrieved protocols and / or APIs to the machine learning model 1606 (block 1906 of FIG. 19 ). The machine learning model 1606 then electronically communicates attachment instructions 1604 to the attachment control module 1000 based on the retrieved information. The attachment control module 1000 controls the dynamic tool head 436 and other components of the robot 116 in accordance with the attachment instructions 1604 to attach the component 110 to the apparatus 114 (block 1908 of FIG. 19 ).

[0130] In a scenario where the device validation results 1504 indicate that the detected state of the device 114 matches the manufactured state of the device 114, the attachment protocol module 446 retrieves a first set of protocols and / or one or more APIs, e.g., application programming interface 1602, from the protocol library 1600. The first set of protocols and / or APIs are used by the robot 116 to attach the component 110 to the device 114 while the device 114 is in an unmodified state after manufacturing. A post-manufacturing modification refers to the attachment of the component or other modification to the device 114 that may interfere with the attachment of the component 110.

[0131] However, in a scenario where the device validation results 1504 indicate that the device 114 has been modified after manufacture, the attachment protocol module 446 retrieves a second set of protocols and / or APIs. The second set of protocols or APIs includes differences in the attachment procedure based on the modifications made to the device 114. For example, modifying the device 114 with an aftermarket device may change access to other portions of the device 114, such as clearances and other attributes within the device 114. The second set of protocols or APIs provides instructions to the robot 116 for navigating around (and / or removing) the aftermarket device attached to the device 114 in order to attach the component 110 to the device 114.

[0132] The attachment protocol module 446 further receives signals from the sensors 400 of the robot 116 and adjusts the attachment instructions 1604 based on the received signals. The signals may include electronic signals, such as image data from the camera 402 and audio data from the microphone 404. The signals may further include, for example, voltage, current, and / or resistance measurements from the multimeter 408, weight measurements from the scale 412, and / or optical measurements from the spectrometer 416, among others.

[0133] In one exemplary scenario, the installation protocol module 446 provides installation instructions 1604 to the installation control module 1000. The installation control module 1000 then controls the dynamic tool head 436 according to the installation instructions 1604. The installation instructions 1604 include instructions for performing an operation to remove a bolt from the apparatus 114. According to information included in the protocol provided to the installation protocol module 446, the bolt has a particular head diameter, for example, 10 millimeters. The installation protocol module 446 identifies the bolt to be removed via the machine learning model 1606, which receives image data from the camera 402 of the sensor 400, and the installation protocol module 446 detects the shape of the bolt based on the image data (block 1910 of FIG. 19 ).

[0134] However, upon detecting the shape of the bolt, the installation protocol module 446 determines that the size of the bolt's head is larger than the diameter described by the protocol. As an example, the detected diameter is 20 millimeters instead of 10 millimeters. In response to this determination, the installation protocol module 446 adjusts the operation of the dynamic tool head 436 based on the detected shape (e.g., diameter) of the bolt (block 1912 of FIG. 19 ). The installation protocol module 446 outputs updated installation instructions that control the dynamic tool head 436 to utilize a socket appropriately sized for a 20 millimeter head (e.g., the second socket 1108 shown by FIG. 13 ) instead of a socket sized for a 10 millimeter head (e.g., the third socket 1110 shown by FIG. 14 ).

[0135] The above-described scenario is one example of on-the-fly modification of installation instructions performed by the robot 116. However, the robot 116 is not limited to adjusting instructions based on bolt size or bolt shape. In other examples, the installation instructions are adjusted in response to detecting other parameters. Such adjustments to the installation instructions include, for example, adjusting the torque applied to the device 114 by the dynamic tool head 436 based on the detected weight or density of a portion of the device 114, as measured by the sensor 400. The robot 116 may, in alternative examples, adjust the installation instructions based on detecting various conditions.

[0136] In one or more scenarios, examples of which are described above, the robot 116 uses the installation tool framework 434 to remove one or more components from the apparatus 114 (or at least partially disassemble them) before installing the component 110, e.g., to replace the one or more components with the component 110. In some implementations, the robot 116 controls the dynamic tool head 436 to remove the one or more components according to the aforementioned protocols and / or APIs. In at least one implementation, the installation protocol module 446 receives signals from the sensors 400 of the robot 116 and determines the location and / or placement of one or more components to be removed from the apparatus 114 before installing the component 110. As a result, the installation protocol module 446 updates the installation instructions to control the dynamic tool head 436 and / or other devices of the installation tool framework 434 to remove the one or more components and install the component 110.

[0137] In some implementations, the robot 116 is selected from among multiple robots forming the autonomous technician 120 based on specific characteristics of the robot 116 that improve the ease of attaching the component 110 to the device 114. In one scenario, the autonomous technician 120 includes several robots that include a similar configuration to the robot 116, but each robot has a different overall profile or form factor. For example, a first robot has a lower overall height than the other robots, and a second robot has a smaller diameter than the other robots. Depending on the attributes of the component 110 to be attached to the device 114 and / or the attributes of the device 114, the first robot or the second robot is selected for deploying and attaching the component 110. If the component 110 is to be attached to the underside of the device 114, for example, a first robot may be deployed to increase the ease with which the robot can fit underneath the device 114 to perform the attachment operation. However, if the component 110 is to be mounted with small clearance in the interior space of the device 114, a second robot may be deployed to increase the ease with which the robot fits inside the device 114.

[0138] FIG. 17 illustrates a procedure in an exemplary implementation for verifying components of a device via an autonomous technician. The component is evaluated at the seller's location via the robot using one or more sensors (block 1702). In accordance with principles described herein, evaluating the component includes scanning (e.g., measuring, imaging, etc.) the component via one or more sensors of the robot. By way of example, one or more of the robots 116 of the autonomous technician 120 evaluate the component 110 at the seller's location, e.g., seller location 708.

[0139] An identifier for the component is determined based on the output of one or more sensors during the evaluation using a component-recognition machine learning model of the robot (block 1704). According to principles described herein, determining the identifier for the component using the component-recognition machine learning model includes detecting the identifier based on similarity between the identifier and a plurality of known identifiers. The similarity is determined via a machine learning model, where the machine learning model has been trained with data describing the plurality of known identifiers. As an example, one or more of the robots 116 of the autonomous technician 120 use the machine learning model 506 to determine the identifier 510 for the component 110 based on the output from one or more of the sensors 400.

[0140] A match between the identifier and the device is determined (block 1706). In accordance with principles described herein, determining a match between the identifier and the device includes comparing the identifier to known reference identifiers associated with the device in one or more compatibility libraries and / or databases. By way of example, one or more robots 116 of the autonomous technician 120 determine a match between the identifier 510 and the device 114 by comparing the identifier 510 to known identifiers contained in the UPC database 500, the MPN database 502, and / or the compatibility library 504 via the machine learning model 506.

[0141] The component validation results are output (block 1708). In accordance with the principles described herein, outputting the component validation results includes electronically communicating the component validation results to the service provider system. By way of example, the one or more robots 116 of the autonomous technician 120 output the component validation results 508 and communicate the component validation results 508 to the service provider system 102, where the component validation results 508 indicate whether the component 110 is compatible for installation on the device 114.

[0142] FIG. 18 illustrates a procedure in an exemplary implementation for transporting equipment components from a seller's location to a buyer's location via an autonomous technician. Transaction data related to the component is received, the transaction data including purchaser location data (block 1802). In accordance with principles described herein, receiving the transaction data related to the component includes obtaining the transaction data by one or more robots of the autonomous technician from the service provider system. By way of example, one or more robots 116 of the autonomous technician 120 receive the transaction data 306 through electronic communication with the service provider system 102.

[0143] A route to the buyer's location is generated via a location and routing module based on the buyer location data (block 1804). In accordance with the principles described herein, generating a route to the buyer's location based on the buyer location data includes generating a route from the seller's location to the buyer's location. As an example, one or more robots 116 of the autonomous technician 120 generate a determined route 604 from the seller's location 708 to the buyer's location 710 based on the buyer location data 600 included in the transaction data 306.

[0144] Feedback is received from the one or more sensors and commands are issued to the locomotion framework based on the received feedback (block 1806). In accordance with the principles described herein, receiving feedback from the one or more sensors and issuing commands to the locomotion framework based on the received feedback includes detecting an environment for one or more robots of the autonomous engineer and issuing commands to the locomotion framework to navigate the detected environment. Detecting the environment includes, but is not limited to, detecting terrain around one or more robots, detecting weather conditions around one or more robots, and detecting obstacles and / or passages around one or more robots. As an example, one or more robots 116 of the autonomous engineer 120 receive feedback from one or more of the sensors 400 and issue commands to the locomotion framework 426 through the locomotion controller 450 based on the received feedback.

[0145] The component is delivered to the buyer's location along the route (block 1808). In accordance with the principles described herein, delivering the component to the buyer's location along the route includes loading the component via one or more robots of the autonomous technician and delivering the component along the route by traveling the route via the one or more robots. As an example, one or more robots 116 of the autonomous technician 120 retrieve the component 110 at the seller's location 708 and travel along the determined route 604 to deliver the component 110 from the seller's location 708 to the buyer's location 710.

[0146] FIG. 19 illustrates a procedure in an exemplary implementation for installing device components via an autonomous technician. The condition of the equipment is assessed at the purchaser's location via a robot using one or more sensors (block 1902). In accordance with principles described herein, assessing the condition of the equipment includes determining the wear and / or repair status of the equipment based on the output of the one or more sensors. By way of example, one or more robots 116 of the autonomous technician 120 assess the condition of the equipment 114 by scanning the equipment 114 via one or more of the sensors 400. Scanning the equipment 114 includes generating sensor output 1500 including data (e.g., image data) describing the equipment 114, for example, using one or more of the camera 402, microscope 410, and spectrometer 416. The sensor output 1500 is processed by a machine learning model 1502 to assess the condition of the equipment 114 and, for example, to generate an equipment validation result 1504.

[0147] An installation protocol and / or API is determined based on the state of the equipment and the state of the components (block 1904). According to principles described herein, determining the installation protocol and / or API based on the state of the equipment and the state of the components includes processing data describing the state of the equipment and data describing the state of the components through a machine learning model and determining the installation protocol and / or API according to the output of the machine learning model. As an example, one or more robots 116 of the autonomous technician 120 process the equipment validation results 1504 describing the state of the equipment 114 and the component validation results 508 describing the state of the components 110 through the machine learning model 1606. The machine learning model 1606 determines the installation protocol and / or API to be obtained by the one or more robots 116 based on the equipment validation results 1504 and the component validation results 508.

[0148] The installation protocol and / or API is provided to the installation procedure machine learning model (block 1906). In accordance with the principles described herein, the determined installation protocol and / or API is obtained from one or more databases. By way of example, one or more robots 116 of the autonomous technician 120 obtain the determined installation protocol from a protocol library 1600 stored in the database 106 and / or obtain an API, such as the application programming interface 1602, from the database 106. The obtained installation protocol and / or API is provided to the machine learning model 1606.

[0149] The component is attached to the device via the robot using the installation procedure machine learning model (block 1908). In accordance with the principles described herein, attaching the component to the device via the robot includes performing actions via the robot according to the installation instructions output by the installation procedure machine learning model. By way of example, one or more of the robots 116 of the autonomous technician 120 are controlled to perform the actions included in the installation instructions 1604 output by the machine learning model 1606. The installation instructions 1604 are executed by the one or more robots, for example, through commands issued by the installation control module 1000, to control the operation of the installation tool framework 434 and other components of the one or more robots to attach the component 110 to the device 114.

[0150] During installation, the shape of the fastener to be rotated is detected (block 1910). Detecting the shape of the fastener to be rotated according to the principles described herein is one operation that may be performed during installation of a component on an apparatus. As an example, one or more robots 116 of the autonomous technician 120 detect the shape of a fastener, such as a fastener included in the apparatus 114, based on the output of one or more of the sensors 400. The shape of the fastener is determined by a machine learning model, such as the machine learning model 1502, and data describing the determined shape is communicated to the machine learning model 1606. Based on the determined shape, the machine learning model 1606 updates the installation instructions 1604 (e.g., if the determined shape differs from the expected shape described by one or more of the obtained installation protocols and / or APIs) or maintains the installation instructions 1604 (e.g., if the determined shape matches the expected shape).

[0151] The dynamic tool head is adjusted based on the detected shape of the fastener (block 1912). Adjusting the dynamic tool head based on the detected shape of the fastener, according to principles described herein, may include extending (stretching) one or more tools included in the dynamic tool head to engage the tool with the fastener, e.g., for rotating the fastener. As an example, the dynamic tool head 436 of one of the robots 116 of the autonomous engineer 120 includes multiple sockets 1004, and the dynamic tool head 436 is adjusted by the robot 116 such that a first socket 1106 is in an extended position while other sockets included in the dynamic tool head 436 are in a retracted position. With the first socket 1106 in the extended position, the dynamic tool head 436 engages the first socket 1106 with the fastener for rotating the fastener (e.g., for removing or tightening the fastener from or to the device 114 or component 110).

[0152] FIG. 20 illustrates a procedure 2000 in an exemplary implementation of an autonomous technician system for component handling and installation. The component is validated at the seller's location for equipment located at the buyer's location (block 2002). In accordance with the principles described herein, validating the component includes verifying compatibility of the component with the equipment. By way of example, one or more of the robots 116 of the autonomous technician 120 validate the component 110 at the buyer's location, e.g., buyer location 710. In accordance with the described techniques, the one or more robots 116 verify compatibility of the component 110 with the equipment 114.

[0153] The component is delivered to the buyer's location (block 2004). By way of example, one or more of the robots 116 of the autonomous technician 120 deliver the component 110 to the buyer's location 710.

[0154] The component is attached to the device (block 2006). By way of example, one or more of the robots 116 of the autonomous technician 120 attach the component 110 to the device 114.

[0155] Exemplary Systems and Devices 21 , an example system 2100 is shown including an example computing device that represents one or more computing systems and / or devices that can be used to implement various techniques described herein. This is illustrated by the inclusion of a service provider system 102 that implements a robot 116. The computing device 2120 may include, for example, a server of the service provider system 102, a device associated with a client (e.g., a client device), an on-chip system, and / or any other suitable computing device or computing system.

[0156] The exemplary computing device 2120 as shown includes a processing system 2102, one or more computer-readable media 2106, and one or more input / output interfaces 2110 (I / O interfaces), communicatively coupled to each other. Although not shown, the computing device 2120 further includes a system bus or other data and command transfer system that couples the various components together. For example, the system bus may include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and / or a processor or local bus utilizing any of a variety of bus architectures. Various other examples, such as control and data lines, are also contemplated.

[0157] The processing system 2102 represents functionality that performs one or more operations using hardware. Accordingly, the processing system 2102 is shown as including hardware elements 2104 configured as processors, functional blocks, etc. This includes exemplary implementations in hardware as system-specific integrated circuits formed using one or more semiconductors or other logic devices. The hardware elements 2104 are not limited by the material from which they are formed or the processing mechanisms employed therein. For example, a processor may be comprised of semiconductor(s) and / or transistors (e.g., electronic integrated circuits (ICs)). In such a context, processor-executable instructions are, for example, electronically executable instructions.

[0158] Computer-readable medium 2106 is shown as including memory / storage 2108. Memory / storage 2108 represents memory / storage capacity associated with one or more computer-readable media. In one example, memory / storage 2108 includes volatile media (such as random access memory (RAM)) and / or non-volatile media (such as read-only memory (ROM), flash memory, optical disks, magnetic disks, etc.). In another example, memory / storage 2108 includes fixed media (e.g., RAM, ROM, fixed hard drives, etc.) and removable media (e.g., flash memory, removable hard drives, optical disks, etc.). Computer-readable medium 2106 may be configured in a variety of other ways, as further described below.

[0159] The input / output interface 2110 represents functionality that allows user input to enter commands and information into the computing device 2120 and / or allows information to be presented to other components or devices using various input / output devices. Examples of input devices include keyboards, cursor control devices (e.g., mice), microphones, scanners, touch capabilities (e.g., capacitive or other sensors configured to detect physical touch), cameras (e.g., employing visible or invisible wavelengths such as infrared frequencies to recognize movements as gestures without touch), etc. Examples of output devices include display devices (e.g., monitors or projectors), speakers, printers, network cards, haptic response devices, etc. Accordingly, the computing device 2120 can be configured in various ways to support user interaction, as described further below.

[0160] Various technologies are described herein in the general context of software, hardware elements, or program modules. Generally, such modules include routines, programs, objects, elements, components, data structures, etc. that perform particular tasks or implement particular abstract data types. As used herein, the terms "module," "function," and "component" generally refer to software, firmware, hardware, or combinations thereof. A feature of the technology described herein is platform-independent, meaning that the technology can be implemented on a variety of commercial computing platforms having a variety of processors.

[0161] An implementation of the described modules and techniques may be stored on or transmitted across some form of computer-readable media. For example, computer-readable media includes various media accessible to the service provider system 102. By way of example and not limitation, computer-readable media includes "computer-readable storage media" and "computer-readable signal media."

[0162] A "computer-readable storage medium" refers to a medium and / or device that enables persistent and / or non-transitory storage of information, as opposed to merely a signal transmission, carrier wave, or signal itself. Thus, a computer-readable storage medium refers to a carrier medium that is not a signal. One or more computer-readable storage media include hardware, such as volatile and non-volatile, removable and non-removable media and / or storage devices, implemented in a method or technology suitable for storing information, such as computer-readable instructions, data structures, program modules, logic elements / circuits, or other data. Examples of computer-readable storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage, hard disk, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage device, or other storage device, tangible medium, or article of manufacture suitable for storing the desired information and accessible to a computer.

[0163] A "computer-readable signal medium" refers to a signal-bearing medium configured to transmit instructions to the hardware of the computing device 2120, such as over a network. Signal media typically embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, data signal, or other transport mechanism. Signal media also includes any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media.

[0164] As mentioned above, the hardware elements 2104 and the computer-readable medium 2106 represent modules, programmable device logic, and / or fixed device logic implemented in the form of hardware that can be employed in some implementations to implement at least some aspects of the techniques described herein, such as to execute one or more instructions. Hardware includes components of integrated circuits or on-chip systems, system specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), and other implementations in silicon or other hardware. In this context, hardware operates both as a computing device that executes program tasks defined by the instructions and / or logic embodied by the hardware, as well as hardware utilized to store instructions for execution, such as the computer-readable storage medium mentioned above.

[0165] Combinations of the foregoing may also be employed to implement the various techniques described herein. Thus, software, hardware, or executable modules may be implemented as one or more instructions and / or logic embodied on some form of computer-readable storage medium and / or by one or more of the hardware elements 2104. For example, the computing device 2120 is configured to implement specific instructions and / or functions corresponding to the software and / or hardware modules. Thus, implementation of modules executable by the computing device 2120 as software is achieved at least partially in hardware, for example, through use of a computer-readable storage medium and / or the hardware elements 2104 of the processing system 2102. The instructions and / or functions may be executable / operable by one or more articles of manufacture (e.g., one or more computing devices, such as the computing device 2120, and / or a processing system, such as the processing system 2102) to implement the techniques, modules, and examples described herein.

[0166] The techniques described herein may be supported by various configurations of computing devices 2120 and are not limited to the specific examples of the techniques described herein. This functionality may also be implemented in whole or in part through the use of a distributed system, such as via a "cloud" 2112 as described below.

[0167] The cloud 2112 includes and / or represents a platform 122 for resources 2114. The platform 122 abstracts the underlying functionality of the hardware resources (e.g., servers) and software resources of the cloud 2112. For example, the resources 2114 include systems and / or data utilized during computer processing execution on a server remote from the computing device 2120. In some examples, the resources 2114 also include services provided via the Internet and / or through a subscriber network, such as a cellular or Wi-Fi network.

[0168] Platform 122 serves to abstract resources 2114 and connect computing device 2120 with other computing devices. In some examples, platform 122 also serves to abstract resource scaling to provide a level of scale corresponding to resource demands implemented via platform 122. Thus, in interconnected device implementations, implementations of functionality described herein can be distributed throughout system 2100. For example, functionality can be implemented partially on computing device 2120 as well as via platform 122 that abstracts functionality of cloud 2112.

[0169] The autonomous technician management module 2118 included in the service provider system 102 is utilized by the service provider system 102 to control communications between the service provider system 102 and the autonomous technician 120, for example, to support operations such as deployment of the robot 116. For example, the service provider system 102 receives the robotic assistance request 308 described above with reference to FIG. 3 via the autonomous technician management module 2118. In response to receiving the robotic assistance request 308, the service provider system 102 utilizes the autonomous technician management module 2118 to communicate with and deploy one or more robots of the autonomous technician 120 to perform operations including component condition verification, component transfer, and component installation, as described herein. Additionally, during times when a robot, such as the robot 116, communicates with the database 106 to obtain installation protocols or other data, as described herein, such communications are, at least in some implementations, routed through the autonomous technician management module 2118 of the service provider system 102. The service provider system 102 then provides the requested data to the robot from the database 106 by electronically communicating with the robot via the autonomous technician management module 2118. The autonomous technician management module 2118, in some implementations, provides wired and / or wireless communication capabilities between the service provider system 102 and the robot of the autonomous technician 120 to issue commands to the robot and provide data and other information to the robot, as described herein.

[0170] [summary] Although the systems and techniques have been described in language specific to structural features and / or method operations, it should be understood that the systems and techniques defined in the appended claims are not necessarily limited to the particular features or operations described. Rather, the particular features and operations are disclosed as exemplary forms of implementing the claimed subject matter. Furthermore, a variety of different examples have been described, and it should be understood that each described example can be implemented independently or in conjunction with one or more other described examples.

Claims

1. 1. A system of one or more robots implementing an autonomous technician, comprising: the autonomous technician configured to perform an action, the action comprising: validating a component at a first location for a device located at a second location, the validating component including verifying compatibility of the component with the device; transporting the component to the second location; Attaching the component to the device. Including, the system.

2. The autonomous technician includes one or more sensors, and verifying compatibility of the component with the device comprises: evaluating the component at the first location using the one or more sensors; determining an identifier of the component based on an output of the one or more sensors during the evaluating; Matching the identifier with the device. The system of claim 1 , comprising:

3. The autonomous technician includes a dynamic tool head, and attaching the component to the device by the autonomous technician includes: detecting the shape of the fastener to be rotated during said installing; adjusting the dynamic tool head based on the detected shape of the fastener. The system of claim 1 , comprising:

4. The autonomous engineer: one or more sensors; A mobility framework; an inference module configured to receive feedback from the one or more sensors and issue commands to the movement framework based on the received feedback; The system of claim 1 , comprising:

5. 3. The system of claim 2, wherein the autonomous technician includes a component-aware machine learning model stored in a memory, the component-aware machine learning model being trained with data including a plurality of component identifiers, and wherein determining the identifier of the component is performed using the component-aware machine learning model.

6. 10. The system of claim 1, wherein the autonomous technician includes an installation procedure machine learning model stored in a memory, the installation procedure machine learning model being trained with data including a plurality of installation instructions, and installing the component on the device is performed using the installation procedure machine learning model.

7. 2. The system of claim 1, wherein the autonomous technician includes a component recognition machine learning model and an installation procedure machine learning model, wherein the component recognition machine learning model is trained with data including a plurality of component identifiers, and the installation procedure machine learning model is trained with data including a plurality of installation instructions, and an output of the component recognition machine learning model is an input of the installation procedure machine learning model.

8. The autonomous technician includes a location and routing module, and transporting the component to the second location comprises: receiving transaction data associated with the component, the transaction data including location data describing the second location; generating a route to the second location via the location and routing module based on the location data; conveying the component along the route to the second location; The system of claim 1 , comprising:

9. 10. The system of claim 1, wherein the autonomous technician includes a first robot configured to verify the component at the first location for the device located at the second location, and a second robot configured to install the component on the device.

10. 10. The system of claim 1, wherein the autonomous technician includes a network communication module configured to retrieve component installation data via wired or wireless communication in response to determining an identifier for the component using one or more sensors.

11. The system of claim 10 , wherein the network communication module retrieves the component installation data from a service provider system that includes a list of the components.

12. The system of claim 10 , wherein the first location is associated with a seller of the component and the second location is associated with a purchaser of the component.

13. 1. A method performed by one or more robots of an autonomous engineer, comprising: the autonomous technician verifying components at a first location for a device located at a second location; the autonomous technician transporting the component to the second location; the autonomous technician installing the component on the device; A method comprising:

14. Validating the component at the first location for the device located at the second location includes: the autonomous technician evaluating the component using one or more sensors of the autonomous technician; the autonomous technician, during the evaluating, determining an identifier of the component based on an output of the one or more sensors; the autonomous technician matching the identifier with the device; 14. The method of claim 13, comprising:

15. Conveying the component to the second location comprises: receiving, by the autonomous technician, location data describing the second location; the autonomous technician generating a route to the second location based on the location data; the autonomous technician transporting the component along the route to the second location.

14. The method of claim 13, comprising:

16. 14. The method of claim 13, wherein for the device located at the second location, validating the component at the first location is performed by the autonomous technician using a first machine learning model of the autonomous technician, and installing the component on the device is performed by the autonomous technician using a second machine learning model of the autonomous technician.

17. 17. The method of claim 16, wherein the first machine learning model is trained with data describing a plurality of known component identifiers and the second machine learning model is trained with data describing a plurality of installation protocols.

18. The method further includes the autonomous technician verifying a state of the device located at the second location, wherein verifying a state of the device located at the second location includes: the autonomous technician acquiring image data describing the device using one or more sensors of the autonomous technician; the autonomous technician detecting the state of the device based on the image data; the autonomous technician using a machine learning model to determine whether the detected state of the device matches the described state of the device. The method of claim 13, wherein the method is carried out by

19. One or more computer-readable storage media storing executable instructions that, in response to execution by an autonomous technician implemented by one or more robots, cause the autonomous technician to perform an action, the action comprising: validating a component at a first location for a device located at a second location, the validating component including verifying compatibility of the component with the device; transporting the component to the second location; Attaching the component to the device. [0023] 1. One or more computer-readable storage media, including:

20. The operation is inputting data describing the component into a first machine learning model for validating the component; generating a route from the first location to the second location along which the autonomous technician should travel to transport the component to the second location; inputting data describing one or more attachment protocols into a second machine learning model for attaching the component to the device; validating the state of the device deployed at the second location by inputting data describing the device into a third machine learning model; 20. The one or more computer-readable storage media of claim 19, further comprising:

Citation Information

Patent Citations

  • Method for automatically supplying part and equipment therefor

    JP1994091455A

  • Robot control plan generation

    JP2023552756A

  • Automated Removal and Replacement of Vehicle Wheels and Tires

    US20210114408A1

  • Methods, systems and devices for automated assembly of building structures

    US20240017408A1

  • Robot transaction system and transaction method

    WO2018138952A1