A robotic system using dynamic motion planning to transport unregistered objects.

By using a vertically oriented sensor to determine the height of unregistered objects, the robotic system optimizes transfer paths for safe and efficient handling, addressing the challenge of transporting objects with unknown dimensions.

JP7723930B2Active Publication Date: 2025-08-15MUJIN INC
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
JP2024564641
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-10-24
Filing Date
2023-10-24
Publication Date
2025-08-15
Estimated Expiration
2043-10-24

AI Technical Summary

Technical Problem

Robotic systems struggle to efficiently transport unregistered objects with unknown dimensions, as they lack the sophistication to determine the precise positioning and release height, leading to potential damage or crushing of the objects during transfer.

Method used

Incorporating a vertically oriented sensor to determine the height of unregistered objects, allowing the robotic system to calculate an optimal approach and return path for safe placement and release, adjusting for object characteristics such as weight and fragility.

Benefits of technology

Enables precise and efficient transfer of unregistered objects by determining the object's height and optimizing the robotic system's motion path, reducing the risk of damage and improving transfer efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007723930000001
    Figure 0007723930000001
  • Figure 0007723930000002
    Figure 0007723930000002
  • Figure 0007723930000003
    Figure 0007723930000003
Patent Text Reader

Abstract

This specification discloses a robotic system (and related systems, devices, and methods) that uses dynamic motion planning for transferring unregistered objects. In one embodiment, a method for operating the robotic system includes (i) receiving sensor data representing a distance between a sensor of the robotic system and a target object engaged by an end effector of the robotic system, and (ii) determining a height of the target object based at least in part on the sensor data. The method may further include updating a motion plan for placing the target object at a destination location based at least in part on the height of the target object. The updated motion plan may include commands, settings, or combinations thereof for operating a robotic arm and end effector to (i) approach the destination location and (ii) disengage the target object to place the target object at the destination location.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATION(S) This application claims the benefit of U.S. Provisional Patent Application No. 63 / 418,637, filed October 24, 2022, which is incorporated herein by reference in its entirety.

[0002] The present technology is directed generally to robotic systems, and more particularly to systems, processes, and techniques for object detection. For example, some embodiments of the present technology are directed to robotic systems that use dynamic motion planning for transporting unregistered objects (e.g., objects with initially unknown dimensions), such as robotic systems that use dynamic approach, departure, and / or return path motion planning based on sensor data acquired using upward-looking sensors. [Background technology]

[0003] With ever-increasing performance and decreasing costs, many robots (e.g., machines configured to automatically / autonomously perform physical actions) are now widely used in many fields. For example, robots may be used to perform various tasks (e.g., manipulating or transporting objects through space) in manufacturing and / or assembly, packing and / or packaging, conveying and / or shipping, etc. In performing tasks, robots can replicate human actions, thereby replacing or reducing human intervention that would otherwise be required to perform dangerous or repetitive tasks.

[0004] However, despite technological advances, robots often lack the sophistication necessary to replicate the human interactions required to perform larger and / or more complex tasks. Thus, there remains a need for improved techniques and systems for managing the behavior and / or interactions between robots. [Brief explanation of the drawings]

[0005] [Figure 1] FIG. 1 is a partial, schematic perspective view of an exemplary environment in which a robotic system with a cooperative transfer mechanism may operate, in accordance with various embodiments of the present technique; [Figure 2] FIG. 1 is a partial schematic block diagram of a robotic system configured in accordance with various embodiments of the present technology. [Figure 3] 1 is a partial schematic diagram of a motion plan for a robotic system configured in accordance with various embodiments of the present technology. [Figure 4] FIG. 1 is a partial, schematic perspective view of another environment in which a robotic system with a cooperative transfer mechanism may operate, in accordance with various embodiments of the present technology; [Figure 5] FIG. 5 is a partial schematic side view of the robotic system of FIG. 4 showing an example of an end effector of the robotic system positioned above or near a destination location on a conveyor, in accordance with various embodiments of the present technology. [Figure 6] FIG. 5 is a partial schematic side view of the robotic system of FIG. 4 placing a target object at a destination location on a conveyor, in accordance with various embodiments of the present technology. [Figure 7A] 1 is a partially schematic side perspective view of a sensor configured in accordance with various embodiments of the present technology; [Figure 7B] FIG. 7B is a partial schematic top perspective view of the sensor of FIG. 7A. [Figure 8] 5A-C are partial schematic side views of the end effector of the robotic system of FIG. 4 placing a target object at a destination location on a conveyor, in accordance with various embodiments of the present technology. [Figure 9] 5A-C are partial schematic side views of the end effector of the robotic system of FIG. 4 placing another target object at a destination location on a conveyor, in accordance with various embodiments of the present technology. [Figure 10] FIG. 1 shows a flow diagram illustrating a method of operating a robotic system in accordance with various embodiments of the present technology. DETAILED DESCRIPTION OF THE INVENTION

[0006] Disclosed herein are robotic systems (and related systems, devices, and methods) that use dynamic motion planning to transfer unregistered objects. Unregistered objects may include objects with one or more characteristics or attributes that are not included in, stored in, or registered with the master data of the robotic system used to transfer the unregistered objects between source and destination locations. Additionally or alternatively, unregistered objects may include objects with one or more characteristics or attributes that may be falsely detected, occluded, altered, and / or otherwise determined to be different from the characteristics included in the master data. As a result, unregistered objects may be (at least initially) “unknown” to the robotic system. Unknown characteristics or attributes of an unregistered object may include physical dimensions (e.g., the length and / or width of one or more sides of the target object), shape, center of gravity location, weight, SKU, vulnerability rating, etc. An example of a characteristic of an unregistered target object that may be unknown to the robotic system is the target object's height.

[0007] Without knowledge of the target object's characteristics, it may be difficult for a robotic system to position the target object at a destination location. For example, while it may be possible to (i) engage the top surface of the target object using an end effector of the robotic system at a source location and (ii) transfer the target object toward the destination location (e.g., based on a maximum possible height and / or a minimum possible height for the target object), the robotic system may not know the location of the bottom surface of the target object. Thus, the robotic system may not be able to determine how far the target object must be lowered toward the destination location before it is dislodged (e.g., dropped) at the destination location. Releasing a shorter object at a higher height may increase the drop distance, potentially increasing the risk of damage to the object and its contents. Alternatively, excessive lowering of the grasped object may crush the grasped object and its contents.

[0008] To address this issue, the robotic system of the present technology may include a sensor (e.g., a distance sensor) with a vertically oriented field of view. While transferring an unregistered target object between a source position and a destination position, the robotic system of the present technology may present the target object to the vertically oriented sensor by positioning the target object within the vertically oriented field of view of the sensor. As a result, the sensor can be used to determine the distance between the target object and the sensor (e.g., the second distance). Additionally, assuming that (i) the position of the sensor and (ii) the position of the end effector grasping the target object are known to the robotic system, the robotic system can determine the distance between the end effector and the sensor at the time the target object is presented to the sensor (e.g., the first distance). Thus, the robotic system can determine the height of the target object by determining the difference between the first distance and the second distance.

[0009] Knowledge of the target object's height and the end effector's position allows the robotic system to determine the location of the target object's bottom surface. As a result, the robotic system can determine an approach path for the robotic system's robot arm and end effector to place the target object at a destination location. In some embodiments, the robotic system may optimize the approach path and / or the speed at which the robotic arm and end effector move along the approach path, for example, to reduce or minimize the time it takes the robotic system to place the target object at a destination location.

[0010] Additionally, in some embodiments, the robotic system may determine a height above the destination location (e.g., a release height) at which an end effector of the robotic system can safely release (e.g., drop) the target object to place it at the destination location. The release height may depend on one or more characteristics of the target object. For example, the robotic system may determine a lower release height for a heavier or more fragile target object and / or a higher release height for a lighter or less fragile target object.

[0011] Furthermore, knowledge of the target object's height enables the robotic system to determine a future position of the end effector corresponding to a time when the bottom surface of the target object will be positioned at the target object's release elevation. Thus, the robotic system can dynamically calculate a return path for returning the end effector to the start position directly from the end effector's future position. As a result, the time it takes the robotic system to return the end effector to the start position can be less than the time it takes the robotic system to first elevate the end effector to a pre-calculated / pre-determined height (e.g., to avoid a horizontal line sensor or other components of the robotic system) and then move the end effector along the return path to the start position following placement of the target object at the destination location.

[0012] In the following description, numerous specific details are set forth to provide a thorough understanding of the technology of the present disclosure. In other embodiments, the techniques introduced herein can be practiced without these specific details. In other instances, well-known features, such as specific functions or routines, are not described in detail herein to avoid unnecessarily obscuring the present disclosure. References to "an embodiment," "one embodiment," or the like in this detailed description mean that the particular feature, structure, material, or attribute being described is included in at least one embodiment of the present disclosure. Thus, appearances of such phrases herein do not necessarily all refer to the same embodiment. On the other hand, such references are not necessarily mutually exclusive. Furthermore, particular features, structures, materials, or attributes can be combined in any suitable manner in one or more embodiments. It should be understood that the various embodiments shown in the figures are merely illustrative representations and are not necessarily drawn to scale.

[0013] For clarity, some details describing structures or processes that are well known and often associated with robotic systems and subsystems, but that may unnecessarily obscure some important aspects of the disclosed technology, are not included in the following description. Moreover, although the following disclosure illustrates several embodiments of different 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 that have additional elements or that lack some of the elements described below.

[0014] Many embodiments or aspects of the present 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 art will appreciate that the disclosed technology can be implemented in computer or controller systems other than those shown and described below. The techniques described herein can be embodied in a special-purpose computer or data processor that is specifically programmed, configured, or constructed to execute one or more of the computer-executable instructions described below. Accordingly, the terms "computer" and "controller," as used generally herein, refer to any data processor, including Internet appliances and handheld devices (including palmtop computers, wearable computers, cellular or mobile phones, multiprocessor systems, processor-based or programmable consumer electronics, network computers, minicomputers, etc.). Information processed by these computers and controllers can be presented on any suitable display medium, including a liquid crystal display (LCD). Instructions for performing computer-executable or controller-executable tasks can be stored or embodied in 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.

[0015] 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 as synonyms for each other. Rather, in particular embodiments, "connected" may be used to indicate that two or more elements are in direct contact with each other. Unless otherwise clearly indicated by 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 therebetween), that two or more elements cooperate or interact with each other (e.g., in a causal relationship such as signal transmission / reception or function call), or both.

[0016] Suitable environment 1 is a partial schematic perspective view of an exemplary environment 150 in which a robotic system 100 with a cooperative transfer mechanism, according to various embodiments of the present technology, may operate. The robotic system 100 may include and / or communicate with one or more units (e.g., robots) configured to perform one or more tasks. Aspects of the cooperative transfer mechanism may be practiced or performed by the various units.

[0017] In the illustrated embodiment, the robotic system 100 may include an unloading unit 102, a transfer unit 104 (e.g., a palletizing robot and / or a piece-picker robot), a transport unit 106, a loading unit 108, or a combination thereof, in a warehouse or logistics / shipping hub. Each unit in the robotic system 100 may be configured to perform one or more tasks. Tasks may be combined in sequence to perform actions to achieve a goal, such as unloading objects from a truck or van and storing them in a warehouse, or unloading objects from a storage location and preparing them for shipment. In some embodiments, a task may include placing objects at a destination location (e.g., on a pallet and / or inside a bin / cage / box / case). As described in more detail below, the robotic system 100 may derive individual placement positions / or orientations and calculate corresponding motion plans, or a combination thereof, to place and / or stack objects. Each unit may be configured to perform a series of actions (e.g., operate one or more components therein) to accomplish the task.

[0018] In some embodiments, a task may include manipulating (e.g., moving and / or reorienting) a target object 112 (e.g., one of a package, box, case, cage, pallet, etc. corresponding to the task being performed) from a start / source location 114 to a task / destination location 118. For example, an unloading unit 102 (e.g., a devanning robot) may be configured to transfer a target object 112 from a position in a transport vehicle (e.g., a truck) to a position on a conveyor 107. Also, a transfer unit 104 may be configured to transfer a target object 112 between one position (e.g., a conveyor 107, a pallet, or a bin) and another position (e.g., a pallet, a bin, another conveyor, etc.). For example, a transfer unit 104 (e.g., a palletizing robot) can be configured to transfer target objects 112 from a source location (e.g., a pallet, bin, pickup area, and / or conveyor where the transfer unit 104 engages the target object 112) to a destination location (e.g., a pallet, bin, drop-off area, and / or conveyor where the transfer unit 104 places or disengages the target object 112). A transport unit 106 (e.g., a conveyor, an automated guided vehicle (AGV), a shelf-mounted robot, etc.) can transfer target objects 112 between (a) an area associated with the transfer unit 104 and (b) an area associated with the loading unit 108. The loading unit 108 can transfer target objects 112 between the transfer unit 104 and a storage location (e.g., a location on a shelf) (e.g., by moving a pallet carrying the target object 112).

[0019] In some embodiments, the robotic system 100 can include sensors 116, such as two-dimensional and three-dimensional imaging sensors. For example, the robotic system 100 can include sensors 116 positioned above the source location, such as one or more top-down, facing sensors 6. The sensors 116 positioned above the source location can be used, for example, to recognize the object 112 (e.g., an unknown object, an unregistered object, a known object, and / or a registered object) at the source location and / or calculate the dimensions (e.g., the length and / or width of the top surface) of the object 112. In some embodiments, the robotic system 100 can process sensor information of the top surface of the target object 112 captured using the sensors 116 to calculate detection results that may or may not correspond to registered objects (e.g., objects having corresponding information included in master data).

[0020] For illustrative purposes, robotic system 100 is described in the context of a packing and / or shipping center. However, it will be understood that robotic system 100 can be configured to perform tasks in other environments / purposes, such as manufacturing, assembly, storage / warehousing, healthcare, and / or other types of automation. It will also be understood that 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 may include a loading unit (e.g., unloading unit 102), a depalletizing unit (e.g., transfer unit 104) for transferring objects from a cage cart or pallet to a conveyor (e.g., conveyor 107 or other conveyor) or other pallet, a container shuffling unit for transferring objects from one container to another, a packaging unit for wrapping / packaging objects, a sorting unit for grouping objects according to one or more characteristics of the objects, a piece-picking unit (e.g., unloading unit 102, transfer unit 104, or another unit) for separately manipulating (e.g., sorting, grouping, and / or transferring) objects according to one or more characteristics of the objects, or a combination thereof.

[0021] The right system 2 is a partial schematic block diagram of a robotic system 200 (e.g., robotic system 100 of FIG. 1 or another robotic system) configured in accordance with various embodiments of the present technology. In some embodiments, the robotic system 200 (e.g., one or more 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 200 may include a communication path 218 (e.g., a bus), such as a system bus, a Peripheral Component Interconnect (PCI) bus or PCI-Express bus, a HyperTransport or Industry Standard Architecture (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 known as "Firewire"). Also, for example, the robotic system 200 may include bridges, adapters, processors, or other signal-related devices to provide wired connections between devices. Wireless connections may be based on, for example, cellular communication protocols (e.g., 3G, 4G, LTE, 5G, etc.), wireless local area network (LAN) protocols (e.g., Wireless Fidelity (Wi-Fi)), 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.

[0022] 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., computer memory). In some embodiments, the processor 202 may be included in a separate / standalone controller operatively coupled to other electronic / electrical devices shown in FIG. 2 and / or the robotic unit shown in FIG. 1. The processor 202 may execute program instructions to control / interface with other devices, thereby causing the robotic system 200 to perform actions, tasks, and / or operations.

[0023] The storage device 204 may include a non-transitory computer-readable medium on which program instructions (e.g., software 210) are stored. Some examples of the 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 drives). Other examples of the storage device 204 may include portable memory and / or cloud storage devices.

[0024] In some embodiments, the storage device 204 can be used to further store and provide access to processing results and / or predetermined data / thresholds. For example, the storage device 204 can store master data 246, which includes descriptions of objects (e.g., boxes, cases, and / or products) that may be manipulated by the robotic system 200. In one or more embodiments, the master data 246 can include the dimensions, shape (e.g., templates for potential 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, other physical / visual characteristics, or combinations thereof, of the objects expected to be manipulated by the robotic system 200. In some embodiments, the master data 246 can include operation-related information about the objects, such as the center of gravity (CoM) location of each object, expected sensor measurements (e.g., of force, torque, pressure, and / or contact measurements) corresponding to one or more actions / manipulations, or combinations thereof.

[0025] The communications device 206 may include circuitry configured to communicate with external or remote devices over a network. For example, the communications device 206 may include communications input / output devices 248, such as a receiver, transmitter, transceiver, modulator / demodulator (modem), signal detector, signal encoder / decoder, connector port, network card, etc. The communications device 206 may be configured to transmit, receive, and / or process electrical signals according to one or more communications protocols (e.g., Internet Protocol (IP), wireless communication protocols, etc.). In some embodiments, the robotic system 200 may use the communications device 206 to exchange information between units of the robotic system 200 and / or with systems or devices external to the robotic system 200 (e.g., for purposes of reporting, data collection, analysis, and / or troubleshooting).

[0026] The input and output devices 208 may include user interface devices configured to communicate information to and / or receive information from a human operator. For example, the input and output devices 208 may include a display 250 and / or other output devices (e.g., speakers, haptic circuitry, or haptic feedback devices) for communicating information to a human operator. The input and output devices 208 may also include control or receiving devices, such as a keyboard, mouse, touchscreen, microphone, user interface (UI) sensors (e.g., a camera for receiving motion commands), and wearable input devices. In some embodiments, the robotic system 200 may use the input and output devices 208 to interact with a human operator when performing actions, tasks, operations, or combinations thereof.

[0027] The robotic system 200 may include physical or structural members (e.g., robotic manipulator arms) connected by joints for motion (e.g., rotational and / or translational displacement). The structural members and joints may form a kinematic chain configured to manipulate an end effector (e.g., a gripper) configured to perform one or more tasks (e.g., grasping, rotating, welding, etc.) depending on the use / operation of the robotic system 200. The actuation devices 212 (e.g., motors, actuators, wires, artificial muscles, electroactive polymers, etc.) may be configured to drive or manipulate (e.g., displace and / or reorient) the structural members around or at the corresponding joints. In some embodiments, the transport motor 214 may be configured to transport the corresponding unit / chassis from place to place.

[0028] The sensors 216 may be configured to obtain information used to perform various tasks, such as manipulating structural members and / or transporting objects. The sensors 216 may include devices configured to detect or measure one or more physical characteristics (e.g., the state, condition, and / or position of one or more structural members / joints thereof) of the robotic system 200, one or more objects (e.g., individual objects 112 in FIG. 1 ), and / or the surrounding environment. Some examples of the sensors 216 may include accelerometers, gyroscopes, force sensors, weight sensors or transducers, distance sensors, image sensors, strain gauges, tactile sensors, torque sensors, position encoders, etc.

[0029] In some embodiments, for example, the sensors 216 may include one or more imaging devices 222 (e.g., visual and / or infrared cameras, 2D and / or 3D imaging cameras, distance measuring devices such as lidar or radar, etc.) configured to detect the surrounding environment. The imaging devices 222 may generate a representation of the detected environment, such as a digital image and / or a point cloud, which may be processed via machine / computer vision (e.g., for automated inspection, robotic guidance, or other robotic applications). The robotic system 200 (e.g., via the processor 202) may process the digital image and / or point cloud to identify the target object, one or more dimensions of the target object (e.g., length, width, and / or height dimensions), a pickup / start / source location, a drop / end / destination / task location, a pose of the target object, a confidence measure for the start location and / or pose, or a combination thereof.

[0030] To manipulate a target object, the robotic system 200 (e.g., via the various circuits / devices described above) may capture and analyze image data of a specified range (e.g., a pick-up location, such as in a truck, on a pallet, or on a conveyor belt) to identify the target object and its start position. Similarly, the robotic system 200 may capture and analyze image data of another specified range (e.g., a drop-off location for placing the target object on a conveyor, a location for placing the target object in a container, or a location on a pallet for stacking) to identify a task position for the target object. For example, the imaging device 222 may include one or more cameras configured to generate image data of a pick-up range and / or one or more cameras configured to generate image data of a task range (e.g., a drop-off range). Based on the image data, the robotic system 200 can determine a start position, a task position, an associated pose, a packing / placement position, and / or other processing results, as described below.

[0031] In some embodiments, sensors 216 may include contact sensors 226 (e.g., pressure sensors, force sensors, strain gauges, piezoresistive / piezoelectric sensors, capacitance sensors, elasto-resistive sensors, and / or other tactile sensors) configured to measure one or more characteristics associated with direct contact between physical structures or surfaces. Contact sensors 226 can measure characteristics corresponding to the grasp of an end effector (e.g., a gripper) on a target object. Accordingly, contact sensors 226 can output a contact amount representing a quantified quantity (e.g., a measured force, torque, position, etc.) corresponding to the degree of contact or adhesion between the gripper and the target object. For example, the contact amount can include one or more force or torque measurements associated with a force applied by the end effector to the target object.

[0032] In these and other embodiments, for example, sensors 216 may include position sensors 224 (e.g., position encoders, potentiometers, distance sensors, etc.) configured to detect the position of structural members (e.g., robotic arms and / or corresponding end effectors of robotic system 200), corresponding joints, and / or other objects (e.g., individual objects 112 of FIG. 1 , target objects, other obstacles, etc.) of robotic system 200. Robotic system 200 may use position sensors 224 to track the position and / or orientation of structural members, joints, and / or other objects while performing various tasks. In these and still other embodiments, sensors 216 may include weight sensors (e.g., weight transducers), such as to determine the weight of a target object grasped by an end effector of robotic system 200.

[0033] System Operation 3 is a partial schematic diagram of a motion plan 330 for a robotic system 300 (e.g., robotic system 100 of FIG. 1 , robotic system 200 of FIG. 2 , or another robotic system) configured in accordance with various embodiments of the present technology. The motion plan 330 may represent a series of actions or movements to be performed by the robotic system 300 (e.g., by one of the units described above, such as the robot arm 305 and / or end effector 309 of the transfer unit 304) to achieve a goal or complete a task. As shown in FIG. 3 , for example, the motion plan 330 may be generated and / or implemented to move a target object 312 from a source location 314 (e.g., a position on or in a conveyor, pallet, bin, etc.) to a task or destination location 318 (e.g., another position on or in a conveyor, pallet, bin, etc.).

[0034] In some embodiments, the robotic system 300 may generate detection results corresponding to objects at the source location 314. For example, the robotic system 300 may image or monitor a predetermined area to identify and / or locate the source location 314. As a specific example, the robotic system 300 may include a source sensor (e.g., examples of sensors 116 in FIG. 1 and / or 216 in FIG. 2 ) directed at a pickup area, such as a sourcing pallet, sourcing bin, and / or an area designated for the sourcing area on the receiving side of a conveyor. The robotic system 300 may use the source sensor to generate image data (e.g., captured images and / or point clouds) and / or other sensor data of the pickup area. The robotic system 300 may perform computer vision and / or other processes on the image and / or other sensor data to identify different objects (e.g., boxes or cases) located in the pickup area and / or determine one or more dimensions of the objects (e.g., length, width, etc., relative to a top surface). From the recognized objects, the robotic system 300 may select objects (e.g., according to a predetermined order or set of rules and / or object outline templates) as target objects 312. For the selected target objects 312, the robotic system 300 may further process the image and / or other sensor data to determine a source position 314 and / or initial pose of the target objects 312.

[0035] The robotic system 300 may further image or monitor another predetermined area to identify the destination location 318. In some embodiments, for example, the robotic system 300 may include a destination sensor (e.g., another example of sensor 116 in FIG. 1 and / or sensor 216 in FIG. 2 ) configured to generate image data and / or other sensor data for a placement area, such as a destination pallet, destination bin, and / or area designated for the destination area on the infeed side of a conveyor. The robotic system 300 may use the destination sensor to generate image data (e.g., captured images and / or point clouds) and / or other sensor data for the placement area. The robotic system 300 may perform computer vision and / or other processes on the image and / or other sensor data to identify the destination location 318 and / or corresponding pose for placing the target object 312. In some embodiments, the robotic system 300 may identify the destination location 318 (based on or without the image and / or other sensor data) according to a predetermined order or set of rules for stacking, arranging, and / or placing one or more objects.

[0036] Using the identified source location 314 and / or the identified destination location 318, the robotic system 300 may operate one or more structures (e.g., the robotic arm 305 and / or the end effector 309) of a corresponding unit (e.g., the transfer unit 304) to perform a task of transferring the selected target object 312 from the source location 314 to the destination location 318. More specifically, the robotic system 300 may derive or calculate (e.g., via motion planning rules or algorithms) a motion plan 330 corresponding to one or more actions to be performed by the corresponding unit to perform the task. Generally, the motion plan 330 may include a source trajectory associated with grasping the target object 312 at the source location 314, a transfer trajectory associated with transferring the target object 312 from the source location 314 to the destination location 318, a destination trajectory associated with releasing the target object 312 at the destination location 318, and / or a subsequent motion plan and / or return trajectory associated with returning the corresponding unit to the start position.

[0037] 3 , the motion plan 330 of the transfer unit 304 includes a source approach path 331 that specifies one or more trajectories for the robot arm 305 and / or end effector 309 of the transfer unit 304 to position the end effector 309 at a source approach location, a grasp approach path 332 that specifies one or more trajectories and / or movements of the robot arm 305 and / or end effector 309 to position and / or operate the end effector 309 to grasp or otherwise engage the target object 312 at the source location 314, and / or a grasp off path 333 that specifies one or more trajectories for the robot arm 305 and / or end effector 309 to move the target object 312 away from the source location 314. The motion plan further includes transfer paths 334 and 335 that specify one or more trajectories for moving the robot arm 305 and / or end effector 307 to transfer the target object 312 towards the destination location 318. Additionally, the motion plan 330 includes a destination approach path 336 that specifies one or more trajectories and / or movements of the robot arm 305 and / or end effector 309 of the transfer unit 304 to position and / or operate the end effector 309 to place or otherwise disengage / release the target object 312 at the destination location 318; a destination departure path 337 that specifies one or more trajectories of the robot arm 305 and / or end effector 309 to position the end effector 309 of the transfer unit 304 at a departure position; and / or a return path 338 that specifies one or more trajectories of the robot arm 305 and / or end effector 309 to position the end effector 309 of the transfer unit 304 at a start position (e.g., in preparation for or as part of the performance of a next task that includes transferring another object from the source location 314 to the destination location 318).

[0038] In some embodiments, the start position may be a default position for the end effector 309. For example, the start position may be a location to which the end effector 309 is returned by default after placing the target object 312 at the destination location 318. As another example, the start position may be a storage or idle position where the end effector 309 is positioned laterally / off track and / or a location where the transfer unit 304 positions the end effector 309 while the robotic system 300 derives or waits for further commands (e.g., to transfer the next target object between the source and destination locations).

[0039] In these and other embodiments, the start location may be a location where the transfer unit 304 positions the end effector 309 to perform (or perform as part of) a next source approach path and / or a next grasp approach path of a next motion plan derived to transfer the next target object between the source and destination positions. For example, the start location may be the beginning of a next source approach path and / or a next grasp approach path that may be performed by the robot system 300 to transfer the next target object between the source and destination positions according to the next motion plan. In other words, the return path 338 may be linked to the start of one or more paths of the next motion plan. Thus, after placing the target object 312 at the destination position 318, the robot system 300 may perform the return path 338 in the motion plan 330 so that it can perform the next source approach path and / or the next grasp approach path of the next motion plan to transfer the next target object. As another example, the next source approach path and / or the next grasp approach path of the next motion plan for the next target object may include at least a portion of the return path of the motion plan 330 for the target object 312. Thus, when the robotic system 300 implements the return path 338 of the motion plan 330, the robotic system 300 may also implement at least a portion of the next source approach path and / or the next grasp approach path of the next motion plan for the next target object. In any of these examples, the starting position specified in the return path 338 may depend, at least in part, on the next target object (e.g., the position, pose, or characteristics of the next target object) and / or the next motion plan. Additionally or alternatively, the next motion plan may depend, at least in part, on the return path 338.

[0040] In some embodiments, the robotic system 300 can derive or calculate the motion plan 330 by determining a series of commands and / or settings for one or more actuation devices (e.g., actuation device 212 of FIG. 2 ) that operate the robotic arm 305 and / or end effector 309. For example, the robotic system 300 can use a processor to calculate commands and / or settings for the actuation devices to manipulate the end effector 309 and / or robotic arm 305 to position the end effector 309 (e.g., a gripper) at an approach position about the source location 314, engage and grasp the target object 312 with the end effector 309, position the end effector 309 at a specific position about the destination location 318, release the target object 312 from the end effector 309 at or near the destination location 318, and / or return the end effector 309 to the start position. All or a subset of the set of commands and / or settings may be pre-derived or pre-calculated (e.g., before the robotic system 300 executes all or a subset of the motion plan 330). In these and other embodiments, all or a subset of the set of commands and / or settings may be dynamically derived and / or calculated (e.g., in real time and / or as the robotic system 300 executes all or a subset of the motion plan 330). In these and still other embodiments, all or a subset of the set of commands and / or settings may be re-derived or re-calculated (e.g., in light of new information determined or made available to the robotic system 300, such as the actual height of an unregistered object, as described in more detail below). The robotic system 300 may perform actions to complete a task by operating actuation devices according to the determined set of commands and / or settings.

[0041] When performing operations associated with the motion plan 330, the robotic system 300 may track the current position (e.g., a set of coordinates corresponding to a grid used by the robotic system 300) and / or current pose of the target object 312. For example, the robotic system 300 (e.g., via one or more processors, such as the processor 202 of FIG. 2 ) may track the current position / pose according to data from a position sensor (e.g., the position sensor 224 of FIG. 2 ). As a specific example, the robotic system 300 may identify one or more portions of the robot arm 305 (e.g., structural members and / or joints thereof) within the kinematic chain according to the data from the position sensor. The robotic system 300 may further calculate the position and / or pose of the end effector 309 (and thus the current position of at least the top surface of the target object 312 held by the end effector 309) based on, for example, the position and orientation of the robot arm 305. In some embodiments, the robotic system 300 can track the current position of the robotic arm 305 and / or end effector 309 based on processing other sensor measurements (e.g., force measurements or accelerometer measurements), executed actuation commands / settings and / or associated timing, or a combination thereof, for example, according to a dead reckoning mechanism.

[0042] Transport of (registered and / or unregistered) objects 4 is a partial schematic perspective view of another environment 450 in which a robotic system 400 with a cooperative transfer mechanism may operate, in accordance with various embodiments of the present technology. As shown, the robotic system 400 includes a transfer unit 404 having a robotic arm 405 and an end effector 409 (e.g., a gripper). The robotic system 400 may be the robotic systems 100, 200, and / or 300 of FIGS. 1-3, or another robotic system of the present technology. In some embodiments, the robotic system 400 may be used to transfer an object 412 from a source location 414 to a destination location 418. In the illustrated embodiment, the destination location 418 includes a designated area on the feed side of a conveyor 407.

[0043] The objects 412 at the source location 414 may include registered and / or unregistered objects. Registered objects include objects having one or more characteristics or attributes that are included, stored, or registered in the master data of the robotic system 400 (e.g., master data 246 of FIG. 2 ) and are therefore “known” to the robotic system 400. Unregistered objects may include objects having one or more characteristics or attributes that are not included, stored, or registered in the master data of the robotic system 400 and are therefore (at least initially) “unknown” to the robotic system 400. The one or more characteristics or attributes of the registered and / or unregistered objects may include physical dimensions (e.g., length, width, and / or height dimensions of one or more sides of the object), shape, center of gravity location, weight, SKU, vulnerability rating, etc.

[0044] 4 , the objects 412 at the source location 414 may have one or more properties and / or characteristics that differ from one another. In other embodiments, the objects 412 at the source location 414 may have uniform properties and / or characteristics. If an unregistered object 412 is present at the source location 414, the robotic system 400, in some embodiments, may be provided with maximum and / or minimum possible values for one or more properties or characteristics of the unregistered object 412 (e.g., maximum and / or minimum possible dimensions of the unregistered object 412). As described in more detail below, the robotic system 400 may derive a motion plan for transferring the unregistered object 412 from the source location 414 to the destination location 418 based at least in part on the maximum and / or minimum possible values.

[0045] Consistent with the above discussion, the robotic system 400 may generate detection results corresponding to the object at the source location 414. For example, the robotic system 400 may include a scanner or sensor 416 disposed at, on, or around the source location 414. As a specific example, the robotic system 400 may include a two-dimensional and / or three-dimensional imaging sensor 416 disposed above the source location 414 such that the object 412 at the source location 414 is within the field of view(s) of the imaging sensor 416. The robotic system 400 may utilize the sensor 416 at the source location 414 to determine one or more characteristics or attributes of the object 412 at the source location 414 and / or to detect or identify the target object 412 at the source location 414.

[0046] For example, for a registered object 412 at a source location 414, the robotic system 400 may utilize information corresponding to the registered object 412 (e.g., information captured by a sensor 416 at the source location 414) to detect or identify the registered object 412 and / or obtain corresponding characteristics and / or attributes from the master data. Continuing with this example, the robotic system 400 may derive a motion plan (e.g., a motion plan similar to motion plan 330 in FIG. 3 ) for transferring the registered object 412 from the source location 414 to the destination location 418 based at least in part on the detected, obtained, and / or known characteristics or attributes corresponding to the registered object 412.

[0047] In the case of an unregistered object 412 at a source location 414, the robotic system 400 may use information corresponding to the unregistered object 412 captured by a sensor 416 at the source location 414 to detect or identify the unregistered object 412 and / or calculate one or more characteristics of the unregistered object 412. As a specific example, the robotic system 400 may use the sensor 416 at the source location 414 to capture an image of (e.g., a top surface of) the unregistered object 412 at the source location 414 and use the image to estimate dimensions (e.g., the length and / or width of the top surface) of the unregistered object 412. As a result, the robotic system 400 may derive a motion plan (e.g., a motion plan similar to motion plan 330 of FIG. 3 ) for transferring the unregistered object 412 from the source location 414 to the destination location 418 based at least in part on the estimated dimensions of the unregistered object 412.

[0048] In some embodiments, the robotic system 400 may calculate a motion plan for grasping the object 412, transferring the object 412 to or near the destination location 418, and / or placing the object 412 at the destination location 418 with and / or without knowledge of one or more characteristics or properties of the object 412. As a specific example, it may be difficult to accurately determine the height of the target object 412 at the source location 414. Continuing with this example, the robotic system 400 may therefore derive a motion plan for engaging the target object 412 at the source location 414, transferring the target object 412 from the source location 414 towards the destination location 418, and / or placing the target object 412 at the destination location 418 based at least in part on a maximum and / or minimum possible height value of all objects 412 at the source location 414 that is provided to the robotic system 400.

[0049] For clarity, consider the partial schematic side view of the robotic system 400 shown in FIG. 5 , which illustrates an example of the end effector 409 positioned above or around a destination location 418 on the conveyor 407. In the depicted example, the robotic system 400 is provided with (i) a maximum possible height (represented by line segment H1) of the object 412 ( FIG. 4 ) at the source location 414 ( FIG. 4 ), and / or (ii) a minimum possible height (represented by line segment H2) of the object 412 at the source location 414. Continuing with this example, the robotic system 400 may derive one or more default or pre-calculated motion trajectories and / or corresponding motion velocities for a motion plan (e.g., similar to motion plan 330 of FIG. 3 ) that can be implemented by the robotic system 400 to transfer the target object 412 from the source location 414 to the destination location 418. The default motion trajectories may include a default grasp approach path for engaging the target object 412, a default grasp release path for moving the target object 412 away from the source location 414, one or more default transfer paths for positioning the end effector 409 (and / or the object 412 engaged by the end effector 409) at the position shown in Figure 5, a default destination approach path 536 for moving the target object 412 towards and / or placing the target object 412 at the destination location 418, a default destination release path 537 for moving the end effector 409 away from the destination location 418, and / or a default return path 538 for returning the end effector 409 to the start position. In some embodiments, the robot system 400 may further calculate (e.g., pre-calculate) default velocities corresponding to one or more of the above default motion paths. The default velocity may specify the speed at which the end effector 409 and / or robot arm 405 (FIG. 4) of the robot system 400 moves while performing the corresponding default motion path(s).

[0050] However, without knowing the actual height of the target object 412, it may be difficult for the robotic system 400 to position the target object 412 at the destination location 418, even using pre-calculated default motion paths / velocities. For example, without knowing the height of the target object, it may be difficult for the robotic system 400 to determine how far the robotic arm 405 of the transfer unit 404 should lower the target object 412 along the default destination approach path 536 toward the destination location 418 before releasing the target object 412. Additionally, because the robotic system 400 does not know the position of the bottom surface of the target object 412 relative to the end effector 409, it may be difficult to calculate an optimized grasp approach path, an optimized grasp release path, an optimized transfer path, an optimized destination approach path, an optimized destination release path, an optimized return path, and / or one or more corresponding optimized motion velocities that reduce or minimize the time spent transferring the target object 412 to the destination location 418 and / or returning the end effector 409 to the start position.

[0051] Accordingly, the robotic system 400, in some embodiments, may include one or more sensors to determine a height measurement of the object 412 and / or the position of the bottom surface of the object 412. For example, FIG. 6 is a partial schematic side view of the robotic system 400 placing the target object 412 at a destination location 418 on the conveyor 407. More specifically, FIG. 6 illustrates an example in which the end effector 409 of the robotic system 400 grasps the target object 412 so that the target object 412 is positioned above or around the destination location 418 on top of the rollers of the conveyor 407. The robotic system 400 is further shown as including an upper horizontal line sensor 617a and a lower horizontal line sensor 617b. In some embodiments, the position of the upper horizontal line sensor 617a and / or the position of the lower horizontal line sensor 617b (e.g., relative to the conveyor 407 and / or relative to each other) may be known and / or tracked by the robotic system 400.

[0052] As the robotic system 400 lowers the target object 412 along the default destination approach path 536 toward the destination position 418, the upper horizontal line sensor 617a and / or the lower horizontal line sensor 617b may be used to detect the bottom surface of the target object 412 and / or determine the height of the target object 412. For example, as described above, the robotic system 400 may track the position of (e.g., the bottom surface of) the end effector 409. Thus, when (i) the robotic system 400 lowers the target object 412 toward the destination position 418 and (ii) the upper horizontal line sensor 617a detects (e.g., the bottom surface of) the target object 412, the known vertical positions of the end effector 409 and the upper horizontal line sensor 617a at the time the upper horizontal line sensor 617a detects the bottom surface of the target object 412 can be used to determine the height of the target object 412 using Equation 1 below: Formula 1: Target object height = vertical position of end effector - vertical position of horizontal line sensor In these and other embodiments, the robot system 400 can use the lower horizontal line sensor 617b in addition to or instead of the upper horizontal line sensor 617a to determine the height of the target object 412 based on the known positions of the end effector 409 and the lower horizontal line sensor 617b at the time the lower horizontal line sensor 617b detects the bottom surface of the target object 412.

[0053] Additionally or alternatively, as the robotic system 400 lowers the target object 412 along the destination approach path 536 toward the destination location 418, the robotic system 400 may use the lower horizontal line sensor 617b to determine when to release or disengage the target object 412 to place it at the destination location 418. For example, the lower horizontal line sensor 617b may be positioned at a position above the conveyor 407. This position may correspond to a particular distance above the conveyor 407 (e.g., a release altitude) at which the robotic system 400 can safely release the target object 412 and place it at the destination location 418 (e.g., without damaging the target object 412, without risking the target object 412 falling off the conveyor 407, etc.). Continuing with this example, as the robotic system 400 lowers the target object 412 along the destination approach path 536 toward the destination location 418, the lower horizontal line sensor 617b may detect that the bottom surface of the target object 412 is positioned a specified distance above the conveyor 407. At this point, the robotic system 400 can release or disengage the target object 412 and place it at the destination location 418.

[0054] However, utilizing horizontal line sensors similar to the upper horizontal line sensor 617a and / or the lower horizontal line sensor 617b to detect the height of the target object 412 and / or to determine when to release the target object 412 and place it at the destination location 418 has several drawbacks. For example, the robotic system 400 cannot detect the bottom surface of the target object 412 and / or cannot calculate the height of the target object 412 until the bottom surface of the target object 412 is lowered to and detected by the upper horizontal line sensor 617a and / or the lower horizontal line sensor 617b. Therefore, before lowering or otherwise placing the target object 412 within the field of view of the upper horizontal line sensor 617a and / or the field of view of the lower horizontal line sensor 617b, the robot system 400 cannot calculate an optimized trajectory (e.g., a destination approach path, a destination departure path, and / or a return path) and / or corresponding optimized motion speeds that reduce or minimize the time spent placing the target object 412 at the destination position 418 and / or returning the end effector 409 to the starting position.

[0055] Additionally, the upper horizontal line sensor 617a and / or the lower horizontal line sensor 617b are typically installed near or closest to the destination location 418 on the conveyor 407. Therefore, by the time (i) the upper horizontal line sensor 617a and / or the lower horizontal line sensor 617b detect the target object 412 and (ii) the robotic system 400 can determine the height of the target object 412 using the upper horizontal line sensor 617a and / or the lower horizontal line sensor 617b, the robotic system 400 may not have had enough time to dynamically recalculate or adjust the default or pre-calculated trajectory (e.g., the pre-calculated destination approach path 536, the pre-calculated destination departure path, and / or the pre-calculated return path) and / or the corresponding motion speeds to optimize such trajectory / speeds.

[0056] Note that the position of the lower horizontal line sensor 617b relative to the conveyor 407 is typically fixed. Therefore, the robotic system 400 can be configured to release each target object 412 from the same height above the conveyor 407 without adjusting the position of the lower horizontal line sensor 617b relative to the conveyor 407. In other words, the robotic system 400 cannot adjust or adjust the release height of the target object 412 based on one or more characteristics or properties of the target object 412 (e.g., weight, center of gravity location, size, shape, etc.).

[0057] Furthermore, if the upper horizontal line sensor 617a and the lower horizontal line sensor 617b are positioned above the conveyor 407, the upper horizontal line sensor 617a and / or the lower horizontal line sensor 617b may act as an obstacle in returning the end effector 409 to the start position. Therefore, before moving the end effector 409 along the return path to return the end effector 409 to the start position, the robotic system 400 may first be required to move the end effector 409 along a pre-calculated destination departure path to raise the end effector 409 to a certain height above the upper horizontal line sensor 617a and / or the lower horizontal line sensor 617b. Such movement of the end effector 409 may correspond to a delay in the process of returning the end effector 409 to the start position after placing the target object at the destination location 418.

[0058] To address one or more of these issues, the robotic system 400 may use one or more vertically oriented sensors in addition to or instead of the upper horizontal line sensor 617a and / or the lower horizontal line sensor 617b. FIGS. 7A and 7B are partial, schematic side perspective and top perspective views, respectively, of an example of such a vertically oriented sensor 745. In some embodiments, the sensor 745 may be a distance sensor or another suitable type of sensor. In the illustrated embodiment, the sensor 745 may be positioned below the conveyor 407 and the destination location 418. More specifically, the sensor 745 may be positioned such that the field of view of the sensor 745 is (i) directed upward (vertically) and (ii) at least partially unobstructed by the rollers of the conveyor 407. In some embodiments, the position of the sensor 745 below the conveyor 407 may be fixed (e.g., such that the distance between the destination location 418 and the sensor 745 on top of the rollers of the conveyor 407 is constant and / or known). As described in more detail below, the sensor 745 may be configured to monitor (e.g., determine a height measurement of) an object (e.g., target object 412 (FIG. 4), end effector 409 (FIG. 4), etc.) positioned above the conveyor 407 and / or destination location 418 through one or more gaps in the rollers of the conveyor 407.

[0059] Although the sensor 745 is shown below the conveyor 407 in the illustrated embodiment, it may be positioned at other locations within the robotic system 400. For example, the sensor 745 may be positioned at a location between the source location 414 ( FIG. 4 ) and the destination location 418 in some embodiments. As another example, the sensor 745 may be positioned at or near the source location 414. As yet another example, the sensor 745 may be positioned at or near the destination location 418, such as at a location that is not below the conveyor 407 and / or the destination location 418. In any of these other embodiments, the robotic system 400 may derive a motion plan (e.g., similar to the motion plan 330 of FIG. 3 ) that presents the target object 412 within the field of view of the sensor 745 so that the robotic system 400 can determine the actual height of the target object 412 while the robotic system 400 transfers the target object 412 between the source location 414 and the destination location 418.

[0060] 8A-8C, which are partial schematic side views of an end effector 409 of a robotic system 400 using a sensor 745 to place an object of interest 812 (e.g., one of the objects 412 in FIG. 4) at a destination location 418, in accordance with various embodiments of the present technology. The object of interest 812 may be a registered or unregistered object. Additionally, or alternatively, the height of the object of interest 812 may or may not be known to the robotic system 400.

[0061] 8A , the end effector 409 is positioned above the conveyor 407 and the destination location 418 such that the bottom surface of the target object 812 is within the field of view of the sensor 745 through a gap in the rollers of the conveyor 407. As described above, the robotic system 400 can track the position of (e.g., the bottom surface of) the end effector 409. Therefore, if both the position of the end effector 409 and the position of the sensor 745 are known to the robotic system 400, the distance between the bottom surface of the end effector 409 and the sensor 745 (represented by arrow D1 in FIG. 8A ) can also be known to the robotic system 400. Furthermore, when the target object 812 is presented within the field of view of the sensor 745, the robotic system 400 can determine the distance between the bottom surface of the target object 812 and the sensor 745 (represented by arrow D2 in FIG. 8A ). Once (i) the distance D1 between the end effector 409 and the sensor 745 is known, and (ii) the distance D2 between the bottom surface of the target object 812 and the sensor 745 is known, the robot system 400 can determine the actual height measurement of the target object 812 (represented by arrow H3 in FIG. 8A) using Equation 2 below: Formula 2: Height of target object = Distance between end effector and sensor - Distance between target object and sensor That is, in the example shown in Figure 8A, H3 = D1 - D2. In some embodiments, the robotic system 400 can calculate the actual height measurement H3 of the target object 812 before moving the target object 812 towards the destination location 418 (e.g., before implementing a default or pre-calculated destination approach path, such as the default destination approach path 536 of Figure 5). In other embodiments, the robotic system 400 can calculate the actual height measurement H3 of the target object 812 while moving the target object 812 towards the destination location 418 (e.g., while implementing a default or pre-calculated destination approach path, such as the default destination approach path 536 of Figure 5).

[0062] 8B , once the actual height measurement H3 of the target object 812 is known, the robotic system 400 can proceed to dynamically calculate a destination approach path 836 for moving the target object 812 towards the destination location 418. In some embodiments, dynamically calculating the destination approach path 836 can include dynamically adjusting or recalculating a pre-calculated / default destination approach path (e.g., default destination approach path 536 of FIG. 5 ) to position the target object 812 at the destination location 418. For example, given the actual height measurement H3 of the target object 812, the robotic system 400 can know the location of the bottom of the target object 812 (e.g., relative to the bottom of the end effector 409, relative to the top of the rollers of the conveyor 407, and / or relative to the sensor 745). Using this information, the robotic system 400 can determine a motion path (represented by the destination approach path 836 in FIG. 8B ) that will lower the end effector 409 a determined distance to position the bottom surface of the target object 812 a specific distance above the destination location 418 on the top surface of the rollers of the conveyor 407 (represented by line segment D5 in FIG. 8B ) and / or a specific distance above the sensor 745 (represented by line segment D4 in FIG. 8B ). Such specific distance(s) are also referred to herein as release altitudes.

[0063] In some embodiments, release altitude D5 may be constant across the placement of multiple target objects at destination location 418. For example, release altitude D5 may be invariant across the placement of all target objects (including target object 812) at destination location 418. As another example, release altitude D5 may correspond to a group of target objects (including target object 812) such that robotic system 400 is configured to release all target objects of the group from release altitude D5. In both of these examples, release altitude D5 may correspond to a specified distance above conveyor 407 at which robotic system 400 can safely release multiple target objects (e.g., without damaging the target objects, without risking the target objects falling off conveyor 407, etc.) and place the target objects at destination location 418.

[0064] In some embodiments, the release altitude D5 may vary across different target object configurations at the destination location 418. For example, the release altitude D5 may be variable and / or may depend, at least in part, on one or more characteristics or attributes of a given target object (e.g., weight, shape, center of gravity location, vulnerability rating, etc.). As a specific example, the release altitude D5 for a target object 812 may be smaller if the target object 812 is heavier and / or more vulnerable, and may be larger if the target object 812 is lighter and / or less vulnerable. As another specific example, the release height D5 of the target object 812 may be smaller if the shape of the target object 812 and / or the size / shape of the bottom of the target object 812 creates a risk of the target object 812 rolling or otherwise falling off the conveyor 407, and may be larger if the shape of the target object 812 and / or the size / shape of the bottom of the target object 812 is relatively flat or does not create a significant risk of the target object 812 falling off the conveyor 407. In other words, in some embodiments, the release height D5 may be specific to the target object 812 and / or may correspond to one or more characteristics / attributes of the target object 812. In some embodiments, the robotic system 400 may utilize one or more sensors (e.g., weight sensors, force sensors, imaging sensors, etc.) to determine one or more of the characteristics or attributes of the target object and / or may (e.g., dynamically) determine the release height of the target object based on the characteristics / attributes of the target object.

[0065] The robotic system 400 may employ any one or more of several possible methods for determining when the bottom surface of the target object 812 is at the release altitude D5. For example, the robotic system 400 may determine that the bottom surface of the target object 812 is at the release altitude D5 by monitoring the motion of the end effector 409. For example, the location of the destination location 418, which is at the top of the rollers of the conveyor 407, may be known to the robotic system 400. Thus, the robotic system 400 may know the vertical distance between the bottom surface of the end effector 409 and the top of the rollers of the conveyor 407. Thus, the robotic system 400 may determine that the bottom surface of the target object 812 is at the release altitude D5 when the vertical distance of the bottom surface of the end effector 409 above the rollers of the conveyor 407 minus the actual height measurement H3 of the target object 812 equals the release altitude D5. This is represented by Equation 3 below: Formula 3: Vertical height of target object above destination position = Vertical height of bottom surface of end effector above destination position - Actual measured height of target object Therefore, using the above equation 3, the robot system 400 can determine that the bottom surface of the target object 812 is at the release altitude D5 when the value of the target object's vertical height above the destination location is equal to the specified and / or determined release altitude D5.

[0066] Additionally or alternatively, the robotic system 400 can determine that the bottom surface of the target object 812 is at the release altitude D5 by monitoring the motion of the end effector 409 relative to the position of the end effector 409 at time (t0) at which the robotic system 400 determines the actual height measurement H3 of the target object 812 using the sensor 745 (e.g., relative to the position of the end effector 409 shown in FIG. 8A ). In such an embodiment, the robotic system 400 may determine that the bottom surface of the target object 812 is at the release altitude D5 using Equation 4 below: Formula 4: Vertical height of target object above destination location = Vertical height of the bottom surface of the end effector above the destination location at time t0 - Vertical distance traversed by the end effector along the destination approach path after time t0 - Actual height measurement of target object Therefore, using equation 4 above, the robot system 400 can determine that the bottom surface of the target object 812 is at the release altitude D5 when the value of the target object's vertical height above the destination location is equal to the specified and / or determined release altitude D5.

[0067] In these and still other embodiments, the distance between the sensor 745 and the destination location 418 at the top of the rollers of the sensor 745 (represented by line segment D3 in FIG. 8B ) may be known to the robotic system 400. Additionally, or alternatively, the robotic system 400 may utilize the sensor 745 to determine the distance between the sensor 745 and the bottom surface of the target object 812. Thus, the robotic system 400 may determine that the bottom surface of the target object 812 is at the release altitude D5 using Equation 5 and / or Equation 6 below: Formula 5: Vertical height of the target object above the destination position = distance between the sensor and the bottom of the target object - distance between the sensor and the destination position Formula 6: Vertical height of target object above destination location = distance between end effector and sensor - actual height measurement of target object - distance between sensor and destination location Therefore, using the above equations 5 and / or 6, the robot system 400 can determine that the bottom surface of the target object 812 is at the release altitude D5 when the value of the target object's vertical height above the destination location is equal to the specified and / or determined release altitude D5.

[0068] Returning to the description of the destination approach path 836 shown in FIG. 8B, the robotic system 400 may use knowledge of the position of the bottom surface of the target object 812 to determine (e.g., dynamically) the speed at which to descend the target object 812 along the destination approach path 836 toward the destination position 418. For example, without knowing the height of the target object 812 and / or the location of the bottom of the target object 812, the robotic system 400 may be required to slowly lower the target object 812 toward the destination location 418 to (a) mitigate damage to the target object 812 and / or the robotic system 400 in the event of a collision between the target object 812 and the robotic system 400, (b) provide sufficient time for the robotic system 400 to determine the location of the bottom of the target object 812 and / or the height of the target object 812 (e.g., using the upper horizontal line sensor 617a and / or the lower horizontal line sensor 617b in FIG. 6 ) before the target object 812 reaches the conveyor 407, and / or (c) provide sufficient time for the robotic system 400 to calculate (e.g., recalculate) a destination approach path, a destination departure path, and / or a return path. However, as described above, the robotic system 400 can use the sensor 745 to determine the actual height measurement H3 of the target object 812 and the location of the bottom surface of the target object 812, such as before and / or relatively early in the execution of the default destination approach path. Additionally, the robotic system 400 can use the sensor 745 to monitor (e.g., continuously) the position of (e.g., the bottom surface of) the target object 812 while the end effector 409 is lowering the target object 812 toward the destination location 418. Thus, because the robotic system 400 can know and / or monitor the height of the target object 812 above the destination location 418 and / or the location of the bottom surface of the target object 812, the risk of a collision between the target object 812 and the robotic system 400 can be significantly reduced, minimized, and / or eliminated.Additionally, the robotic system 400 can determine the actual height measurement H3 of the target object 812 and / or the location of the bottom of the target object 812 prior to, or relatively early in, the process of moving / lowering the target object 812 toward the destination location 418, thereby providing the robotic system 400 sufficient time to (e.g., dynamically) calculate / recalculate the destination approach path 836, the destination departure path, and / or the return path. Thus, knowing the height of the target object 812 above the destination location 418 and / or the location of the bottom of the target object 812 allows the robotic system 400 to lower the target object 812 along the destination approach path to the release altitude D5 (e.g., at an increased speed) more quickly than would be possible without knowing the height of the target object 812 and / or the location of the bottom of the target object 812. In some embodiments, the robotic system 400 can dynamically determine this increased speed upon knowing the actual height measurement H3 and / or the location of the bottom of the target object 812. In some scenarios, increasing the speed at which the robotic system 400 lowers the target object 812 toward the destination location 418 may result in the robotic system 400 placing the target object 812 at the destination location 418 in a shorter amount of time.

[0069] Additionally, knowledge of the actual height measurement H3 of the target object 812 may facilitate the robotic system 400 to dynamically calculate (e.g., dynamically recalculate) a destination-off path and / or a return path of the robotic system 400. For example, knowing the actual height H3 may enable the robotic system 400 to determine the location of the top surface of the target object 812 (and thus the bottom surface of the end effector 409) when the bottom surface of the target object 812 is positioned at the release altitude D5. Thus, knowledge of the actual height H3 of the target object 812 may facilitate calculation of a destination-off path and / or a return path that begins from the location where the end effector 409 will be positioned when the bottom surface of the target object 812 is positioned at the release altitude D5 and / or when the end effector 409 disengages (e.g., drops) the target object 812. Furthermore, as described above, in embodiments in which the actual height H3 of the target object 812 is calculated by the robot system 400 at or near the start of the destination approach path 836 (e.g., before or while the robot system 400 is moving the target object 812 along the destination approach path 836), the robot system 400 may have sufficient time to dynamically calculate the destination departure path and / or return path.

[0070] 8C for illustration and clarification, the robotic system 400 can use the actual height measurement H3 of the target object 812 to determine that when the bottom surface of the target object 812 is positioned at release altitude D5 ( FIG. 8B ), the bottom surface of the end effector 409 will be positioned at a location corresponding to the intersection of the default destination departure path 537 and arrow 839. Thus, in some embodiments (e.g., in embodiments in which the robotic system 400 includes an upper horizontal line sensor 617a and / or a lower horizontal line sensor 617b that act as obstacles to the end effector 409), the robotic system 400 can (e.g., dynamically) recalculate the default destination departure path 537 to generate an updated destination departure path 837 (representing an upper portion or segment of the default destination departure path 537). In these embodiments, after moving the end effector 409 along a path corresponding to the updated destination departure path 837 (e.g., to position the end effector 409 at a particular height to avoid the upper horizontal line sensor 617a and / or the lower horizontal line sensor 617b), the robot system 400 may proceed to return the end effector 409 to the starting position by moving the end effector 409 along the default return path 538.

[0071] In other embodiments, such as (i) embodiments in which the robotic system 400 does not include the upper horizontal line sensor 617a and / or the lower horizontal line sensor 617b, or (ii) embodiments in which the upper horizontal line sensor 617a and / or the lower horizontal line sensor 617b do not act as obstacles to the end effector 409, the robotic system 400 may (e.g., dynamically) calculate a hybrid return path 839. As shown in FIG. 8C , the hybrid return path 839 represents a combination of the updated destination departure path 837 and the default return path 538, or a combined recalculation of the default destination departure path 537 and the default return path 538. In other words, the hybrid return path 839 may represent a “shortcut” between the start of the updated destination departure path 837 and the end of the default return path 538. 8C , the robotic system 400 may (e.g., immediately) begin moving the end effector 409 (e.g., horizontally) along the hybrid return path 839 toward the start location (e.g., at or near the source location 414 shown in FIG. 4 ). This may reduce the time required to return the end effector 409 to the start location after placing the target object 812 at the destination location 418.

[0072] In other words, the use of the sensor 745 of the robotic system 400 to determine the actual height measurement H3 of the target object 812 may facilitate the robotic system 400 to (e.g., dynamically) calculate an optimized destination approach path, an optimized destination approach velocity, an optimized destination departure path, an optimized return path, and / or an optimized hybrid "shortcut" return path. Additionally, in embodiments in which the sensor 745 is positioned at other locations (e.g., at or near the source location 414, between the source location 414 and the destination location 418, etc.), the robotic system 400 can utilize the sensor 745 to determine the actual height measurement H3 of the target object 812 at a point further upstream in the corresponding motion plan of the end effector 409. In such embodiments, the robotic system 400 may (e.g., dynamically) calculate or optimize other paths (e.g., a source approach path, a grasp approach path, a grasp departure path, and / or a transfer path) for transferring the target object 812 from the source location 414 to the destination location 418.

[0073] 9A-9C are partial schematic side views of the end effector 409 of the robotic system 400 using a sensor 745 to place another target object 912 (e.g., another one of the objects 412 of FIG. 4) at a destination location 418, in accordance with various embodiments of the present technology. The target object 912 may be a registered or unregistered object. In addition, the height of the target object 912 may or may not be known to the robotic system 400. Additionally, or alternatively, one or more characteristics or attributes (e.g., weight, length, width, height, center of gravity location, vulnerability rating, etc.) may be the same as, similar to, or different from the corresponding characteristics / attributes of the target object 812 discussed above with reference to FIGS. 8A-8C.

[0074] 9A , the end effector 409 is positioned above the conveyor 407 and the destination location 418 such that the bottom surface of the target object 912 is within the field of view of the sensor 745 through the gap in the rollers of the conveyor 407. The location of the end effector 409 in FIG. 9A may be the same as or different from the location of the end effector 409 in FIG. 8A . Using the sensor 745, the robotic system 400 can determine an actual height measurement H4 of the target object 912 and / or the location of the bottom surface of the target object 912 in a manner consistent with the discussion above. For example, the robotic system 400 can determine the actual height measurement H4 of the target object 912 using (i) the known distance D6 between the end effector 409 and the sensor 745, and (ii) the measured distance D7 between the bottom surface of the target object 912 and the sensor 745.

[0075] 9B , once the actual height measurement H4 of the target object 912 is known, the robotic system 400 may proceed to (e.g., dynamically) calculate / recalculate (i) a destination approach path 936 for moving the target object 912 toward the destination location 418, and / or (ii) a destination approach velocity for moving / lowering the target object 912 toward the destination location 418, consistent with the discussion of FIGS. 8A-8C above. The destination approach path 936 may be the same as, similar to, or different from the destination approach path 836 for the target object 812 in FIG. 8B . Additionally or alternatively, the destination approach velocity for placing the target object 912 at the destination location 418 may be the same as, similar to, or different from the destination approach velocity used to place the target object 812 at the destination location 418 in FIGS. 8A and 8B . After or while calculating the destination approach path 936 and / or the destination approach velocity, the robotic system 400 may execute the destination approach path 936 and begin moving / lowering the target object 912 toward the destination position 418 (e.g., to position the bottom of the target object 912 at a release altitude D9 above the destination position 418 on top of the rollers of the conveyor 407 and / or a release altitude D8 above the sensor 745).

[0076] In some embodiments, the robotic system 400 may (e.g., dynamically) determine the release altitude D9 and / or the release altitude D8. For example, the robotic system 400 may determine the release altitude D9 and / or the release altitude D8 based at least in part on one or more characteristics or properties of the target object 912, consistent with the discussion of Figures 8A-8C above. The release altitude D9 and / or the release altitude D8 of the target object 912 may be the same as or different from the release altitude D5 and / or the release altitude D4 of the target object 812 in Figures 8A and 8B, respectively.

[0077] Referring to FIG. 9C , once the robotic system 400 knows the release altitude D9 or release altitude D8 of the target object 912 and / or the position of the top surface of the target object 912 when the bottom surface of the target object 912 is located at release altitude D9 / D8, the robotic system 400 may (e.g., dynamically) calculate / recalculate a destination departure path 937 for raising the end effector 409 to a particular height after placing the target object 912 at the destination location 418, a return path 538 for returning the end effector 409 to the start position after raising the end effector 409 to a particular height along the destination departure path 937, and / or a hybrid “shortcut” return path 939 for returning the end effector 409 to the start position after placing the target object 912 at the destination location 418. The destination departure path 937, the default return path 538, and / or the hybrid return path 939 may be the same as, similar to, or different from the destination departure path 837, the default return path 538, and / or the hybrid return path 839, respectively, described above with reference to FIG. 8C.

[0078] Accordingly, the use of sensor 745 in robotic system 400 may facilitate realizing several advantages over robotic systems lacking such sensors. For example, robotic system 400 may use sensor 745 to determine the actual height of the target object early in the corresponding motion plan (e.g., before or during movement of the target object along the destination approach path). Accordingly, robotic system 400 may be provided with sufficient time to (e.g., dynamically) calculate, recalculate, and / or optimize various motion paths and / or corresponding velocities (e.g., transfer path, destination return path, destination approach velocity, release altitude, destination departure path, return path, hybrid return path, etc.) included in the motion plan. As a result, the time spent by robotic system 400 to position the target object at destination location 418 may be reduced and / or minimized compared to a robotic system lacking a sensor similar to sensor 745.

[0079] Furthermore, by using a vertically oriented sensor 745 to determine the actual height measurement and / or position of the bottom surface of the target object relative to the destination location 418 on the rollers of the conveyor 407, the robotic system 400 may facilitate changing, adjusting, regulating, and / or customizing the release height for different target objects (e.g., based on one or more characteristics or attributes of those target objects) without having to adjust the position of the sensor 745.

[0080] Additionally, sensor 745 can be used in place of horizontal line sensors (e.g., one or both of upper horizontal line sensor 617a and lower horizontal line sensor 617b in FIG. 6 ) that may be positioned below conveyor 407 and / or out of the path of end effector 409 and / or may act as an obstacle to returning end effector 409 to the start position. Thus, use of sensor 745 can facilitate omitting such horizontal line sensors from robotic system 400, which can facilitate placing a target object at destination location 418 (e.g., without first having to move end effector 409 to a particular height) and then moving the end effector along a hybrid “shortcut” return path toward the start position (e.g., immediately). Consequently, the time required for robotic system 400 to transfer a target object between source location 414 and destination location 418 can be reduced and / or minimized.

[0081] Operation flow FIG. 10 shows a flow diagram illustrating a method 1070 of operating a robotic system in accordance with various embodiments of the present technology. For example, method 1070 may be a method of operating a robotic system to transfer an object (registered and / or unregistered) between a source location and a destination location. The robotic system may be robotic system 100 of FIG. 1, robotic system 200 of FIG. 2, robotic system 300 of FIG. 3, robotic system 400 of FIGS. 4-9C, and / or another robotic system of the present technology. Method 1070 is illustrated as a set of steps or blocks 1071-1076 with corresponding sub-blocks 1081-1093. All or a subset of one or more of blocks 1071-1076 and / or all or a subset of one or more of sub-blocks 1081-1093 may be performed by various components of the robotic system (e.g., by various components shown in any one or more of FIGS. 1-9C described above). Additionally, all or a subset of one or more of blocks 1071-1076 and / or all or a subset of one or more of sub-blocks 1081-1093 may be performed in accordance with the above discussion.

[0082] The method 1070 begins at block 1071 by detecting a target object at a source location. The target object may be a registered or unregistered object. Additionally or alternatively, the source location may be a pallet, a bin, a designated area on a conveyor, a stack of objects containing the target object, etc.

[0083] Detecting the target object may include detecting the target object using one or more sensors of the robotic system. For example, detecting the target object may include using one or more imaging sensors to image the designated area and identify the source location. As another example, detecting the target object may include using one or more imaging sensors to image the target object. Based on the one or more images of the designated area and / or the one or more images of the target object, the robotic system may identify the source location and / or the target object at the source location.

[0084] As shown in sub-block 1081, detecting the target object may include estimating at least a portion of the dimensions of the target object. For example, detecting the target object may include imaging a portion (e.g., a top surface) of the target object using one or more imaging sensors. Continuing with this example, detecting the target object may include estimating dimensions (e.g., length, width, etc.) of the portion of the target object based at least in part on the images of the target object.

[0085] At block 1072, the method 1070 continues by deriving a motion plan for transferring the target object to a destination location, such as from a source location to a destination location. In some embodiments, deriving the motion plan may include deriving the motion plan based on one or more characteristics or attributes of the target object registered in master data of the robotic system. In these and other embodiments, deriving the motion plan may include deriving the motion plan based on default values (e.g., provided to the robotic system), such as a maximum possible height value for the target object and / or a minimum possible height value for the target object. Additionally or alternatively, deriving the motion plan for transferring the target object may include determining one or more motion paths and / or one or more corresponding motion velocities for moving the robotic system (e.g., a robotic arm and / or end effector of the robotic system) and / or the target object toward the destination location.

[0086] For example, with reference to sub-blocks 1082-1084, deriving the motion plan may include deriving a source approach path for moving the end effector to a location at or near the source location, deriving a grasp approach path for manipulating the end effector relative to the target object to engage (e.g., grasp) the target object, and / or deriving a grasp release path for moving / elevating the target object away from the source location after the target object is engaged by the end effector. Additionally or alternatively, with reference to sub-block 1085, deriving the motion plan may include deriving one or more transfer paths for moving the target object between the source location and the destination location. In these and other embodiments, with reference to sub-blocks 1086-1089, deriving a motion plan may include deriving a destination approach path for placing the target object at the destination location, deriving a destination departure path for moving the end effector to the destination location and / or a specified height, and / or deriving a return path for moving the end effector to a start position (e.g., at or near the source location, such as to transfer another target object from the source location to the destination location).

[0087] At block 1073, the method 1070 continues by executing a first portion of the motion plan for transferring the target object to a destination location. Executing the first portion of the motion plan may include moving the robot system (e.g., the robot arm and / or the end effector) toward the source location according to a source approach path, moving the robot system to the target object and / or operating the robot system so that the end effector engages the target object according to a grasp approach path, and / or moving the robot system and the target object away from the source location according to a grasp release path. Additionally or alternatively, executing the first portion of the motion plan may include moving the robot system (e.g., the robot arm and / or the end effector) toward the destination location according to transfer path(s). In these and still other embodiments, executing the first portion of the motion plan may include moving the target object toward the destination location according to at least a portion of the destination approach path.

[0088] As shown in sub-block 1089, executing the first portion of the motion plan may include presenting the target object to a sensor, such as a distance sensor similar to distance sensor 745 discussed in detail above. Presenting the target object to the sensor may include positioning the target object above the sensor and / or within the field of view of the sensor. In embodiments in which the sensor is positioned below a destination location located on top of the rollers of the conveyor, presenting the target object to the sensor may include positioning the target object above the destination location and within a field of view of the sensor that extends unobstructed through the gap between the rollers of the conveyor. Alternatively, in embodiments in which the sensor is positioned at another location, such as a location between the source and destination locations, presenting the target object to the sensor may include positioning the target object at a position within the field of view of the sensor at the other location. In these and other embodiments, presenting the target object to the sensor includes positioning the target object such that (i) the target object is within the field of view of the sensor and (ii) the end effector of the robotic system is positioned on the side of the target object opposite the sensor.

[0089] At block 1074, the method 1070 continues by determining the height of the target object. Determining the height of the target object may include determining a first distance between a portion of the robotic system and a sensor. For example, determining the height of the target object may include determining a first distance between a bottom surface of an end effector of the robotic system and the sensor. Continuing with this example, determining the first distance may include tracking or otherwise determining the position of the bottom surface of the end effector. Determining the height of the target object may additionally or alternatively include determining a second distance between the target object and the sensor. For example, determining the second distance may include receiving sensor data (e.g., from the sensor) indicating the second distance. Additionally or alternatively, determining the second distance may include determining the second distance based at least in part on the sensor data and / or the distance between the bottom surface of the target object and the sensor. In these and other embodiments, determining the height of the target object may include determining the height of the target object based at least in part on the first distance and / or the second distance. For example, determining the height of the target object may include determining the height of the target object as the difference between a first distance and a second distance.

[0090] At block 1075, method 1070 continues by calculating (e.g., deriving) or updating (e.g., adjusting, modifying, recalculating, etc.) a second portion of the motion plan for transporting the target object to the destination position. Calculating or updating the second portion of the motion plan may include calculating or updating the second portion of the motion plan based at least in part on the target object's height determined at block 1074. In these and other embodiments, calculating or updating the second portion of the motion plan may include dynamically calculating or updating all or a subset of the second portion of the motion plan. In these and still other embodiments, calculating or updating the second portion of the motion plan includes calculating or updating the second portion of the motion plan before performing all or a first subset of the second portion of the motion plan and / or while performing all or a second subset of the second portion of the motion plan.

[0091] As shown in sub-block 1091, calculating or updating a second portion of the motion plan may include calculating or updating a destination approach path and / or a corresponding destination approach velocity. Calculating or updating the destination approach path may include determining a release altitude of the target object. Determining a release altitude of the target object may include determining the release altitude based at least in part on one or more characteristics or attributes of the target object. Calculating or updating the destination approach path and / or the corresponding destination approach velocity may include optimizing the destination approach path and / or the corresponding destination approach velocity to minimize or reduce the time spent by the robotic system to place the target object at the destination location.

[0092] As shown in subblock 1092, calculating or updating a second portion of the motion plan may include calculating or updating a destination exit path and / or a corresponding destination exit velocity. Calculating or updating the destination exit path may include determining a height and / or location to which the end effector will elevate after the robotic system places the target object at the destination location. Determining the height and / or location may include determining a height and / or location that avoids a horizontal line sensor and / or other components of the robotic system. Calculating or updating the destination exit path and / or the corresponding destination exit velocity may include optimizing the destination exit path and / or the corresponding destination exit velocity to minimize or reduce the time it takes the robotic system to move the end effector to the determined height and / or location after placing the target object at the destination location.

[0093] As shown in sub-block 1093, calculating or updating a second portion of the motion plan may include calculating or updating a return path and / or a corresponding return velocity. Calculating or updating the return path may include determining or updating a path that returns the end effector of the robotic system to the start position (e.g., after elevating the end effector to a height and / or position specified by the destination-off path). Calculating or updating the return path and / or the corresponding return velocity may include optimizing the return path and / or the corresponding return velocity to minimize or reduce the time it takes the robotic system to move the end effector from the height / position specified by the destination-off path to the start position.

[0094] Alternatively, calculating or updating the return path and / or corresponding return velocity may include determining a path that returns the end effector of the robotic system to the start position after placing the target object at the destination position. Calculating or updating the return path may include determining a path that starts from the position of the end effector and ends at the start position (e.g., at or near the source position) when the end effector disengages (e.g., drops) the target object at the destination position. For example, calculating or updating the return path may include calculating or updating a hybrid “shortcut” return path that represents a combination of the destination departure path and the return path. In such an embodiment, sub-block 1092 may be omitted. As another example, calculating or updating the return path may include calculating or updating the return path such that the end effector is moved (e.g., immediately) toward (e.g., horizontally) the start position after placing the target object at the destination position. In these and other embodiments, calculating or updating the return path may include calculating or updating a direct return path from the position where the end effector disengages (e.g., drops) the target object to the start position. Additionally or alternatively, calculating or updating the return path and / or corresponding return velocity may include optimizing the return path and / or return velocity to minimize or reduce the time it takes the robotic system to move the end effector from the position at which the end effector disengages the target object to the start position.

[0095] As described above, the start position may be (i) a default position, and / or (ii) a position at which the end effector will be positioned to implement (or as part of implementing) all or a subset of the next motion plan, for example, to transfer the next target object between a source and destination location. If the start position is the default position (e.g., at the time subblock 1088 is executed), calculating or updating the return path may include determining or updating a path that returns the end effector to the default position. Alternatively, calculating or updating the return path may include (i) updating the start position from the default position to another position different from the default position (e.g., a position that facilitates implementing all or a subset of the next motion plan), and / or (ii) determining or updating a path that moves the end effector to position it at another location. If the start position is a position at which the end effector will be positioned to execute (or as part of executing) the next motion plan (e.g., at the time sub-block 1088 is executed), calculating or updating the return path may include determining or updating a path to move the end effector to position it at the start position (e.g., so that the return path links to one or more paths derived for the next motion plan).

[0096] At block 1076, method 1070 continues by executing a second portion of the motion plan to transfer the target object to the destination position. Executing the second portion of the motion plan may include moving the target object toward the destination position according to the destination approach path and / or destination approach velocity calculated and / or updated in sub-block 1090. Executing the second portion of the motion plan may include lowering the target object (e.g., a portion thereof, such as its bottom) to a release altitude. As shown in sub-block 1093, executing the second portion of the motion plan may include placing the target object at the destination position, for example, by disengaging (e.g., dropping or releasing) the target object at the release altitude. Executing the second portion of the motion plan may include raising the end effector to a height and / or position specified by a destination departure path and / or according to a destination departure velocity. Executing the second portion of the motion plan may include moving the end effector from a height and / or position specified by the destination departure path and / or according to a return path and / or return velocity to the start position. Alternatively, performing the second portion of the motion plan may include moving the end effector to a start position according to a hybrid "shortcut" return path and / or associated return velocity. For example, performing the second portion of the motion plan may include moving the end effector along a hybrid "shortcut" return path from the end effector's position at the time the end effector disengaged the target object to the start position. In embodiments in which the start position is initially a first or default position (e.g., when subblock 1088 is executed) and is then updated to a different position (e.g., when subblock 1092 is executed), performing the second portion of the motion plan may include moving the end effector to a different position as opposed to the first / default position and along the return path / hybrid return path.In these and other embodiments, performing the second portion of the motion plan may include moving the end effector to a start position to facilitate, or as part of, performing the next motion plan for the next target object.

[0097] Although the steps of method 1070 are described and illustrated in a particular order, method 1070 of FIG. 10 is not so limited. In other embodiments, the steps of method 1070 may be performed in a different order. In these and other embodiments, any step of method 1070 may be performed before, between, and / or after any other step of method 1070. Furthermore, those skilled in the art will recognize that the illustrated method 1070 may be modified and still remain within the scope of these and other embodiments of the present technology. For example, one or more of blocks 1071-1076 and / or one or more of sub-blocks 1081-1093 of method 1070 shown in FIG. 10 may be omitted and / or repeated in some embodiments.

[0098] Example Some aspects of the present technology are described in the following examples: Although some aspects of the present technology are described in examples directed particularly to methods, computer-readable media, and systems, these aspects of the present technology may likewise be described in examples directed to any of the systems, devices, methods, and computer-readable media in other embodiments. 1. A method for operating a robotic system, comprising: receiving sensor data representing a distance between (i) a sensor of the robotic system and (ii) a target object engaged by an end effector of the robotic system; determining a height of the target object based at least in part on the sensor data; updating a motion plan for placing the target object at a destination location based at least in part on the height of the target object; Including, the updated motion plan includes commands, settings, or a combination thereof, for operating a robot arm and the end effector to (i) approach the destination location, and (ii) disengage the target object to place the target object at the destination location. 2. Determining the height of the target object based at least in part on the sensor data comprises: determining a first distance between a position of the end effector and the sensor; determining the distance between the sensor and the target object based at least in part on the sensor data, wherein the distance between the sensor and the target object is a second distance; determining a difference between the first distance and the second distance; The method of Example 1, comprising: 3. The method of Example 2, wherein determining the first distance includes determining or tracking the position of the end effector. 4. The method of any one of Examples 1-3, wherein updating the motion plan includes determining a release altitude above the destination location at which the end effector disengages the target object. 5. The method of Example 4, wherein determining the release altitude includes determining the release altitude based at least in part on one or more characteristics of the target object. 6. The method of example 5, wherein the one or more characteristics include a weight of the target object. 7. The method of any one of Examples 1-6, wherein updating the motion plan includes determining a velocity at which the robot arm and the end effector should move the target object toward the destination location. 8. Further comprising deriving the motion plan; deriving the motion plan includes pre-calculating first commands, first settings, or a first combination thereof for moving the robotic arm and the end effector based at least in part on a maximum possible height value of the target object and / or a minimum possible height value of the target object; The method of any one of Examples 1 to 7, wherein updating the motion plan includes updating the first command, the first setting, or the first combination thereof to a second command, a second setting, or a second combination thereof based at least in part on the height of the target object. 9. The method of Example 8, wherein updating the motion plan includes updating the motion plan before the robotic system executes the first command, the first setting, or the first combination thereof. 10. The method of Example 8, wherein updating the motion plan includes updating the motion plan while the robotic system is executing the first command, the first setting, or the first combination thereof. 11. The command, the setting, or the combination thereof is a first command, a first setting, or a first combination thereof; 11. The method of any one of Examples 1 to 10, wherein the updated motion plan further includes a second command, a second setting, or a second combination thereof for operating the robot arm or the end effector to return the end effector to a start position directly from the position where the end effector disengages the target object to place the target object at the destination location. 12. Further comprising deriving the motion plan; deriving the motion plan pre-calculating, based at least in part on the maximum possible height value of the target object and / or the minimum possible height value of the target object, a third command, a third setting, or a third combination thereof for operating the robot arm and the end effector to raise the end effector to a specified height after disengaging the target object to place the target object at the destination location; pre-calculating a fourth command, a fourth setting, or a fourth combination thereof for operating the robot arm and the end effector to return the end effector to the start position after raising the end effector to the specified height; Including, Example 12. The method of Example 11, wherein updating the motion plan includes updating the third command, the fourth command, the third setting, and / or the fourth setting to the second command, the second setting, or the second combination thereof based at least in part on the height of the target object. 13. The sensor data is first sensor data; The method further comprises: receiving second sensor data representing a second distance between (i) the sensor and (ii) the target object while the end effector approaches the destination location in accordance with the command, the setting, or a combination thereof; determining the second distance based at least in part on the second sensor data; The method according to Examples 1 to 12, comprising: Example 14. The method further comprising deriving the motion plan; 14. The method of any one of Examples 1 to 13, wherein the motion plan includes second commands, second settings, or a second combination thereof for operating the robot arm and the end effector to position the target object within the field of view of the sensor such that (i) the target object is positioned above the sensor, and (ii) the end effector is positioned on an opposite side of the target object from the sensor. 15. The method of any one of Examples 1 to 14, wherein the target object is an unregistered object having a height that is initially unknown to the robotic system prior to determining the height of the target object based at least in part on the sensor data. 16. A non-transitory computer-readable medium having stored thereon processor instructions that, when executed by one or more processors of a robotic system, cause the robotic system to perform a method, comprising: The method comprises: instructions for determining a height of a target object based, at least in part, on sensor data representative of a distance between a sensor and a target object engaged by an end effector of the robotic system; instructions for updating a motion plan for placing the target object at a destination location based at least in part on the height of the target object, the updated motion plan including commands, settings, or a combination thereof, for operating a robot arm and the end effector to (i) approach the destination location, and (ii) disengage the target object to place the target object at the destination location; and 10. A non-transitory computer-readable medium comprising: 17. A robot sensor comprising: A robotic arm, an end effector attached to the robot arm; a range sensor having a vertically oriented field of view; Equipped with The robot system includes: transferring a target object between a source location and a destination location using the robot arm and the end effector; presenting the target object within the vertically oriented field of view of the distance sensor before placing the target object at the destination location using the robot arm and the end effector; A robotic system configured to: 18. The robotic system of example 17, wherein the distance sensor is positioned at a location between the source location and the destination location. 19. The destination location is located on top of a roller of a conveyor; 18. The robotic system of example 17, wherein the distance sensors are positioned at the destination location and below the rollers of the conveyor. 20. The robotic system of Example 19, wherein at least a portion of the vertically oriented field of view of the distance sensor is not obstructed by the rollers of the conveyor.

[0099] conclusion The above detailed description of embodiments of the present technology is not intended to be exhaustive or to limit the present technology to the precise form disclosed above. Specific embodiments of, and examples for, the present technology are described above for illustrative purposes, but those skilled in the art will recognize that various equivalent modifications are possible within the scope of the present technology. For example, while steps are presented above in a given order, steps may be performed in a different order in alternative embodiments. Furthermore, the various embodiments described herein may also be combined to provide further embodiments.

[0100] From the foregoing, it will be understood that specific embodiments of the present technology have been described herein for illustrative purposes, but that well-known structures and functions have not been shown or described in detail to avoid unnecessarily obscuring the description of the embodiments of the present technology. To the extent that material incorporated herein by reference conflicts with the present disclosure, the present disclosure shall control. Where the context permits, singular or plural terms may also include plural or singular terms, respectively. In addition, unless the word "or" is expressly limited in reference to a list of two or more items to mean only a single item exclusively from the other items, the use of "or" in such a list should be interpreted as including (a) any single item in the list, (b) all items in the list, or (c) any combination of items in the list. Furthermore, as used herein, the phrase "and / or" in "A and / or B" refers to A only, B only, and both A and B. Additionally, the terms "comprising," "including," "having," and "with" are used throughout this disclosure to mean the inclusion of at least the recited feature(s), without excluding any greater number of the same features and / or other features of additional types. Furthermore, as used herein, the phrases "based on," "depends on," "resulting from," and "responsible for" are not intended to be construed as referring to a closed set of conditions. For example, an example step described as "based on condition A" could be based on both condition A and condition B without departing from the scope of the present disclosure. In other words, as used herein, the phrase "based on" is intended to be construed in the same manner as the phrases "based at least in part on" or "based at least partially on." Additionally, the terms "connect" and "couple" are used interchangeably herein and refer to both direct and indirect connections or couplings.For example, where the context allows, element A is "connected" or "coupled" to element B can refer to (i) A being directly "connected" or "coupled" to B and / or (ii) A being indirectly "connected" or "coupled" to B.

[0101] From the foregoing, it will also be understood that various modifications may be made without departing from the present disclosure or technology. For example, those skilled in the art will understand that various components of the technology can be further divided into subcomponents, or that various components and functions of the technology can be combined and integrated. In addition, certain aspects of the technology described in the context of particular embodiments may also be combined or eliminated in other embodiments. Furthermore, while advantages associated with certain embodiments of the technology have been described in the context of those embodiments, other embodiments may also exhibit such advantages, and not all embodiments must necessarily exhibit such advantages to fall within the scope of the technology. Thus, the present disclosure and associated technology can encompass other embodiments not explicitly shown or described herein.

Claims

1. 1. A method for operating a robotic system, comprising: receiving sensor data representing a distance between (i) a sensor of the robotic system and (ii) a target object engaged by an end effector of the robotic system; determining a height of the target object based at least in part on the sensor data; updating a motion plan for placing the target object at a destination location based at least in part on the height of the target object; Including, the updated motion plan includes commands, settings, or a combination thereof for operating the robot arm and the end effector to (i) approach the destination location, and (ii) disengage the target object to place the target object at the destination location; updating the motion plan includes determining a release altitude above the destination location at which the end effector will disengage the target object based at least in part on one or more characteristics of the target object.

2. Determining the height of the target object based at least in part on the sensor data includes: determining a first distance between a position of the end effector and the sensor; determining the distance between the sensor and the target object based at least in part on the sensor data, wherein the distance between the sensor and the target object is a second distance; determining a difference between the first distance and the second distance; The method of claim 1 , comprising:

3. The method of claim 2 , wherein determining the first distance comprises determining or tracking the position of the end effector.

4. The method of claim 1 , wherein the one or more characteristics include a weight of the target object.

5. The method of claim 1 , wherein updating the motion plan includes determining a velocity at which the robotic arm and the end effector will move the target object toward the destination location.

6. deriving the motion plan; deriving the motion plan includes pre-calculating first commands, first settings, or a first combination thereof for moving the robot arm and the end effector based at least in part on a maximum possible height value of the target object and / or a minimum possible height value of the target object; 2. The method of claim 1, wherein updating the motion plan comprises updating the first command, the first setting, or the first combination thereof to a second command, a second setting, or a second combination thereof based at least in part on the height of the target object.

7. 7. The method of claim 6, wherein updating the motion plan comprises updating the motion plan before the robotic system executes the first command, the first setting, or the first combination thereof.

8. 7. The method of claim 6, wherein updating the motion plan comprises updating the motion plan while the robotic system is executing the first command, the first setting, or the first combination thereof.

9. the command, the setting, or the combination thereof is a first command, a first setting, or a first combination thereof; 10. The method of claim 1, wherein the updated motion plan further includes second commands, second settings, or a second combination thereof for operating the robot arm or the end effector to return the end effector to a start position directly from the position where the end effector disengages the target object to place the target object at the destination location.

10. deriving the motion plan; deriving the motion plan pre-calculating, based at least in part on the maximum possible height value of the target object and / or the minimum possible height value of the target object, a third command, third setting, or a third combination thereof for operating the robot arm and the end effector to raise the end effector to a specified height after disengaging the target object to place the target object at the destination location; pre-calculating a fourth command, fourth setting, or fourth combination thereof for operating the robot arm and the end effector to return the end effector to the start position after raising the end effector to the specified height; Including, 10. The method of claim 9, wherein updating the motion plan comprises updating the third command, the fourth command, the third setting, and / or the fourth setting to the second command, the second setting, or the second combination thereof based at least in part on the height of the target object.

11. the sensor data is first sensor data, The method further comprises: receiving second sensor data representing a second distance between (i) the sensor and (ii) the target object while the end effector approaches the destination location in accordance with the command, the setting, or a combination thereof; determining the second distance based at least in part on the second sensor data; The method of claim 1 , comprising:

12. deriving the motion plan; 10. The method of claim 1, wherein the motion plan includes second commands, second settings, or a second combination thereof for operating the robot arm and the end effector to position the target object within a field of view of the sensor such that (i) the target object is positioned above the sensor, and (ii) the end effector is positioned on an opposite side of the target object from the sensor.

13. The method of claim 1 , wherein the target object is an unregistered object having a height that is initially unknown to the robotic system prior to determining the height of the target object based at least in part on the sensor data.

14. 1. A non-transitory computer-readable medium having stored thereon processor instructions that, when executed by one or more processors of a robotic system, cause the robotic system to perform a method, comprising: The method comprises: instructions for determining a height of a target object based, at least in part, on sensor data representative of a distance between a sensor and a target object engaged by an end effector of the robotic system; instructions for updating a motion plan for placing the target object at a destination location based at least in part on the height of the target object, the updated motion plan including commands, settings, or a combination thereof, for operating a robot arm and the end effector to (i) approach the destination location, and (ii) disengage the target object to place the target object at the destination location; and performing updating the motion plan includes determining a release altitude above the destination location at which the end effector will disengage the target object based at least in part on one or more characteristics of the target object.

15. 1. A robotic system comprising: A robotic arm, an end effector attached to the robot arm; a range sensor having an upwardly directed field of view; Equipped with The robot system includes: engaging the target object with the end effector; transferring the target object between a source location and a destination location using the robot arm and the end effector; presenting the target object within the field of view of the distance sensor before placing the target object at the destination location using the robot arm and the end effector; determining a height of the target object based on a detection result of the distance sensor; determining a release altitude above the destination location at which the end effector will disengage the target object based at least in part on one or more characteristics of the target object; A robotic system configured to:

16. The robotic system of claim 15 , wherein the distance sensor is positioned at a location between the source location and the destination location.

17. the destination location is located on top of a roller of a conveyor; The robotic system of claim 15 , wherein the distance sensors are positioned at the destination location and below the rollers of the conveyor.

18. The robotic system of claim 17 , wherein at least a portion of the field of view of the distance sensor is unobstructed by the rollers of the conveyor.

Citation Information

Patent Citations

  • Position and attitude detecting method for object in image processor

    JP1994012112A

  • Transport robot controlling method

    JP1995299777A

  • Article movement apparatus, article movement method, and article movement control program

    JP2019051559A

  • Work resumption system, manufacturing method, and program

    JP2021160041A

  • Robotic multi-gripper assembly and method for grasping and holding an object - Patent Application 20070122997

    JP2021534002A