Robot system with piece loss management mechanism
The robotic system addresses the challenge of handling irregular objects by using contact criteria to adjust grip and motion plans, enhancing stability and reducing piece loss during manipulation tasks.
Patent Information
- Application Number
- JP2023139633
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-01-18
- Filing Date
- 2023-08-30
- Publication Date
- 2025-01-20
- Estimated Expiration
- 2039-04-18
AI Technical Summary
Robots lack the sophistication to replicate human sensitivity and adaptability in grasping objects with irregular surfaces and handling conditions outside target scenarios due to insufficient contact sensor sensitivity and force control, leading to issues like piece loss during manipulation tasks.
A robotic system with a piece loss management mechanism that uses fine-grained control and maneuvering based on contact criteria, employing sensors to determine the grip on objects and adjust motion plans to prevent loss, including grippers that can re-grip or perform controlled drops if grip is insufficient.
Enhances the robotic system's ability to manage piece loss by ensuring stable object handling, reducing the number of unintentional drops and improving efficiency, speed, and accuracy in object manipulation tasks.
Smart Images

Figure 0007617577000001 
Figure 0007617577000002 
Figure 0007617577000003
Abstract
Description
[Technical field]
[0001] The present technology is directed generally to robotic systems, and more particularly to systems, processes, and techniques for detecting and managing piece loss scenarios. [Background technology]
[0002] Many robots (e.g., machines configured to automatically / independently perform physical operations) are now widely used in many fields due to their ever-improving performance and decreasing cost. For example, robots can be used to perform various tasks (e.g., maneuvering or moving objects through space) in manufacturing and / or assembly, packing and / or packaging, transporting and / or shipping, etc. In performing the tasks, the robots can repeat human actions, thereby replacing or reducing the involvement of humans who would otherwise be required to perform dangerous or repetitive tasks.
[0003] However, despite technological advances, robots often lack the sophistication necessary to replicate the human sensitivity and / or adaptability required to perform more complex tasks. For example, robot end effectors (e.g., robotic hands or grippers) often have difficulty grasping objects that are relatively soft and / or have irregular surfaces due to lack of sensitivity of contact sensors and / or insufficient granularity in force control. Also, for example, robots are often unable to handle conditions or situations outside of the target condition / scenario due to lack of adaptability. Thus, improved techniques and systems for controlling and managing various aspects of robots are needed. [Brief description of the drawings]
[0004] [Figure 1] FIG. 1 illustrates an example environment in which a robotic system having a piece loss management mechanism may operate. [Diagram 2] FIG. 1 is a block diagram illustrating a robotic system according to one or more embodiments of the present technology. [Figure 3A] 11A-11D illustrate example grip states in accordance with one or more embodiments of the present technology. [Figure 3B] 11A-11D illustrate further examples of grip states in accordance with one or more embodiments of the present technology. [Figure 4] 1A-1D are top views illustrating example operations performed by a robotic system in accordance with one or more embodiments of the present technology. [Diagram 5] FIG. 2 is a flow diagram for operating the robotic system of FIG. 1 in accordance with one or more embodiments of the present technology. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0005] Systems and methods for a robotic system having a piece loss management mechanism are described herein. A robotic system (e.g., an integrated system of devices performing one or more dedicated tasks) configured according to some embodiments performs piece loss management by performing fine-grained control / maneuvering of a target object according to a contact criterion. By using one or more sensors, the robotic system can determine a contact criterion indicative of a quantized amount of contact corresponding to the stability of the target object relative to the end effector. In other words, the contact criterion can indicate a quantized amount of grip the end effector has on the target object. Based on the contact criterion, the robotic system can re-grip the target object, perform a controlled drop of the target object at a specified location, select and / or adjust a motion plan, or combinations thereof.
[0006] The robotic system can be configured to perform tasks based on steering (e.g., physically moving and / or reorienting) a target object. For example, the robotic system can rearrange or replace various objects based on picking up a target object from a source (e.g., bin, pallet, or conveyor belt) location and moving it to a destination location. In some embodiments, to steer the target object, the robotic system can include a gripper operably connected to the robotic arm. The gripper can be configured to affix the target object to the robotic arm. In other words, the robotic system can manipulate the gripper (e.g., via one or more associated motors / actuators and sensors) to grasp the target object and hold the object relative to the robotic arm. The robotic system can similarly manipulate the robotic arm to steer the gripper, the target object held by the gripper, or a combination thereof.
[0007] To perform a task, in some embodiments, the robotic system can include an imaging device (e.g., camera, infrared sensor / camera, radar, lidar, etc.) that is used to identify the position and / or pose (e.g., resting orientation) of a target object and / or the environment around the target object. Depending on the position, pose, or a combination thereof, the robotic system can implement a motion plan (e.g., a sequence of controls for actuators to move one or more links and / or joints) to perform the task. For example, for reordering and / or replacing a target object, the motion plan can correspond to initially gripping the target object at a source location, maneuvering the object through space, and placing the object at a destination location.
[0008] However, in some circumstances, the grip of the gripper on the target object (e.g., degree of fixation) may be lacking during the performance of a task. As a result, the target object may move or shift relative to the gripper. In some cases, the lack of grip may lead to a loss of a piece (e.g., the target object not being placed at the destination location and / or intended pose), such as when the gripper drops or loses control of the target object during manipulation. The lack of grip may be caused, for example, by forces applied to the target object caused by manipulation and / or by the inertia of the target object, a shift of the target object (e.g., a box or contents within the box), or a combination thereof. Also, for example, the lack of grip may be caused by a calibration error in the imaging mechanism.
[0009] Conventional manipulators (e.g., picker robots) often implement relatively fixed motion plans that do not deviate from a task. Although conventional manipulators may accommodate various positions and / or poses of an object, once an object is picked up, the motion plan for steering the object to a destination position / direction remains unchanged. In contrast, various embodiments of the robotic system described below are configured to determine contact criteria (e.g., amount or degree of grip) (e.g., when a target object is gripped and / or while performing a task) and, accordingly, perform fine-grained control / steering of the target object. Determining contact criteria and fine-grained control / steering are described in detail below.
[0010] In the following, a number of specific details are described to provide a thorough understanding of the technology of the present disclosure. In other embodiments, the technology introduced herein can be implemented without those specific details. In other examples, well-known features, such as specific functions or routines, are not described in detail to avoid unnecessarily obscuring the present disclosure. References in this description to "an embodiment," "one embodiment," and the like, mean that the particular feature, structure, material, or characteristic described is included in at least one embodiment of the present disclosure. Thus, appearances of such phrases in this specification do not necessarily all refer to the same embodiment. On the other hand, such references are not necessarily mutually exclusive. Moreover, particular features, structures, materials, or characteristics can be combined in any suitable manner in one or more embodiments. It should be understood that the various embodiments shown are merely illustrative representations and are not necessarily drawn to scale.
[0011] For purposes of clarity, some details describing structures or processes that are well known and often associated with robotic systems and subsystems, and that may unnecessarily interfere with some salient aspects of the disclosed technology, are not described in the following description. Additionally, while the following disclosure describes some embodiments of various aspects of the technology, some other embodiments may have different configurations or different components than those described in this section. Thus, the disclosed technology may have other embodiments with additional elements or without some of the elements described below.
[0012] Many embodiments or aspects of the disclosure described below may take the form of computer-executable or controller-executable instructions, including routines executed by a programmable computer or controller. Those skilled in the relevant art will appreciate that the disclosed technology may be implemented in computer or controller systems other than those shown and described below. The technology described herein may be implemented in a special-purpose computer or data processor that is specifically programmed, configured, or constructed to execute one or more computer-executable instructions described below. Thus, the terms "computer" and "controller" as generally used herein refer to any data processor, including Internet appliances and handheld devices, including palmtop computers, wearable computers, cellular or mobile phones, multiple processor systems, processor-based or programmable home appliances, network computers, minicomputers, and the like. Information handled by these computers and controllers may be provided on any suitable display medium, including a liquid crystal display (LCD). Instructions for performing computer- or controller-executable operations may be stored on any suitable computer-readable medium, including hardware, firmware, or a combination of hardware and firmware. The instructions may be contained in any suitable memory device, including, for example, a flash drive, a USB device, and / or other suitable medium.
[0013] The terms "coupled" and "connected," along with their derivatives, may be used herein to describe a structural relationship between components. It should be understood that these terms are not intended to be synonymous with each other. Rather, in certain embodiments, "connected" may be used to indicate that two or more elements are in direct contact with each other. Unless otherwise clear from the context, the term "coupled" may be used to indicate that two or more elements are in direct or indirect contact with each other (with other intervening elements between them), or that two or more elements cooperate or interact with each other (e.g., in a causal relationship, such as with respect to signal transmission / reception or function calls), or both.
[0014] The right environment 1 illustrates an example environment in which a robotic system 100 having a piece loss management mechanism may operate. The robotic system 100 includes one or more structures (e.g., robots) configured to perform one or more tasks. Aspects of the piece loss management mechanism may be performed or embodied by a variety of structures.
[0015] For the example shown in FIG. 1 , the robotic system 100 can include an unloading unit 102, a transfer unit 104, a transport unit 106, a loading unit 108, or a combination thereof, in a warehouse or distribution / transportation hub. Each unit in the robotic system 100 can be configured to perform one or more operations. The operations can be combined in a sequence to perform operations to achieve a goal, such as unloading objects from a truck or van for storage in a warehouse or unloading objects from a storage location and loading the objects onto a truck or van for transportation. For another example, an operation can include moving objects from one container to another container. Each unit can be configured to perform a sequence of operations (e.g., manipulating one or more internal components) to perform the operation.
[0016] In some embodiments, the work may include maneuvering (e.g., moving and / or repositioning) a target object 112 (e.g., a box, case, cage, pallet, etc.) from a start position 114 to a work position 116. For example, the unloading unit 102 (e.g., a devanning robot) may be configured to transfer the target object 112 from a position on a carrier (e.g., a truck) to a position on a conveyor belt. Also, the transfer unit 104 (e.g., a palletizing robot) may be configured to transfer the target object 112 from a position on a conveyor belt to a position on the transport unit 106, such as for loading the target object 112 onto a pallet of the transport unit 106. For another example, the transfer unit 104 (e.g., a piece-picking robot) may be configured to transfer the target object 112 from one container to another container. In completing an operation, the transport unit 106 may transfer the target object 112 from an area associated with the transfer unit 104 to an area associated with the loading unit 108, and the loading unit 108 may transfer the target object 112 from the transfer unit 104 (e.g., by moving a pallet carrying the target object 112) to a storage location (e.g., a location on a shelf). Further details regarding the tasks and associated operations are provided below.
[0017] For purposes of illustration, the robotic system 100 is described in the context of a transportation center, however, it should be understood that the robotic system 100 can be configured to perform tasks in other environments / purposes, such as manufacturing, assembly, packaging, healthcare, and / or other types of automation. It should also be understood that the robotic system 100 can include other units, such as manipulators, service robots, modular robots, etc., that are not shown in FIG. 1 . For example, in some embodiments, the robotic system 100 can include an unpalletizing unit for transferring objects from a cage cart or pallet to a conveyor or other pallet, a container switching unit for transferring objects from one container to another, a packaging unit for wrapping objects, a sorting unit for grouping objects according to one or more characteristics of the objects, a piece-picking unit for maneuvering objects (e.g., for sorting, grouping, and / or transportation) in various ways according to one or more characteristics of the objects, or combinations thereof.
[0018] The right system 2 is a block diagram illustrating a robotic system 100 according to one or more embodiments of the present technology. In some embodiments, for example, the robotic system 100 (e.g., a system in one or more of the units and / or robots described above) can include electronic / electrical devices, such as one or more processors 202, one or more storage devices 204, one or more communication devices 206, one or more input-output devices 208, one or more actuation devices 212, one or more transport motors 214, one or more sensors 216, or combinations thereof. The various devices can be coupled to each other via wired and / or wireless connections. For example, the robotic system 100 can include a bus, such as a system bus, a Peripheral Component Interconnect (PCI) bus or PCI-Express bus, a HyperTransport or Industry Standard Configuration (ISA) bus, a Small Computer System Interface (SCSI) bus, a Universal Serial Bus (USB), an IIC (I2C) bus, or an Institute of Electrical and Electronics Engineers (IEEE) Standard 1394 bus (also called "Firewire"). Also, for example, the robotic system 100 can include bridges, adapters, controllers, or other signal-related devices to provide wired connections between devices. The wireless connections can be based, for example, on cellular communication protocols (e.g., 3G, 4G, LTE, 5G, etc.), wireless local area network (LAN) protocols (e.g., wireless fidelity (WIFI)), peer-to-peer or device-to-device communication protocols (e.g., Bluetooth, Near-Field Communication (NFC), etc.), Internet of Things (IoT) protocols (e.g., NB-IoT, LTE-M, etc.), and / or other wireless communication protocols.
[0019] The processor 202 may include a data processor (e.g., a central processing unit (CPU), a special purpose computer, and / or an on-board server) configured to execute instructions (e.g., software instructions) stored in a storage device 204 (e.g., a computer memory). The processor 202 may implement program instructions to control / interact with other devices, thereby causing the robotic system 100 to perform actions, tasks, and / or operations.
[0020] Storage device 204 may include a non-transitory computer-readable medium having program instructions (e.g., software) stored thereon. Some examples of storage device 204 may include volatile memory (e.g., cache and / or random access memory (RAM) and / or non-volatile memory (e.g., flash memory and / or magnetic disk drive). Other examples of storage device 204 may include portable memory drives and / or cloud storage devices.
[0021] In some embodiments, the storage device 204 can be used to further store and provide access to processing results and / or predefined data / thresholds. For example, the storage device 204 can store master data including descriptions of objects (e.g., boxes, cases, and / or products) that may be manipulated by the robotic system 100. In one or more embodiments, the master data can include dimensions, shapes (e.g., templates for possible poses and / or computer-generated models for recognizing objects in different poses), color schemes, images, identification information (e.g., barcodes, Quick Response (QR) codes, logos, etc., and / or their expected locations), expected weights, or combinations thereof, for objects expected to be manipulated by the robotic system 100. In some embodiments, the master data can include manipulation-related information for the objects, such as the location of the center of mass of each of the objects, expected sensor readings (e.g., for force, torque, pressure, and / or contact metrics) in response to one or more actions / movements, or combinations thereof. Also, for example, the storage device 204 can store tracking data for the objects. In some embodiments, the object tracking data may include a log of scanned or steered objects. In some embodiments, the object tracking data may include imaging data (e.g., photographs, point clouds, live video feeds, etc.) of the object at one or more locations (e.g., designated pick-up or drop locations and / or conveyor belts). In some embodiments, the object tracking data may include the position and / or orientation of the object at one or more locations.
[0022] The communication device 206 may include circuitry configured to communicate with external or remote devices over a network. For example, the communication device 206 may include a receiver, a transmitter, a conditioner / demodulator (modem), a signal detector, a signal encoder / decoder, a connector port, a network card, etc. The communication device 206 may be configured to transmit, receive, and / or process electrical signals according to one or more communication protocols (e.g., Internet Protocol (IP), wireless communication protocols, etc.). In some embodiments, the robotic system 100 may use the communication device 206 to exchange information between units of the robotic system 100 and / or with systems or devices outside the robotic system 100 (e.g., for reporting, data collection, analysis, and / or troubleshooting purposes).
[0023] The input-output devices 208 can include user interface devices configured to communicate information with and / or receive information from a human operator. For example, the input-output devices 208 can include a display 210 and / or other output devices (e.g., speakers, haptic circuitry, or tactile feedback devices, etc.) for communicating information to a human operator. The input-output devices 208 can also include control or receiving devices, such as a keyboard, mouse, touch screen, microphone, user interface (UI) sensors (e.g., cameras for receiving motion commands), wearable input devices, etc. In some embodiments, the robotic system 100 can use the input-output devices 208 to interact with a human operator when performing an action, task, operation, or combination thereof.
[0024] The robotic system 100 may include physical or structural members (e.g., robotic manipulator arms) connected at joints for motion (e.g., rotational and / or translational displacement). The structural members and joints may form a kinematic chain configured to steer an end effector (e.g., gripper) configured to perform one or more tasks (e.g., grip, spin, weld, etc.) depending on the use / operation of the robotic system 100. The robotic system 100 may include actuation devices 212 (e.g., motors, actuators, wires, artificial muscles, electroactive polymers, etc.) configured to drive or steer (e.g., displace and / or reorient) the structural members around or at the corresponding joints. In some embodiments, the robotic system 100 may include a transport motor 214 configured to transport a corresponding unit / chassis from one location to another.
[0025] The robotic system 100 may include sensors 216 configured to obtain information used to perform a task, such as to manipulate a structural member and / or transport a robotic unit. The sensors 216 may include devices configured to detect or measure one or more physical characteristics of the robotic system 100 (e.g., the state, condition, and / or position of one or more structural members / joints thereof) and / or characteristics related to the surrounding environment. Some examples of the sensors 216 may include accelerometers, gyroscopes, force sensors, strain gauges, tactile sensors, torque sensors, position encoders, etc.
[0026] In some embodiments, for example, the sensor 216 can include one or more imaging devices 222 (e.g., 2D and / or 3D cameras, including visible and / or infrared cameras, lidar, radar, and / or other distance measuring or imaging devices) configured to detect the surrounding environment. The imaging device 214 can generate a representation of the detected environment, such as a digital image and / or a point cloud, that is used to perform machine / computer vision (e.g., for automated inspection, robotic guidance, or other robotic applications). As described in more detail below, the robotic system 100 (e.g., via the processor 202) can process the digital image and / or point cloud to identify the target object 112 of FIG. 1, the start position 114 of FIG. 1, the work position 116 of FIG. 1, the pose of the target object 112 of FIG. 1, or combinations thereof. To navigate a target object 112, the robotic system 100 (e.g., via various units) can acquire and analyze images of a designated area (e.g., in a truck, in a container, or an object pick-up location on a conveyor belt) to identify the target object 112 and its start location 114. Similarly, the robotic system 100 can acquire and analyze images of another designated area (e.g., a drop location for placing the object on a conveyor belt, a location for placing the object in a container, or a location on a pallet for stacking purposes) to identify a work location 116.
[0027] Also, for example, the sensors 216 may include position sensors 224 (e.g., position encoders, potentiometers, etc.) configured to detect the position of structural members (e.g., a robot arm and / or an end effector) and / or corresponding joints of the robotic system 100. The robotic system 100 may use the position sensors 224 to track the positions and / or orientations of the structural members and / or joints during the performance of a task.
[0028] In some embodiments, the sensor 216 may include a contact sensor 226 (e.g., a pressure sensor, a force sensor, a strain gauge, a piezoresistive / piezoelectric sensor, a capacitive sensor, an elasto-resistive sensor, and / or other tactile sensor) configured to measure a characteristic associated with direct contact between two or more physical structures or surfaces. The contact sensor 226 may measure a characteristic corresponding to a grip of the end effector (e.g., a gripper) on the target object 112. As such, the contact sensor 226 may output a contact metric indicative of a quantified measurement (e.g., a measured force, torque, position, etc.) corresponding to a degree of contact or attachment between the gripper and the target object 112. For example, the contact metric may include one or more force or torque readings related to a force applied by the end effector to the target object 112. More details regarding the contact metric are provided below.
[0029] As described in further detail below, the robotic system 100 (e.g., via the processor 202) can perform various actions to accomplish a task based on the contact criteria. For example, the robotic system 100 can re-grip the target object 112 if the initial contact criteria is below a threshold. The robotic system 100 can also intentionally drop the target object 112, adjust the task position 116, adjust the speed or acceleration of the operation, or combinations thereof, if the contact criteria drops below a threshold during the performance of the task.
[0030] contact criteria 3A and 3B show examples of grip states according to one or more embodiments of the present technology. In some embodiments, the robotic system 100 of FIG. 1 (e.g., a palletizing / depalletizing robot, a picker robot, etc., in one or more units described above) can include an end effector (e.g., a gripper) connected to a robotic arm 304. The robotic arm 304 can include structural members and / or joints between the members configured to steer the end effector. The end effector can be steered by manipulating the actuation device 212 of FIG. 2 connected to the structural members and / or joints of the robotic arm 304.
[0031] In some embodiments, the end effector (e.g., a gripper) can be configured to grip an object, thereby securing or affixing the object to the end effector. The end effector can also be manipulated (e.g., to grasp and / or release) by manipulating one or more of the actuation devices 212 associated with or attached to one or more positions of the end effector.
[0032] In one or more embodiments, as shown in FIG. 3A, the end effector can include a gripper 302 (e.g., an astringent or suction gripper) configured to hold or affix the target object 112 via an attractive force, such as by forming and maintaining a vacuum between the gripper 302 and the target object 112. For example, the gripper 302 can include a set of suction cups 306 configured to contact a surface of the target object 112 and form / maintain a vacuum in a space between the suction cups 306 and the surface. The vacuum can be formed when the gripper 302 is lowered via the robotic arm 304, thereby pressing the suction cups 306 against the surface of the target object 112 and expelling gas between the opposing surfaces. When the robotic arm 304 raises the gripper 302, a pressure differential between the space inside the suction cups 306 and the surrounding environment can keep the target object 112 attached to the suction cups 306. Thus, the degree of grip or attachment of the gripper 302 on the target object 112 can be based on the number of suction cups 306 that successfully create and hold a vacuum.
[0033] Various factors may prevent the suction cups 306 from successfully forming and maintaining a vacuum. For example, a calibration error in the imaging device 222 of FIG. 2 may cause the gripper 302 to be misplaced or misoriented with respect to the target object 112. Thus, the suction cup(s) 306 may not properly contact the surface of the target object 112 (e.g., as indicated by the separation gap 322) to form and maintain a vacuum. Also, unexpected deformations or particles on the surface of the target object 112 may prevent the suction cup(s) 306 from forming a sealed space on the surface of the target object 112 that maintains a vacuum. Also, while maneuvering the target object 112, the suction cup(s) 306 may experience forces resulting from the inertia and / or shift of the movement of the target object 112 (e.g., a box or contents within the box). If the experienced forces are greater than the integrity of the seal that is being formed, the suction cup(s) 306 may lose the hold of the vacuum.
[0034] In some embodiments, the gripper 302 includes the contact sensor 226 of FIG. 2 (e.g., one or more force sensors, pressure sensors, torque sensors, and / or other tactile sensors) configured to determine the contact criterion 312. The contact sensor 226 can generate the contact criterion 312 as an indication of the degree of attachment of the gripper 302 to the target object 112. In other words, the contact criterion 312 can indicate a measurement or amount of grip of the end effector on the target object 112. For example, the contact sensor 226 can include a touch sensor or a tactile sensor configured to indicate whether a sensed surface is in contact with another surface and / or configured to determine a size of a surface area in contact with another surface. The contact sensor 226 can also include a pressure sensor configured to measure a pressure (e.g., a vacuum condition) inside the suction cup 306. The contact sensor 226 can also include a linear force sensor configured to measure a weight (e.g., as indicated by the dashed linear arrow) of the target object 112 held or supported by the suction cup 306. Additionally, the contact sensor 226 may include a torque sensor configured to measure the torque (e.g., as indicated by the dashed curved arrow) of the suction cups 306, the gripper 302, and / or the robot arm 304. The torque measurement may change (e.g., increase) if some of the suction cups 306 (e.g., suction cups 306 located on the periphery) do not hold a vacuum as compared to a fully gripped state. Depending on the type and / or location of the contact sensor 226, the contact criteria 312 may correspond to a sum or average, or a combination thereof, of measurements (e.g., internal pressure, linear force, and / or torque) across the suction cups 306, the amount of suction cups 306, and / or their locations where the measurements meet a vacuum threshold.
[0035] As an illustrative example, FIG. 3A shows a suction cup on the distal end (i.e., located on the right side of FIG. 3A ) of gripper 302 having a grip on target object 112 (as indicated by the arrow traversing through target object 112). In contrast, the suction cup on the proximal end (i.e., located on the left side of FIG. 3A ) of gripper 302 is shown separated by a separation gap 322. Thus, a linear force sensor corresponding to the suction cup on the distal end may determine a non-zero reading related to the weight supported by that distal suction cup. Also, a linear force sensor corresponding to the suction cup on the proximal end may determine a zero or near-zero reading due to a lack of grip. Additionally, due to an uneven distribution of force, a torque sensor associated with gripper 302 may determine a non-zero reading.
[0036] In comparison, if all of the suction cups 306 are establishing or maintaining a vacuum with the surface of the target object 112, the linear force readings will have a non-zero magnitude at all of the suction cups 306 and / or the deviation between the linear force readings will be within a relatively small range. Furthermore, because weight will be distributed in a substantially even manner across the suction cups 306, the torque measured at the gripper 302 will be close to a zero value.
[0037] Thus, the robotic system 100 can use the above-mentioned examples of contact criteria 312 as an indication of the grip of the gripper 302 on the target object 112. For example, deviations in linear force readings and / or torque readings can inversely indicate grip strength. In other words, a greater deviation from the expected readings (e.g., a linear force measurement deviation closer to zero and / or a torque measurement closer to zero can correspond to a stronger grip) may correspond to a weaker grip. In some embodiments, the robotic system 100 can further use lookup / translation tables, equations, processes, or combinations thereof for translation / transformation of the expected readings according to different orientations (e.g., poses) of the gripper 302 and the target object 112. In some embodiments, the master data can include expected readings for each of various orientations of the gripper 302 and the target object 112. The robotic system 100 can use the expected readings to evaluate or process the contact criteria 312 depending on the orientation of the gripper 302 and the targeted object 112 .
[0038] 3B, the robotic system 100 of FIG. 1 (e.g., a palletizing / depalletizing robot, a picker robot, etc., in one or more of the above-mentioned) can include a gripper 352 (e.g., an impact gripper) configured to physically grasp a target object 112 via direct impact. For example, the gripper 352 can include gripper jaws 356 configured to grip the target object 112 based on an opposing or compressive force applied to the target object 112. The target object 112 can be gripped based on the resulting friction between a contact surface of the gripper jaws 356 and a contact surface of the target object 112.
[0039] Various factors may prevent the gripper jaws 356 from successfully gripping the target object 112. For example, a calibration error in the imaging device 222 of FIG. 2 may cause the gripper 352 to be misplaced or misoriented with respect to the target object 112. Thus, the gripper jaws 356 may contact unintended portions of the target object 112, such as locations where surface characteristics reduce the resulting friction. Also, unexpected deformations or particles on the surface of the target object 112 may reduce the resulting friction. Also, during manipulation of the target object 112, the gripper jaws 356 may experience forces resulting from inertia and / or shifts in the movement of the target object 112 (e.g., a box or contents within the box). If the experienced forces are greater than the frictional forces, the gripper jaws 356 may lose their hold on the vacuum.
[0040] In some embodiments, the gripper 352 includes the contact sensor 226 of FIG. 2 (e.g., one or more force sensors, pressure sensors, and / or torque sensors) configured to determine the contact criteria 312. For example, the contact sensor 226 may include a tactile sensor that indicates direct contact between the sensed surface and another surface and / or measures the size of the contact area. The contact sensor 226 may also include a pressure or tactile sensor on the contact surface of the gripper jaws 356. The sensor is configured to measure the force applied by the gripper jaws 356 to the target object 112. Additionally, the contact sensor 226 may include a linear force sensor configured to measure the weight of the target object 112. When a grip is lost, the target object 112 may slip. This may lead to a decrease in weight sensed by the linear force sensor.
[0041] As shown in FIG. 3B , for example, an improper or lack of gripping can result in the target object 112 remaining stationary (i.e., sliding down relative to the gripper jaws 356) as the gripper 352 moves up with the intent of lifting the target object 112. Thus, the weight or force measured by the linear force sensor can be less than the actual weight or a portion thereof (e.g., about half the weight on each jaw) that would be measured if the grip was sufficient and the target object 112 remained fixed relative to the gripper jaws 356. As an illustrative example, the robotic system 100 can track linear force sensor measurements associated with the gripper 352, the robot arm 304, and / or the gripper jaws 356 during the first lifting motion after the gripping motion. The expected measurement profile (shown using dashed lines in the force magnitude versus time plot in FIG. 3B ) can correspond to a measured downward force rising to match the weight of the target object 112 for a predetermined duration. However, a sensor reading for an improper grip corresponds to a measured downward force that does not rise to the expected level and reaches a zero or near-zero magnitude by the end of the initial lifting movement. In some situations, a momentary loss of grip (i.e., indicative of a poor overall grip situation) may correspond to a sudden or momentary drop in the detected linear force.
[0042] In some embodiments, the contact sensor 226 may include a torque sensor configured to measure torque on the gripper jaws 356, such as when the gripper is oriented horizontally. An improper grip causes the target object 112 to shift (e.g., move away) from the gripper jaws 356 during a lifting operation, thereby changing the location of the center of gravity of the target object 112 relative to the gripper 352. Thus, the amount and / or direction of torque applied to the gripper jaws 356 may change based on the shifted center of gravity. The contact criterion 312 may correspond to the measurements described above according to the type and / or location of the contact sensor 226.
[0043] System Operation 4 is a top view illustrating an example operation 402 performed by the robotic system 100 in accordance with one or more embodiments of the present technology. As described above, the operation 402 may represent a sequence of actions performed by the robotic system 100 (e.g., performed by one of the units described above, such as the transfer unit 104 of FIG. 1) to achieve a goal. As shown in FIG. 4, for example, the operation 402 may include moving a target object 112 from a start position 114 (e.g., a position on / in a receiving pallet or bin) to a work position 116 (e.g., a position on / in a sorted pallet or bin).
[0044] In some embodiments, the robotic system 100 can image a predetermined area to identify and / or locate the start position 114. For example, the robotic system 100 can include a source scanner 412 (i.e., an example of the imaging device 222 of FIG. 2) directed at a designated area for pallets or bins for part procurement and / or a pick-up area, such as an area on the receiving side of a conveyor belt. The robotic system 100 can use the source scanner 412 to generate imaging data (e.g., captured images and / or point clouds) of the designated area. The robotic system 100 (e.g., via the processor 202 of FIG. 2) can perform computational vision processing on the imaging results to identify various objects (e.g., boxes or cases) located in the designated area. Details of object identification are described below.
[0045] From the recognized objects, the robotic system 100 can select one (e.g., according to a predefined sequence or set of rules and / or object outline templates) as a target object 112 for performing the task 402. For the selected target object 112, the robotic system 100 can further process the imaging results to determine a start position 114 and / or an initial pose. Details of the selection and position / pose determination are described below.
[0046] The robotic system 100 can further image and process another predefined area to identify the work location 116. In some embodiments, for example, the robotic system 100 can include another example of an imaging device 222 (not shown) configured to generate an image of a placement area, such as an area designated for sorted pallets or bins and / or an infeed region of a conveyor belt. The image can be processed (e.g., via the processor 202) to identify a work location 116 and / or a corresponding pose for placing the target object 112. In some embodiments, the robotic system 100 can identify the work location 116 (based on the image or without the image) according to a predefined sequence or set of rules for stacking and / or placing multiple objects.
[0047] Using the identified start position 114 and / or work position 116, the robotic system 100 can manipulate one or more structures (e.g., robot arm 304 and / or end effector, gripper 302 of FIG. 3A and / or gripper 352 of FIG. 3B, etc.) of a corresponding unit (e.g., transport unit 104) to perform the operation 402. Accordingly, the robotic system 100 (e.g., via the processor 202) can calculate (e.g., via a motion plan prescription or algorithm) a base motion plan 422 corresponding to one or more actions performed by the corresponding unit to perform the operation 402. For example, the base motion plan 422 for the transport unit 104 can include positioning the end effector for pick-up, gripping the target object 112, lifting the target object 112, moving the target object 112 from above the start position 114 to above the work position 116, lowering the target object 112, and releasing the target object 112. Additionally, the base motion plan 422 may include only the actions required to successfully complete the task 402, such as those for an ideal situation (e.g., without any interruptions, errors, unexpected external influences, etc.) or execution.
[0048] In some embodiments, the robotic system 100 can calculate the base motion plan 422 by determining a sequence of commands and / or settings for one or more actuation devices 212 of FIG. 2 that manipulate the robotic arm 304 and / or end effector. For example, the robotic system 100 can use the processor 202 to calculate commands and / or settings for the actuation devices 212 to maneuver the end effector and robotic arm 304 to place the gripper at a specific location about the start position 114, engage and grasp a target object 112 with the end effector, place the end effector at a specific location about the work position 116, and release the target object 112 from the end effector. The robotic system 100 can perform actions to complete the task 402 by manipulating the actuation devices 212 according to the determined sequence of commands and / or settings.
[0049] In some embodiments, the operation 402 may include scanning the target object 112 (e.g., scanning a barcode or QR code), such as for product logging purposes and / or for further identification of the target object 112. For example, the robotic system 100 may include an object scanner 416 (e.g., a further example of the imaging device 222, such as a barcode scanner or a QR code scanner) configured to scan the target object 112, typically at a location between the pick-up area and the placement location. Thus, the robotic system 100 may calculate a base motion plan 422 to place the target object 112 in a scan position in a predefined pose such that a portion or surface of the target object 112 is presented to the object scanner 416.
[0050] To perform operations related to the task 402, the robotic system 100 can track a current position 424 (e.g., a set of coordinates corresponding to a grid used by the robotic system 100) of the target object 112. For example, the robotic system 100 (e.g., via the processor 202) can track the current position 424 according to data from the position sensor 224 of FIG. 2. The robotic system 100 can position one or more portions (e.g., structural members and / or their joints) of the robotic arm 304 in a kinematic chain according to the data from the position sensor 224. The robotic system 100 can further calculate the position and orientation of the end effector based on the position and orientation of the robotic arm 304, thereby calculating the current position 424 of the target object 112 held by the end effector. The robotic system 100 may also track the current position 424 according to an inferred position mechanism based on processing of other sensor readings (e.g., force readings or accelerometer readings), executed actuation commands / settings, and / or associated timing, or a combination thereof.
[0051] Additionally, in performing actions related to the task 402, the robotic system 100 (e.g., via the contact sensor 226) may determine the contact criteria 312 of Figure 3A / 3B. The robotic system 100 may determine or sample the contact criteria 312 at various times, such as after performing a portion of the underlying motion plan 422 (e.g., a gripping action, a moving action, and / or a rotating action), according to a predefined sampling interval or timing, or a combination thereof.
[0052] Based on the contact criteria 312, the robotic system 100 can perform various actions to complete the task 402. In other words, the robotic system 100 can perform fine-grained control / maneuvering of the target object 112 according to the contact criteria 312. For example, if or while the contact criteria 312 meet a first threshold, the robotic system 100 can perform the base motion plan 422. If the contact criteria 312 does not meet the first threshold (e.g., falls below the threshold), the robotic system 100 can deviate from the base motion plan 422 and perform one or more additional and / or different actions. For example, after performing a gripping operation (e.g., by pressing the suction cups 306 in FIG. 3A against the target object 112 or applying a compressive force via the gripper jaws 356 in FIG. 3B to both sides of the target object 112), if the contact criteria 312 is below the grip threshold, the robotic system 100 may perform the gripping operation again after releasing the target object 112 and / or adjusting the position of the end effector. The robotic system 100 may then determine the contact criteria 312 and repeat the re-gripping process up to a predetermined limit if the contact criteria 312 remains below the grip threshold. If the re-gripping attempt results in the contact criteria 312 satisfying the grip threshold, the robotic system 100 may continue with the remainder of the base motion plan 422. In some embodiments, if the robotic system 100 is unable to adequately grip the target object 112 after a limited number of attempts, the robotic system 100 may drop and release the target object 112 and perform the task on a different object (e.g., identify a different object as the target object 112 for the next task).
[0053] Additionally, the robotic system 100 can deviate from the base motion plan 422 if the contact criteria 312 drops below a transition threshold while manipulating the target object 112 (e.g., after performing a gripping motion). In some embodiments, the robotic system 100 can execute a next action (e.g., a controlled drop) based on the current position 424. For example, the robotic system 100 can abruptly lower and / or release the target object 112 if the current position 424 of the target object 112 is above / in one or more predefined areas.
[0054] In some embodiments, the predetermined area designated for the controlled drop operation may include a source drop area 432, a destination drop area 434, and / or one or more transition drop areas 436. The source drop area 432 may correspond to an area enclosed by a boundary of the pick-up area, such as an edge of a pallet or a wall of a bin / cage (e.g., overlapping or offset inward a distance therefrom). Similarly, the destination drop area 434 may correspond to a boundary of the placement area. The transition drop area 436 may include an area between the pick-up area and the placement area where the robotic system 100 may drop or place the targeted object 112 such that the object does not interfere with the performance of the next task. With respect to the example shown in FIG. 4, the transition drop area 436 may be before and / or after the object scanner 416 (i.e., when moving from the pick-up area to the placement area).
[0055] Thus, if the contact criteria 312 does not meet the threshold, the robotic system 100 can calculate an adjusted drop location 442 at one of the drop areas for placing the target object 112. The robotic system 100 can identify the adjusted drop location 442 as a location between the current location 424 and the working location 116 that has sufficient space for placing the target object 112. The robotic system 100 can identify the adjusted drop location 442 as well as the working location 116. Based on the identified adjusted drop location 442 and the current location 424, the robotic system can calculate an adjusted motion plan 444 for moving the target object 112 and placing it at the adjusted drop location 442. Details regarding identifying the adjusted drop location 442 and calculating the adjusted motion plan 444 are described below.
[0056] Operation flow 5 is a flow diagram of a method 500 of operating the robotic system 100 of FIG. 1 according to one or more embodiments of the present technology. The method 500 can be for performing fine-grained control / maneuvering of the target object 112 of FIG. 1 according to the contact criteria 312 of FIG. 3A / FIG. 3B. In other words, the method 500 allows the robotic system 100 to follow and / or deviate from the base motion plan 422 of FIG. 4 (e.g., perform other operations in addition to and / or instead of the base motion plan 422) according to the contact criteria 312. The method 500 can be performed by one or more processors 202 of FIG. 2 based on executing instructions stored in one or more storage devices 204 of FIG. 2.
[0057] In block 502, the robotic system 100 may scan a designated area. In some embodiments, the robotic system 100 may use (e.g., via commands / prompts sent by the processor 202) one or more imaging devices 222 of FIG. 2 (e.g., source scanner 412 of FIG. 4 and / or other area scanners) to generate imaging results (e.g., captured digital images and / or point clouds) of one or more designated areas, such as a pickup area and / or drop area (e.g., source drop area 432 of FIG. 4, destination drop area 434 of FIG. 4, and / or transition drop area 436 of FIG. 4).
[0058] In block 504, the robotic system 100 may identify the target object 112 of FIG. 1 and associated positions (e.g., the start position 114 of FIG. 1 and / or the work position 116 of FIG. 1). In some embodiments, for example, the robotic system 100 (e.g., via the processor 202) may analyze the imaging results according to a pattern recognition mechanism and / or a set of rules to identify the object's outline (e.g., peripheral edges or surface). The robotic system 100 may further identify groupings of object outlines (e.g., according to predefined rules and / or pose templates) that correspond to each unique instance of the object. For example, the robotic system 100 may identify groupings of object outlines that correspond to patterns in color, brightness, depth / position, or combinations thereof (e.g., are the same value or vary at a known rate / pattern) across the object's line. Also, for example, the robotic system 100 may identify groupings of object outlines according to predefined shape / pose templates defined in the master data.
[0059] From the objects recognized at the pick-up position, the robotic system 100 can select one as the target object 112 (e.g., according to a predefined sequence or set of rules and / or a template of the object's outline). For example, the robotic system 100 can select the target object 112 as an object located on a vertex, such as by following a point cloud (indicating distance / location relative to a known location of the source scanner 412). Also, for example, the robotic system 100 can select the target object 112 as an object located at a corner / edge and having two or more surfaces exposed / shown in the imaging results. Furthermore, the robotic system 100 can select the target object 112 according to a predefined pattern (e.g., from left to right, from nearest to furthest, etc., relative to a reference position).
[0060] For a selected target object 112, the robotic system 100 can further process the imaging results to determine a starting position 114 and / or an initial pose. For example, the robotic system 100 can determine an initial pose of the target object 112 based on selecting from a plurality of predefined pose templates (e.g., different possible configurations of the object outline with respect to corresponding object orientations) the one that corresponds to the least difference measurement when compared to a grouping of the object outlines. The robotic system 100 can also determine the starting position 114 by transforming the position of the target object 112 in the imaging results (e.g., a predefined reference point with respect to the determined pose) to a position in a grid used by the robotic system 100. The robotic system 100 can transform the position according to a predefined calibration map.
[0061] In some embodiments, the robotic system 100 can process the imaging results of the drop area to determine the open space between the objects. The robotic system 100 can determine the open space based on mapping the line of objects according to a predefined calibration map that converts the image location to a real-world location and / or coordinates used by the system. The robotic system 100 can determine the open space as the space between the line of objects (and thus the surface of the objects) belonging to different groupings / objects. In some embodiments, the robotic system 100 can determine the appropriate open space for the target object 112 based on measuring one or more dimensions of the open space and comparing the measured dimensions with one or more dimensions of the target object 112 (e.g., as stored in the master data). The robotic system 100 can select one of the appropriate / open spaces as the working position 116 according to a predefined pattern (e.g., from left to right, from nearest to farthest, bottom to top, etc., relative to a reference position).
[0062] In some embodiments, the robotic system 100 can determine the task location 116 without or in addition to processing the imaging results. For example, the robotic system 100 can place objects in a placement area according to a predetermined sequence and location of movements without imaging the area. Also, for example, the robotic system 100 can process the imaging results to perform multiple tasks (e.g., moving multiple objects, such as with respect to objects located in a common layer / row of a stack).
[0063] In block 506, the robotic system 100 can calculate a base plan (e.g., base motion plan 422 of FIG. 4) for performing the task 402 of FIG. 4 with respect to the target object 112. For example, the robotic system 100 can calculate the base motion plan 422 based on calculating a sequence of commands or settings, or a combination thereof, for the actuation device 212 of FIG. 2 that manipulates the robotic arm 304 of FIG. 3A / FIG. 3B and / or the end effector (e.g., the gripper 302 of FIG. 3A and / or the gripper 352 of FIG. 3B). For some tasks, the robotic system 100 can calculate a sequence and settings to steer the robotic arm 304 and / or the end effector to move the target object 112 from the start position 114 to the task position 116. The robotic system 100 may implement a motion plan mechanism (e.g., a process, function, equation, algorithm, computer-generated / readable model, or a combination thereof) configured to calculate a path through space according to one or more constraints, goals, and / or rules. For example, the robotic system 100 may implement a motion plan mechanism (e.g., a process, function, equation, algorithm, computer-generated / readable model, or a combination thereof) configured to calculate a path through space to move a target object 112 from a start position 114 to a work position 116. * Algorithm, D * Algorithms and / or other grid-based searches can be used. The motion plan mechanism can use further processing, functions or equations, and / or transition tables to convert the path into a sequence of commands or settings for the actuation device 212, or a combination thereof. When using the motion plan mechanism, the robotic system 100 can calculate a sequence that manipulates the robot arm 304 and / or end effector to cause the target object 112 to follow the calculated path.
[0064] At block 508, the robotic system 100 may begin executing the base plan. The robotic system 100 may begin executing the base motion plan 422 based on manipulating the actuation device 212 according to a sequence of commands or settings, or a combination thereof. The robotic system 100 may execute a first set of operations of the base motion plan 422. For example, the robotic system 100 may manipulate the actuation device 212 to position the end effector at a calculated position and / or orientation about the start location 114 to grip the target object 112, as shown in block 552. At block 554, the robotic system 100 may manipulate the actuation device 212 to cause the end effector (e.g., the gripper 302 and / or the gripper 352) to engage and grip the target object 112. In some embodiments, the robotic system 100 may perform an initial lift by moving the end effector up a predetermined distance, as shown in block 556. In some embodiments, the robotic system 100 can reset or initialize an iteration counter "i" that is used to track the number of gripping movements.
[0065] In block 510, the robotic system 100 may measure the established grip. The robotic system 100 may measure the established grip based on determining the contact criteria 312 of FIG. 3A / 3B using one or more contact sensors 226 of FIG. 2. The robotic system 100 may determine the contact criteria 312 while executing the base motion plan 422, such as after gripping the target object 112 (block 554) and / or after performing an initial lift (block 556). The robotic system 100 may determine the contact criteria 312 by using one or more contact sensors 226 to measure force, torque, pressure, or a combination thereof at one or more positions on the robot arm 304, one or more positions on the end effector, or a combination thereof. In some embodiments, such as for a grip established by gripper 302 (e.g., a suction gripper including suction cups 306 of FIG. 3A ), contact criterion 312 can correspond to the amount, position, or combination thereof of suction cups 306 contacting and holding a vacuum within a surface of the target object 112. In some embodiments, such as for a grip established by gripper 352 (e.g., an impact gripper including gripper jaws 356 of FIG. 3B ), contact criterion 312 can correspond to a shift of the target object 112 relative to gripper jaws 356.
[0066] At decision block 512, the robotic system 100 can compare the measured grip to a threshold (e.g., an initial grip threshold). For example, the robotic system 100 can compare the contact criteria 312 to a pre-defined threshold. In other words, the robotic system 100 can determine whether the contact / grip is sufficient to continue manipulating (e.g., lifting, moving, and / or reorienting) the target object 112.
[0067] If the measured grip does not meet the threshold, the robotic system 100 can evaluate whether the iteration count for re-gripping the target object 112 has reached the iteration threshold, as shown in decision block 514. While the iteration count is below the iteration threshold, the robotic system 100 can deviate from the base motion plan 422 if the contact criteria 312 does not meet (e.g., is below) the threshold. Thus, in block 520, the robotic system 100 can manipulate the robot arm 304 and / or end effector to perform a re-grip motion not included in the base motion plan 422. For example, the re-grip motion can include a predefined sequence of commands or settings for the actuation device 212, or a combination thereof, that causes the robotic arm 304 to lower the end effector (e.g., a reversal of the initial lift) and / or that causes the end effector to release the target object 112 and re-grip the target object 112. In some embodiments, the robotic arm 304 may be further manipulated to adjust the gripper position after releasing the target object and before re-gripping the target object according to a predetermined sequence. When performing the re-gripping motion, the robotic system 100 may pause execution of the base motion plan 422. After performing the re-gripping motion, the robotic system 100 may increment the iteration count.
[0068] After re-gripping the object, the robotic system 100 may measure the established grip as described above with respect to block 510 and evaluate the established grip as described above with respect to block 512. The robotic system 100 may attempt to re-grip the target object 112 as described above until the iteration count reaches an iteration threshold. Once the iteration count reaches an iteration threshold, the robotic system 100 may stop executing the base motion plan 422 as shown in block 516. In some embodiments, the robotic system 100 may solicit operator input as shown in block 518. For example, the robotic system 100 may generate a notification (e.g., a predefined message) to the operator via the communication device 206 of FIG. 2 and / or the input-output device 208 of FIG. 2. The robotic system 100 may process the task 402 and / or the base motion plan 422 according to the operator input. In some embodiments, the robotic system 100 can cancel or delete the base motion plan 422, record a predetermined status (e.g., an error code) for the corresponding task 402, or a combination thereof. In some embodiments, the robotic system 100 can resume processing by imaging the pick-up / task area (block 502) and / or identifying another item in the pick-up area as a targeted object (block 504), as described above.
[0069] If the measured grip meets the threshold, the robotic system 100 may continue executing the remaining portions / movements of the base motion plan 422, as shown in block 522. Similarly, if the contact criteria 312 meets the threshold after re-gripping the target object 112, the robotic system 100 may resume execution of the interrupted base motion plan 422. Thus, the robotic system 100 may continue executing the sequenced movements of the base motion plan 422 (i.e., movements after gripping and / or initial lifting) by operating the actuation devices 212 and / or transport motors 214 of FIG. 2 according to the remaining sequence of commands and / or settings. For example, the robotic system 100 may transport (e.g., transport vertically and / or horizontally) and / or re-orient the target object 112 according to the base motion plan 422.
[0070] While executing the base motion plan 422, the robotic system 100 can track the current position 424 and / or current orientation of the target object 112. The robotic system 100 can track the current position 424 according to the output from the position sensor 224 of FIG. 2 to identify one or more positions of the robot arm 304 and / or end effector. In some embodiments, the robotic system 100 can track the current position 424 by processing the output of the position sensor 224 with a computer-generated model, process, equation, position map, or combination thereof. Thus, the robotic system 100 can combine the positions or orientations of the joints and structural members and further map the positions to a grid to calculate and track the current position 424. In some embodiments, the base motion plan 422 can use a multilateration system. For example, the robotic system 100 can include multiple beacon sources. The robotic system 100 can measure the beacon signals at one or more positions of the robot arm 304 and / or end effector and use the measurements (e.g., signal strength, timestamp or propagation delay, and / or phase shift) to calculate a separation distance between the signal source and the measured position. The robotic system 100 can map the separation distance to the known positions of the signal sources and calculate the current position of the received position of the signal as the position where the mapped separation distances overlap.
[0071] At decision block 524, the robotic system 100 may determine whether the base plan has been fully executed to completion. For example, the robotic system 100 may determine whether all of the movements (e.g., commands and / or settings) of the base motion plan 422 have been completed. The robotic system 100 may also determine that the base motion plan 422 is complete when the current position 424 matches the work position 116. If the robotic system 100 has completed execution of the base plan, the robotic system 100 may resume processing by imaging the pick-up / work area (block 502) and / or identifying another item in the pick-up area as a targeted object (block 504), as described above.
[0072] Otherwise, in block 526, the robotic system 100 may measure grip (i.e., by determining contact criteria 312) during the transition of the target object 112. In other words, the robotic system 100 may determine the contact criteria 312 while executing the base motion plan 422. In some embodiments, the robotic system 100 may determine the contact criteria 312 according to a sampling period or at a predetermined time. In some embodiments, the robotic system 100 may determine the contact criteria 312 before and / or after executing a predetermined number of commands or settings with the actuation device 212. For example, the robotic system 100 may sample the contact sensor 226 after or during a particular category of movement, such as lifting or rotating. Also, for example, the robotic system 100 may sample the contact sensor 226 when the direction and / or magnitude of the accelerometer output matches or exceeds a predetermined threshold indicative of an abrupt or rapid movement. The robotic system 100 may determine the contact criteria 312 using one or more processes described above (e.g., with respect to block 510).
[0073] In some embodiments, the robotic system 100 can determine the orientation of the gripper and / or the target object 112 and adjust the contact criteria accordingly. The robotic system 100 can adjust the contact criteria based on the orientation to account for the directional relationship between the sensed direction for the contact sensor and the force of gravity applied to the target object depending on the orientation. For example, the robotic system 100 can calculate an angle between the sensed direction and a reference direction (e.g., "down" or the direction of gravity) depending on the orientation. The robotic system 100 can scale or multiply the contact criteria depending on a factor and / or sign corresponding to the calculated angle.
[0074] At decision block 528, the robotic system 100 may compare the measured grip to a threshold (e.g., a transition grip threshold). In some embodiments, the transition grip threshold may be less than or equal to an initial grip threshold for evaluating an initial (e.g., pre-transition) grip on the target object 112. Thus, the robotic system 100 may enforce stricter rules for grip evaluation before initiating transfer of the target object 112. The grip threshold requirement may be initially higher since sufficient contact to pick up the target object 112 is deemed sufficient to transfer the target object 112.
[0075] If the measured grip meets (e.g., is greater than or equal to) the threshold, the robotic system 100 may continue executing the base plan as shown in block 522 and described above. If the measured grip does not meet (e.g., is less than) the threshold, the robotic system 100 may deviate from the base motion plan 422 and execute one or more responsive actions as shown in block 530. Thus, if the measured grip is insufficient relative to the threshold, the robotic system 100 may manipulate the robot arm 304, end effector, or a combination thereof, according to commands and / or settings not included in the base motion plan 422. In some embodiments, the robotic system 100 may execute different commands and / or settings based on the current position 424.
[0076] For purposes of illustration, the responsive action is described using a controlled drop, however, it should be understood that the robotic system 100 can perform other actions, such as by stopping execution of the base motion plan 422, as indicated at block 516, and / or requesting operator input, as indicated at block 518.
[0077] A controlled drop includes one or more actions to place the target object 112 at one of the drop areas (e.g., instead of the working location 116) in a controlled manner (i.e., based on the lowering and / or release of the target object 112, and not as a result of a complete loss of grip). In performing a controlled drop, the robotic system 100 can dynamically (i.e., in real-time and / or while executing the base motion plan 422) calculate different positions, movements or paths, and / or commands or settings of actuation devices according to the current position 424.
[0078] In block 562, the robotic system 100 may calculate an adjusted drop location 442 in FIG. 4 and / or an associated pose for placing the target object 112. In calculating the adjusted drop location 442, the robotic system 100 may identify a drop area (e.g., source drop area 432 in FIG. 4, destination drop area 434 in FIG. 4, or transition drop area 436 in FIG. 4) that is closest to and / or ahead of the current location 424 (e.g., between the current location 424 and the work location 116). The robotic system 100 may identify a suitable drop area based on comparing the current location 424 against boundaries that define the drop areas. In some embodiments, if the current location 424 is in one of the drop areas (e.g., if the target object 112 is still on the source pallet / bin or the target pallet / bin), the robotic system 100 may calculate the adjusted drop location 442 for the current location 424. In some embodiments, if the current location 424 is in one of the drop areas, the robotic system 100 can calculate an adjusted drop location 442 based on adding a predetermined offset distance and / or direction to the current location 424, such as to position the target object 112 away from a shared corridor.
[0079] Also, if the current location 424 is between drop areas (i.e., not at a drop area), the robotic system 100 can calculate the distance to the drop area (e.g., the distance to a representative reference position for the drop area). Thus, the robotic system 100 can identify a drop area closest to and / or in front of the current location 424. Based on the identified drop area, the robotic system 100 can calculate a position therein as the adjusted drop location 442. In some embodiments, the robotic system 100 can calculate the adjusted drop location 442 based on selecting the positions according to a predetermined order (e.g., from left to right, bottom to top, and / or front to back with respect to the reference position).
[0080] In some embodiments, the robotic system 100 can calculate the distance from the current location 424 to an open space in the drop area (e.g., identified in block 504 and / or tracked according to ongoing placement of the object). The robotic system 100 can select an open space in front of and / or closest to the current location 424 as the adjusted drop location 442.
[0081] In some embodiments, before selecting a drop area and / or open space, the robotic system 100 can convert the contact criteria 312 into a maximum transfer distance using a predetermined process and / or equation. For example, the predetermined process and / or equation can estimate a corresponding maximum transfer distance and / or duration before complete grip loss based on various values of the contact criteria 312. Thus, the robotic system 100 can filter available drop areas and / or open spaces that are more than the maximum transfer distance from the current position 424. In some embodiments, if the robotic system 100 fails to identify an available drop area and / or open space (e.g., if accessible drop areas are full), the robotic system 100 can stop executing the base motion plan 422, as indicated at block 516, and / or request operator input, as indicated at block 518.
[0082] In block 566, the robotic system 100 may calculate an adjusted motion plan 444 for transporting the target object 112 from the current position 424 to the adjusted drop location 442. The robotic system 100 may calculate the adjusted motion plan 444 in a manner similar to that described above with respect to block 506. For example, the robotic system 100 may * Or D * can be used to calculate a path from the current location 424 to the adjusted drop location 442 and convert that path into a sequence of commands or settings, or a combination thereof, for the actuation device 212. The actuation device 212 manipulates the robotic arm 304 and / or end effector to move the targeted object 112 to follow that path.
[0083] At block 568, the robotic system 100 can execute the adjusted motion plan 444 in addition to and / or instead of the base motion plan 422. For example, the robotic system 100 can manipulate the actuation device 212 in response to a sequence of commands or settings, or a combination thereof, to move the robotic arm 304 and / or the end effector to move the target object 112 along a path.
[0084] In some embodiments, the robotic system 100 may stop executing the base motion plan 422 and execute the adjusted motion plan 444. Once the target object 112 is located at the adjusted drop location 442 based on the execution of the adjusted motion plan 444 (i.e., execution of the controlled drop is completed), in some embodiments, the robotic system 100 may attempt to re-grip the target object 112 as described above with respect to block 520 and then measure the established grip as described above with respect to block 510. In some embodiments, the robotic system 100 may attempt to re-grip the target object 112 up to a limit of iterations as described above. If the contact criteria 312 meets the initial grip threshold, the robotic system 100 may reverse the adjusted motion plan 444 (e.g., return to the interrupted point / position) and continue executing the remaining portion of the interrupted base motion plan 422. In some embodiments, the robotic system 100 can update and recalculate the adjusted motion plan 444 from the current position 424 (after re-grip) to the task position 116 and execute the adjusted motion plan 444 to complete the performance of the task 402.
[0085] In some embodiments, at block 570, the robotic system 100 can update an area log (e.g., a record of available space and / or placed objects) for the accessed drop area to reflect the placed target object 112. For example, the robotic system 100 can regenerate imaging results for the corresponding drop area. In some embodiments, the robotic system 100 can cancel the remaining operations of the base motion plan 422 after performing the controlled drop and placing the target object 112 at the adjusted drop location 442. In one or more embodiments, the transition drop area 436 can include a pallet or bin placed on top of one of the transport units 106 of FIG. 1. At a designated time (e.g., if the pallet / bin is full and / or if a subsequent pallet / bin is delayed), the corresponding transport unit can move from the drop area to the pick-up area. Thus, the robotic system 100 can perform the method 500 again, thereby re-identifying the dropped items as targeted objects 112 and transferring them to the corresponding work locations 116.
[0086] Once the target object 112 is located at the adjusted drop location 442, the robotic system 100 may repeat the method 500 with respect to the new target object. For example, the robotic system 100 may determine the next object in the pickup area as the target object 112, calculate a new base motion plan for transporting the new target object, etc.
[0087] In some embodiments, the robotic system 100 can include a feedback mechanism that updates the path calculation mechanism based on the contact criteria 312. For example, once the robotic system 100 performs a re-grip operation on the target object 112 at an adjusted position (e.g., as described above with respect to block 520), the robotic system 100 can store the end effector position that produced the contact criteria 312 that satisfied a threshold (e.g., as described above with respect to block 512). The robotic system 100 can store the positions relative to the target object 112. The robotic system 100 can analyze the stored positions (e.g., using an execution window to analyze a set of recent operations) to re-grip the target object 112 if a threshold number of lost grip and / or successful re-grip operations is reached. When a predetermined number of re-grip operations have occurred for a particular object, the robotic system 100 can update the motion plan mechanism to position the gripper at a new position (e.g., the position corresponding to the highest number of successes) relative to the target object 112.
[0088] Based on the operations depicted in block 510 and / or block 526, the robotic system 100 (e.g., via the processor 202) can track progress of the execution of the base motion plan 422. In some embodiments, the robotic system 100 can track progress of the horizontal movement of the target object 112. For example, as shown in FIG. 5, the robotic system 100 can track progress based on grip measurements established before the horizontal movement is initiated (block 510) and based on grip measurements during the movement after the horizontal movement is initiated (block 526). Thus, the robotic system 100 can selectively generate a new set of actuator commands, actuator settings, or a combination thereof (i.e., different from the base motion plan 422) based on such progress.
[0089] In other embodiments, for example, the robotic system 100 can track progress based on tracking commands, settings, or combinations thereof communicated and / or implemented by the actuation device 212. Based on the progress, the robotic system 100 can selectively generate a new set of actuator commands, actuator settings, or combinations thereof to perform a re-grip response action and / or a controlled drop response action. For example, if the progress is before any horizontal movement of the target object 112, the robotic system 100 can select an initial grip threshold and perform (e.g., via a function call or jump instruction) the operations shown in block 512 et seq., and if the progress is after a horizontal movement of the target object 112, the robotic system 100 can select a transition grip threshold and perform (e.g., via a function call or jump instruction) the operations shown in block 528 et seq.
[0090] Exercising fine-grained control / maneuvering of the target object 112 (i.e., choosing to follow or deviate from the base motion plan 422) with respect to the contact criteria 312 increases the efficiency, speed, and accuracy of transferring the object. For example, if the contact criteria 312 is below the initial grip threshold, re-gripping the target object 112 reduces the likelihood of a loss of grip during transfer, thereby reducing the number of objects lost or unintentionally dropped during transfer. Furthermore, each lost object requires human intervention to correct the result (e.g., moving the lost object out of the motion path for the next task, investigating the lost object for damage, and / or completing the task related to the lost object). Thus, reducing the number of lost objects reduces the human effort required to perform the task and / or the entire operation.
[0091] Furthermore, by placing the target object 112 in a designated area when the contact criteria 312 is below the transition grip threshold, the number of untracked obstacles and damaged items is reduced. Based on the calculation of the adjusted drop location 442 and the execution of the controlled drop, the target object 112 can be placed in a known location. Thus, the number of lost objects that end up in random untracked locations is reduced, which further reduces the possibility that the lost object will end up in a location that blocks or prevents the execution of a subsequent task. Furthermore, the robotic system 100 can avoid frequently used path segments when calculating the adjusted drop location 442 as described above, which further reduces the impact of poor grip. Furthermore, since the target object 112 is placed in a controlled manner instead of being dropped from a height by chance, the target object 112 contacts the placement location with less force. Thus, by executing the controlled drop, the damage caused by the loss of the object is significantly reduced.
[0092] summary The above-described embodiments of the disclosed technology are not intended to be exhaustive or to limit the disclosed technology to the precise form disclosed above. Although specific embodiments of the disclosed technology are described above for illustrative purposes, various equivalent variations are possible within the scope of the disclosed technology, as those skilled in the art will recognize. For example, while processes or blocks are provided in a given order, alternative implementations may perform routines having steps or employ systems having blocks in different orders, and some processes or blocks may be deleted, moved, added, subdivided, combined, and / or modified to provide alternative or subcombinations. Each of these processes or blocks may be performed in a variety of different ways. Also, while processes or blocks are illustrated as being performed sequentially, these processes or blocks may instead be performed or executed in parallel, or may be performed at different times. Furthermore, any specific numbers set forth herein are merely examples, and alternative implementations may employ different values or ranges.
[0093] These and other changes can be made to the disclosed technology in light of the above detailed description. Although the detailed description describes a specific embodiment of the disclosed technology and the best mode contemplated, the disclosed technology can be implemented in many ways, regardless of how detailed the above description is in the text. The details of the system may vary significantly in its specific implementation, yet still be encompassed by the technology disclosed herein. As stated above, a particular term used in describing a particular feature or aspect of the disclosed technology is not to be taken as implying that the term is redefined herein to be limited to any of the particular characteristics, features, or aspects of the disclosed technology with which the term is associated. Thus, the present invention is not limited except as by the appended claims. In general, the terms used in the appended claims are not to be construed to limit the disclosed technology to the particular embodiments disclosed in the specification, unless the above detailed description section explicitly defines such terms.
[0094] While certain aspects of the invention are set forth below in certain claim forms, the applicant contemplates the various aspects of the invention in any number of claim forms, and the applicant therefore reserves the right to pursue such additional claim forms in this application or any continuing application after filing of this application.
Claims
1. 1. A method of operating a robotic system, comprising: generating a base motion plan for controlling an end effector to transport a target object from a start position to a working position; receiving a contact metric indicative of a measure of a grip by the end effector on the target object after moving the target object along a lateral direction during execution of a portion of the base motion plan during which the target object is being transported; determining whether the contact criterion does not meet a threshold; and selectively generating, based on the determining, an additional set of commands and / or settings for manipulating the end effector to perform one or more responsive actions that differ from the base motion plan; and A method comprising:
2. the contact criterion represents a measurement of the grip on the target object provided by (1) a set of suction cups of a suction gripper or (2) an impact gripper having a set of jaws that apply a compressive force to opposing portions of the target object; Determining whether the contact criterion does not satisfy the threshold value includes comparing the contact criterion to the threshold value; The threshold value is (1) the amount, location, or combination thereof of the suction cups that contact the surface of the target object and hold a vacuum therein; and / or (2) a shift of the target object relative to the jaws; The method of claim 1 , wherein
3. tracking progress of the execution of the underlying motion plan; The method of claim 1 , wherein selectively generating the additional sets comprises generating the additional sets based on the tracked progress.
4. the additional set includes commands and / or settings in addition to the commands and / or settings in the base motion plan; The method of claim 1 , wherein the additional set is for re-gripping the target object.
5. The additional set includes: Releasing the target object from the end effector; and regrip the target object with the end effector; and The method according to claim 1, for carrying out the steps of:
6. The method of claim 5 , wherein the additional set further comprises commands and / or settings for adjusting a position of the end effector between the release and the re-gripping.
7. Aborting execution of the base motion plan if the contact criterion does not meet the threshold; and resuming execution of the base motion plan after performing the additional set to regrip the target object; The method of claim 5 further comprising:
8. 2. The method of claim 1, wherein selectively generating the additional set includes deriving an adjusted motion plan for manipulating the end effector to follow a path that differs from a path of the base motion plan.
9. tracking a current position of the target object during execution of the base motion plan; Deriving the adjusted motion plan includes: selecting a drop area based on comparing the current location to an origin drop area, a destination drop area, and / or a transition drop area; deriving the adjusted motion plan to transport the target object from the current location to an adjusted drop location within the selected drop area instead of the working location; The method of claim 8 , comprising:
10. Selecting the drop area comprises: determining whether the current location is within a drop area of the source associated with a boundary of a container or pallet at the start location; selecting the source drop area based on whether the current location is within the source drop area, such that the target object is placed at the adjusted drop location that is different from the start location; 10. The method of claim 9, comprising:
11. Selecting the drop area comprises: determining whether the current location is within a destination drop area associated with a boundary of a container or pallet at the work location; selecting a destination drop area based on the determination to intentionally place the target object at the adjusted drop location within the destination drop area; 10. The method of claim 9, comprising:
12. Selecting the drop area comprises: determining whether the current location is between the source drop area and the destination drop area; selecting a transition drop area based on the determination to intentionally place the target object at the adjusted drop location within the transition drop area; 10. The method of claim 9, comprising:
13. Determining whether the contact criterion does not satisfy the threshold includes comparing the contact criterion to a transition grip threshold; The method of claim 8 , wherein the transition grip threshold is less than an initial grip threshold associated with an initial gripping of the target object prior to horizontally moving the target object.
14. A tangible, non-transitory computer readable medium having processor instructions stored thereon, comprising: The processor instructions, when executed by a robotic system via its one or more processors, cause the robotic system to: generating a base motion plan for controlling an end effector to transport a target object from a start position to a working position; receiving a contact metric indicative of a measure of a grip by the end effector on the target object after moving the target object along a lateral direction during execution of a portion of the base motion plan during which the target object is being transported; selectively generating an additional set of commands and / or settings based on the contact criteria for manipulating the end effector to perform one or more responsive actions that differ from the base motion plan; A tangible, non-transitory computer-readable medium for causing
15. the additional set includes commands and / or settings in addition to the commands and / or settings in the base motion plan; The tangible, non-transitory computer readable medium of claim 14 , wherein the additional set is for re-gripping the target object.
16. The tangible, non-transitory computer-readable medium of claim 14 , wherein selectively generating the additional sets comprises deriving adjusted motion plans that deviate from the base motion plan.
17. The processor instructions cause the robotic system to: tracking a current position of the target object during execution of the base motion plan; selecting a drop area based on comparing the current location to an origin drop area, a destination drop area, and / or a transition drop area; deriving the adjusted motion plan to transport the target object from the current location to an adjusted drop location within the selected drop area instead of the working location; 20. The tangible, non-transitory computer readable medium of claim 16, further comprising:
18. At least one processor; at least one memory device coupled to the at least one processor and configured to store instructions; The instruction: generating a base motion plan for controlling an end effector to transport a target object from a start position to a working position; receiving contact metrics during execution of a portion of the base motion plan during which the target object is being transported, the contact metrics indicating a measurement of a grip by the end effector on the target object after moving the target object along a lateral direction; determining whether the contact criterion does not meet a threshold; and selectively generating, based on the determining, an additional set of commands and / or settings for manipulating the end effector to perform one or more responsive actions distinct from the base motion plan; The robot system is executable by the processor to perform the steps of:
19. 20. The robotic system of claim 18, further comprising a communications circuit coupled to the at least one processor and configured to communicate with a robotic unit including the end effector.
20. The communication circuit includes: communicating the contact criteria received from the robotic unit to the at least one processor; communicating the base motion plan and the additional set of commands and / or settings from the at least one processor to the robotic unit for execution in the robotic unit; [0023] 20. The robotic system of claim 19, wherein the contact metric is indicative of a measurement of the grip measured by a contact sensor on the end effector.
21. A method of operating a robotic system, comprising: generating a base motion plan for controlling an end effector to transport a target object from a start position to a working position; receiving contact metrics indicative of a measurement of a grip by the end effector on a target object after moving the target object along a lateral direction during execution of a portion of the base motion plan during which the target object is actively moving in physical space; determining whether the contact criterion does not meet a threshold; and selectively generating, based on the determining, an additional set of commands and / or settings for manipulating the end effector to perform one or more responsive actions that differ from the base motion plan; and A method comprising:
Citation Information
Patent Citations
Device and method of controlling transfer robot
JP2010172968A
Workpiece transfer system, workpiece transfer method, and program
JP2013154457A
Suction detection device
JP2014113667A
Control device of robot carrying work
JP2014210311A
Controller, component transfer device, control method, component transfer method, and computer program
JP2016072268A