An object grasping method, device, apparatus and storage medium
By determining the point cloud access vector and local point cloud, the 3D object grasping method is optimized, improving the efficiency of determining local extreme points and object grasping efficiency, which is suitable for robot real-time control systems.
Patent Information
- Application Number
- CN202211462506.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-11-21
- Publication Date
- 2026-02-10
- Estimated Expiration
- 2042-11-21
AI Technical Summary
In existing 3D object grasping methods, the local extremum search strategy based on traversal algorithms has high computational time complexity, resulting in low object grasping efficiency.
By using point cloud access vectors to determine local extrema, a local point cloud is constructed, and the robot's grasping pose is determined based on the local point cloud to achieve efficient grasping.
It significantly improves the efficiency of determining local extreme points and object grasping efficiency, reducing the calculation time from 50 seconds to within 2 seconds, and is suitable for robot real-time control systems.
Smart Images

Figure CN115741696B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of object grasping technology, and in particular to an object grasping method, apparatus, device and storage medium. Background Technology
[0002] In applications such as 3D object grasping, the local extrema of object point clouds help to quickly identify graspable targets, which plays an important role in improving production efficiency.
[0003] Currently, commonly used local extremum search strategies are based on traversal algorithms, which compare each point in the object's point cloud with other points in its neighborhood to determine local extremum points. This has high computational time complexity, low efficiency in determining local extremum points, and low efficiency in object grasping. Summary of the Invention
[0004] This invention provides an object grasping method, apparatus, device, and storage medium to improve the efficiency of determining local extreme points in an object point cloud and thus improve the efficiency of object grasping.
[0005] According to one aspect of the present invention, an object grasping method is provided, comprising:
[0006] Based on the point cloud access vector, local extrema points are determined from the point cloud of the target object; where each element in the point cloud access vector corresponds to a point in the point cloud; the element value of each element is used to characterize whether the point in the point cloud corresponding to the element has been accessed.
[0007] Determine the local point cloud based on local extreme points;
[0008] Based on the local point cloud, the robot's grasping pose is determined in order to grasp the target object.
[0009] According to another aspect of the present invention, an object grasping device is provided, comprising:
[0010] The extreme point determination module is used to determine local extreme points from the point cloud of the target object based on the point cloud access vector; wherein, the elements in the point cloud access vector correspond to points in the point cloud; the element value of the element is used to characterize whether the point in the point cloud corresponding to the element has been accessed.
[0011] The local point cloud determination module is used to determine the local point cloud based on local extreme points;
[0012] The object grasping module is used to determine the robot's grasping pose based on the local point cloud in order to grasp the target object.
[0013] According to another aspect of the present invention, an electronic device is provided, the electronic device comprising:
[0014] At least one processor; and
[0015] A memory that is communicatively connected to at least one processor; wherein,
[0016] The memory stores a computer program that can be executed by at least one processor, such that the at least one processor is able to perform an object grasping method according to any embodiment of the present invention.
[0017] According to another aspect of the present invention, a computer-readable storage medium is provided, which stores computer instructions for causing a processor to execute an object grasping method according to any embodiment of the present invention.
[0018] The technical solution of this invention determines local extrema points from the point cloud of a target object based on point cloud access vectors. Each element in the point cloud access vector corresponds to a point in the point cloud; the element value indicates whether the corresponding point in the point cloud has been accessed. Based on the local extrema points, a local point cloud is determined; and based on the local point cloud, the robot's grasping pose is determined to achieve object grasping. This technical solution improves the efficiency of determining local extrema points in the object's point cloud and thus improves the efficiency of object grasping by determining local extrema points, thereby improving the overall efficiency of object grasping.
[0019] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of the present invention, nor is it intended to limit the scope of the invention. Other features of the invention will become readily apparent from the following description. Attached Figure Description
[0020] To more clearly illustrate the technical solutions in the embodiments of the present invention, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0021] Figure 1 This is a flowchart of an object grasping method provided in Embodiment 1 of the present invention;
[0022] Figure 2A This is a flowchart of an object grasping method provided in Embodiment 2 of the present invention;
[0023] Figure 2B This is a schematic diagram of a local extremum point determination process according to Embodiment 2 of the present invention;
[0024] Figure 3 This is a structural diagram of an object grasping device according to Embodiment 3 of the present invention;
[0025] Figure 4 This is a structural diagram of an electronic device that implements the object grasping method of this invention. Detailed Implementation
[0026] To enable those skilled in the art to better understand the present invention, the technical solutions of the present invention will be clearly and completely described below with reference to the accompanying drawings of the embodiments of the present invention. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of the present invention.
[0027] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this invention are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of the invention described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0028] Furthermore, it should be noted that the collection, storage, use, processing, transmission, provision, and disclosure of point clouds and other data involved in the technical solutions of this invention comply with the provisions of relevant laws and regulations and do not violate public order and good morals.
[0029] Example 1
[0030] Figure 1 This is a flowchart illustrating an object grasping method according to Embodiment 1 of the present invention. This embodiment is applicable to situations involving object grasping. The method can be executed by an object grasping device, which can be implemented in hardware and / or software. The object grasping device can be configured in an electronic device, such as an object grasping main control system.
[0031] like Figure 1 As shown, the method includes:
[0032] S101. Determine the local extreme points from the point cloud of the target object based on the point cloud access vector.
[0033] In this vector, each element in the point cloud access vector corresponds to a point in the point cloud; the element value of each element is used to indicate whether the point in the point cloud corresponding to the element has been accessed.
[0034] For example, the point cloud access vector is [0,0,0,1,1,0,1], where the elements from left to right correspond to the 7 points in the point cloud. An element value of 0 indicates that the corresponding point in the point cloud has not been visited; an element value of 1 indicates that the corresponding point in the point cloud has been visited.
[0035] Among them, the element value is unvisited, which is used to represent that the points in the corresponding point cloud still need to be determined as local extrema; the element value is visited, which is used to represent that the points in the corresponding point cloud do not need to be determined as local extrema.
[0036] In this embodiment, the target object can be the object currently waiting to be grabbed; the local extreme point can be the point with the largest or smallest coordinate value in the point cloud of the target object.
[0037] Specifically, based on the point cloud access vector, points in the point cloud are accessed, and local extreme points are determined based on the relationship between the coordinate values of the accessed point and the coordinate values of the points surrounding that point.
[0038] In one specific embodiment, a local extremum index vector with initial element values of empty is constructed, and the index of the local extremum point is stored as the element value in the local extremum index vector, so as to facilitate the search for the local extremum point after the local extremum point determination process is completed.
[0039] Optionally, a point cloud access vector can be constructed based on the number of points in the point cloud.
[0040] Specifically, the number of points in the point cloud is used as the length of the point cloud access vector. The point cloud access vector is constructed by taking the number of each point in the point cloud as the order and whether a point in the point cloud has been accessed as the element value of the vector.
[0041] Understandably, by adopting the above technical solution, a point cloud access vector is constructed based on the number of points in the point cloud, so that the point cloud access vector contains the element values of all points in the point cloud. This ensures that no points in the point cloud are missed when determining local extreme points from the point cloud of the target object, thereby improving the accuracy of local extreme points.
[0042] In one specific embodiment, the point cloud of the target object can be obtained by taking pictures with an RGB-D (Red Green Blue-Depth) camera, and the origin of the point cloud can be transformed from the camera coordinate system to the container coordinate system. The container can be, for example, a sorting box or other robot working coordinate system, which facilitates the robot to grasp the target object.
[0043] S102. Determine the local point cloud based on the local extreme points.
[0044] Among them, a local point cloud can be a point cloud centered on a local extreme point.
[0045] Specifically, the local point cloud is defined as the point cloud formed by the midpoints of the point cloud within a preset radius centered on the local extreme point. It should be noted that the preset radius can be set independently by technicians based on actual needs and practical experience; this invention does not impose any limitations on it.
[0046] S103. Based on the local point cloud, determine the robot's grasping pose to achieve the grasping of the target object.
[0047] Among them, the grasping pose can be the pose in which the robot grasps the target object.
[0048] Specifically, a plane fitting is performed on the local point cloud to obtain the fitting plane of the local point cloud. The normal vector of the fitting plane is used as the grasping vector. The robot's grasping pose is determined based on the grasping vector to achieve the grasping of the target object.
[0049] In one specific embodiment, if there are multiple objects waiting to be grasped, each object waiting to be grasped is taken as the target object in turn. The technical solution of this embodiment is adopted to determine the corresponding grasping pose of the robot so as to grasp the target object, until all objects waiting to be grasped are grasped.
[0050] It should be noted that, in related technologies, the algorithms in the open-source PCL (Point Cloud Library) library require 50 seconds to perform 1000 calculations on a million-level point cloud. The technical solution of this invention can complete this within 2 seconds, significantly improving computational efficiency. For a single scene point cloud, the calculation result can be returned within 2ms, which is helpful for designing real-time control systems for robots, such as dynamic obstacle avoidance.
[0051] This invention, in its embodiments, determines local extrema points from the point cloud of a target object based on point cloud access vectors. Each element in the point cloud access vector corresponds to a point in the point cloud; the element value indicates whether the corresponding point in the point cloud has been accessed. Based on these local extrema points, a local point cloud is determined; and based on the local point cloud, the robot's grasping pose is determined to achieve object grasping. By employing this technical solution, by determining local extrema points, thereby determining the local point cloud, and then determining the robot's grasping pose based on the local point cloud, the efficiency of determining local extrema points in the object's point cloud is improved, thus increasing the efficiency of object grasping.
[0052] Example 2
[0053] Figure 2AThis is a flowchart of an object grasping method provided in Embodiment 2 of the present invention. Based on the above embodiments, this embodiment optimizes and improves the operation of determining local extreme points in the point cloud of the target object.
[0054] Furthermore, the process of "determining local extrema points from the point cloud of the target object based on the point cloud access vector" is refined to "selecting any element whose value is unvisited from the point cloud access vector, and taking the point in the point cloud corresponding to that element as the access point; determining the search range based on the access point and the neighborhood search radius, and determining the neighborhood point set of the access point from the point cloud based on the search range; comparing the coordinate values of the access point with the coordinate values of each point in the neighborhood point set to determine the local extrema point," thus improving the operation of determining local extrema points in the point cloud of the target object.
[0055] It should be noted that for parts not described in detail in the embodiments of the present invention, please refer to the relevant descriptions in other embodiments, which will not be repeated here.
[0056] like Figure 2A As shown, the method includes:
[0057] S201. Determine the local extreme points from the point cloud of the target object based on the point cloud access vector.
[0058] In this vector, each element in the point cloud access vector corresponds to a point in the point cloud; the element value of each element is used to indicate whether the point in the point cloud corresponding to the element has been accessed.
[0059] S202. Select any element whose value is not visited from the point cloud access vector, and take the point in the point cloud corresponding to that element as the access point.
[0060] The access point can be the point where the operation to determine the local extremum point will be performed.
[0061] S203. Determine the search range based on the access point and the neighborhood search radius, and determine the neighborhood point set of the access point from the point cloud based on the search range.
[0062] The neighborhood search radius can be the radius of the neighborhood of the access point.
[0063] Specifically, the search range is defined as the area enclosed by the center of the access point and the radius of the neighborhood search radius, and the points in the point cloud within the search range are defined as the neighborhood point set of the access point.
[0064] It should be noted that the domain search radius can be set independently by technical personnel based on actual needs or practical experience, and this invention does not limit it.
[0065] S204. Compare the coordinates of the access point with the coordinates of each point in the neighborhood point set to determine the local extreme point.
[0066] Optionally, if the coordinates of the visited point are equal to or greater than the coordinates of all points in the neighborhood set, then the visited point is considered a local extremum; or,
[0067] If the coordinates of the access point are less than or equal to the coordinates of all points in the neighborhood set, then the access point is considered a local extremum.
[0068] In this invention, the coordinate values are not limited. For example, the coordinate values can be coordinate values in the X direction, Y direction, or Z direction in a three-dimensional coordinate system. Preferably, the coordinate values are coordinate values in the Z direction to facilitate the robot's grasping operation.
[0069] In an optional embodiment, if the neighborhood point set of the access point is empty and there are no points in the neighborhood point set to compare coordinate values with the access point, then the determination of local extreme points is not performed between this access point and its neighborhood point set.
[0070] Understandably, by adopting the above scheme, local extreme points are determined based on the relationship between the coordinates of the access point and the coordinates of points in the neighborhood set. This allows for the identification of local maxima or minima, improving the flexibility in determining local extreme points.
[0071] Optionally, update the element values in the point cloud access vector corresponding to the access point to indicate that the element has been accessed.
[0072] It is understandable that by adopting the above technical solution, the element values of the elements in the point cloud access vector corresponding to the access point are updated so that when selecting an element with an unvisited value from the point cloud access vector again, the element corresponding to the access point is excluded. This simplifies the process of determining local extreme points, avoids repeated calculations, and improves the efficiency of determining local extreme points.
[0073] Optionally, if the access point is a local extremum, the element values of the elements in the point cloud access vectors corresponding to each point in the neighborhood point set are updated to "accessed"; if the access point is not a local extremum, a neighborhood extremum is determined from the neighborhood point set, and the element values of the elements in the point cloud access vectors corresponding to other points in the neighborhood point set, excluding the neighborhood extremum, are updated to "accessed".
[0074] Specifically, if the visited point is not a local extremum, then a point with coordinates greater than or equal to the coordinates of other points in the neighborhood point set is selected as the neighborhood extremum point; or a point with coordinates less than or equal to the coordinates of other points in the neighborhood point set is selected as the neighborhood extremum point. The element values in the point cloud visit vectors corresponding to the other points in the neighborhood point set (excluding the neighborhood extremum point) are then updated to indicate that the point has been visited.
[0075] Understandably, by adopting the above technical solution, the element values of the elements in the point cloud access vector corresponding to the non-neighborhood extremum points in the neighborhood point set are updated to "visited". This ensures that when selecting an element with an unvisited value from the point cloud access vector again, the corresponding elements of other points in the neighborhood point set, excluding the neighborhood extremum points, are excluded. This simplifies the process of determining local extremum points and improves the efficiency of determining local extremum points.
[0076] In an optional embodiment, any element with an unvisited value is selected again from the point cloud access vector, and the point in the point cloud corresponding to that element is used as the access point, until the element values of all elements in the point cloud access vector are visited.
[0077] Specifically, from the point cloud access vector, any element with an unvisited value is selected again, and the point in the point cloud corresponding to that element is taken as the access point. The area centered at the access point and with a radius equal to the neighborhood search radius is taken as the search range, and the points in the point cloud within the search range are taken as the neighborhood point set of the access point. The coordinates of the access point are compared with the coordinates of each point in the neighborhood point set to determine the local extremum point. The element values of the elements in the point cloud access vector corresponding to the access point are updated to "visited". If the access point is a local extremum point, the element values of the elements in the point cloud access vector corresponding to each point in the neighborhood point set are updated to "visited". If the access point is not a local extremum point, a neighborhood extremum point is determined from the neighborhood point set, and the element values of the elements in the point cloud access vector corresponding to all other points in the neighborhood point set (excluding the neighborhood extremum point) are updated to "visited". Repeat this step: select any unvisited element from the point cloud access vector, and use the corresponding point in the point cloud as the access point; define the search range as the area centered at the access point and with a radius equal to the neighborhood search radius, and use the points in the point cloud within the search range as the neighborhood point set of the access point; compare the coordinates of the access point with the coordinates of each point in the neighborhood point set to determine the local extremum; update the element values of the elements in the point cloud access vector corresponding to the access point to "visited"; if the access point is a local extremum, update the element values of the elements in the point cloud access vector corresponding to each point in the neighborhood point set to "visited"; if the access point is not a local extremum, determine the neighborhood extremum from the neighborhood point set, and update the element values of the elements in the point cloud access vector corresponding to all other points in the neighborhood point set (excluding the extremum) to "visited", until the element values of all elements in the point cloud access vector are "visited".
[0078] Figure 2B This is a schematic diagram illustrating the process of determining a local extremum. For example... Figure 2B As shown, points numbered 1 to 6 are the corresponding points in the point cloud; area number 7 is the search range for point 1; area number 8 is the search range for point 4; and area number 9 is the search range for point 6. 'a' indicates that the corresponding point is in an unvisited state, and 'b' indicates that the corresponding point is in a visited state.
[0079] like Figure 2B The process of determining local extrema points, as shown, requires the following explanation: Before the determination process begins, points numbered 1 to 6 are all in an unvisited state, and a local extrema index vector with an initial element value equal to the number of points in the point cloud has been constructed, with the initial element value being an unvisited point cloud access vector. Point 1, which is in an unvisited state, is selected as the access point. Points 2 and 3 within region number 7 are taken as the neighborhood set of point 1. The coordinates of the access point are compared with the coordinates of each point in the neighborhood set, and point 2 has the largest coordinate value. The element values in the access vectors corresponding to points 1 and 3 are updated to "visited". Point 4, which is in an unvisited state, is selected as the access point. Points 2 and 5 within region number 8 are taken as the neighborhood set of point 4. The coordinates of the access point are compared with the coordinates of each point in the neighborhood set, and point 4 has the largest coordinate value. Therefore, point 4 is determined as the local extrema point. For each local extremum point, the index of point 4 is stored in the local extremum index vector. The element values of the corresponding point cloud access vectors for points 4, 2, and 5 are updated to "visited". Point 6, which is currently unvisited, is selected as the access point. Point 5 in region number 9 is taken as the neighborhood point set of point 6. The coordinates of the access point are compared with the coordinates of each point in the neighborhood point set, and the result shows that the coordinates of point 5 are the largest. The element values of the corresponding point cloud access vector for point 6 are updated to "visited". Since there are no more unvisited points in the point cloud, the selection operation for access points ends, and the local extremum index vector is returned.
[0080] Understandably, by adopting the above technical solution, the points in the point cloud corresponding to the elements whose values in the point cloud access vector are unvisited are sequentially taken as access points until the element values of all elements in the point cloud access vector are visited. This ensures that all points in the point cloud whose corresponding point cloud access vectors are unvisited participate in the process of determining local extrema, thereby improving the accuracy of local extrema.
[0081] S205. Determine the local point cloud based on the local extreme points.
[0082] S206. Based on the local point cloud, determine the robot's grasping pose to achieve the grasping of the target object.
[0083] This invention selects any unvisited element from the point cloud access vector and uses the corresponding point in the point cloud as the access point. Based on the access point and the neighborhood search radius, a search range is determined, and a set of neighboring points for the access point is identified from the point cloud. The coordinates of the access point are compared with the coordinates of each point in the neighborhood set to determine local extrema. By using this technical solution, only points in the point cloud corresponding to unvisited elements in the point cloud access vector are used as access points, reducing the number of points in the point cloud used as access points, improving the efficiency of determining local extrema, and thus improving the efficiency of object grasping.
[0084] Example 3
[0085] Figure 3 This is a structural diagram of an object grasping device provided in Embodiment 3 of the present invention. This embodiment is applicable to situations involving object grasping. The object grasping device can be implemented in hardware and / or software and can be configured in an electronic device.
[0086] like Figure 3 As shown, the device includes: an extreme point determination module 301, a local point cloud determination module 302, and an object grasping module 303. Among them,
[0087] The extreme point determination module 301 is used to determine local extreme points from the point cloud of the target object based on the point cloud access vector; wherein, the elements in the point cloud access vector correspond to points in the point cloud; the element value of the element is used to characterize whether the point in the point cloud corresponding to the element has been accessed.
[0088] The local point cloud determination module 302 is used to determine the local point cloud based on local extreme points;
[0089] The object grasping module 303 is used to determine the robot's grasping pose based on the local point cloud in order to grasp the target object.
[0090] This invention, in its embodiments, uses an extreme point determination module to determine local extreme points from the point cloud of a target object based on a point cloud access vector. Each element in the point cloud access vector corresponds to a point in the point cloud, and the element value indicates whether the corresponding point in the point cloud has been accessed. A local point cloud determination module determines a local point cloud based on these local extreme points. An object grasping module determines the robot's grasping pose based on the local point cloud, thereby achieving the grasping of the target object. This technical solution improves the efficiency of determining local extreme points in the object's point cloud and thus improves the efficiency of object grasping by determining local extreme points, thereby determining the local point cloud, and then determining the robot's grasping pose based on the local point cloud.
[0091] Optionally, the extreme point determination module 301 includes:
[0092] The first access point determination unit is used to select any element whose value is not visited from the point cloud access vector, and take the point in the point cloud corresponding to the element as the access point.
[0093] The neighborhood point set determination unit is used to determine the search range based on the access point and the neighborhood search radius, and to determine the neighborhood point set of the access point from the point cloud based on the search range.
[0094] The extreme point determination unit is used to compare the coordinate values of the access point with the coordinate values of each point in the neighborhood point set in order to determine the local extreme point.
[0095] Optional, the extreme point determination unit includes:
[0096] The extreme point determination sub-unit is used to identify a local extreme point if the coordinates of the visited point are equal to or greater than the coordinates of all points in the neighborhood set; or,
[0097] If the coordinates of the access point are less than or equal to the coordinates of all points in the neighborhood set, then the access point is considered a local extremum.
[0098] Optionally, the extreme point determination unit also includes:
[0099] The element value update sub-unit is used to update the element value of the element in the point cloud access vector corresponding to the access point to indicate that it has been accessed.
[0100] Optionally, the extreme point determination unit also includes:
[0101] If the access point is a local extremum point, then update the element values of the elements in the point cloud access vectors corresponding to each point in the neighborhood point set to indicate that the point has been accessed.
[0102] If the visited point is not a local extremum, then the neighboring extremum is determined from the neighborhood point set, and the element values of the elements in the point cloud visit vectors corresponding to the other points in the neighborhood point set, excluding the neighboring extremum, are updated to indicate that the point has been visited.
[0103] Optionally, the extreme point determination module 301 further includes:
[0104] The second access point determination unit is used to reselect any element whose value is unvisited from the point cloud access vector, and use the point in the point cloud corresponding to that element as the access point, until the value of all elements in the point cloud access vector is visited.
[0105] Optionally, the device may also include:
[0106] The vector construction module is used to construct point cloud access vectors based on the number of points in the point cloud.
[0107] The object grasping device provided in the embodiments of the present invention can execute the object grasping method provided in any embodiment of the present invention, and has the corresponding functional modules and beneficial effects of executing the object grasping method.
[0108] Example 4
[0109] Figure 4 A schematic diagram of an electronic device 10 that can be used to implement embodiments of the present invention is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices (e.g., helmets, glasses, watches, etc.), and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the invention described and / or claimed herein.
[0110] like Figure 4As shown, the electronic device 10 includes at least one processor 11 and a memory, such as a read-only memory (ROM) 12 or a random access memory (RAM) 13, communicatively connected to the at least one processor 11. The memory stores computer programs executable by the at least one processor. The processor 11 can perform various appropriate actions and processes based on the computer program stored in the ROM 12 or loaded from storage unit 18 into the RAM 13. The RAM 13 may also store various programs and data required for the operation of the electronic device 10. The processor 11, ROM 12, and RAM 13 are interconnected via a bus 14. An input / output (I / O) interface 15 is also connected to the bus 14.
[0111] Multiple components in electronic device 10 are connected to I / O interface 15, including: input unit 16, such as keyboard, mouse, etc.; output unit 17, such as various types of displays, speakers, etc.; storage unit 18, such as disk, optical disk, etc.; and communication unit 19, such as network card, modem, wireless transceiver, etc. Communication unit 19 allows electronic device 10 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.
[0112] Processor 11 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of processor 11 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various processors running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. Processor 11 performs the various methods and processes described above, such as object grasping methods.
[0113] In some embodiments, the object grasping method may be implemented as a computer program tangibly contained in a computer-readable storage medium, such as storage unit 18. In some embodiments, part or all of the computer program may be loaded and / or mounted on electronic device 10 via ROM 12 and / or communication unit 19. When the computer program is loaded into RAM 13 and executed by processor 11, one or more steps of the object grasping method described above may be performed. Alternatively, in other embodiments, processor 11 may be configured to perform the object grasping method by any other suitable means (e.g., by means of firmware).
[0114] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), payload-programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.
[0115] Computer programs used to implement the methods of the present invention may be written in any combination of one or more programming languages. These computer programs may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, such that when executed by the processor, the computer programs cause the functions / operations specified in the flowcharts and / or block diagrams to be performed. The computer programs may be executed entirely on a machine, partially on a machine, or as a standalone software package, partially on a machine and partially on a remote machine, or entirely on a remote machine or server.
[0116] In the context of this invention, a computer-readable storage medium can be a tangible medium that may contain or store a computer program for use by or in conjunction with an instruction execution system, apparatus, or device. A computer-readable storage medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination thereof. Alternatively, a computer-readable storage medium may be a machine-readable signal medium. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.
[0117] To provide interaction with a user, the systems and techniques described herein can be implemented on an electronic device having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the electronic device. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).
[0118] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as data servers), or computing systems that include middleware components (e.g., application servers), or computing systems that include frontend components (e.g., user computers with graphical user interfaces or web browsers through which users can interact with implementations of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., communication networks). Examples of communication networks include local area networks (LANs), wide area networks (WANs), blockchain networks, and the Internet.
[0119] A computing system can include clients and servers. Clients and servers are generally located far apart and typically interact through communication networks. The client-server relationship is created by computer programs running on the respective computers and having a client-server relationship with each other. The server can be a cloud server, also known as a cloud computing server or cloud host, which is a hosting product within the cloud computing service system to address the shortcomings of traditional physical hosts and VPS services, such as high management difficulty and weak business scalability.
[0120] It should be understood that the various forms of processes shown above can be used, with steps reordered, added, or deleted. For example, the steps described in this invention can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution of this invention can be achieved, and this is not limited herein.
[0121] The specific embodiments described above do not constitute a limitation on the scope of protection of this invention. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this invention should be included within the scope of protection of this invention.
Claims
1. A method for grasping an object, characterized in that, include: Select any element whose value is unvisited from the point cloud access vector, and take the point in the point cloud corresponding to that element as the access point; wherein, the elements in the point cloud access vector correspond to the points in the point cloud; the element value of the element is used to characterize whether the point in the point cloud corresponding to the element has been accessed. Based on the access point and the neighborhood search radius, the search range is determined, and based on the search range, the set of neighborhood points of the access point is determined from the point cloud; The coordinates of the access point are compared with the coordinates of each point in the neighborhood point set to determine the local extreme point; Update the element value of the element in the point cloud access vector corresponding to the access point to indicate that it has been accessed; If the access point is a local extremum point, then the element values of the elements in the point cloud access vector corresponding to each point in the neighborhood point set are updated to indicate that the point has been accessed. If the access point is not a local extremum, then a neighboring extremum is determined from the neighborhood point set, and the element values of the elements in the point cloud access vectors corresponding to the other points in the neighborhood point set, excluding the neighboring extremum, are updated to "accessed". Select any element whose value is unvisited from the point cloud access vector again, and use the point in the point cloud corresponding to that element as the access point, until the value of all elements in the point cloud access vector is visited. Based on the local extreme points, determine the local point cloud; Based on the local point cloud, the robot's grasping pose is determined to grasp the target object.
2. The method according to claim 1, characterized in that, The process of comparing the coordinates of the access point with the coordinates of each point in the neighborhood point set to determine the local extreme point includes: If the coordinates of the access point are equal to or greater than the coordinates of all points in the neighborhood set, then the access point is considered a local extremum; or, If the coordinates of the access point are less than or equal to the coordinates of all points in the neighborhood point set, then the access point is considered a local extremum point.
3. The method according to claim 1, characterized in that, Also includes: Construct a point cloud access vector based on the number of points in the point cloud.
4. An object grasping device, characterized in that, include: An extreme point determination module is used to determine local extreme points from the point cloud of a target object based on a point cloud access vector; wherein, the elements in the point cloud access vector correspond to points in the point cloud; and the element value of the element is used to characterize whether the point in the point cloud corresponding to the element has been accessed. A local point cloud determination module is used to determine a local point cloud based on the local extreme points; The object grasping module is used to determine the robot's grasping pose based on the local point cloud in order to grasp the target object. The extreme point determination module includes: The first access point determination unit is used to select any element whose value is unvisited from the point cloud access vector, and take the point in the point cloud corresponding to the element as the access point; wherein, the element in the point cloud access vector corresponds to the point in the point cloud; the element value of the element is used to characterize whether the point in the point cloud corresponding to the element has been visited. The neighborhood point set determination unit is used to determine the search range based on the access point and the neighborhood search radius, and to determine the neighborhood point set of the access point from the point cloud based on the search range. The extreme point determination unit is used to compare the coordinate values of the access point with the coordinate values of each point in the neighborhood point set in order to determine the local extreme point. The extreme point determination unit further includes: Update the element value of the element in the point cloud access vector corresponding to the access point to indicate that it has been accessed; The extreme point determination unit further includes: If the access point is a local extremum point, then the element values of the elements in the point cloud access vector corresponding to each point in the neighborhood point set are updated to indicate that the point has been accessed. If the access point is not a local extremum, then a neighboring extremum is determined from the neighborhood point set, and the element values of the elements in the point cloud access vectors corresponding to the other points in the neighborhood point set, excluding the neighboring extremum, are updated to "accessed". The extreme point determination module further includes Select any element whose value is unvisited from the point cloud access vector again, and use the point in the point cloud corresponding to that element as the access point, until the value of all elements in the point cloud access vector is visited.
5. An electronic device, characterized in that, The electronic device includes: At least one processor; and A memory communicatively connected to the at least one processor; wherein, The memory stores a computer program that can be executed by the at least one processor, the computer program being executed by the at least one processor to enable the at least one processor to perform the object grasping method according to any one of claims 1-3.
6. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions that cause a processor to execute the object grasping method according to any one of claims 1-3.
Citation Information
Patent Citations
Edge detection method and device based on grid data, medium and equipment
CN111932570A
Object optimal grabbing identification method based on local point cloud model
CN112720477A