Control of a robotic manipulator for packing objects

The robotic packing system addresses planning and contact issues by using image alignment and force feedback to adapt packing attempts, improving efficiency and robustness in handling non-rigid objects.

JP7841112B2Active Publication Date: 2026-04-06OCADO INNOVATION LTD
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-03-29
Publication Date
2026-04-06

AI Technical Summary

Technical Problem

Current bin packing systems struggle with planning and contact avoidance, particularly in real-world scenarios involving non-rigid objects, and lack robustness in handling unexpected errors, as seen in food packing applications.

Method used

A robotic packing system that uses image analysis to align objects with receptacles and employs force feedback to adjust orientations during packing attempts, aborting and restarting if contact forces exceed a threshold, and iteratively refining the packing process.

Benefits of technology

This approach reduces the likelihood of damaging objects or receptacle contents by aligning objects with receptacles and adapting packing attempts based on force feedback, enhancing the robustness and efficiency of the packing process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007841112000001
    Figure 0007841112000001
  • Figure 0007841112000002
    Figure 0007841112000002
  • Figure 0007841112000003
    Figure 0007841112000003
Patent Text Reader

Abstract

A computer-implemented method of controlling a robot manipulator for packing an object is provided, the method including acquiring an image of an object grasped by an end effector of the robot manipulator and determining a principal axis of the object in the image. A first object pose is determined, where the principal axis of the object is aligned with an axis of the storage space. The robot manipulator is controlled to manipulate the object into the first object pose above the storage space and move the object from the first object pose downward into the storage space. In response to detecting, by a force sensor, a contact force at the end effector that exceeds a predetermined force threshold, the robot manipulator is controlled to manipulate the object to a second object pose above the storage space to initiate a further attempt to place the object within the storage space.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a robot control system, and more particularly, to a system and method for use in packing an object into a receptacle.

Background Art

[0002] Bin packing is a core problem in computer vision and robotics. The goal is to have a system with a sensor and a robot for gripping items using a suction gripper, a parallel gripper, or other types of robot end effectors and packing the items into a bin, e.g., a receptacle. The packing system may be combined with a bin picking system that uses the same or different robots and uses the same or different types of end effectors to first pick up objects with random poses (positions / orientations) from different bins.

[0003] However, current systems have problems including focusing on planning, avoiding all contacts during packing, and assuming that only rigid objects are being packed. This means that the system is not practical in real-world scenarios. For example, general-purpose packing solutions usually do not consider the particularities of the food packing problem. For example, packing algorithms should be able to handle unexpected errors and be robust when performing packing attempts in real-world scenarios.

Summary of the Invention

[0004] A computer-implemented method for controlling a robot manipulator for packing an object is provided, the method comprising: obtaining an image of an object gripped by an end effector of a robot manipulator; determining a principal axis of the object within the image; The first step is to determine the orientation of the object, where the principal axis of the object is aligned with the axis of the containment space. Manipulate the object to a first object orientation above the containment space, The object is moved downwards into the containment space from the first object orientation. In response to the detection of a contact force exceeding a predetermined force threshold by a force sensor in the end effector, the system includes controlling the robotic manipulator to manipulate the object to a second object orientation above the containment space in order to initiate a further attempt to position the object within the containment space.

[0005] Furthermore, a data processing device is provided, comprising a processor configured to perform the method. When the program is executed by a computer, the computer is provided with a computer program comprising instructions for performing the method. Similarly, when executed by a computer, a computer-readable medium is provided, comprising instructions for performing the method.

[0006] Furthermore, a robotic packing system is provided, comprising a robotic manipulator for packing objects and a controller for the robotic manipulator. The robot manipulator acquires an image of the object it grasps, Determine the principal axis of the object in the image, The first object orientation is determined, where the principal axis of the object is aligned with the axis of the containment space. Manipulate the object to a first object orientation above the containment space, The object is moved downwards into the containment space from the first object orientation. In response to the detection of a contact force exceeding a predetermined force threshold by a force sensor in the end effector, the system is configured to control the robotic manipulator to manipulate the object to a second object orientation above the containment space, in order to initiate a further attempt to position the object within the containment space.

[0007] Generally, this description introduces a system and method for packing an object into a receptacle, such as a container, by using a robotic manipulator to align the object with the receptacle (based on imaging analysis) and repeating packing attempts (based on force feedback). A contact force threshold, which may include a torque threshold, means that the system is sensitive to forces that could damage the object being packed or the contents of the receptacle. For example, if a contact force / torque exceeding a set threshold is detected, the packing attempt is aborted, and the robotic manipulator is restarted for another packing attempt, starting from the shifted initial pose.

[0008] Aligning the object with the receptacle reduces the likelihood of contact forces occurring between the object and the receptacle during one or more packing attempts. However, since unexpected contact forces can still occur, for example, between the object and the receptacle contents, repeating packing attempts along the path of the shifted initial orientation can increase the chances of achieving a successful packing attempt, for example, where the object is released into the receptacle without exceeding a set force / torque threshold. Thus, the repeatability of the presented packing solution adds robustness to the algorithm compared to known systems and methods by allowing it to react to unexpected contacts and attempt a new pack run at the modified initial position.

[0009] Overall, this system and method combines an aligner, a pre-action component that uses image analysis to propose an initial pose, and an iterative packer, a post-action component that drives a robotic manipulator to perform packing trials. Together, the combined system improves the efficiency of achieving successful packing trials compared to implementing one or the other component independently. [Brief explanation of the drawing]

[0010] Embodiments are described merely as examples with reference to the accompanying drawings, and similar reference numerals indicate the same or corresponding parts. [Figure 1] Figure 1 is a schematic diagram of a robot packing system according to one embodiment. [Figure 2] Figure 2 is a schematic front view of a robot packing system according to one embodiment. [Figure 3A] Figure 3A is a schematic perspective view from an overhead camera of a robotic packing system according to one embodiment. [Figure 3B] Figure 3B is a representation of the point cloud image corresponding to the perspective view from the overhead camera in Figure 3A. [Figure 4A] Figure 4A shows the point cloud image representation of the object separated from the point cloud image in Figure 3B. [Figure 4B] Figure 4B shows the projection of the point cloud image from Figure 4A onto a two-dimensional plane. [Figure 5] Figure 5 shows a flowchart illustrating a computer implementation method for controlling a robotic manipulator for packing objects, according to one embodiment.

[0011] In the drawings, similar features are indicated by the same reference numerals as appropriate. [Modes for carrying out the invention]

[0012] The following description includes some specific details to provide a complete understanding of the various disclosed embodiments. However, those skilled in the art will recognize that embodiments may be practiced without one or more of these specific details, or with other methods, components, materials, etc. In some examples, well-known structures related to gripper assemblies and / or robotic manipulators (such as processors, sensors, memory devices, network interfaces, workpieces, tension members, fasteners, electrical connectors, mixers, etc.) are not shown or described in detail to avoid unnecessarily obscuring the description of the disclosed embodiments.

[0013] Unless the context requires a different interpretation, the word “comprise,” and its variations such as “comprises” and “comprising,” should be interpreted in this specification and the appended claims in an open and comprehensive sense, that is, “including, but not limited to.”

[0014] Throughout this document, any reference to “one,” “an,” or “another” in relation to “embodiments,” “examples” means that a particular feature, configuration, or characteristic described in connection with that embodiment, example, or implementation is included in at least one embodiment, example, or implementation. Thus, occurrences of phrases such as “in one embodiment” in various parts of this specification do not necessarily all refer to the same embodiment. Furthermore, a particular feature, configuration, or characteristic may be combined in any suitable manner in one or more embodiments, examples, or implementations.

[0015] Note that, as used herein and in the accompanying claims, the forms “a,” “an,” and “the” include the plural unless explicitly stated otherwise. Note that the term “or” is generally used to include “and / or” unless explicitly stated otherwise.

[0016] With respect to Figure 1, an example of a robotic packing system 100 that may be adapted for use with this assembly, apparatus, and method is shown. The robotic packing system 100 may form part of an online retail operation, such as an online grocery retail operation. Furthermore, it can be applied to any other operation that requires packing items. For example, the robotic packing system 100 may be adapted to pick or sort goods as a robotic picking / packing system, sometimes called, for example, a “pick and place robot.”

[0017] The robotic packing system 100 includes a manipulator device 102 having a robotic manipulator 121. The manipulator 121 is an electromechanical machine including one or more appendages such as a robotic arm 120 and an end effector 122 attached to an end of the robotic arm 120. The end effector 122 is a device configured to interact with the environment to perform tasks including, for example, gripping, grasping, releasably engaging, or otherwise interacting with an item. Examples of the end effector 122 include a jaw gripper, a finger gripper, a magnetic or electromagnetic gripper, a Bernoulli gripper, a vacuum suction cup, an electrostatic gripper, a van der Waals gripper, a capillary gripper, a cryogenic gripper, an ultrasonic gripper, and a laser gripper.

[0018] The robotic manipulator 121 can grip and manipulate an object. In the case of picking and placing, the robotic manipulator 121 is configured to, for example, pick an item from a first location and place the item at a second location.

[0019] The manipulator device 102 is communicatively coupled via a communication interface 104 to other components of the robotic packing system 100, such as one or more optional operator interfaces 106 through which an observer can observe or monitor the system 100 and the manipulator device 102. The operator interface 106 may include a WIMP interface and an output display of a description or dynamic representation of the manipulator device 102 in a context or scenario. For example, the dynamic representation of the manipulator device 102 may include a video feed, such as a computer-generated animation. Examples of suitable communication interfaces 104 include wire-based networks or communication interfaces, light-based networks or communication interfaces, wireless networks or communication interfaces, or combinations of wired, light, and / or wireless networks or communication interfaces.

[0020] An exemplary robotic packing system 100 also includes a control system 108 that includes at least one controller 110 communicatively coupled via a communication interface 104 to the manipulator device 102 and any other components of the robotic packing system 100. The controller 110 comprises a control unit or computing device having one or more electronic processors. Embedded within the one or more processors is computer software that includes a set of control instructions that, when executed, cause the controller 110 to issue operating commands or control signals to the manipulator system 102. For example, the operating commands or control signals cause the manipulator 121 to perform various methods and actions, such as identifying and manipulating items.

[0021] One or more electronic processors may include one or more microprocessors, central processing units (CPUs), digital signal processors (DSPs), graphics processing units (GPUs), application-specific integrated circuits (ASICs), programmable gate arrays (PGAs), programmed logic units (PLUs), and at least one logic processing unit. In some implementations, the controller 110 is a smaller processor-based device such as a mobile phone, single-board computer, or embedded computer, which is interchangeably referred to as, or sometimes called, a computer, server, or analyzer. A set of control instructions may be provided as processor-executable data relating to the operation of the system 100, and the manipulator device 102 includes a non-temporary computer-readable storage device 112 that forms part of the robot packing system 100 and is accessible to the controller 110 via a communication interface 104.

[0022] In some implementations, the storage device 112 includes two or more separate devices. The storage device 112 may include, for example, one or more volatile storage devices, such as random access memory (RAM), and one or more non-volatile storage devices, such as read-only memory (ROM), flash memory, magnetic hard disk (HDD), optical disk, solid-state disk (SSD), etc. Those skilled in the art will recognize that storage can be implemented in a variety of ways, such as read-only memory (ROM), random access memory (RAM), hard disk drives (HDD), network drives, flash memory, digital versatile disks (DVDs), any other form of computer and processor-readable memory or storage medium, and / or combinations thereof. Storage may be read-only or read-write, as required.

[0023] The robot packing system 100 includes a sensor subsystem 114 equipped with one or more sensors that detect, sense, or measure the state of the manipulator device 102 and / or the state of the environment or workspace in which the manipulator 121 operates, and generate or provide corresponding sensor data or information. The sensor information includes environmental sensor information representing the environmental conditions in the workspace of the manipulator 121, as well as information representing the conditions or state of the manipulator device 102, including various subsystems and their components, and the characteristics of the item to be operated. The acquired data is transmitted to the controller 110 via the communication interface 104, which can then instruct the manipulator 121 accordingly. Such information may include, for example, diagnostic sensor information useful for diagnosing the state or condition of the manipulator device 102, or the environment in which the manipulator 121 operates.

[0024] Such sensors include, for example, one or more cameras or imaging devices 116 (e.g., responding in the visible and / or invisible range of the electromagnetic spectrum, including infrared and ultraviolet). One or more cameras 116 may include depth cameras, such as stereo cameras, to capture depth data along with color channel data in the captured scene. Other sensors in the sensor subsystem 114 may include one or more of the following: contact sensors, force sensors, strain gauges, vibration sensors, position sensors, attitude sensors, accelerometers, radar, sonar, lidar, touch sensors, pressure sensors, load cells, microphones 118, weather sensors, chemical sensors, etc. In some implementations, sensors include diagnostic sensors for monitoring the status and / or health of onboard power supplies (e.g., battery arrays, ultracapacitor arrays, or fuel cell arrays) in the manipulator device 102.

[0025] In some implementations, one or more sensors include a receiver for receiving position and / or orientation information about the manipulator 121. For example, a GPS receiver for receiving Global Positioning System (GPS) data, and two or more time signals for a controller 110 for creating position measurements based on data in the signals, such as time of flight, signal strength, or other data for achieving position measurement. Also, one or more accelerometers may be provided on the manipulator 121, which may also form part of the manipulator device 102, to acquire inertial or directional data in one, two, or three axes regarding its movement.

[0026] The robot manipulator 121 of system 100 may be controlled by a human operator via the operator interface 106. In human operator control (or "control") mode, the human operator observes sensor data, such as video, audio, or tactile data representations, received from one or more sensors of the sensor subsystem 114. The human operator then acts conditioned by the perception of the data representations and accordingly creates information or executable control commands to guide the manipulator 121. In control mode, the manipulator device 102 can execute control commands such as those received from the operator interface 106 in real time (e.g., without additional delay) without considering other control commands based on the sensed information.

[0027] In some implementations, the manipulator device 102 operates autonomously, i.e., without a human operator creating control commands in the operator interface 106 to direct the manipulator 121. The manipulator device 102 may also operate in autonomous control mode by executing autonomous control commands. For example, the controller 110 can use sensor data from one or more sensors of the sensor subsystem 114. The sensor data is associated with operator-generated control commands from one or more times when the manipulator device 102 was in pilot mode, generating autonomous control commands for subsequent use. For example, deep learning techniques can be used to extract features from the sensor data. Thus, in autonomous mode, the manipulator device 102 can autonomously recognize its environment and the characteristics or state of the item to be manipulated. In response, the manipulator device 102 performs one or more defined actions or tasks. For example, the manipulator device 102 performs a pipeline or sequence of actions or tasks.

[0028] In some implementations, the controller 110 autonomously recognizes the characteristics or state of the environment surrounding the manipulator 121, and one or more virtual items synthesized into the environment. The environment is represented by sensor data from the sensor subsystem 114. In response to the presentation of the representation, the controller 110 issues control signals to the manipulator device 102 to perform one or more actions or tasks.

[0029] In some examples, the manipulator device 102 may be autonomously controlled at a given time while being operated, controlled, or manipulated by a human operator at another time. That is, the manipulator device 102 may operate under autonomous control mode and change to operate under pilot (i.e., non-autonomous) mode. In another operating mode, the manipulator device 102 may replay or execute control commands previously executed in pilot mode. That is, the manipulator device 102 may operate based on replayed pilot data without using sensor data.

[0030] The manipulator device 102 further includes a communication interface subsystem 124 (e.g., a network interface device) which is communicatively coupled to the bus 126 and provides bidirectional communication with other components of the system 100 (e.g., the controller 110) via the communication interface 104. The communication interface subsystem 124 may be any circuit that provides bidirectional communication of processor-readable data and processor-executable instructions, such as a radio (e.g., radio or microwave frequency transmitter, receiver, transceiver) port and / or associated controller. Suitable communication protocols include FTP, HTTP, web services, SOAP with XML, cellular (e.g., GSM®, CDMA), Wi-Fi® compliant, Bluetooth® compliant, etc.

[0031] The manipulator device 102 further includes a motion subsystem 130 that is communicatively coupled to the robot arm 120 and / or end effector 122. The motion subsystem 130 comprises one or more motors, solenoids, other actuators, linkage mechanisms, drive belts, etc., that are operable to move the robot arm 120 and / or end effector 122 within a range of motion in accordance with actuation commands or control signals issued by the controller 110. The motion subsystem 130 is communicatively coupled to the controller 110 via a bus 126.

[0032] The manipulator device 102 also includes an output subsystem 128 having one or more output devices, such as a speaker, light, or display, that enable the manipulator device 102 to transmit signals into the workspace for communication with an operator and / or another manipulator device 102.

[0033] Those skilled in the art will understand that the components of the manipulator device 102 may be modified, combined, divided, omitted, and so on. In some examples, one or more of the communication interface subsystem 124, the output subsystem 128, and the motion subsystem 130 are combined. In other examples, one or more subsystems (e.g., the motion subsystem 130) are divided into further subsystems.

[0034] Figure 2 shows an example of a robot packing system 200 including an implementation of a robot manipulator 121, for example, the robot manipulator 221 described in the previous example. According to such an example, the robot manipulator 221 includes a robot arm 220, an end effector 222, and a motion subsystem 230. The motion subsystem 230 is communicatively coupled to the robot arm 220 and the end effector 222 and is configured to move the robot arm 220 and / or the end effector 222 in accordance with actuation commands or control signals issued by a controller (not shown). The controller, for example, the controller 110 described in the previous example, is part of the manipulator apparatus having the robot manipulator 221.

[0035] The robotic manipulator 221 manipulates an object, for example, gripped by an end effector 222, within the workspace to position the object for packing into a storage space, such as a container (or "bin" or "tote") 244. For example, the robotic packing system 200 may be implemented in an automated storage and retrieval system (ASRS), for example, in its picking station. The ASRS typically includes a number of containers arranged for storing items and one or more load handling devices or automated guided vehicles (AGVs) for retrieving one or more containers 244 during the fulfillment of a customer order. At the picking station, items are picked from and / or placed into one or more retrieved containers 244. One or more containers in the picking station may be considered storage containers or delivery containers. Storage containers are containers that remain in the ASRS and hold each of the products that can be transferred from the storage containers to the delivery containers. Delivery containers are containers that are introduced into the ASRS when empty and have a number of different products loaded into them. A shipping container may contain one or more bags or cartons into which products can be loaded. A shipping container may be substantially the same size as a storage container. Alternatively, a shipping container may be slightly smaller than a storage container so that it can be nested inside a storage container.

[0036] Therefore, the robot packing system 200 can be used at a picking station to pick items from one container, for example, a storage container, and place those items into another container, for example, a delivery container. Thus, the picking station may have two sections, namely one section for storage containers and one section for delivery containers. The arrangement of the picking station, for example, its sections, can be modified and selected by those skilled in the art. For example, the two sections may be arranged on two sides of an area, or one section may be above or below the other. In some cases, the picking station may be located away from the storage locations of containers in the ASRS, for example, away from the storage grid in a grid-based ASRS. Thus, a loading handling device may deliver containers to one or more ports of the ASRS connected to the picking station, for example by a chute, and collect the containers from there. In other examples, the picking station may be located to directly interact with a subset of storage locations in the ASRS, for example, to pick and place items between containers located in a subset of storage locations. For example, in the case of a grid-based ASRS, the picking stations may be located on the ASRS grid.

[0037] The robot manipulator 221 may have one or more end effectors 222. For example, the robot manipulator 221 may have two or more different types of end effectors. In some examples, the robot manipulator 221 may be configured to swap a first end effector with a second effector. In some cases, the controller may send commands to the robot manipulator 221 regarding which end effector 222 to use for each different object or product (or minimum inventory management unit, "SKU") being packed. Alternatively, the robot manipulator 221 may decide which end effector to use based on the weight, size, shape, etc., of the product. Previous successes and / or failures of grasping and moving items may be used to update the selection of end effectors for a particular SKU. This information may be fed back to the controller so that success / failure information is stored and shared between different picking / packing stations. The robot manipulator 221 may be capable of changing end effectors. For example, a picking / packing station may have a storage area capable of receiving one or more end effectors. The robotic manipulator 221 may be configured so that an end effector in use can be removed from the robotic arm 220 and placed in the end effector storage area. Additional end effectors may be detachably mounted on the robotic arm 220 so that they can be used in subsequent picking / packing operations. The end effectors may be selected according to the planned picking / packing operation.

[0038] The robot packing system 200 in Figure 2 includes a camera 216 positioned above the workspace of the robot manipulator 221. The overhead camera 216 is supported by a frame structure 240, which, although shown in a simplified form in the drawing, can take any suitable structural form as will be understood by those skilled in the art. For example, the frame structure 240 may include a scaffold to which the overhead camera 216 is mounted.

[0039] The overhead camera 216 is positioned to capture an image of the object grasped by the end effector 222 of the robot manipulator 221. For example, the overhead camera 216 is positioned to have a field of view of the robot manipulator 221's workspace, including the object when it is grasped by the end effector 222. Figure 3A shows a schematic diagram of the robot manipulator 221's workspace as seen by the overhead camera 216. The workspace includes a storage space, such as a container 344, which is positioned for the robot manipulator 221 to pack the grasped object. In this example, the container 344 is positioned within a rig 348 positioned to support the container 344 at a specific location within the robot manipulator 221's workspace. As previously mentioned, in other examples, the container 344 may be located in a picking station of a grid-based ASRS or in a storage location within a grid structure.

[0040] Camera 216 may correspond to one or more cameras or imaging devices 116 in the sensor subsystem 114 of the robot packing system 100, as described with reference to Figure 1. In the example, camera 216 of the robot packing system 200 comprises a depth camera configured to capture depth images. For example, the depth (or “depth map”) image contains depth information of the scene as seen by camera 216.

[0041] The point cloud generator may be associated with an overhead camera or imaging device 216, such as a depth camera or LiDAR sensor, positioned to view the workspace below it, for example, container 244 and its contents. In a typical setup, the underside of container 244 is positioned horizontally (e.g., in the xy plane in Figure 2) with the sensors of the overhead camera or imaging device 216 oriented vertically downwards (e.g., in the -z direction in Figure 2) to view the contents of container 244. Examples of structured optical devices for use in point cloud generation include Microsoft® Kinect® devices, time-of-flight devices, ultrasonic devices, pairs of stereo cameras, and laser strippers. These devices typically generate depth map images.

[0042] In the art, it is common practice to calibrate depth map images for aberrations in camera lenses and sensors. Once calibrated, the depth map can be converted into a set of metric 3D points known as a point cloud. Preferably, the point cloud is an organized point cloud, meaning that each 3D point lies in the line of sight of a separate pixel, resulting in a one-to-one correspondence between the 3D point and the pixel. Organization is desirable to enable more efficient point cloud processing. In a further part of the calibration process, the camera's orientation, i.e., its position and orientation, relative to a reference frame of the robot packing system 200 or robot manipulator 221 is determined. The reference frame may be the base of the robot manipulator 221, but any known reference frame, e.g., a reference frame located at the wrist joint of the robot arm 220, will work. Thus, the point cloud can be generated based on the depth map and information about the lens and sensor used to generate the depth map. Optionally, the generated depth map may be converted into a reference frame of the robot packing system 200 or robot manipulator 221. For simplicity, the cameras or imaging devices 116, 216 are shown as a single unit in Figures 1 and 2. However, as can be understood, the functions of depth map generation and depth map calibration, respectively, may be performed by separate units; for example, the depth map calibration means may be integrated within the controller of the robot packing systems 100, 200.

[0043] Figure 3B shows an exemplary depth image 300 of the workspace of the robotic manipulator 221, corresponding to the view in Figure 3A, captured by the overhead camera 216. In this example, the depth image 300 includes a point cloud. The image 300 includes the rig 348, the container 344, the bag (e.g., grocery bag or transport bag) 346 inside the container 344, and the object 350 grasped by the end effector 222 of the robotic manipulator 221.

[0044] A controller for the robotic manipulator 221, for example, a controller 100 communicably coupled to the manipulator device of the previous example, is configured to acquire images 300 captured by the overhead camera 216. As described herein, the images 300 include an object 350 grasped by the end effector 222 of the robotic manipulator 221.

[0045] The controller processes image 300 to determine the principal axis of object 350 in image 300, for example, the longitudinal axis of object 350. For example, the longitudinal axis of object 350 is the axis along the longitudinal direction of the object's body that can pass through the center of gravity or center of mass. The principal axis can also be defined by the endpoint of the longest line that can be drawn through object 350 as represented in image 300. The principal axis endpoints, for example, the pixel coordinates (x1, y1) and (x2, y2) in image 300, can be found, for example, by calculating the pixel distance between all combinations of boundary pixels within the object boundary and finding the pair with the longest length.

[0046] Object 350 may have other axes, such as a minor axis or a transverse axis, whose length is not substantially equal to the longitudinal axis. The minor axis is defined, for example, by the endpoint of the longest line that can be drawn through object 350 as represented in the image but remains perpendicular to the principal axis. The minor axis endpoint is determined, for example, by calculating the pixel distance between two boundary pixel endpoints. The transverse axis is perpendicular to the vertical axis. In a third dimension, a sagittal axis can be defined that is perpendicular to both the longitudinal and transverse axes of object 350. An object symmetric in two or three dimensions has, for example, two or three axes, each of which is substantially equal in length. For example, a spherical object has symmetry in all three dimensions such that all axes passing through the center of the sphere are equal in length. Thus, any such axis can be determined as the principal axis of a spherical object. Similarly, a cylindrical object 350, such as in the example in Figure 3B, is axisymmetric and has cylindrical symmetry about its longitudinal axis.

[0047] In the example, the controller processes the depth image 300 to remove any features from it that have associated depth values ​​outside the range corresponding to the volume between the end effector 222 and the top surface 262 of the containment space. For example, if the image 300 is a point cloud, the controller removes points from the point cloud between the end effector 222 and the top plane 362 of the containment space. The top surface 262 of the containment space coincides with the top of the containment space, for example, the container 244 in the example of Figure 2. In an example where the image 300 includes a layer of depth values ​​corresponding on a pixel-by-pixel basis to depth information, such as color (RGB, etc.) or intensity channel data, the controller removes pixels or pixel values ​​from the image 300 that have associated depth values ​​outside the defined range. Thus, the controller can use the depth information to isolate the object 350 from the image 300.

[0048] Figure 4A shows an exemplary image 470 of an object 350 separated from an image 300 captured by an overhead camera 216. In this example, the controller processes image 470 to obtain a set of two-dimensional (2D) points, as shown in exemplary image 475 of Figure 4B, projecting a depth image of the object 300 onto a plane 260 parallel to the bottom surface of the containment space (e.g., containers 244, 344). The controller then determines the principal axis 480 of the object 350 based on the set of 2D points. For example, the controller performs principal component analysis (PCA) using the set of 2D points. Performing PCA determines the axis that maximizes the variance of the 2D points projected onto this axis as the principal axis 480, which is more robust than using a line between the furthest points because it is not affected by outliers (e.g., some distant points at the bottom of Figure 4B).

[0049] Once the principal axis 480 of object 350 is determined, the controller is configured to determine a first object orientation in which the principal axis 480 is aligned with the axis of the containment space. In the example of Figure 3B, the axis of the containment space is the principal axis of the selected bag 346 in container 344. In the example, the principal axis 480 of the object and the axis of the containment space are aligned within an angular separation of, for example, 1 or 2 degrees, when they are substantially parallel to each other. For example, the two axes do not need to overlap, be aligned in a straight line, or overlap in a common plane in order to align with each other. In particular cases, a first object orientation is determined in which, in addition to aligning the axes, the two axes at least partially overlap when projected onto a common plane. However, subsequent initial object orientations corresponding to further packing attempts (described in later examples) may keep the axes aligned but shift the principal axis 480 of the object so that the two axes no longer overlap each other.

[0050] An object's orientation represents the position and orientation of a given object in space. For example, an object's 6-dimensional (6D) orientation includes the values ​​for its three translational dimensions (e.g., corresponding to position) and three rotational dimensions (e.g., corresponding to orientation).

[0051] In some implementations, the controller works in conjunction with a pose generator (or pose estimator) configured to generate (e.g., determine or estimate) an object pose. For example, determining a given object pose involves mapping the 2D pixel positions in an image of the object to a 6D pose.

[0052] The controller controls the robot manipulator 221 to manipulate the object to a first object orientation above the containment space, for example, the container 244. For example, the controller issues actuation commands or control signals to the motion subsystem 230 of the robot manipulator 221 to cause the robot arm 220 and / or end effector 222 to manipulate the object to the first object orientation, for example, to move and / or rotate. In a particular example, the controller determines the planar rotation of the end effector 222 to align the principal axis of the object with the axis of the containment space, for example, in the first object orientation. The controller may then control the robot manipulator 221 to perform the planar rotation of the end effector 222.

[0053] In the example, the first object orientation includes, for example, a predetermined value of the object's height in the z-direction perpendicular to the bottom surface of the containment space (such as container 244). For example, the first object orientation includes a translational position on a plane 264 above container 244, where plane 264 is perpendicular to the z-direction, i.e., parallel to the lowest plane 260 or highest plane 262 of container 244. The xy position of the first object orientation may be selected, for example, to be inside the xy boundary of container 244. In some cases, the first object orientation for attempting placement may be determined by adjusting the xy position of the initial object orientation (determined, for example, based on axial alignment) relative to the containment space, for example, by shifting the xy position of the initial object orientation toward the center of container 244. For example, the initial object orientation may have an object that overhangs the xy boundary of container 244, and in response, the initial object orientation is adjusted so that fewer objects overhang container 244 (or more object area overlays the container area). With respect to orientation (again shown in Figure 2 with respect to the global reference frame), the first object orientation can be determined by a controller that maintains the object's roll and pitch angles stably while varying the yaw angle to achieve alignment of each axis.

[0054] The controller controls the robot manipulator 221 to move the object downward from the first object orientation into the containment space. For example, using the orientation of the object defined by the first object orientation, the controller controls the robot manipulator 221 to move the object toward the container 244 in the (negative) z direction, for example, by adjusting the z value of the first object orientation while maintaining other values ​​of the first object orientation, thereby moving it into the container 244. For example, while the z value of the object's orientation is changed as the robot manipulator 221 moves the object into the container 244, the object's x and y positions and orientation are kept the same by the robot manipulator 221.

[0055] The robot manipulator 221 includes at least one force sensor (not shown). For example, the robot manipulator 221 includes at least one of the following: a torque sensor for detecting torque force, and a linear force sensor for detecting linear forces acting on, for example, the robot arm 220 or the end effector 222. The force / torque sensor is installed, for example, between the robot arm 220 and the end effector 222.

[0056] Several types of force / torque sensors are available to those skilled in the art, including strain gauges, capacitive sensors, and optical sensors. The operating principle of any force sensor is to produce a measurable response to an applied force. Some force sensors are made using force-sensing resistors, for example, using electrodes and sensing polymer films. Force-sensing resistors are based on contact resistance, and conductive polymer films change their electrical resistance in a predictable manner under a force applied to their surface. In certain implementations, the robot manipulator 221 has an integrated force / torque sensor, and for example, the e-series industrial robots (e.g., UR3e, UR5e, UR10e) manufactured by Universal Robots A / S (Odense, Denmark) may be used with their integrated force / torque sensor. Additionally or alternatively, the robot manipulator 221 may be retrofitted with at least one force / torque sensor, for example, a HEX force / torque sensor manufactured by OnRobot A / S in Odense, Denmark.

[0057] During the packing process, which involves forcing an object into a storage space, unintended contact may occur with the storage space, its components, or objects already packed within the storage space. For example, referring to Figures 3A to 3B, where the storage space corresponds to a bag inside tote 344, unintended contact may occur with the tote, the edges of the bag, or objects already inside tote 344 or bag 346.

[0058] A predetermined force threshold is set for the contact force detected by the force / torque sensor. If the controller detects that the contact force at the end effector 222 exceeds the predetermined force threshold, the controller controls the robot manipulator 221 to manipulate the object to a different second object orientation above the containment space in order to initiate further attempts to pack the object. For example, if the detected contact force is too high (relative to the preset force / torque threshold), the controller causes the robot manipulator 221 to reinitialize the object to attempt to pack it again, but starting from a different initial object orientation. In the example, the normal of the detected force or torque signal is compared to the preset force or torque threshold. In some cases, separate force and torque thresholds exist so that the normals of the detected force and torque signals are compared to their respective force and torque thresholds.

[0059] The force / torque threshold may be determined manually, for example, by testing whether the system is sufficiently sensitive or oversensitive at a given force / torque threshold to cause a collision. In some cases, only the difference between the measured force / torque value and the corresponding "pre-packing" value set before the start of packing is considered to account for sensor bias that drifts over time.

[0060] In some cases, different thresholds are used for different SKU categories. For example, a more sensitive threshold may be used for a bag of crisps compared to other SKUs, reducing the likelihood of damage to its contents during packing.

[0061] In the example, the first and second object orientations are within a common plane 264 parallel to the top surface 262 or bottom surface 260 of the containment space, for example, container 244. For example, the controller reinitializes the robot manipulator 221 to position the object at a predetermined height above the containment space, but shifts the object's position (and therefore orientation) within the plane 264 at each reinitialization. Such a shift in the object's orientation within this initialization plane 264 may be performed along a predetermined path or route in the plane, such as a linear path like a spiral, figure eight, or zigzag toolpath. The predetermined path defines, for example, a series of orientation displacements between subsequent orientations along the path. The robot manipulator 221 may therefore repeat along the predetermined path after each packing attempt until the object is successfully packed into the containment space. For example, in the case of a spiral path, each time a packing attempt fails, the different dimensions of the initial object position in plane 264 are modified so that the sequence of positions of the end effector traces a spiral within plane 264, and the orientation of the object is also modified in alternating directions between packing attempts.

[0062] For example, a packing attempt is successful when the controller determines that the object 350 and the end effector 222 are positioned within the containment spaces 244, 344 without detecting a contact force exceeding a set force threshold. For example, the orientation of the end effector can be determined by the controller, for example, from forward kinematics techniques known to those skilled in the art. In short, the orientation of the end effector 222 at the end of the robot arm 220 can be determined by using information on the joint positions of the robot manipulator 221 (provided by robot sensors) and understanding all the relationships between the links of the robot arm 220. The controller can then determine whether the position (x, y, z) coordinates of the end effector 222 are located inside the volumetric region defined by the containment spaces 244, 344, for example, a tote.

[0063] Once the controller determines that the packing attempt has been successful, the controller causes the end effector 222 to release the object 350 in the containment spaces 244, 344, for example by issuing an actuation command or control signal to the motion subsystem 230 of the robot manipulator 221. After releasing the object 350, the robot manipulator 221 may return to a reset position above the containment space, ready to perform another picking and / or packing task, for example.

[0064] In some examples, during a packing attempt, a force / torque sensor detects a contact force, and the controller responds by determining the direction in which the contact force moves away from the detected contact point. For example, if the controller detects a contact force exceeding a set threshold, it determines a normal force vector. The controller further controls the robot manipulator 221 to move the end effector 222 and the object in the determined direction away from the contact point, for example, along the determined normal vector. Thus, the controller can use force and / or torque feedback to reduce damage to the object being packed and any other objects already in the containment space when interrupting a packing attempt. The selection of a second object orientation may also be based on the determined direction away from the contact point. For example, if the contact point is detected to the right of the end effector, the next starting orientation for subsequent packing attempts may be shifted to the left to move the end effector 222 away from the area where the unexpected contact occurred. In an example where the subsequent initial object orientation is based on a predetermined path, the next starting orientation may be selected from a predetermined path of orientations while it is in a direction away from the contact point (e.g., projected onto the initialization plane 264). Furthermore, information about any contact points detected in previous packing trials may be used in subsequent packing trials, for example, to modify the path of the end effector 222 through the accommodation space 244 to avoid the same contact occurring during the packing trial.

[0065] Figure 5 shows a computer implementation method 500 for controlling a robotic manipulator for packing objects. The robotic manipulator may be one of the exemplary robotic manipulators 121, 221 described with reference to Figures 1 and 2. Method 500 may be performed by one or more components of the previously described packing system 100, for example, a control system 108 or a controller 110.

[0066] In 501, an image of an object grasped by the end effector of the robotic manipulator is acquired. In some examples, the image comprises a depth image. In certain cases, method 500 includes removing from the depth image any features (e.g., points in a point cloud, or pixels in the image with depth values) that have associated depth values ​​outside the range between the respective depth values ​​of the end effector and the uppermost plane of the containment space. Since only the object grasped by the end effector is positioned between the end effector and the top of the containment space, e.g., a container or tote, such removal of features isolates the object in the image. Depending on the type of depth image, the features removed from the image may consist of pixels or points in a point cloud.

[0067] In 502, the principal axes of the objects in the image are determined. In some cases, the depth image of the object is projected onto a plane parallel to the bottom of the containment space in order to flatten the image to 2D points. Then, for example, PCA with a set of 2D points can be used to determine the principal axes of the object from the flattened image.

[0068] In 503, a first object orientation is determined, and the principal axis of the object is aligned with the axis of the containment space. For example, the rotation of an end effector is determined to align the principal axis of the object with the axis of the containment space. The axis of the containment space may be its principal axis, or it may be another axis, such as a minor axis perpendicular to the principal axis. The rotation may be determined based on a calculated angle between the principal axis of the object and the axis of the containment space. For example, the rotation corresponds to an angular displacement that reduces the angle between the two axes to zero so that the two axes are aligned.

[0069] In the example, the spatial dimensions of an object are determined based on an acquired image of the object. For example, the area of ​​the object in the projection of a 2D point is determined. The spatial dimensions of the containment space are also determined, for example, by acquiring them as input parameters or similarly based on an image containing the containment space. A first object orientation for attempting to place the object in the containment space may be determined based on a comparison of the spatial dimensions of the object and the spatial dimensions of the containment space. For example, the initial orientation of the object may be determined from the axis alignment step and then adjusted based on the spatial dimension comparison. If, in the initial orientation, the object protrudes (e.g., overhangs) beyond the boundary of the containment space (e.g., a container and / or a bag inside a container), the initial orientation may be adjusted to reduce the overhang. For example, in a 2D projection image, the determined overhang area of ​​the object beyond the edge of the containment space can be reduced by shifting the initial orientation toward the center of the containment space. In some cases, an adjustment vector for shifting the initial object orientation is calculated for each edge of the containment space overhanging the object. The resulting adjustment vector can then be calculated by summing the individual component adjustment vectors. If an object protrudes onto opposing edges of the containment space, the resulting adjustment vector applied to the initial object orientation may be calculated to evenly distribute the protrusions on both sides of the containment space, for example, by centering the object relative to the containment space along the axis where the double protrusion occurs.

[0070] In some cases, the determined first object orientation is adjusted based on the determined end-effector orientation. For example, the end-effector orientation can be calculated based on forward kinematics, as described above. If the end-effector orientation is outside the boundary of the containment space in the determined first object orientation, the first object orientation can be adjusted, for example, by shifting the corresponding end-effector orientation to or within the edge of the containment space. Thus, in the initial attempt to place the object within the containment space, the end-effector is positioned at least above the edge of the containment space if it is not already within the containment space. This can improve the likelihood that the object will be placed within the containment space instead of falling outside the containment space after release by the end-effector.

[0071] In 504, the robotic manipulator is controlled to manipulate the object to a first object orientation above the containment space. For example, a control signal is transmitted to the robotic manipulator's motion subsystem to perform a determined rotation of the end effector to align the object's principal axis with the relevant axis of the containment space. Manipulation of the object to the first object orientation may additionally or alternatively include translational motion. In some cases, the rotation determined to align the relevant axis is a planar rotation (e.g., determined in a plane parallel to the bottom surface of the containment space), and the operation to bring the object to the first object orientation may further include rotations in different planes.

[0072] In 505, the robotic manipulator is controlled to move the object downward into the containment space from a first object orientation. For example, the height of the object above the containment space in the z direction shown in Figure 2 is reduced to move the object into the containment space, for example, across the top surface 262 of the container 244. The z component of the object's orientation can be changed while the other components (e.g., five in the case of a 6D object orientation) are kept constant.

[0073] In 506, the robotic manipulator is controlled to manipulate an object in response to a force sensor detecting a contact force at the end effector that exceeds a predetermined force threshold. In such a case, the object is manipulated to a second object orientation above the containment space in order to initiate a further attempt to position the object within the containment space.

[0074] In some examples, the orientations of the first and second objects lie in a common plane parallel to the top or bottom surface of the containment space. The displacement of the second object orientation relative to the first object orientation in the common plane can be determined according to a predetermined path of orientation displacement. For example, a robotic manipulator is controlled to repeat the manipulation of the object in the common plane along a predetermined path in response to each failed placement attempt, i.e., when a contact force exceeding a predetermined threshold is detected. After a failed packing attempt, the robotic manipulator returns the object to the common plane, for example, the initialization plane, but is controlled to shift the object's position in the plane according to a predetermined path, for example, a series of initialization positions.

[0075] If it is determined that the object and end effector are positioned within the containment space without detecting a contact force exceeding a predetermined force / torque threshold, the end effector is controlled to release the object within the containment space. For example, a control signal is sent to the robot manipulator's motion subsystem, causing the end effector to release its grip on the object. The robot manipulator can then return to a reset position, for example, in the initialization plane above the containment space or another predetermined position, and prepare to perform another task.

[0076] The method 500 for controlling a robotic manipulator for packing objects can be implemented by a control system or controller for the robotic manipulator, for example, the control system or controller of the packing system 100 described above. For example, the control system or controller includes one or more processors for executing the method 500 according to instructions stored in a computer-readable data carrier or storage medium, for example, computer program code.

[0077] The above examples should be understood as illustrative examples. Further examples are conceivable. For example, the robotic manipulator 221 may further include one or more cameras mounted on the robotic arm 220. The cameras may be mounted on or near the end effector, for example, on or near the wrist of the robotic arm. Additionally or alternatively, cameras may be mounted on or near the elbow of the robotic arm. The use of one or more cameras mounted on the robotic arm may be added to or a replacement for the overhead camera 216 of the robotic packing system. Each camera may have an illumination element for illuminating the inside of the container when items are being packed. One or more cameras may be located elsewhere as part of the robotic packing system. For example, a camera may be used as a barcode scanner.

[0078] Furthermore, in the examples described, the object grasped by the end effector is separated from the rest of the image using depth data, i.e., when the image includes a depth image. In other examples, the object may be determined in the image using an object detection method, for example, an artificial neural network (ANN), to separate the object and determine its principal axis. In certain cases, the neural network model may be trained to determine the principal axis of the object directly from the image captured by the overhead camera. Additionally or alternatively, the ANN may be trained and implemented to reconstruct the missing portion of the object from its image due to obfuscation by a robotic manipulator, e.g., an end effector, or an external structure. Figure 4A shows, for example, the missing portion of an object where a part of the robotic manipulator is positioned between the object and the camera during imaging. These ANN (or “deep learning”) methods can be explicit (for example, if the ANN model provides a reconstructed point cloud) or implicit (for example, if the principal axes of an object are decidable even though parts of the object are not visible, due to the fact that a generalization of the ANN can identify that the visible portion of an object belongs to a wider range of items than shown in the image).

[0079] Any feature described in relation to any one example may also be used alone or in combination with other features described, or in combination with one or more features of any other example, or any combination of any other example. Furthermore, equivalents and modifications not described above may also be used without departing from the scope of the attached claims. The invention described in the original claims of this application is listed below. [1] A computer implementation method for controlling a robotic manipulator for packing objects, To acquire an image of the object grasped by the end effector of the robot manipulator, Determining the principal axis of the object in the aforementioned image, The first object orientation is determined, and here, the principal axis of the object is aligned with the axis of the housing space. The object is manipulated to the first object orientation above the containment space, From the first object orientation, move the object downward into the containment space. In response to the detection by the force sensor of a contact force exceeding a predetermined force threshold in the end effector, a further attempt is initiated to position the object within the containment space by manipulating the object to a second object orientation above the containment space. A computer implementation method comprising controlling the robot manipulator. [2] The computer implementation method according to [1], further comprising controlling the robotic manipulator to release the object from the end effector in response to determining that the object and the end effector are positioned within the containment space without detecting any further contact force exceeding the predetermined force threshold. [3] The computer mounting method according to [1] or [2], wherein the first and second object orientations are located in a common plane parallel to the uppermost plane of the accommodation space. [4] The computer implementation method according to [3], wherein the displacement of the second object orientation with respect to the first object orientation in the common plane is determined according to a predetermined path of orientation displacement. [5] In response to the detection of the contact force by the force sensor, the direction away from the contact point associated with the detected contact force is determined, A computer implementation method according to any one of [1] to [4], comprising controlling the robot manipulator to move the end effector and the object in the determined direction away from the contact point. [6] The computer implementation method according to any one of [1] to [5], wherein the image is a depth image. [7] The computer implementation method according to [6], further comprising removing from the depth image any associated features having depth values ​​outside the range corresponding to the volume between the end effector and the uppermost plane of the containment space. [8] The computer implementation method according to [6] or [7], comprising projecting the depth image onto a plane parallel to the bottom surface of the accommodation space so as to obtain a set of two-dimensional points. [9] Determining the principal axis of the object in the image is performed on the set of two-dimensional points, as described in [8], computer implementation method.

[10] The computer implementation method according to [9], wherein determining the principal axis of the object in the image is performed by performing principal component analysis using the set of two-dimensional points.

[11] Controlling the robot manipulator to manipulate the object to the first object orientation is: In order to align the principal axis of the object with the axis of the housing space, the planar rotation of the end effector is determined, A computer implementation method according to any one of [1] to

[10] , further comprising controlling the robot manipulator to perform the planar rotation of the end effector.

[12] Determining the spatial dimensions of the object based on the image, To obtain the spatial dimensions of the aforementioned storage space, A computer implementation method according to any one of [1] to

[11] , comprising determining the first object orientation based on a comparison of the spatial dimensions of the object and the spatial dimensions of the accommodation space.

[13] The computer implementation method according to

[12] , wherein determining the first object orientation is further comprising adjusting the initial object orientation to reduce the determined overhang of the object in the spatial dimensions of the accommodation space.

[14] Determining the end effector orientation of the end effector, A computer implementation method according to any one of [1] to

[13] , further comprising adjusting the first object orientation based on the end effector orientation.

[15] A computer program including instructions, wherein when the program is executed by a computer, the computer causes the computer to perform the computer implementation method described in any one of [1] to

[14] .

[16] A computer-readable data carrier storing the computer programs of

[15] .

[17] A controller for a robotic manipulator, wherein the controller is configured to perform the computer implementation method described in any one of [1] to

[14] . A robotic packing system comprising the controller described in

[18]

[17] and the robotic manipulator for packing objects.

Claims

1. A computer implementation method for controlling a robotic manipulator for packing objects, To acquire an image of the object grasped by the end effector of the robot manipulator, Determining the principal axis of the object in the aforementioned image, The first object orientation is determined, and here, the principal axis of the object is aligned with the axis of the housing space. The object is manipulated to the first object orientation above the containment space, From the first object orientation, move the object downward into the containment space. In response to the detection by the force sensor of a contact force exceeding a predetermined force threshold in the end effector, a further attempt is initiated to position the object within the containment space by manipulating the object to a second object orientation above the containment space. Controlling the robot manipulator, wherein the orientations of the first and second objects lie in a common plane parallel to the uppermost plane of the containment space. A computer implementation method comprising the above.

2. The computer implementation method according to claim 1, further comprising controlling the robot manipulator to release the object from the end effector in response to determining that the object and the end effector are positioned within the containment space without detecting any further contact force exceeding the predetermined force threshold.

3. The computer implementation method according to claim 1, wherein the displacement of the second object orientation with respect to the first object orientation in the common plane is determined according to a predetermined path of orientation displacement.

4. In response to the detection of the contact force by the force sensor, the direction away from the contact point associated with the detected contact force is determined, The computer implementation method according to claim 1, further comprising controlling the robot manipulator to move the end effector and the object in the determined direction away from the contact point.

5. The aforementioned image is a depth image, and the computer implementation method is as described in claim 1.

6. The computer implementation method according to claim 5, further comprising removing from the depth image any associated features having depth values ​​outside the range corresponding to the volume between the end effector and the uppermost plane of the housing space.

7. The computer implementation method according to claim 5, comprising projecting the depth image onto a plane parallel to the bottom surface of the containment space in order to obtain a set of two-dimensional points.

8. The computer implementation method according to claim 7, wherein determining the principal axis of the object in the image is performed based on the set of two-dimensional points.

9. The computer implementation method according to claim 8, wherein determining the principal axis of the object in the image is performed by performing principal component analysis using the set of two-dimensional points.

10. Controlling the robot manipulator to manipulate the object to the first object orientation is, In order to align the principal axis of the object with the axis of the housing space, the planar rotation of the end effector is determined, The computer implementation method according to claim 1, further comprising controlling the robot manipulator to perform the planar rotation of the end effector.

11. Determining the spatial dimensions of the object based on the aforementioned image, To obtain the spatial dimensions of the aforementioned storage space, The computer mounting method according to claim 1, further comprising determining the first object orientation based on a comparison of the spatial dimensions of the object and the spatial dimensions of the housing space.

12. The computer mounting method according to claim 11, wherein determining the first object orientation comprises adjusting the initial object orientation to reduce the determined overhang of the object in the spatial dimensions that exceeds the spatial dimensions of the housing space.

13. Determining the end effector orientation of the end effector, The computer implementation method according to claim 1, further comprising adjusting the first object orientation based on the end effector orientation.

14. A computer program including instructions, wherein when the program is executed by a computer, it causes the computer to perform the computer implementation method described in any one of claims 1 to 13.

15. A computer-readable data carrier storing the computer program of claim 14.

16. A controller for a robotic manipulator, wherein the controller is configured to perform the computer implementation method described in any one of claims 1 to 13.

17. A robot packing system comprising the controller according to claim 16 and the robot manipulator for packing objects.

Citation Information

Patent Citations

  • Robot control device for assembly robot

    JP2018024049A

  • Hand control device

    JP2020040132A

  • Picking device

    JP2021062464A