Patent ID: 12209900

Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.

The apparatus and method components have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.

DETAILED DESCRIPTION

Examples disclosed herein are directed to a transporter comprising: a chassis with a locomotive assembly; a shelf supported on the chassis to receives items; a weight sensing system associated with the shelf, the weight sensing system configured to measure an item weight for an item received on the shelf; a processor interconnected with the weight sensing system, the processor configured to: obtain, from the weight sensing system, the item weight; identify an item identifier for the item based on the item weight; and determine, based on the item identifier, whether the item complies with an expected item to be received at the transporter.

Additional examples disclosed herein are directed to a method comprising: obtaining, from a weight sensing system of a transporter, an item weight for an item received on a shelf of the transporter; identifying an item identifier for the item based on the item weight; and determining, based on the item identifier, whether the item complies with an expected item to be received at the transporter.

FIG.1depicts a system100deployed in an interior of a facility, such as a warehouse, a manufacturing facility, or the like. The facility includes a plurality of support structures104carrying items108. In the illustrated example, the support structures104include shelf modules, e.g., arranged in sets forming aisles112.FIG.1, specifically, illustrates two aisles112each formed by eight shelf modules. The facility can have a wide variety of layouts other than the example layout shown inFIG.1.

The support structures104can include shelf modules, pegboards, bins, and the like, to support the items108thereon. As shown inFIG.1, support structures104in the form of shelf modules can include support surfaces116terminating in shelf edges120, which face into the corresponding aisle112. A shelf edge120, as will be apparent to those of skill in the art, is a surface bounded by adjacent surfaces having different angles of inclination. In the example illustrated inFIG.1, each shelf edge120is at an angle of about ninety degrees relative to the corresponding support surface116above that shelf edge120and the underside (not shown) of the support surface116. In other examples, the angles between a shelf edge120and adjacent surfaces is more or less than ninety degrees.

The support surfaces116are accessible from the aisles112into which the shelf edges120face. In some examples, each support structure104has a back wall124rendering the support surfaces116inaccessible from the opposite side of the module. In other examples, however, the support structures104can be open from both sides (e.g., the back wall124can be omitted).

The support surfaces116carry the items108, which can include any of a wide variety of objects, such as products, packages, and the like. The items108may be received at the facility and placed on the support structures104for storage. Later, the items108may be retrieved from the support structures104, e.g., for consumption in a manufacturing process, for shipment from the facility, or the like.

Retrieval of the items108from the support structures104can be accomplished by a worker128, also referred to as a user128and a transporter130. Only one user128and one transporter130are shown inFIG.1, but it is contemplated that more users128and transporters130may be deployed in the facility and may be dependent on the size and/or layout of the facility, the nature of the items108, and the like. The transporter130, which may also be referred to as a collaborative robot or “cobot”.

For example, referring toFIG.2, the transporter130is illustrated in greater detail. The transporter130includes a chassis200with a locomotive assembly204, such as wheels, tracks, or the like driven by an electric motor. The chassis200supports at least one shelf208; in the present example, three shelves208-1,208-2, and208-3(referred to generically as a shelf208and collectively as shelves208; this nomenclature is also used elsewhere herein) are illustrated. Each shelf208may be divided into sections allocated for different sets of items to be transported together (e.g., as a single delivery order or the like). Accordingly, each shelf208may support bins212defining the different sections, with each bin212to collect items for a given order. In other examples, rather than using bins212, the shelf208may simply be divided into sections, e.g., quadrants, and may have visual indicators such as lines or the like to define each section.

Each shelf208has a respective weight sensing system216-1,216-2, and216-3associated with the shelf208. The weight sensing systems216are generally configured to measure an item weight for each item received on the corresponding shelf208. The weight sensing systems216may further be configured to determine an item location for each item received on the corresponding shelf208based on the distribution of the item weight on the weight sensing systems216. Thus, the weight sensing systems216include at least a mechanism to measure the item weight, as well as a mechanism to locate the item on the weight sensing systems216.

For example, each weight sensing system216may include four weight sensors220at each of the four corners of the corresponding shelf208. The weight sensors220may be any suitable sensors, such as stress gauges, capacitance sensors, piezo crystals, and the like. By including sensors at each of the four corners of the shelf208, the weight sensing system216may determine the item weight by summing the weight detected by each of the weight sensors220. Additionally, the weight sensing system216may determine the item location based on the distribution of weight detected by each of the weight sensors220. Specifically, the ratios of weights detected by the weight sensors220as separated by corresponding x- and y-coordinates may allow a determination of x- and y-coordinates of the center of mass of the item on the shelf208.

Returning toFIG.1, to transport an item108from a support structure104, e.g., to ship the item108from the facility to another facility, to a customer, or the like, a user128may be instructed to travel to the support structure104carrying the relevant item108. The user128may then retrieve the relevant item108from the support structure104. Once the item108is retrieved, the user128places the item108onto a transporter130, for subsequent transport to another portion of the facility, such as a shipping area. In particular, the user128may place the item108on a particular shelf208and into a particular bin212in accordance with the corresponding order of the item108.

As will be apparent, each transporter130can be configured to carry a plurality of items108simultaneously, such items108having been transferred to the transporter130from the support structures104by various different users128. In other words, users128and transporters130are not bound persistently. Instead, a user128and a transporter130may be associated with one another only for a given task (e.g., to transfer a particular item108from a support structure104to the transporter130), and each of the user128and the transporter130may subsequently be bound with other transporters130or users128for the completion of other tasks.

In particular, a user128in the facility can be equipped with a mobile computing device132, also referred to simply as a device132. The device132can be a tablet computer, a smart phone, a wearable computer (e.g., smart glasses), a barcode scanner, or the like. The device132can implement functionality to assist the user128in completing various tasks in the facility. An example of such tasks includes a pick task, in which the user128retrieves specific items108from support structures104, e.g., to fill an online order received from a customer of the facility. The pick task can also provide the user128with instructions, via the associated device132, identifying a particular transporter130and particular shelves208and/or bins212to which items108retrieved from the support structures104are to be deposited.

The functionality implemented by the device132in connection with a pick task can include receiving (e.g., from a server134or other central computing device) a list of item identifiers to be picked, and/or presenting directional guidance to the user128indicating locations of such items108in the facility. When a given item108is picked from a support structure104according to the guidance provided by the device132, the user128may scan a barcode associated with the picked item108. Scanning of the barcode can provide confirmation that the item108has been picked, and thereby enable the device132to track progress of the pick task. The device132may further communicate the progress of the pick task to the server134to track progress of the pick task. The device132may therefore include a controller, communication interface, input and output assemblies such as displays, indicator lights, or the like, enabling the devices132to receive instructions from the server134and send updates to the server134.

The server134can allocate a transporter130to a user128for a particular pick task, based for example on the location of the device132(which is employed as a proxy for the location of the user128) and the location of the transporter in a coordinate system140established in the facility. For example, the system100can include a location tracking subsystem enabling periodic retrieval of device132and transporter130locations by the server134.

The location tracking subsystem can include for, for example, wireless emitters142deployed throughout the facility, such as wireless network access points, beacons (e.g., Bluetooth beacons), radio frequency identification (RFID) readers, and the like. In other examples, the location tracking subsystem can include cameras or other sensors configured to detect the device132and/or the transporter130, e.g., from video streams captured by the cameras. The device132and the transporter130can be configured to determine their locations in the coordinate system140based on the signal strength measurements and/or other parameters determined from signals generated by the emitters142. The device132and the transporter130can then report the determined locations to the server134. In other examples, the emitters142can cooperate to determine and report the locations of the transporter130and/or the device132to the server134(e.g., in the case of emitters142that include RFID readers). In further examples, the device132and/or the transporter130can include motion sensors, such as inertial measurement units (IMUs), odometers (in the case of the transporter130) or the like to assist in determining and reporting locations.

FIG.1also illustrates certain internal components of the server134. The server134includes a special-purpose controller, such as a processor150, interconnected with a non-transitory computer-readable storage medium, such as a memory154. The memory154includes a combination of volatile memory (e.g., Random Access Memory or RAM) and non-volatile memory (e.g., read only memory or ROM, Electrically Erasable Programmable Read Only Memory or EEPROM, flash memory). The processor150and the memory154each comprise one or more integrated circuits.

The memory154stores computer-readable instructions for execution by the processor150to allow the server134to allocate tasks and provide instructions to the transporter130and the device132. Those skilled in the art will appreciate that the functionality implemented by the processor150via execution of the computer-readable instructions stored in the memory154may also be implemented by one or more specially designed hardware and firmware components, such as FPGAs, ASICs and the like in other embodiments.

The server134also includes a communications interface158interconnected with the processor150. The communications interface158includes any suitable hardware (e.g., transmitters, receivers, network interface controllers and the like) allowing the server134to communicate with other computing devices (e.g., the device132and the transporter130) via a suitable combination of local and/or wide-area networks. The specific components of the communications interface158are selected based on the type(s) of network(s) used by the server134.

FIG.1further illustrates certain internal components of the transporter130, including a processor160, a memory164, a communications interface168, and a navigator172.

The processor160is interconnected with a non-transitory computer-readable storage medium, such as the memory164. The memory164includes a combination of volatile memory (e.g. Random Access Memory or RAM) and non-volatile memory (e.g. read only memory or ROM, Electrically Erasable Programmable Read Only Memory or EEPROM, flash memory). The processor160and the memory164may each comprise one or more integrated circuits.

The memory164stores computer-readable instructions for execution by the processor160. In particular, the memory164stores an application176which, when executed by the processor160, configures the processor160to perform various functions discussed below in greater detail and related to the weight-based item detection of the transporter130. The application176may also be implemented as a suite of distinct applications.

Those skilled in the art will appreciate that the functionality implemented by the processor160may also be implemented by one or more specially designed hardware and firmware components, such as a field-programmable gate array (FPGAs), application-specific integrated circuits (ASICs) and the like in other embodiments. In an embodiment, the processor160may be, respectively, a special purpose processor which may be implemented via dedicated logic circuitry of an ASIC, an FPGA, or the like in order to enhance the processing speed of the operations discussed herein.

The memory164also stores a repository180storing rules and data for the weight-based item detection operation. For example, the repository180may store item weights, current items and/or item lists for each of the shelves208and/or bins212, an aggregate weight for the transporter130, and the like.

The transporter130also includes a communications interface168enabling the transporter130to exchange data with other computing devices such as the server134. The communications interface168is interconnected with the processor160and includes suitable hardware (e.g., transmitters, receivers, network interface controllers and the like) allowing the transporter130to communicate with other computing devices—such as the server134. The specific components of the communications interface168are selected based on the type of network or other links that the transporter130communicates over. The transporter130can be configured, for example, to communicate with the server134using the communications interface168to receive instructions and send item data to the server134. For example, the transporter130may receive, from the server134, a list of items to be received and transported by the transporter130. Additionally, the list of items may be sorted by bins212, such that each bin212has a corresponding list of items which are to be placed in the bin212.

The transporter130may further include one or more input and/or output devices (not shown). The input devices may include one or more buttons, keypads, touch-sensitive display screens or the like for receiving input from an operator. The output devices may further include one or more display screens, sound generators, vibrators, or the like for providing output or feedback to an operator.

The transporter130may further include the navigator172configured to enable autonomous or semi-autonomous navigation of the transporter130within the facility. Thus, the navigator172may include various sensors, cameras, controllers and the like to enable the transporter130to detect its environment, including obstacles, and the like, and to control the locomotive assembly204to navigate about the facility. Thus, the transporter130may also be assigned to a pick task, which may include receiving, from the server134or other central computing device, navigational instructions to move to a location at or near one or more of the items108on the item list for the transporter130. For example, the navigational instructions may instruct the transporter130to move to within a threshold distance from a particular item108to facilitate transferal of the item108from the support structure104to the transporter130by the user128. Accordingly, in some examples, the navigational instructions may be associated with a target item108or items108to be received by the transporter130.

Turning now toFIG.3, the functionality implemented by the transporter130will be discussed in greater detail.FIG.3illustrates a method300of weight-based item detection. The method300will be discussed in conjunction with its performance in the system100, and particularly by the transporter130, via execution of the application176. In particular, the method300will be described with reference to the components ofFIGS.1and2. In other examples, the method300may be performed by other suitable devices or systems, such as the server134.

The method300is initiated at block305, where the processor160obtains an item weight from one of the weight sensing systems216. In some examples, the processor160may specifically control the weight sensing systems216to activate based on the navigation and movement of the transporter130.

For example, in response to receiving navigational instructions, the transporter130may navigate to the specified location. Responsive to the transporter130arriving at its target destination, the processor160may activate the weight sensing systems216. For example, the processor160may determine that the transporter130has arrived at its target destination when its location matches the target destination, when the IMU or other sensors detect that the transporter130is stationary, combinations of the above, and the like. The processor160may then record a current weight detected by each of the weight sensing systems216. The current weight may subsequently be used as a reference against which to compare any change in weight in order to detect that an item was received on one of the shelves208. In some examples, the current weight may additionally be compared to a prior weight to verify that no items were lost in transit.

The processor160may then control each of the weight sensing systems216to monitor for any changes in weight. When one of the weight sensing systems216detects a change in weight, the processor160obtains a new weight detected by the weight sensing system216and computes the item weight as the difference between the new weight and the current weight.

At block310, the processor160identifies an item identifier for the item108based on the item weight obtained at block305. The processor160may determine the item identifier by comparing the item weight to a list of predefined item weights of items in the facility and identifying a correspondence between the item weight detected at block305and one of the predefined item weights on the list.

For example, referring toFIG.4, an example method400of identifying the item identifier at block310is depicted.

At block405, the processor160obtains a list of predefined item weights of items in the facility. The list may include associations of item identifiers to item weights. The item weights may include an average weight, a range of item weights for the particular item, or another suitable representation of the item weight. The list of predefined item weights may be stored in the repository180in the memory164, and hence the processor160may retrieve the list from the memory164. In other examples, such as for a large facility having a large repository of predefined item weights, the list of predefined item weights may be stored in the memory154of the server134, and hence the processor160may request the list of predefined item weights from the server134.

At block410, the processor160may identify a location of the transporter130, for example, by using data obtained from the navigator172and/or the location tracking subsystem. The processor160may then filter the list based on the location of the transporter130. Each item108on the list may also be associated with a location within the facility at which the item108is stored on a support structure104. Since the transporter130may be expected to be nearby to the location of an item deposited to the transporter130, the list may be filtered to items108stored on support structures104within a threshold distance of the transporter130. The threshold distance may be defined, for example, based on a walking distance of the user128from the storage location of the item108on the support structures104to the location of the transporter130. Hence, items in adjacent aisles may not be within the threshold distance of the transporter130.

Further, as will be appreciated, in some examples, rather than requesting the full list of predefined item weights from the server134at block405, the processor160may first identify the location of the transporter130and request a list from the server134which is filtered based on the location of the transporter130.

At block415, the processor160identifies correspondences between the item weight obtained at block305and the list of predefined item weights. For example, the processor160may look for a direct match between the item weight and one of the predefined item weights on the list. That is, if the item weight is within a threshold similarity (e.g., 5%, 1%, etc.) to one of the predefined item weights on the list, the processor160may determine that the measured item weight corresponds to that predefined item weight.

In other examples, rather than a direct match between the item weight and one of the predefined item weights on the list, the item weight may be an integer multiple of one of the predefined item weights on the list. For example, if five of the items108were transferred to the transporter130in accordance with the order, then the item weight of the five items108will be five times that of the predefined item weight for the item108stored in the list. Accordingly, if the item weight is within a threshold similarity of an integer multiple of one of the predefined item weights on the list, the processor160may determine that the measured item weight corresponds to that predefined item weight.

As will be appreciated, multiple items in the facility may have similar item weights, and hence the item weight may correspond to more than one predefined item weight on the list. Accordingly, the facility may be organized such that items within a threshold radius have sufficiently different item weights to be differentiated from one another (e.g., items within a threshold radius may have item weights which differ by at least 10% or 30%, etc.). The threshold radius may be determined based on the threshold distance used to filter the list of predefined item weights, such that the filtered list of predefined item weights contains item weights which can be easily differentiated from one another. That is, the organization of the facility to distribute items with different item weights may reduce the likeliness that the processor160identifies more than one item weight from the filtered list of predefined item weights which correspond to a measured item weight from a performance of block305.

At block420, the processor160selects an item identifier for the item108based on at least one of the correspondences identified at block415. If the processor160identifies exactly one predefined item weight which corresponds to the item weight obtained at block305, then the processor160selects the corresponding item identifier for the predefined item weight.

If the processor160identifies more than one correspondence at block415of the predefined item weights to the item weight obtained at block305, then the processor160may apply additional conditions to select one of the correspondences. For example, the processor160may select the predefined item weight which most closely corresponds to the measured item weight. The processor160may then select the corresponding item identifier for the selected predefined item weight. In other examples, rather than selecting a single item identifier, the processor160may record each of the item identifiers for the correspondences identified at block415and may carry them forwards to be verified against an expected item for the transporter130, as will be described in further detail below.

Returning toFIG.3, at block315the processor160may optionally determine the item location relative to the shelf208based on a distribution of the item weight on the weight sensing system216. In some examples, the processor160may proceed directly to block320.

In the presently illustrated example, the weight sensing system216includes the four weight sensors220. Each of the four weight sensors220is disposed at a corner of the respective shelf208. Accordingly, the ratio of the item weight detected by the two weight sensors220corresponding to a first edge to the item weight detected by the two weight sensors220corresponding to a second edge opposing the first edge will correspond to the ratio of the distance of the center of mass of the item108between the two edges.

For example, referring toFIG.5, a schematic diagram of the weight distribution of an item108is depicted. In particular, the item108having an item location500is on the shelf208. The shelf208has associated weight sensors220which are located at a back left (BL), a back right (BR), a front left (FL) and a front right (FR) corner of the shelf208. Also depicted is a coordinate system504for the shelf208. The BL, BR, FL, and FR weight sensors220detect, respectively weights of 2 g, 4 g, 5 g, and 9 g, and hence the weight sensing system216may determine that the item weight is 20 g (i.e., the sum of the weights detected by the four weight sensors220).

The item location500may be represented by x- and y-coordinates of the center of mass of the item108, as represented in the coordinate system504.

In order to determine the y-coordinate along the y-scale of the center of mass of the item108, the processor160computes the ratio of the weights detected by the back sensors to the total item weight, in accordance with equation (1):

y=mB⁢L+mB⁢RmF⁢L+mF⁢R+mB⁢L+mB⁢R(1)

Similarly, to determine the x-coordinate along the x-scale of the center of mass of the item108, the processor160computes the ratio of the weights detected by the right sensors to the total item weight, in accordance with equation (2):

x=mB⁢R+mF⁢RmB⁢L+mF⁢L+mB⁢R+mF⁢R(2)

Accordingly, in the illustrated example, the y-coordinate position of the center of mass of the item108is 0.3 of the way along the y-scale and the x-coordinate position of the center of mass of the item108is 0.65 of the way along the x-scale. Together, these positions define the item location500.

In examples where the transporter130includes bins212on each of the shelves208, identifying the item location500at block315may additionally include identifying one of the bins212in which the item108was received based on the item location. For example, in the present example the coverage areas508-1and508-2of two of the bins212are outlined on the shelf208. Since the item location500is located in the coverage area508-2of the right bin212, the right bin212may be identified as the bin212containing the item108.

In other examples, the weight sensing systems216may have other configurations, such as a combination of a capacitive mat and a simple scale, which may enable the weight sensing system216to determine the item location in other manners.

Returning toFIG.3, at block320, the processor160determines whether the item identifier identified at block310complies with an expected item to be received at the transporter130. The expected item may be based on data received from the server134, for example based on a recently scanned barcode, or based on the location of the transporter130. The expected item may also be based at least in part on the item location determined at block315.

For example, when the processor160determines that the item108has been deposited in a particular bin212, the processor160may retrieve, from the memory164and/or from the server134, a list of expected items for the identified bin212. The list of expected items for the identified bin212may correspond to items which are all to be transported or delivered as part of the same order. The processor160may then compare the item identifier from block310to the list of expected items and verify that the item is on the list of expected items. If the item identifier is on the list of expected items for the identified bin212, the processor160determines at block320that the item complies with the expected item to be received at the transporter130.

Further, comparing the item identifier to the list of expected items for the bin212may additionally include verifying that the item weight complies with an expected item weight to verify that the correct quantity of expected items has been received at the transporter130. For example, if the list of expected items specifies that three of a given item108are expected, the processor160may still identify the correct item identifier corresponding to the given item108. However, if only one of the given items108is received by the transporter130, the item weight (i.e., approximately the predefined item weight for the given item108) may not correspond to the expected weight (i.e., approximately three times the predefined item weight for the given item108.

Similarly, verifying that the item weight complies with an expected item weight may also be used to verify that the correct package size of the expected items has been received at the transporter130. For example, the pick task may specify that a paperclip is to be picked and deposited on the transporter130. However, the user128may be unsure if a single paperclip, a package of paperclips, or a box of packages of paperclips is to be transferred to the transporter130. Accordingly, the processor160may still identify the correct item identifier for the paperclip, and the item weight may be used to verify that the correct package size of paperclips was received on the transporter.

In another example, to determine whether the item complies with the expected item, the processor160may cross-reference the item identifier with a recently scanned item. In particular, the processor160may request and obtain, from the server134, a scanned item identifier of an item108recently scanned by a user128. For example, the server134may select the scanned item identifier which was scanned by the mobile device132paired with the transporter130for a pick task. That is, the server134may identify the mobile device132which was assigned to pick an item to transfer to the transporter130and retrieve the item identifier which was most recently scanned by the mobile device132.

In other examples, the server134may select the scanned item identifier, based on the location of the transporter130and the time of the request. That is, the server134may identify scanning events which occurred within a threshold distance of the location of the transporter130, and which were scanned within a threshold interval (e.g., 1 minute, 90 seconds, 2 minutes, etc.) of the transporter130detecting an item108being deposited thereon. If the item identifier matches the scanned item identifier, the processor160determines at block320that the item complies with the expected item to be received at the transporter130.

In yet another example, to determine whether the item complies with the expected item, the processor160may obtain a target item identifier. That is, based on the location of the transporter130, the processor160may identify one or more items108which are stored on support structures104within a threshold distance of the transporter130. These items108may be identified as target items which the transporter130expects to receive while at its specified location. Accordingly, if the item identifier matches the one of the target item identifiers, then the processor160determines at block320that the item complies with the expected item to be received at the transporter130.

As will be apparent, combinations of the above and additional manners of determining whether the item complies with the expected item are also possible and contemplated. For example, if the processor160has identified multiple item identifiers whose predefined item weights correspond with the item weight measured at block305, then the processor160may use the expected item to assist in the selection of the item identifier. That is, the processor160may assume that the correct item identifier of the multiple potential item identifiers is the one which allows for a positive determination of compliance with the expected item.

If the determination at block320is affirmative, that is that the item identifier complies with the expected item to be received at the transporter130, then the processor160proceeds to block325. At block325, the processor160may provide an update on the pick task to the server134. For example, the processor160may identify that a particular pick task has been successfully completed (i.e., that item108identified by the specified pick task has been successfully received at the transporter130). In some examples, the processor160may control an output device of the transporter130to provide an output indicative of the successful completion of the pick task. For example, the processor160may control a display to flash a green light and/or text indicating success, or a speaker to confirm the item108was received.

In some examples, in addition to confirming the item108was received, the processor160may additionally store and/or transmit the item weight obtained at block305to the server134to track actual detected item weights for the items108. The repository of predefined item weights may then be adjusted based on the actual detected item weights to more accurately reflect the item weights.

In some examples, the processor160may additionally store the item weight in the memory164and update a total or aggregate item weight for the items currently being held by the transporter130, and a total lifetime carrying weight for the transporter130. The navigator172may then use the aggregate item weight and the distribution of the item weight during navigation, for example to adjust acceleration, predicted run time, or the like. For example, if much of the item weight is distributed on the top shelf208-1, the navigator172may reduce the rates of acceleration and deceleration to better balance the top-heavy transporter130. The processor160may additionally use the total lifetime carrying weight for the transporter130to estimate servicing requirements. Other prescriptive actions which may be performed by the navigator172and the processor160will also be apparent.

If the determination at block320is negative, that is that the item identifier does not comply with the expected item to be received at the transporter130, then the processor160proceeds to block330. At block330, the processor160may control an output device of the transporter130to provide an error indication. For example, the processor160may control a display to flash a red light and/or text indicating that an error condition was detected, and/or a speaker to beep or otherwise issue a warning indicator. In other examples, the processor160may send a message to the mobile device132(via the communications interface168or the server134) to alert the user128that an incorrect item was received and/or that the item was placed in the incorrect bin or location on the transporter130.

In the foregoing specification, specific embodiments have been described. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present teachings. For example, the transporter is described in the present example as being an autonomous or semi-autonomous transporter. However, in other examples, a pushcart or other manually driven transporter may be equipped with the described weight sensing system, communications interface, and/or processor and may similarly determine whether the items received on the transporter comply with expected items and provide feedback to the user.

The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential features or elements of any or all the claims. The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued.

Moreover in this document, relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms “comprises,” “comprising,” “has”, “having,” “includes”, “including,” “contains”, “containing” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises, has, includes, contains a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by “comprises . . . a”, “has . . . a”, “includes . . . a”, “contains . . . a” does not, without more constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises, has, includes, contains the element. The terms “a” and “an” are defined as one or more unless explicitly stated otherwise herein. The terms “substantially”, “essentially”, “approximately”, “about” or any other version thereof, are defined as being close to as understood by one of ordinary skill in the art, and in one non-limiting embodiment the term is defined to be within 10%, in another embodiment within 5%, in another embodiment within 1% and in another embodiment within 0.5%. The term “coupled” as used herein is defined as connected, although not necessarily directly and not necessarily mechanically. A device or structure that is “configured” in a certain way is configured in at least that way, but may also be configured in ways that are not listed.

It will be appreciated that some embodiments may be comprised of one or more specialized processors (or “processing devices”) such as microprocessors, digital signal processors, customized processors and field programmable gate arrays (FPGAs) and unique stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the method and/or apparatus described herein. Alternatively, some or all functions could be implemented by a state machine that has no stored program instructions, or in one or more application specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic. Of course, a combination of the two approaches could be used.

Moreover, an embodiment can be implemented as a computer-readable storage medium having computer readable code stored thereon for programming a computer (e.g., comprising a processor) to perform a method as described and claimed herein. Examples of such computer-readable storage mediums include, but are not limited to, a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a ROM (Read Only Memory), a PROM (Programmable Read Only Memory), an EPROM (Erasable Programmable Read Only Memory), an EEPROM (Electrically Erasable Programmable Read Only Memory) and a Flash memory. Further, it is expected that one of ordinary skill, notwithstanding possibly significant effort and many design choices motivated by, for example, available time, current technology, and economic considerations, when guided by the concepts and principles disclosed herein will be readily capable of generating such software instructions and programs and ICs with minimal experimentation.

The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter.