The present disclosure relates generally to a labelling system and, for example, to a label application system with a label printer that is attachable to a robotic arm.
A supply chain process of a logistics system, such as a warehousing system or transportation system, typically involves using labels (e.g., printed labels and/or radio frequency identification (RFID) tags) to mark, track, locate, and/or route objects that are being stored in a location and/or transported between locations. The object may have various sizes, shapes, and/or be configured in various positions on a conveyor that is used to process and/or distribute the objects for labelling. Accordingly, there is a need for a label application system that can adapt to the various and/or unique configurations of objects that are to receive labels.
The following detailed description of example implementations refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.
In automated labelling systems, a label can be applied to an object or item (e.g., an object or item that is to be stored, tracked, and/or transported) via a robotic device. For example, a system (e.g., an automated system of a warehouse or transportation center) may cause a printer to print a label, cause (e.g., via robotics instructions) the robotic device to retrieve the label from the printer (e.g., using a grasping mechanism of a robotic arm), and cause the robotic device to apply the label to the object using a label applicator of the robotic device (e.g., a label application mechanism on an end of a robotic arm). In some instances, a conveyor or other type of object moving system may move objects into a position that is within a proximity of the robotic device and/or the printer. The robotic device may be programmed and/or configured (e.g., in association with a camera or other device of the automated labelling system) to identify an object, determine and/or track a location of the object on the conveyor, and apply a label when the object is within a label application zone. The label application zone may be a space (or area) through which the object passes on the conveyor and can be reached by a label application mechanism of the robotic device. In such cases, the speed at which the conveyor can supply objects to the robotic device to receive labels may depend on the duration of time for the system to print a label, cause a robotic device to retrieve the label, and cause the robotic device to move into position to apply the label to an object.
Delays or extended durations in printing, retrieving, and/or applying a label can increase waste within the system. For example, power resources may be wasted by powering idle devices or components of the system that are waiting for a label to be applied to the object, computing resources (e.g., processor resources and/or memory resources) may be wasted by monitoring statuses of the system during the delays, network resources or communication resources used to communicate the statuses may be wasted during the delays, and so on. Accordingly, there is a need for a label application system that reduces a duration of time that is required to print, obtain, and/or apply a label to an object.
Some implementations described herein enable an automated system to quickly and efficiently apply a label to an object that is being processed and/or transported by the automated system. For example, a label application system may utilize a robotic device, such as a robotic arm, that is equipped with a label printer that can print and apply the label to an object (e.g., using a tamp of the label printer that is actuated via power from the robotic arm). Accordingly, the robotic arm can position the label printer within a label application zone near a conveyor (e.g., a space above and/or within a threshold distance of the conveyor) that is transporting objects. While the label printer is in the label application zone, the label application system can cause the label printer to print labels, which can then be applied to objects as the objects are passed through the label application zone by the conveyor.
In this way, the label application system may utilize a robotic device and a printer configuration that does not require movement of the robotic device to retrieve a printed label from a separate printer and/or does not require movement of the robotic device to position the label in a label application zone to permit the label to be applied to an object, thereby reducing a duration of time to print, obtain, and apply the label to an object (e.g., because the time required to move the robotic device to obtain labels and reposition the robotic device to apply the labels between applications on objects is eliminated). As a result, the label application system, as described herein, may more quickly and efficiently label objects that are being processed and/or transported (e.g., within a logistics system).
As described herein, the label application system may receive, from a camera, an image that depicts an object on a conveyor; cause, based on an image processing model indicating that the image depicts the object, a robotic arm to attach to a label printer; determine, using the image processing model, an object position of the object on the conveyor; cause the robotic arm to move the label printer into an application position that corresponds to the object position on the conveyor; cause the label printer to print a label; and cause the label printer to apply the label to the object based on the conveyor aligning the object position with the application position.
Although some examples herein are described in connection with a printed label created by a label printer, such examples may similarly apply to another type of physical marker, such as a radio frequency identification (RFID) tag created by an RFID printer.
As shown in
As shown in
In some implementations, the camera may be associated with an actuable mounting system that permits the camera to capture images of various portions of the conveyor. In some implementations, the camera is configured to capture and/or provide images to the controller based on detecting motion on the conveyor and/or based on detecting the objects. For example, the camera and/or the controller may use a motion sensor and/or an optical flow analysis that includes a comparison of images within an image stream. In this way, based on indication motion from the motion sensor and/or certain differences between the images, the camera and/or the label application system may detect that an object is approaching the label application zone.
As further shown in
For example, one or more characteristics may include a position of the object on the conveyor, a size of the object, a shape of the object, a type of the object, an identifier of the object, and/or a label receiving area of the object, among other characteristics. The position of the object (which may be referred to herein as an “object position”) may include or be defined by an orientation of the object (e.g., relative to a center axis or other reference point of the conveyor, relative to a location of the camera, and/or relative to a location of the robotic arm), and/or a location of the object on the surface of the conveyor (e.g., relative to a reference point of the conveyor, relative to a location of the camera, and/or relative to a location of the robotic arm). The position of the object may be based on and/or relative to a reference point of the conveyor (e.g., a portion of the conveyor that is defined by coordinates that are specific to a reference grid associated with a surface of the conveyor and/or rollers of the conveyor). For example, while the position of the object in space (or within the physical environment of the label application system) may change as the conveyor transports the object, the position of the object relative to the conveyor may be constant (e.g., because the position of the object is defined by the reference point of the conveyor). The reference point may be determined based on and/or correspond to one or more features of the conveyor. For example, a feature may include an edge of the conveyor, a rail of the conveyor, a gantry of the conveyor, and/or a marking associated with the conveyor. Accordingly, based on processing one or more images from the camera that depict the reference point or features, the label application system (e.g., via the controller and/or the image processing model) may determine the position of the object relative to the conveyor.
The image processing model may be configured to output and/or generate the one or more characteristics of the object to permit the controller to control the robotic arm to print and/or apply a label to the object, as described elsewhere herein. For example, the controller may utilize any suitable motion analysis technique to track a position of the object (e.g., according to timestamps of captured and/or analyzed) and correspondingly utilize any suitable robotic control technique to calculate robotic coordinates (e.g., spatial coordinates or three-dimensional coordinates associated with the robotic arm) used to control the robotic arm according to the tracked position (and/or other characteristics) of the object.
In some implementations, the image processing model may be configured to analyze the one or more images to detect specific and/or unique characteristics associated with a particular object. For example, because individual objects may be configured to receive different labels (rather than a same label being applied to every object), the objects may include an object identifier, such as a text identifier, a barcode, or other unique marking that is known and/or associated with the label application system and/or label management system. As shown in
In some implementations, the image processing model and/or label application system may be configured to identify a label receiving area of the object. The label receiving area may be marked on the object (e.g., via a border of the label, an identifier of the label receiving area, or type of other marking) to permit the image processing model and/or the label application system to identify the label receiving area. Additionally, or alternatively, because individual objects may have previously received other labels or markings in various locations and/or may have damaged areas (e.g., dents, holes, and so on that may not be conducive to receiving a label), the label receiving areas for the individual boxes may be unmarked and/or different from one another. For example, the label receiving areas may be positioned in various locations of the objects or various orientations of the object, and/or may have different sizes. Accordingly, the label application system and/or the image processing model may be configured to identify a label receiving area of the object that may be best suited for receiving the label. In such a case, the label application system and/or the image processing model may analyze the object to find a portion of the object that is capable of receiving a label that has a particular size. Accordingly, the label receiving area may correspond to an area on a surface of the object that is at least the size of a label that is to be applied to the object. Additionally, or alternatively, the label receiving area may be an area on the surface of the object that does not include any other labels, any other labels, or any damaged portions of the object (e.g., to ensure that the label is likely to be attached to the object without obstructing access to the other labels or other markings and/or to ensure that the label does not become detached from the object by being applied to a damaged area of the object).
In this way, using the image processing model, the label application system may analyze images depicting an object in order to apply a label on the object using a robotic arm, as described elsewhere herein.
As further shown in
In some implementations, the print instruction may specify which label printer, of the plurality of printers, are to be used to print and/or apply the label to an object. For example, the print instruction may include a printer identifier or other indication that permits the label application system to select the corresponding printer for printing content to a label and applying the label to an object.
As shown in
In some implementations, the label application system may select the printer based on an object identifier that is detected on the object. For example, if an object is to receive a particular type of label (e.g., a label that has a particular size, a particular adhesive, or other particular characteristic), the object identifier may be mapped (e.g., via a print instruction from the label management system) to a particular label printer that is to be used to print and/or apply the label to the object.
Based on a selection of a first label printer (Label Printer 1), the label application system may cause the robotic arm to attach to the label printer in order to print and/or apply a label to an object, as described herein. For example, the label application system may control, using any suitable technique, the robotic arm to attach to the label printer via a coupler of the robotic arm and/or an electromechanical coupling of the label printer. The coupler of the robotic arm and/or the electromechanical coupling of the label printer may include one or more electrical terminals that facilitate communication between the robotic arm and the label printer. Additionally, or alternatively, the coupler and/or the electromechanical coupling may be configured for transfer of electrical power from the robotic arm to one or more components of the label printer. In this way, the electrical power can be supplied to the label printer from the robotic arm to permit the label printer to utilize the electrical power to perform a printing operation to print a label and/or to apply the label to an object using a tamp of the label printer. Additionally, or alternatively, the coupler and/or the electromechanical coupling of the label printer may include one or more mechanical connectors that permit the robotic arm to actuate a mechanical component (e.g., a tamp) of the label printer.
Accordingly, the label application system may cause the robotic arm to couple to an electromechanical coupling of the label printer to permit the robotic arm to position the label printer for printing and/or applying a label to an object.
As further shown in
The application position may align with a path of the object position on the conveyor. The path of the object position on conveyor may correspond to a path of movement of the object as the conveyor transports the object through the physical environment of the label application system. The controller may cause the robotic arm to move the robotic arm into a position that is determined and/or calculated based on the determined position of the object relative to the conveyor (e.g., a position determined using the image processing model) and/or the path of the position of the object on the conveyor. For example, the controller may convert image-based coordinates of an approaching object to robotic coordinates used to control a position of the robotic arm. In this way, the label application system may move the label printer into the application position that aligns with a path of the object and/or position of the object on the conveyor.
In some implementations, the robotic arm may move the label printer from a dock of the docking station that previously supported the label printer. For example, the dock of the docking station may include a dock interface that may facilitate communication between the controller of the label application system and the label printer (e.g., to communicate status information associated with the label printer, print instructions, and/or print settings for printer operations). Additionally, or alternatively, dock interface may permit the docking station to supply electrical power to the label printer while the label printer is in the dock. In this way, while the label printer is in the dock, the label printer may perform a print operation (e.g., a test print operation) and/or may actuate one or more components (e.g., an actuator of a print media door of the label printer that enables print media to be supplied to a roller of the label printer).
Accordingly, the label application system may position the label printer for printing and/or applying a label to an object.
As shown in
Once the label is printed and/or output from the label printer, the controller may cause the label printer to apply the label to the object. For example, the controller may cause the printer to apply the label to the object using a tamp. The controller may actuate the tamp via an actuator of the label printer and/or an actuator of the robotic arm. Additionally, or alternatively, the controller may cause the robotic arm to move along a trajectory, as the object passes along a path of the conveyor, that enables the label printer to apply the label to a label receiving area of the object. Similar to moving the robotic arm as described above, the controller may convert image-based coordinates that are indicative of a movement of the identified label receiving area into robotic coordinates corresponding to an anticipated motion of the label receiving area within the label application zone. The label application system may determine a trajectory of the robotic arm that corresponds to the anticipated motion of the label receiving area to enable the label printer (and/or the robotic arm) to apply the label to the object as the object passes through the label application zone (e.g., without stopping the conveyor and/or without stopping the object within the label application zone). As shown in
In this way, the label application system, as described herein, permits a label to be printed and applied to an object without inhibiting the progress of the object. Furthermore, the label application system may permit a label to be printed and applied to an object by a robotic arm (or a label printer attached to the robotic arm) without a label application mechanism (e.g., the label printer and/or a tamp of the label printer) of the robotic arm being removed from the label application zone.
As further shown in
As further shown in
As shown in
As further shown in
As shown in
As further shown in
As further shown in
In this way, the label application system enables labels to more quickly be printed and applied to objects in a system that is configured for automated processing of the objects. Furthermore, the label application system may include multiple label printers (and/or multiple robotic arms) to reduce or prevent a likelihood of a shutdown of such an automated system. Accordingly, the label application system, as described herein, can prevent waste caused by delays in printing and applying labels to objects.
As indicated above,
As shown in
In this way, the robotic arm 210 may attach to the first label printer 204 to permit the label printer to be used to print and apply a label to an object from the label application end 308 of the robotic arm 210.
The label printer 400 includes a print media door 404 that facilitates access to a print media receiving component (e.g., a print media roller of the label printer 400). In some implementations, the print media door 404 may be opened via an actuator of the label printer 400. The label printer 400 of
The label printer 400 may be configured and/or designed to have a size and/or mass that satisfies a size threshold and/or mass threshold, respectively, that permit the label printer 400 to be attached to the label application end 308 of the robotic arm 210 and moved by the robotic arm 210 without slowing or inhibiting motion of the robotic arm 210 within a design threshold or a particular tolerance. Additionally, or alternatively, the size and/or mass of the label printer 400 may be configured according to a threshold speed at which a label application system is to process objects and/or receive application labels, as described herein.
The tamp head 512, may apply the label that is output from the label printer 400 by contacting or pressing the label to an object via an actuation of the tamp 304. The tamp 304 and/or the tamp head 512 may be hydraulically actuated (e.g., using an air-powered vacuum generator) and/or electronically actuated (e.g., using a motor).
In this way, a label printer may be configured to be arranged on a label application end of a robotic arm to permit a label application system to quickly and efficiently print and apply labels to objects that are being processed within an automated system.
As indicated above,
The label application system 610 includes one or more devices capable of receiving, generating, storing, processing, providing, and/or routing information associated with printing and applying a label to an object using a label printer that is attachable to a robotic arm, as described elsewhere herein. The label application system 610 may include a communication device and/or a computing device. For example, the label application system 610 may include a server, such as an application server, a client server, a web server, a database server, a host server, a proxy server, a virtual server (e.g., executing on computing hardware), or a server in a cloud computing system. In some implementations, the label application system 610 includes computing hardware used in a cloud computing environment. In some implementations, as described elsewhere herein, the label application system 610 may include a controller, a camera, a robotic arm, a label printer, and/or a conveyor.
The label management system 620 includes one or more devices capable of receiving, generating, storing, processing, providing, and/or routing information associated with a print instruction used by the label application system 610 to print and apply a label to an object, as described elsewhere herein. The label management system 620 may include a communication device and/or a computing device. For example, the label management system 620 may include a server, such as an application server, a client server, a web server, a database server, a host server, a proxy server, a virtual server (e.g., executing on computing hardware), or a server in a cloud computing system. In some implementations, the label management system 620 includes computing hardware used in a cloud computing environment.
The operator station 630 includes one or more devices capable of receiving, generating, storing, processing, and/or providing information associated with managing the label application system 610, as described elsewhere herein. The operator station 630 may include a communication device and/or a computing device. For example, the operator station 630 may include a wireless communication device, a mobile phone, a user equipment, a laptop computer, a tablet computer, a desktop computer, a wearable communication device (e.g., a smart wristwatch, a pair of smart eyeglasses, a head mounted display, or a virtual reality headset), or a similar type of device.
The network 640 includes one or more wired and/or wireless networks. For example, the network 640 may include a wireless wide area network (e.g., a cellular network or a public land mobile network), a local area network (e.g., a wired local area network or a wireless local area network (WLAN), such as a Wi-Fi network), a personal area network (e.g., a Bluetooth network), a near-field communication network, a telephone network, a private network, the Internet, and/or a combination of these or other types of networks. The network 640 enables communication among the devices of environment 600.
The number and arrangement of devices and networks shown in
Bus 710 includes one or more components that enable wired and/or wireless communication among the components of device 700. Bus 710 may couple together two or more components of
Memory 730 includes volatile and/or nonvolatile memory. For example, memory 730 may include random access memory (RAM), read only memory (ROM), a hard disk drive, and/or another type of memory (e.g., a flash memory, a magnetic memory, and/or an optical memory). Memory 730 may include internal memory (e.g., RAM, ROM, or a hard disk drive) and/or removable memory (e.g., removable via a universal serial bus connection). Memory 730 may be a non-transitory computer-readable medium. Memory 730 stores information, instructions, and/or software (e.g., one or more software applications) related to the operation of device 700. In some implementations, memory 730 includes one or more memories that are coupled to one or more processors (e.g., processor 720), such as via bus 710.
Input component 740 enables device 700 to receive input, such as user input and/or sensed input. For example, input component 740 may include a touch screen, a keyboard, a keypad, a mouse, a button, a microphone, a switch, a sensor, a global positioning system sensor, an accelerometer, a gyroscope, and/or an actuator. Output component 750 enables device 700 to provide output, such as via a display, a speaker, and/or a light-emitting diode. Communication component 760 enables device 700 to communicate with other devices via a wired connection and/or a wireless connection. For example, communication component 760 may include a receiver, a transmitter, a transceiver, a modem, a network interface card, and/or an antenna.
Device 700 may perform one or more operations or processes described herein. For example, a non-transitory computer-readable medium (e.g., memory 730) may store a set of instructions (e.g., one or more instructions or code) for execution by processor 720. Processor 720 may execute the set of instructions to perform one or more operations or processes described herein. In some implementations, execution of the set of instructions, by one or more processors 720, causes the one or more processors 720 and/or the device 700 to perform one or more operations or processes described herein. In some implementations, hardwired circuitry may be used instead of or in combination with the instructions to perform one or more operations or processes described herein. Additionally, or alternatively, processor 720 may be configured to perform one or more operations or processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
The number and arrangement of components shown in
As shown in
As further shown in
The label printer may be selected, from a plurality of label printers, to apply the label based on a print instruction associated with the object and the label. The label may be printed to include content that is associated with an object identifier that is indicated on the object.
As further shown in
As further shown in
In some implementations, the label application system may move the label printer into the application position by causing the robotic arm to remove the label printer from a docking station controlling the robotic arm, wherein the docking station is configured to supply power to the label printer when the label printer is docked at the docking station, and wherein the label printer is to receive power from the robotic arm based on being attached to the robotic arm.
The robotic arm may be attachable to the label printer via a coupler of the robotic arm and an electromechanical coupling of the label printer. The electromechanical coupling may be configured to transfer electrical power from the robotic arm to one or more components of the label printer
As further shown in
In some implementations, process 800 includes analyzing, using an image processing model, the object to identify a label receiving area on the object that is to receive the label. The label may be applied to the label receiving area based on controlling the robotic arm to move the label printer across the label receiving area. In some implementations, the label receiving area is identified based on a size of the label.
Although
As shown in
As further shown in
In some implementations, the label application system may process the image to identify an object identifier associated with the object. The label printer may be selected, from a plurality of label printers, based on being associated with the object identifier.
As further shown in
As further shown in
In some implementations, the robotic arm is attachable to the label printer via a coupler of the robotic arm that couples to an electromechanical coupling of the label printer. The electromechanical coupling may be configured to transfer electrical power from the robotic arm to one or more components of the label printer.
The label application system may cause the robotic arm to remove the label printer from a docking station to the application position. The docking station may be configured to supply power to the label printer prior to the label printer being coupled to the robotic arm.
The label application system may analyze, using the image processing model, the object to identify a label receiving area on the object that is to receive the label, wherein the robotic arm is controlled to apply the label to the label receiving area on the object. In some implementations, the label receiving area is identified based on a size of the label.
As further shown in
Although
The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise forms disclosed. Modifications and variations may be made in light of the above disclosure or may be acquired from practice of the implementations.
As used herein, the term “component” is intended to be broadly construed as hardware, firmware, and/or a combination of hardware and software. As used herein, each of the terms “tangible machine-readable medium,” “non-transitory machine-readable medium” and “machine-readable storage device” is expressly defined as a storage medium (e.g., a platter of a hard disk drive, a digital versatile disc, a compact disc, flash memory, read-only memory, random-access memory, or the like) on which machine-readable instructions (e.g., code in the form of, for example, software and/or firmware) can be stored. The instructions may be stored for any suitable duration of time, such as permanently, for an extended period of time (e.g., while a program associated with the instructions is executing), or for a short period of time (e.g., while the instructions are cached, during a buffering process, or the like). Further, as used herein, each of the terms “tangible machine-readable medium,” “non-transitory machine-readable medium” and “machine-readable storage device” is expressly defined to exclude propagating signals. That is, as used in any claim herein, a “tangible machine-readable medium,” a “non-transitory machine-readable medium,” and a “machine-readable storage device,” or the like, should not be interpreted as being implemented as a propagating signal.
As used herein, satisfying a threshold may, depending on the context, refer to a value being greater than the threshold, greater than or equal to the threshold, less than the threshold, less than or equal to the threshold, equal to the threshold, not equal to the threshold, or the like.
It will be apparent that systems and/or methods described herein may be implemented in different forms of hardware, firmware, or a combination of hardware and software. The actual specialized control hardware or software code used to implement these systems and/or methods is not limiting of the implementations. Thus, the operation and behavior of the systems and/or methods are described herein without reference to specific software code—it being understood that software and hardware can be designed to implement the systems and/or methods based on the description herein.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of various implementations. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one claim, the disclosure of various implementations includes each dependent claim in combination with every other claim in the claim set. As used herein, a phrase referring to “at least one of” a list of items refers to any combination of those items, including single members. As an example, “at least one of: a, b, or c” is intended to cover a, b, c, a-b, a-c, b-c, and a-b-c, as well as any combination with multiple of the same item.
No element, act, or instruction used herein should be construed as critical or essential unless explicitly described as such. Also, as used herein, the articles “a” and “an” are intended to include one or more items, and may be used interchangeably with “one or more.” Further, as used herein, the article “the” is intended to include one or more items referenced in connection with the article “the” and may be used interchangeably with “the one or more.” Furthermore, as used herein, the term “set” is intended to include one or more items (e.g., related items, unrelated items, or a combination of related and unrelated items), and may be used interchangeably with “one or more.” Where only one item is intended, the phrase “only one” or similar language is used. Also, as used herein, the terms “has,” “have,” “having,” or the like are intended to be open-ended terms. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise. Also, as used herein, the term “or” is intended to be inclusive when used in a series and may be used interchangeably with “and/or,” unless explicitly stated otherwise (e.g., if used in combination with “either” or “only one of”).