Environments in which inventories of objects are managed, such as products for purchase in a retail environment, may be complex and fluid. A retail facility may contain a wide variety of products disposed on support structures such as shelves, which bear labels containing product information such as prices, barcodes and the like. The placement of products within the facility, the selection of products on the shelves, and the formatting of the labels, may all change over time, requiring previous labels to be replaced with new labels. The replacement of labels is typically performed manually, in a time-consuming and error-prone process. Similar issues may be present in other environments in which inventoried objects are managed, such as in warehouse environments.
The accompanying figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views, together with the detailed description below, are incorporated in and form part of the specification, and serve to further illustrate embodiments of concepts that include the claimed invention, and explain various principles and advantages of those embodiments.
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.
Examples disclosed herein are directed to an apparatus for labeling support structures, comprising: a chassis having a locomotive assembly; a label generator supported on the chassis; an effector assembly having a first end coupled to the chassis and a second end movable relative to the chassis; a label manipulator disposed at the second end of the effector assembly, the label manipulator including an image sensor; a controller coupled to the locomotive assembly, the label generator, the effector assembly and the label manipulator, the controller configured to: obtain label placement data defining a location relative to a reference feature on a support structure for a label manipulation operation; control the locomotive assembly to travel to the support structure; detect the reference feature via image data captured at the image sensor; control the effector assembly to place the label manipulator at the location relative to the reference feature; control the effector assembly and the label manipulator to perform the label manipulation operation.
Additional examples disclosed herein are directed to a method for labeling support structures, comprising: at a controller of an apparatus including a chassis supporting (i) a locomotive assembly, (ii) a label generator, (iii) an effector assembly having a first end coupled to the chassis and a second end movable relative to the chassis and (iv) a label manipulator disposed at the second end of the effector assembly and including an image sensor: obtaining label placement data defining a location relative to a reference feature on a support structure for a label manipulation operation; controlling the locomotive assembly to travel to the support structure; detecting the reference feature via image data captured at the image sensor; controlling the effector assembly to place the label manipulator at the location relative to the reference feature; and controlling the effector assembly and the label manipulator to perform the label manipulation operation.
The client computing device 105 is illustrated in
The system 100 is deployed, in the illustrated example, in a retail environment including a plurality of support structures in the form of shelf modules 110-1, 110-2, 110-3 and so on (collectively referred to as shelf modules 110, and generically referred to as a shelf module 110—this nomenclature is also employed for other elements discussed herein). Various other support structures for supporting inventoried retail and/or warehouse items disposed thereon are contemplated, including shelves, racks (including racks for hanging inventoried objects, such as clothing racks), peg boards, and the like.
Each shelf module 110 supports a plurality of products 112. Each shelf module 110 includes a shelf back 116-1, 116-2, 116-3 and one or more support surfaces (e.g. an upper support surface 117a-3 and a lower support surface 117b-3 as illustrated in
As will be apparent from
In the illustrated embodiment, the apparatus 103 is deployed within the retail environment, and communicates with the server 101 (e.g. via the link 107) to navigate, autonomously or partially autonomously, along a length 119 of at least a portion of the shelf modules 110. The apparatus 103 is configured to navigate among the shelf modules 110, for example according to a frame of reference 102 established within the retail environment. The frame of reference 102 can also be referred to as a global frame of reference. The apparatus 103 is configured, during such navigation, to track the location of the apparatus 103 relative to the frame of reference 102. In other words, the apparatus 103 is configured to perform localization. The apparatus 103 is equipped with one or more navigation sensors, including but not limited to image sensors, depth sensors, as well as gyroscopes and/or accelerometers, enabling the apparatus 103 to navigate within the environment.
The apparatus 103 also includes an effector assembly 104 bearing a label manipulator, to be discussed in greater detail below. The apparatus 103 is configured, for example responsive to commands received from the server 101, to navigate among the shelf modules 110 and replace the above-mentioned labels affixed to the shelf edges 118 with the effector assembly 104 and associated components. For example, certain labels may require periodic replacement to reflect updated prices, reallocation of products 112 among the shelf modules 110, and the like. The server 101 includes a memory storing a repository 120 containing label placement data, for example in the form of a planogram indicating the locations (e.g. in the frame of reference 102) of each shelf module 110, as well as the location of each label on each shelf module. Label locations may be expressed in the repository 120 as a distance along a specified shelf edge 118 relative to a reference feature of the module 110, such as a boundary of the module 110 (e.g. the left side of the module 110). The label placement data in the repository 120 can also contain further data defining each label, such as the label type (i.e. the physical format of the label), the product identifier corresponding to the label, and the like.
Turning now to
The apparatus 103 also includes a receptacle 220 for receiving discarded labels removed from shelf edges 118 by the manipulator 216. The apparatus 103 further includes a label generator 224 for generating new labels for placement on the shelf edges 118 via control of the effector assembly 104 and the manipulator 216. The label generator 224, in the present example, is a label printer containing, for example, a roll of blank adhesive-backed labels and a printhead configured to apply pigmentation (e.g. ink, thermally-induced pigment changes in the blank labels, or the like) to blank labels. Embodiments of the printer 224 include a direct thermal printer and a thermal transfer printer. The printer 224 can be configured to remove the backing from printed labels as the labels exit the printer 224. In other examples, the label generator 224 can include a supply of previously printed (or otherwise previously generated) labels, and is configured to simply dispense the previously generated labels via an outlet.
The apparatus 103 also includes a pressure generator 228 configured to supply one or both of a vacuum (i.e. negative pressure) or pressurized air to the manipulator 216 to allow the manipulator 216 to grasp and release labels. The generator 228 can be implemented as a plurality of distinct components, such as one or more pumps and associated storage tanks (e.g. air storage tanks).
The apparatus 103 also includes components for controlling and interacting with the above components to replace labels on the shelf edges 118. Turning to
The memory 254 stores computer readable instructions for execution by the processor 250. In particular, the memory 254 stores a control application 258 which, when executed by the processor 250, configures the processor 250 to perform various functions discussed below in greater detail and related to the navigation of the apparatus 103 (e.g. by controlling the locomotive mechanism 203). The application 258 may also be implemented as a suite of distinct applications in other examples. The processor 250, when so configured by the execution of the application 258, may also be referred to as a controller 250. Those skilled in the art will appreciate that the functionality implemented by the processor 250 via the execution of the application 258 may also be implemented by one or more specially designed hardware and firmware components, such as FPGAs, ASICs and the like in other embodiments.
The memory 254 also stores a repository 260 containing, for example, a map of the environment in which the apparatus 103 is deployed, for use in navigation among the shelf modules 110. The apparatus 103 may communicate with the server 101, for example to receive instructions to navigate to specified locations (e.g. to a given aisle consisting of a set of modules 110) and initiate label replacement operations. Navigation to the specified module 110 is implemented by the apparatus 103 based in part on the above-mentioned map. The repository 260 can also contain label placement data (e.g. received from the server 101) for use in replacing labels on the shelf modules 110.
As shown in
In addition, the apparatus 103 includes a heater 262, such as an inline heater mounted within an air conduit between the pressure generator 228 and the manipulator 216, permitting the manipulator 216 to emit pressurized heated air in order to remove adhesive labels from shelf edges 118. In other examples, additional label removal mechanisms can be deployed via the apparatus 103 in addition to or instead of the heater 262, depending on the nature of the adhesives employed in labels on the shelf edges 118. For example, the apparatus 103 can include a cooler for cooling pressurized air from the pressure generator 228, a lamp in the manipulator 216 to illuminate labels to disrupt adhesives (e.g. ultraviolet or near-ultraviolet light to chemically disrupt certain adhesives, with infrared or near-infrared light to soften adhesives by heating the adhesives, or the like).
The apparatus 103 can also include a pressure sensor 266, for example mounted within the manipulator 216 or within an air conduit running between the generator 228 and the manipulator 216. The pressure sensor 266 is configured to provide pressure measurements to the processor 250, and the processor 250 is configured to detect, based at least in part on comparing the pressure measurements to a predetermined pressure threshold required to grasp the label, whether a label is currently grasped by the manipulator 216.
The apparatus 103 further includes an image sensor 270 connected with the processor 250. The image sensor 270, which can be for example a digital color camera (e.g. configured to generate RGB images), a greyscale camera, an infrared camera or the like, is implemented as a component of the manipulator 216, as will be discussed in greater detail below. The image sensor 270 is controllable by the processor 250 to capture images of the shelf modules 110 in order to locate the manipulator 216 and manipulate labels on the shelf edges 118.
The apparatus 103 also includes a communications interface 274 enabling the apparatus 103 to communicate with other computing devices, such as the server 101 over the link 107 shown in
Turning to
The manipulator 216 includes a base wall 300 with a seal 304 extending along the perimeter of the base wall 300. The seal 304 can be fabricated of a flexible material, such as rubber, silicone or the like, to deform upon contact with a shelf edge 118. In operation, the base wall 300 is placed substantially parallel to the shelf edge 118. When the manipulator 216 is extended towards the shelf edge by the effector assembly 104, the seal 304 is configured to engage the shelf edge 118 to create a substantially sealed cavity around a portion of the shelf edge 118, defined by the seal 304 and the base wall 300. In such an embodiment, as shown in
Also shown in
The functionality of the apparatus 103, as implemented via execution of the application 258 by the processor 250 will now be described in greater detail, with reference to
At block 405, the apparatus 103 is configured to obtain label placement data. The label placement data can be obtained from the server 101 over the link 107 or via the dock 108. In other examples, the label placement data can be received from the client device 105. The label placement data defines at least one location in the facility for performance of a label manipulation operation, such as replacement of a previous label at the location with a new label, placement of a label in a previously unlabeled location, or removal of a previous label, without replacement of the label. In the present example, the locations are locations on the shelf edges 118 of the shelf modules 110. Further, in the present example, the locations are defined relative to a reference feature on the support structure. More specifically, each label replacement location is defined as an offset distance along a shelf edge 118 of a shelf module 110. The offset distance is defined from a side of the module 110 (e.g. the leftmost side of the module 110, also referred to as the boundary of the module 110). In other examples, various other reference features can be employed to define the locations in the label placement data, such as machine-readable markers (e.g. physical features of the shelf, graphical indicators such as QR codes, or the like) along the shelf edges, ends of a shelf edge 118 within the boundaries of a module 110 (e.g. when a shelf edge 118 does not extend along the full length 119 of the module 110), and the like.
Turning briefly to
As shown above, for each label to be replaced, a location is provided (defined by the module and shelf edge identifiers, as well as the offsets). Label generation data, in the example above, includes an identification of a label format, which may specify both the size of the label as above, and the arrangement of information on the label (not shown above). The product identifiers are employed by the apparatus 103 to retrieve information with which to populate the label format for generation of the label.
Returning to
Thus, the apparatus 103 is configured to navigate to a position at a predefined depth relative to the module 110, approximately half-way along the length 119 of the module 110, from which the effector assembly 104 can reach any portion of the shelf edges 118 of the module 110.
Returning to
The initial location is selected based on the known position (in the frame of reference 102) of the shelf edge 118 identified in the label placement data, as well as on the predetermined position to which the apparatus 103 navigated at block 410, and on a navigational error boundary. For example, the navigational error mentioned above may have been previously characterized as reaching a maximum of about 0.1 m. Further, the height of the apparatus 103 and of the first end 212 of the effector assembly 104 on the apparatus 103 are previously determined, as is the height of the shelf edge 118a identified in the label placement data shown above. In the present example, the reference feature is the boundary 516, and the apparatus 103 is therefore configured to control the effector assembly 104 to place the manipulator 216 at an initial location at the height of the shelf edge 118a, at a horizontal position adjacent to the boundary 516. As a result of the potential for a positional error of up to 0.1 m, the manipulator 216 may be placed at a distance parallel to the length 119 of about 0.85 m (half of the length 119 plus the maximum potential navigational error of 0.1 m).
Returning to
Referring to
As will now be understood by those skilled in the art, the position of the image sensor 270 is fixed relative to the position of the manipulator 216. In the present example, the image sensor 270 is disposed at the center of the manipulator 216, and thus the position of the image sensor 270 and of the manipulator 216 relative to a shelf edge 118 are equivalent. In other embodiments, the image sensor 270 need not be centered on the base wall 300, but the position of the image sensor 270 relative to the center of the base wall 300 is nevertheless predetermined. Therefore, the location of a reference feature in an image captured by the image sensor 270 indicates the position of the image sensor itself (and therefore the position of the manipulator 216) relative to the reference feature.
At block 425, the apparatus 103 is configured to control the effector assembly 104 to place the manipulator 216 at the next location defined in the label placement data. In other words, having established the position of the manipulator 216 relative to the reference feature following an affirmative determination at block 420, the apparatus 103 is configured to move the effector assembly 104 to place the manipulator 216 at the specified offset relative to the reference feature. Taking the label placement data of Table 1 as an example, at block 425 the effector assembly 104 is controlled to place the manipulator 150 mm to the right (in the orientation shown in
At block 430, the apparatus 103 is configured to replace a label at the location specified in the label placement data. The replacement of a label at block 430 will be discussed in greater detail in connection with
At block 440, the apparatus 103 is configured to determine whether support structures other than the current support structure are identified in the label placement data and remain to be processed. In the example data shown in Table 1 above, only one module 110 is identified. In other examples, however, the label placement data can identify label placement locations on a plurality of distinct modules 110. When the determination at block 440 is affirmative, the apparatus 103 returns to block 410 to navigate to the next module 110 in the label placement data. As will now be apparent, during the performance of blocks 415 to 435, the apparatus 103 is configured to remain stationary relative to the current module 110. That is, although the effector assembly 104 and manipulator 216 move, the chassis 200 remains stationary relative to the module 110, thus mitigating or eliminating the accumulation of further navigational errors during the label placement process.
Turning now to
At block 705, having controlled the effector assembly 104 to place the manipulator 216 at the next label placement location at block 425 as shown in
When a partial label is detected in an image captured at block 705, the processor 250 is configured to increment the location of the manipulator 216 to center the manipulator 216 over the partially detected label, and to then capture a further image via the image sensor 270 and repeat the detection. For example, referring to
At block 705, the processor 250 can also be configured to select a removal mechanism for the previous label 804. In the embodiment illustrated in
Following detection of the previous label 804 at block 705, the apparatus 103 is configured, at block 710, to extend the manipulator 216 towards the shelf edge 118 and to apply the selected removal mechanism. Extension of the manipulator 216 is performed to bring the seal 304 into contact with one or both of the shelf edge 118a and the previous label 804. The processor 250 is configured to control the effector assembly 104 to extend the manipulator 216 towards the shelf edge 118a until, for example, one or more sensors (e.g. strain gauges or the like) in the effector assembly 104 register a threshold resistance indicating that the seal 304 has contacted the shelf edge 118a. Turning to
Responsive to extending the manipulator 216, the processor 250 is configured to apply the selected removal mechanism. In the present example, the processor 250 is configured to control the generator 228 to emit pressurized air into the conduit 308 for emission into the cavity 900, and to enable the heater 262 to heat the above-mentioned pressurized air. Heated air can be applied to the cavity (and therefore to the previous label 804 within the cavity 900) for a predetermined period of time, or until a thermal sensor (not shown) in the manipulator 216 indicates that the previous label 804 has reached a predetermined temperature (e.g. beyond which an adhesive affixing the label 804 to the shelf edge 118a is expected to soften). An example of such a predetermined temperature is a temperature of about 60 degrees Celsius (140 degrees Fahrenheit)
Returning to
At block 720, the processor 250 is configured to determine whether a vacuum is maintained within the cavity 900 after retraction of the manipulator 216 (e.g. to a depth from the module 110 as shown in
At block 725, the processor 250 is configured to control the effector assembly 104 to place the manipulator 216 adjacent to the receptacle 220. The receptacle 220 is affixed to the chassis 200, and therefore has a predetermined position relative to the first end 212 of the effector assembly 104. The processor 250 is therefore configured to issue a command to the effector assembly 104 to place the manipulator 216 at the above-mentioned predetermined position, and to remove the vacuum from the manipulator 216. Removal of the vacuum, as will now be apparent, permits the previous label 804 to fall into the receptacle 220. In some examples, the removal of the vacuum can be supplemented with application of pressurized air into the manipulator 216 to expel the label 804.
At block 730, the processor 250 is configured to control the effector assembly 104 to place the manipulator 216 at an outlet of the label generator 224. For example, a location of the label generator 224 relative to the first end 212 of the effector assembly 104 can be stored in the memory 254 and transmitted to the effector assembly 104 at block 730. The label generator 224, as noted above, is a label printer in the present example, and is configured to generate a label according to the label placement data responsive to an instruction from the processor 250. The processor 250 is further configured to apply a vacuum to the manipulator 216 at block 730, for example responsive to a signal from the label generator 224 indicating that generation of the new label is complete. In other examples, the vacuum is applied responsive to detection of the new label at the outlet of the label generator 224 in an image captured by the image sensor 270.
As will now be apparent, when no previous label is detected at block 705 (e.g. when no partial detection is registered after a threshold number of incremental movements of the manipulator 216), the performance of the method 700 can skip from block 705 directly to block 730.
Responsive to obtaining the new label from the label generator 224 at block 730 (which can be confirmed via a vacuum assessment as described in conjunction with block 720), at block 735 the processor 250 is configured to reposition the manipulator 216 to the label placement location defined in the label placement data (i.e. the initial location referred to in connection with block 705 and shown in
At block 740, the processor 250 is configured to determine whether the new label was successfully placed at block 735. For example, the processor 250 can be configured to retract the manipulator 216 from the shelf edge 118a and control the image sensor 270 to capture an image of the shelf edge 118a. When the image contains a label, detected via the mechanisms mentioned above in connection with block 705, the determination at block 740 is affirmative, and the apparatus returns to block 435 of the method 400.
When the determination at block 740 is negative, the new label is assumed to have fallen from the manipulator 216 or the shelf edge 118a, and the apparatus 103 returns to block 730 to obtain another copy of the new label from the label generator 224.
Variations to the above systems and methods are contemplated. For example, in some embodiments the effector assembly 104 carries a plurality of manipulators 216. Turning to
Further variations are also contemplated. For example, the manipulator 216 can include a mechanical removal mechanism suitable for direct contact with a label, such as a scraper.
In further embodiments, the performance of block 410 of the method 400 includes only placement of the manipulator 216 at an initial location, without navigating to a support structure. In such embodiments, the apparatus 103 may lack a controllable locomotive mechanism, and may instead be moved to the support structure by an operator. Following arrival at the support structure, the operator may activate an input on the apparatus 103 to initiate the performance of block 410 (that is, the control of the manipulator 216).
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.
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 generic or 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.