Automatic guiding methods and systems for target devices, and docking methods for target devices
The automatic guiding method and system enhance docking accuracy by using radar devices to process point cloud data and identify key line features, ensuring precise alignment with docking devices.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- ZHEJIANG HUARAY TECH CO LTD
- Filing Date
- 2025-09-30
- Publication Date
- 2026-04-23
AI Technical Summary
Existing devices face inaccuracies in docking due to insufficient pose recognition, leading to low accuracy in tasks such as transporting shelves, especially in environments like warehouses.
An automatic guiding method and system using a radar device to obtain point cloud data, perform line fitting algorithms, and determine target positions for precise docking with docking devices.
Enables accurate and intelligent docking by identifying key line features and adjusting the device's pose for precise alignment with docking devices, improving operational efficiency.
Smart Images

Figure CN2025125933_23042026_PF_FP_ABST
Abstract
Description
AUTOMATIC GUIDING METHODS AND SYSTEMS FOR TARGET DEVICES, AND DOCKING METHODS FOR TARGET DEVICESCROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to Chinese Patent Application No. 202411434189.5, filed on October 14, 2024, and Chinese Patent Application No. 202411746695.8, filed on November 29, 2024, the entire contents of each of which are incorporated herein by reference.TECHNICAL FIELD
[0002] The present disclosure generally relates to the field of device guiding technology, and in particular to an automatic guiding method, a system for a target device, and a docking method for the target device.BACKGROUND
[0003] With the increasing intelligence of devices, the devices can implement functions such as positioning and navigation. These devices are widely used in various fields, including transportation and logistics, which improves operational efficiency.
[0004] Currently, when performing task operations, a device may need to dock with a docking device in a scene. During the docking process, the device is typically controlled to dock with the docking device based on preset position information of the docking device. However, this approach has a problem of inaccurate docking. Taking a robot as an example, the robot can autonomously complete operations in some scene environments. Robots are widely used in various fields, including transportation, logistics, and manufacturing, etc., which improves operational efficiency. To perform the task of transporting a shelf, the robot needs to accurately move to a position directly below the shelf. In some cases, the pose recognized by the robot for the shelf is not accurate enough, resulting in low accuracy when the robot docks with the shelf.
[0005] In view of this, embodiments of the present disclosure provide an automatic guiding method and system for a target device, and a docking method for the target device to improve accuracy when the target device docks with a docking device.SUMMARY
[0006] One or more embodiments of the present disclosure provide an automatic guiding method for a target device, comprising: obtaining point cloud data through a radar device, the point cloud data is within a same plane parallel to the ground; determining a target position of the target device based on the point cloud data; and controlling the target device to move to the target position to dock with a docking device.
[0007] One or more embodiments of the present disclosure provide an automatic guiding system for a target device, comprising: an acquisition module, configured to obtain point cloud data through a radar device, the point cloud data is within a same plane parallel to the ground; a determination module, configured to determine a target position of the target device based on the point cloud data; and a docking module, configured to control the target device to move to the target position to dock with a docking device.
[0008] One or more embodiments of the present disclosure provide a docking method for a target device. The method comprising: obtaining, by the target device, docking related information of a docking device, and obtaining point cloud data; performing a line fitting algorithm on the point cloud data to obtain a plurality of initial line features; processing the plurality of initial line features based on the docking related information of the docking device to obtain target line features, the target line features comprise target line features in at least two different directions; determining a target position based on the target line features, and performing docking with the docking device based on the target position.
[0009] One or more embodiments of the present disclosure provide another docking method for a target device. The method comprising: identifying, by the target device, the docking device in a recognition area to obtain a current recognition result of a current waypoint, the current waypoint is a waypoint in an operation path of the target device in the recognition area; determining a target recognition result based on the current recognition result and a reference recognition result; and controlling the target device to perform docking with the docking device based on the target recognition result.BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The present disclosure is further illustrated by way of exemplary embodiments. These exemplary embodiments are described in detail with reference to the accompanying drawings. These embodiments are not limiting. In these embodiments, the same numbers refer to the same structures, wherein:
[0011] FIG. 1 is a schematic diagram illustrating an exemplary application scenario of an automatic guiding system for a target device according to some embodiments of the present disclosure;
[0012] FIG. 2 is a schematic diagram illustrating an exemplary target device according to some embodiments of the present disclosure;
[0013] FIG. 3 is a flowchart illustrating an exemplary automatic guiding process for a target device according to some embodiments of the present disclosure;
[0014] FIG. 4 is a schematic diagram illustrating an exemplary docking device according to some embodiments of the present disclosure;
[0015] FIG. 5 is a schematic diagram illustrating an exemplary target environment according to some embodiments of the present disclosure;
[0016] FIG. 6 is a flowchart illustrating an exemplary process for determining a target position according to some embodiments of the present disclosure;
[0017] FIG. 7 is a flowchart illustrating an exemplary process for determining an initial line feature according to some embodiments of the present disclosure;
[0018] FIG. 8 is a flowchart illustrating an exemplary process for determining a candidate line feature according to some embodiments of the present disclosure;
[0019] FIG. 9 is a flowchart illustrating an exemplary process for determining a target line feature according to some embodiments of the present disclosure;
[0020] FIG. 10 is a flowchart illustrating an exemplary process for determining a target position according to some other embodiments of the present disclosure;
[0021] FIG. 11 is a flowchart illustrating an exemplary process for determining whether to control a target device to stop moving according to some embodiments of the present disclosure;
[0022] FIG. 12 is a flowchart illustrating an exemplary process for determining a target position according to some other embodiments of the present disclosure;
[0023] FIG. 13 is a schematic diagram illustrating an exemplary scenario of shelf docking according to some embodiments of the present disclosure;
[0024] FIG. 14 is a flowchart illustrating an exemplary process for performing motion compensation on point cloud data according to some embodiments of the present disclosure;
[0025] FIG. 15 is a flowchart illustrating an exemplary process for determining a target shelf leg combination and a target shelf model according to some embodiments of the present disclosure;
[0026] FIG. 16 is a schematic diagram illustrating an exemplary shelf model matching according to some embodiments of the present disclosure;
[0027] FIG. 17 is a schematic diagram illustrating an exemplary docking between a target device and a docking device according to some embodiments of the present disclosure;
[0028] FIG. 18 is a block diagram illustrating an exemplary automatic guiding system for a target device according to some embodiments of the present disclosure;
[0029] FIG. 19 is a flowchart illustrating an exemplary docking process for a target device according to some embodiments of the present disclosure;
[0030] FIG. 20 is a flowchart illustrating an exemplary docking process for a target device according to some other embodiments of the present disclosure;
[0031] FIG. 21 is a flowchart illustrating an exemplary docking process o for a target device according to some other embodiments of the present disclosure;
[0032] FIG. 22 is a schematic diagram illustrating an exemplary structure of a computer device according to some embodiments of the present disclosure; and
[0033] FIG. 23 is a schematic diagram illustrating an exemplary structure of a computer-readable storage medium according to some embodiments of the present disclosure.DETAILED DESCRIPTION
[0034] In order to illustrate the technical schemes of the embodiments of the present disclosure more clearly, the following briefly introduces the accompanying drawings that are used in the description of the embodiments. Obviously, the accompanying drawings in the following description are only some examples or embodiments of the present disclosure. For ordinary technicians skilled in the art, the present disclosure may also be applied to other similar situations according to these accompanying drawings without any creative effort. Unless obviously obtained from the context or the context illustrates otherwise, the same numeral in the drawings refers to the same structure or operation.
[0035] It should be understood that the terms “system” , “device” , “unit” , and / or “module” as used herein is a method for distinguishing components, elements, parts, sections, or assemblies of different levels. However, other words may be replaced by other expressions if the words serve the same purpose.
[0036] As shown in this disclosure and claims, unless the context clearly dictates otherwise, the words “a” , “an” , “akind” , and / or “the” are not intended to be specific in the singular and may include the plural. Generally, the terms “comprising” and “including” only imply that the clearly identified steps and elements are included, and these steps and elements do not constitute an exclusive list, and the method or equipment may also include other steps or elements.
[0037] Flowcharts are used in this disclosure to illustrate operations performed by the system according to the embodiments of this disclosure. It should be understood that preceding or following operations are not necessarily performed precisely in sequence. Instead, each step may be processed in reverse order or simultaneously. Also, other operations may be added to these processes, or a step or steps may be removed from these processes.
[0038] FIG. 1 is a schematic diagram illustrating an exemplary application scenario of an automatic guiding system for a target device according to some embodiments of the present disclosure. As shown in FIG. 1, an application scenario 100 of the automatic guiding system for the target device includes a target device 110, a radar device 120, a processor 130, a storage device 140, and a network 150.
[0039] The target device 110 refers to a device that requires automatic guiding. In some embodiments, the target device 110 may be any movable device, such as a robot, a vehicle. For example, the target device 110 includes a transport robot, a service robot, and a cleaning robot. As another example, the target device 110 may include an Automated Guided Vehicle (AGV) , an Autonomous Mobile Robot (AMR) , and a sorting robot. Embodiments of the present disclosure are mainly illustrated by the example that the target device 110 includes the robot, and the embodiments of the present disclosure do not limit the target device.
[0040] In some embodiments, the target device 110 may be equipped with a sensor or module (e.g., an Inertial Measurement Unit (IMU) , a wheel odometer, and a visual odometer) for odometry.
[0041] FIG. 2 is a schematic diagram illustrating an exemplary target device according to some embodiments of the present disclosure. In FIG. 2, taking the target device as a robot 101 as an example, the robot 101 is provided with a radar device 120, an active wheel 103 with an encoder, etc. The radar device 120 may be a 2D LiDAR. In addition, the robot 101 further includes a mobile chassis (e.g., including a motion controller, a motor, a battery, an embedded computer, an odometer) and a lifting device, etc. The robot 101 may obtain point cloud data of a target environment through the radar device 120. The target environment may be an environment where the robot 101 is located, e.g., a warehouse environment.
[0042] In some embodiments, the target device 110 may be equipped with at least the radar device 120.
[0043] The radar device 120 is configured to acquire the point cloud data. The point cloud data may be configured for pose estimation to achieve functions such as navigation and positioning. For example, the radar device 120 may include a LiDAR and a millimeter-wave radar. Merely by way of example, embodiments of the present disclosure are described by taking LiDAR as an example. The radar device may be a 3D LiDAR sensor, a 2D LiDAR sensor, etc. Embodiments of the present disclosure do not limit the specific type of the radar device. In some application scenarios, the target device 110 may also be equipped with at least one other odometry sensor or module. For example, the odometry sensor or module includes an Inertial Measurement Unit (IMU) , a wheel odometer, and a visual odometer. The pose estimation may be performed by combining the point cloud data collected by the radar device and sensor data collected by at least one other odometry sensor to achieve functions such as navigation and positioning. Embodiments of the present disclosure do not limit the sensors installed on the target device.
[0044] It should be noted that the use of the radar device to obtain the point cloud data in the embodiments of the present disclosure is for exemplary purposes only. The point cloud data may also be obtained through other devices (e.g., a depth camera) .
[0045] In some embodiments, the radar device 120 may also be separately disposed. For example, the radar device may be disposed in a working environment of the target device 110. The working environment may be an environment where the target device is located, e.g., a warehouse environment, an indoor environment, or a docking environment.
[0046] The processor 130 may process information and / or data related to the application scenario 100 of the automatic guiding system for the target device to perform one or more functions described in the present disclosure. In some embodiments, the processor 130 obtains the point cloud data through the radar device. The point cloud data is within a same plane parallel to the ground. The processor 130 determines a target position of the target device based on the point cloud data. The processor 130 controls the target device to move to the target position to dock with a docking device. More descriptions regarding the docking between the target device and the docking device may be found in FIG. 2 to FIG. 14 and related descriptions thereof.
[0047] In some embodiments, the processor 130 may include a central processing unit (CPU) , a digital signal processor (DSP) , a microcontroller unit (MCU) , a computer, a user console, or the like, or any combination thereof. In some embodiments, the processor 130 may include a single server or a server group. The server group may be centralized or distributed. In some embodiments, the processor 130 may be local or remote. In some embodiments, the processor 130 may be implemented on a cloud platform. Merely by way of example, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an internal cloud, a multi-layer cloud, or the like, or any combination thereof.
[0048] The storage device 140 may store data, instructions, and / or any other information. In some embodiments, the storage device 140 may store data acquired from the target device 110, the radar device 120, etc., e.g., the point cloud data. In some embodiments, the storage device 140 may include a mass storage, a removable storage, a volatile read-write memory, a read-only memory (ROM) , or the like, or any combination thereof. In some embodiments, the storage device 140 may be implemented on a cloud platform. In some embodiments, the storage device 140 may be connected to the network 150 to communicate with one or more other components of the application scenario 100 of the automatic guiding system for the target device (e.g., the radar device 120, the processor 130) . In some embodiments, the storage device 140 may be part of the processor 130.
[0049] The network 150 may connect various assemblies in the application scenario 100 of the automatic guiding system for the target device. In some embodiments, one or more components of the application scenario 100 of the automatic guiding system for the target device (e.g., the radar device 120, the processor 130, and the storage device 140) may be connected and / or communicate with each other via the network 150. For example, the radar device 120 may send the point cloud data to the processor 130 via the network 150.
[0050] It should be noted that the application scenario 100 of the automatic guiding system for the target device is provided for illustrative purposes only and is not intended to limit the scope of the present disclosure. Various changes and modifications may be made by those skilled in the art based on the description of the present disclosure. For example, the application scenario 100 of the automatic guiding system for the target device may further include a database and an information source. As another example, the application scenario 100 of the automatic guiding system for the target device may be implemented on other devices to achieve similar or different functions. However, these changes and modifications do not depart from the scope of the present disclosure.
[0051] FIG. 3 is a flowchart illustrating an exemplary automatic guiding process for a target device according to some embodiments of the present disclosure. In some embodiments, a process 300 may be performed by a processing device (e.g., the processor 130) . As shown in FIG. 3, the process 300 includes the following steps.
[0052] Step 310, point cloud data is obtained through a radar device. In some embodiments, the point cloud data is within a same plane parallel to the ground.
[0053] The point cloud data is two-dimensional environmental contour information obtained by the radar device and located on a specific horizontal detection plane. In some embodiments, the point cloud data includes a plurality of points. A point in the point cloud data is a contour reflection point formed on the specific horizontal detection plane of the radar device by an object (e.g., a shelf, a wall, or an obstacle) in the environment.
[0054] In some embodiments, each point in the point cloud data includes a distance and angle data. The distance refers to a straight-line distance from a reflection point to the radar device. The angle data refers to a horizontal angle of the reflection point relative to the radar device. For example, the angle data may include an angle of the reflection point relative to an orientation of the radar device.
[0055] In some embodiments, the processor 130 may obtain the point cloud data through the radar device 120. For example, the target device moves to a recognition preparation point and scans a working environment to acquire point cloud data through the radar device at the recognition preparation point. The processor 130 may obtain the acquired point cloud data through the network 150. The processor 130 sends the point cloud data and docking related information of a docking device to the target device. The recognition preparation point refers to a specific position pre-planned for the target device (e.g., a robot) to activate the radar device for environmental scanning to acquire the point cloud data when the target device approaches the docking device (e.g., a shelf and a material rack) .
[0056] In some embodiments, the radar device 120 may obtain the point cloud data in the same plane parallel to the ground (e.g., a plane parallel to the ground at a height of 0.5~1 m from the ground, determined based on a height of the docking device) to focus on the docking device and reduce interference.
[0057] In some embodiments, after obtaining the point cloud data, the processor 130 may further perform a pre-processing on the point cloud data. The pre-processing includes distance filtering. For example, in a coordinate system of the radar device (e.g., a LiDAR coordinate system) , all point cloud data is filtered based on distance, so as to filter point cloud data whose distance to a preset docking point is greater than a set distance d1. For example, when a distance between a point in the point cloud data and the preset docking point is greater than the set distance d1, the point is filtered out. That is, the point is not considered to be point cloud data obtained from a contour (e.g., a material rack) of the docking device. The set distance may be a preset multiple of a longest side of the docking device. For example, the set distance may be twice the length of the longest side of the docking device. More descriptions regarding the preset docking point may be found in step 610 and related descriptions thereof.
[0058] In some embodiments, the point cloud data may be point cloud data of a target environment obtained by the radar device. FIG. 5 is a schematic diagram illustrating an exemplary target environment according to some embodiments of the present disclosure. Merely by way of example, referring to FIG. 5, taking a working environment of a robot as an example, the robot may generate a two-dimensional grid map using the point cloud data obtained by the radar device in a warehouse environment and achieve high-precision positioning in the two-dimensional grid map. The two-dimensional grid map includes objects such as shelves, goods, workbenches, support walls, and material racks to be transported. The robot may use an odometer to estimate a change amount of movement of the robot, use the radar device to scan the environmental contour to obtain the point cloud data for positioning, navigation, etc. The point cloud data is obtained by scanning the environment. The point cloud data may belong to a same laser beam. That is, the point cloud data may be point cloud data belonging to the same laser beam.
[0059] Taking the warehouse environment as an example, during execution of a task operation, the target device may navigate using a topological route map. The topological route map marks a movement route of the target device and nodes that the target device needs to pass through and arrive at. These nodes mark positions / areas of the docking device in the working environment, e.g., marking a material rack area and a pallet area. A node that the target device needs to reach may represent a position (e.g., a target position) on a map corresponding to a material rack where the target device needs to move. A target device navigates via an odometry sensor or a LiDAR and moves to a recognition preparation point corresponding to a docking device. Then, a processor 130 sends the point cloud data and the docking related information of the docking device to the target device, enabling the target device to dock with the docking device. The point cloud data may include point cloud data collected at the recognition preparation point and / or before arriving at the recognition preparation point. The topological route map may be determined based on a path planning algorithm, e.g., a Dijkstra algorithm, an A*algorithm, a Floyd-Warshall algorithm (multi-source path) , a genetic algorithm, and an ant colony algorithm.
[0060] Step 320, a target position of the target device is determined based on the point cloud data.
[0061] The target position refers to a position that the target device needs to reach to dock with the docking device. For example, the target position may be located below the docking device (e.g., a shelf) , such as a space formed by shelf legs and a shelf surface of the shelf. More descriptions regarding the docking device may be found in step 330 and related descriptions thereof.
[0062] In some embodiments, the processing device may determine the target position of the target device based on the point cloud data through manners such as feature extraction and geometric calculation, model-based point cloud matching, or machine learning (deep learning) . For example, taking determining the target position based on the feature extraction and geometric calculation as an example, the processor 130 may denoise and segment the point cloud data to extract geometric features (e.g., edges and docking holes) of the docking device, and then match the geometric features with preset reference point clouds of the docking device to determine a position of the docking device. The target position is determined based on the position of the docking device (e.g., a position below or in front of the docking device is determined as the target position) .
[0063] In some embodiments, the processor 130 performs a line fitting algorithm on the point cloud data to determine a plurality of initial line features. The processor 130 determines a target line feature based on the plurality of initial line features and the docking related information. The processor 130 determines the target position based on the target line feature. More descriptions regarding determining the target position may be found in FIG. 6 and related descriptions thereof.
[0064] Step 330, the target device is controlled to move to the target position to dock with the docking device.
[0065] The docking device refers to a device that docks with the target device. In some embodiments, the docking device may include a material rack, a shelf, a docking station, a pallet, etc. FIG. 4 is a schematic diagram illustrating an exemplary docking device according to some embodiments of the present disclosure. As shown in FIG. 4, the docking device is a material rack 410. The material rack 410 may include three wall panels (e.g., a wall panel 420, a wall panel 430, and a wall panel 440) . A dockable area 450 exists within the material rack 410.
[0066] In some embodiments, the docking device is the shelf. In the embodiments of the present disclosure, descriptions are primarily made with the docking device being the shelf as an example. However, it should be understood that this is not intended to limit the specific structure of the docking device.
[0067] The term “dock with” refers to a process in which the target device, through autonomous navigation and pose adjustment, causes its own physical interface and a physical interface of the docking device to reach a precise spatial relative position and state capable of performing subsequent tasks.
[0068] In some embodiments, controlling the target device to dock with the docking device may be achieved through a closed-loop control. For example, the processor may first plan a path to the target position and then drive the target device to move. During this process, the processor may continuously compare a real-time pose with a target pose via sensors (related descriptions may be found elsewhere in the present disclosure) , and dynamically calculate and adjust a linear velocity and an angular velocity of the target device using a control algorithm (e.g., a PID algorithm) to gradually eliminate errors of position and angle, ultimately guiding the target device to the target position with low-speed and precise movement to complete the docking process.
[0069] The automatic guiding method for the target device provided by the embodiments of the present disclosure can accurately locate the position for the target device to dock with the docking device, achieve precise docking between the target device and the docking device, and make the docking process intelligent.
[0070] FIG. 6 is a flowchart illustrating an exemplary process for determining a target position according to some embodiments of the present disclosure. In some embodiments, process 600 may be performed by a processing device (e.g., the processor 130) . As shown in FIG. 6, the process 600 includes the following steps.
[0071] Step 610, a line fitting algorithm is performed on the point cloud data to determine a plurality of initial line features.
[0072] An initial line feature refers to a preliminary line segment feature obtained after performing the line fitting algorithm on the point cloud data. The initial line feature may include a noise line, an irrelevant background line, and an edge line of a docking surface of the target device.
[0073] The line fitting algorithm refers to a data processing technique that extracts line segment features representing environmental contours from discrete point cloud data. The process of the line fitting algorithm includes, based on position information of the point cloud data, grouping point cloud data belonging to the same linear structure into a point cloud set via an algorithm, and calculating a line segment (e.g., a fitted line) that represents a distribution trend of the point cloud set. The line segment and corresponding point cloud set of the line segment together constitute a line feature.
[0074] In some embodiments, the processor 130 may perform the line fitting algorithm on the point cloud data to obtain the plurality of initial line features. Each initial line feature may include a fitted line and a corresponding line point cloud set. The line point cloud set includes point cloud data. The fitted line represents a line segment obtained by fitting the point cloud data. It should be noted that, for ease of description, the line feature described in the embodiments of the present disclosure may also refer to the corresponding fitted line. Alternatively, the point cloud of the line feature may refer to the line point cloud set used when performing the line fitting algorithm. For example, the initial line feature may refer to the fitted line in the initial line feature, a first line feature may refer to the fitted line in the first line feature, and a second line feature may refer to the fitted line in the second line feature.
[0075] In some embodiments, the processor 130 may perform the line fitting algorithm on the point cloud data based on the positions of the point cloud data, and take the fitted lines as the plurality of initial line features. The processor 130 groups the point cloud data that may be fitted into an initial line as a line point cloud set.
[0076] In some embodiments, the processor 130 may divide the point cloud data into a plurality of line point cloud sets based on the positions of the point cloud data. The processor 130 then performs the line fitting algorithm on the point cloud data in each line point cloud set to obtain the plurality of initial line features. The embodiments of the present disclosure do not limit the fitting manners for the point cloud data.
[0077] In some embodiments, the processor 130 may also use a preset line fitting algorithm to fit the point cloud data to obtain a plurality of candidate line features and line point cloud sets corresponding to the candidate line features. The processor 130 further determines the plurality of initial line features based on the plurality of candidate line features and the line point cloud sets corresponding to the candidate line features. More descriptions regarding the preset line fitting algorithm may be found in FIG. 7 and related descriptions thereof.
[0078] In some embodiments, the fitted initial line features may include noise, irrelevant background lines, etc. Therefore, the initial line features may be further processed.
[0079] Step 620, a target line feature is determined based on the plurality of initial line features and docking related information.
[0080] The docking related information refers to data / information related to docking between the target device and the docking device.
[0081] In some embodiments, the docking related information includes one or more of scale information, a preset docking point, and a preset docking coordinate system. The scale information includes a length L, a width W, a height H, etc., of the docking device. Embodiments of the present disclosure are described by taking an example in which the scale information includes the length L and the width W of the docking device.
[0082] The preset docking point represents an ideal position preset for the docking between the target device and the docking device. For example, the preset docking point may be located at an exact center of the docking device. The preset docking point may be represented by coordinates in a coordinate system constructed based on the docking device.
[0083] The preset docking coordinate system represents a coordinate system configured for docking. During the docking process, the processor 130 may determine a pose of the target device based on the preset docking coordinate system. The scale information, the preset docking point, and the preset docking coordinate system may be preset according to different docking devices.
[0084] In some embodiments, the docking related information further includes a current pose of the target device (which may be obtained through an internal sensor of the target device, e.g., through the IMU) , a relative pose between coordinate systems (e.g., a real vehicle coordinate system and a virtual vehicle coordinate system) , and a transformation relationship. More descriptions regarding the real vehicle coordinate system and the virtual vehicle coordinate system may be found in FIG. 14 and related descriptions thereof.
[0085] The target line feature refers to a key line feature, which is related to the docking and is screened out from the initial line features. For example, the target line feature may be an edge line of a docking surface of the docking device. The docking surface of the docking device refers to a specific surface (e.g., the wall panel 420, the wall panel 430 of the docking device shown in FIG. 4) on the docking device used for physical docking or positioning cooperation with the target device. The edge line refers to a contour boundary line of the docking surface of the docking device.
[0086] In some embodiments, the target line feature includes target line features in at least two different directions. The two different directions mean that an included angle exists between the two target line features in the different directions.
[0087] In some embodiments, the target line feature includes a first line feature and / or a second line feature. The first line feature corresponds to a first direction, and the second line feature corresponds to a second direction. An angle between the first direction and the second direction satisfies a preset angular condition.
[0088] The preset angular condition refers to a condition satisfied by the included angle between the first line feature and the second line feature. The preset angular condition may be determined according to the docking device. For example, the preset angular condition may be that the included angle between the first line feature and the second line feature is equal to an actual included angle between adjacent pallets in the docking device (e.g., 90° or within a range of 80° to 100°) .
[0089] In some embodiments, the processor 130 may process the plurality of initial line features by using the docking related information of the docking device to extract the target line feature. For example, the processor 130 may screen out, from the plurality of initial line features, by using the scale information of the docking device, an initial line feature matching the edge line of the docking surface as the target line feature. For example, the processor 130 may screen out, from the plurality of initial line features, an initial line feature whose length is close to a length of the edge line of the docking surface of the docking device as the target line feature. As another example, the processor 130 may screen out, in combination with a size (e.g., the length L or the width W) of the docking device, an initial line feature that conforms to a preset direction (e.g., horizontal or vertical) and whose spacing matches a corresponding dimensional size (e.g., the width) of the docking device as the target line feature. The target line feature includes target line features in at least two different directions. Each direction may include at least one target line feature.
[0090] The scale information refers to an inherent physical size parameter of the docking device, configured for identifying, screening, and locating a feature structure of the docking device during a point cloud processing process.
[0091] In some embodiments, the target line feature includes the first line feature and the second line feature in two different directions. The first line feature corresponds to the first direction. The first direction is determined based on at least a portion of the point cloud data included in the first line feature. The second line feature corresponds to the second direction. The first direction and the second direction are different. The second direction is determined based on the first direction. For example, the second line feature may be determined based on the first line feature and the preset angular condition. More descriptions regarding determining the first line feature and the second line feature may be found in FIG. 9 and related descriptions thereof.
[0092] Merely by way of example, the target line feature may include two first line features and one second line feature. For example, two parallel lines (corresponding to the first line features) and one vertical line (corresponding to the second line feature, where the second line feature is perpendicular to the first line features) are extracted. For example, three surfaces of the docking device may be fitted through the three line features. For example, referring to FIG. 4, the two first line features Lk1 and Lk2 may fit the wall panel 420 and the wall panel 430 of the docking device, respectively. The one second line feature Lw may fit the wall panel 430 of the docking device. It may be understood that when the docking device includes other surfaces or structures with other angles, etc., the target line feature may also be extracted according to a specific application scenario.
[0093] Step 630, the target position is determined based on the target line feature.
[0094] In some embodiments, the processor 130 may determine a target docking point by using the target line feature and the docking related information of the docking device. The processor 130 may designate the target docking point as the target position of the target device.
[0095] In some embodiments, the processor 130 may further obtain an intersection point of the first line feature and the second line feature, and construct a target docking coordinate system based on the intersection point, the first direction, and the second direction. The processor 130 determines the target position based on the target docking coordinate system and the docking related information. More descriptions regarding the determining the target position may be found in FIG. 10 and related descriptions thereof.
[0096] In some embodiments of the present disclosure, the target docking point is determined through the target line features in at least two different directions, which can adapt to various scenarios and docking devices when identifying the target position, thereby obtaining an accurate target position. Using the target docking point to dock with the docking device can improve the accuracy of device docking.
[0097] FIG. 7 is a flowchart illustrating an exemplary process for determining an initial line feature according to some embodiments of the present disclosure. In some embodiments, process 700 may be performed by a processing device (e.g., the processor 130) . As shown in FIG. 7, the process 700 includes the following steps.
[0098] Step 710, the point cloud data is fitted using a preset line fitting algorithm to obtain a plurality of candidate line features and a line point cloud set corresponding to each candidate line feature of the plurality of candidate line features.
[0099] The preset line fitting algorithm refers to a preset algorithm for extracting lines from a point cloud. In some embodiments, the preset line fitting algorithm may include a least squares method, a gradient descent method, a Gauss-Newton method, a Levenberg-Marquardt algorithm (L-M method) , etc. It may be understood that the preset line fitting algorithm may be determined based on different application scenarios.
[0100] The candidate line feature refers to a candidate line segment feature for determining the initial line feature. In some embodiments, the candidate line feature includes a candidate line determined by the preset line fitting algorithm and the line point cloud set corresponding to the candidate line feature.
[0101] The line point cloud set corresponding to the candidate line feature refers to a set of the point cloud data belonging to the same candidate line feature (e.g., a set of discrete points constituting the line) .
[0102] In some embodiments, the processor 130 may fit the point cloud data using the preset line fitting algorithm to obtain the plurality of fitted line segments (e.g., the candidate line features) and the line point cloud set corresponding to each line segment (e.g., the line point cloud set corresponding to the candidate line feature) . The line point cloud set includes the point cloud data. More descriptions regarding obtaining the candidate line features and the line point cloud sets corresponding to the candidate line features may be found in FIG. 8 and related descriptions thereof.
[0103] Step 720, endpoints in the line point cloud set corresponding to each candidate line feature are projected onto the corresponding candidate line feature to obtain projected endpoints.
[0104] The endpoints refer to boundary points along the line direction in the line point cloud set. In some embodiments, one line point cloud set includes two endpoints. In some embodiments, the endpoints in the line point cloud set are the two farthest points along the line direction.
[0105] The projected endpoints refer to points obtained by vertically projecting endpoints onto the corresponding candidate line feature. The projected endpoints may represent a start position and a stop position of the line. Corresponding to the endpoints in the line point cloud set, one line point cloud set also includes two projected endpoints.
[0106] Since endpoints of a line segment may be intersection points or affected by line trailing, the endpoints in the line point cloud set may not lie on the line segment, causing the two endpoints to be far from the line segment. Therefore, before merging line segments, the processor 130 may project the endpoints of the line segment in the line point cloud set vertically onto the corresponding line segment to obtain the projected endpoints.
[0107] The term “trailing” refers to a phenomenon where, due to errors in the point cloud data acquisition, noise interference, or surface reflection characteristics of objects, the endpoints of a line segment (e.g., the candidate line feature) fitted by the algorithm extend beyond its true physical edge, causing the line to be abnormally “lengthened” visually.
[0108] In some embodiments, the processor 130 may project each endpoint onto the corresponding line segment using a preset projection algorithm to obtain a corresponding projected endpoint. The preset projection algorithm may be represented by the following formula (1) : In formula (1) , x0 and y0 represent coordinates in the x and y directions, respectively, of one endpoint (e.g., a start point) of the line segment. xs and ys represent the projected endpoints (projected start point) obtained by projecting the endpoint (x0, y0) onto the line segment. xn and yn represent coordinates in the x and y directions, respectively, of another endpoint (e.g., an ending point) of the line segment. xe and ye represent the projected endpoint (projected ending point) obtained by projecting the endpoint (xn, yn) onto the line segment. a, b, and c are coefficients in the formula (1) .
[0109] Step 730, the plurality of candidate line features are merged based on the projected endpoints to obtain a merged line feature. The merged line feature; is designated as the initial line feature of the plurality of initial line features.
[0110] The merged line feature refers to a feature corresponding to a continuous line segment formed by merging a plurality of candidate line features. The merged line feature may be configured to address the issue of line breakage caused by point cloud segmentation.
[0111] In some embodiments, in response to determining that the projected endpoints corresponding to two adjacent candidate line features satisfy a preset merging condition, the processor 130 may merge the line point cloud sets corresponding to the two adjacent candidate line features to obtain a merged point cloud set. The processor 130 fits the point cloud data included in the merged point cloud set using the preset line fitting algorithm to obtain the merged line feature. In some embodiments of the present disclosure, the candidate line feature may also be referred to as a candidate line.
[0112] The preset merging condition refers to a preset rule for determining whether two candidate lines can be merged. In some embodiments, the preset merging condition includes: a distance between projected endpoints corresponding to two adjacent candidate line features is less than a first distance threshold dth, and / or a distance from the projected endpoints corresponding to the two adjacent candidate line features to the adjacent candidate line features are both less than a second distance threshold lth. In some embodiments, when the two adjacent candidate line features satisfy at least one preset merging condition, the processor 130 may merge the line point cloud sets corresponding to the two adjacent candidate line features to obtain the merged point cloud set.
[0113] For example, there are two known scenarios involving adjacent line segments: the projected endpoints corresponding to two adjacent line segments satisfy the preset merging condition, and the projected endpoints corresponding to two adjacent line segments do not satisfy the preset merging condition. In response to determining that the projected endpoints corresponding to the two adjacent line segments satisfy the preset merging condition, the line point cloud sets corresponding to the two adjacent line segments are merged to obtain the merged point cloud set. The point cloud data included in the merged point cloud set is fitted using the preset line fitting algorithm to obtain a merged line segment. That is, the two line segments are merged into one line segment by merging the line point cloud sets corresponding to the two line segments, and the point cloud data of the two line segments are refitted and calculated to obtain the merged line segment.
[0114] The merged point cloud set refers to a new point set formed by merging the line point cloud sets of two candidate lines.
[0115] In some embodiments, the processor 130 may also obtain the merged point cloud set in the following manner: for any two candidate lines among the plurality of candidate lines: obtaining a consistency parameter for the two candidate lines. It is known that there are two cases: the consistency parameter satisfies a consistency condition, and the consistency parameter does not satisfy the consistency condition. In response to determining that the consistency parameter satisfies the consistency condition, the processor 130 determines a virtual connecting segment based on proximate endpoints of the two candidate lines. It is known that there are two cases: a direction deviation between the virtual connecting segment and at least one of the two candidate lines is not less than a preset threshold, and direction deviations between the virtual connecting segment and both of the two candidate lines are less than the preset threshold. In response to determining that the direction deviations between the virtual connecting segment and both of the two candidate lines are less than the preset threshold, the processor 130 merges the line point cloud sets corresponding to the two candidate lines to obtain the merged point cloud set.
[0116] The consistency parameter refers to a quantitative indicator used to measure the degree of similarity or association in geometric features between the two candidate lines. In some embodiments, the consistency parameter includes a direction consistency and a point cloud density consistency. In some embodiments, the processor 130 may determine the consistency parameter based on the direction consistency and the point cloud density consistency.
[0117] The direction consistency refers to a quantitative indicator for measuring an angular difference between the two candidate lines. The direction consistency may be determined based on a direction angle of the two candidate lines. The greater the difference in the direction angle between the two candidate lines, the less the direction consistency is.
[0118] Merely by way of example, the direction consistency may be obtained in the following manner: determining a direction vector for each candidate line, and converting the direction vector of each candidate line into the direction angle. A difference between the direction angles of the candidate lines is determined, and the difference is designated as the direction consistency. The direction angle refers to an angle between the direction vector of a line and a coordinate axis of a coordinate system in which the line is located. As an example, a coordinate system in which the candidate line is located is a LiDAR coordinate system, and the direction angle of the candidate line may be an angle between the candidate line and an x-axis of the LiDAR coordinate system. The LiDAR coordinate system refers to a coordinate system in which the laser emitted by the radar device 120 is located.
[0119] The point cloud density consistency refers to a quantitative indicator for measuring a point cloud density difference between the line point cloud sets corresponding to the two candidate lines. As an example, the smaller the point cloud density difference between the two candidate lines, the larger the point cloud density consistency.
[0120] Merely by way of example, the processor 130 may determine a point cloud density of the line point cloud set corresponding to each candidate line. The processor 130 may determine a point cloud density difference between the line point cloud sets corresponding to the two candidate lines as the point cloud density consistency. The point cloud density refers to a quantity of point clouds per unit length (e.g., a quantity of point clouds per centimeter) .
[0121] The consistency condition refers to a preset threshold condition for determining whether the two candidate lines have a basis for merging. As an example, the consistency condition includes that the direction angle difference is less than a preset angle threshold and / or the point cloud density difference is less than a preset point cloud density threshold.
[0122] The proximate endpoints refer to two endpoints that are closest to each other among the two candidate lines. For example, if an ending point of candidate line A is closest to a starting point of candidate line B, the ending point of candidate line A and the starting point of candidate line B are the proximate endpoints.
[0123] The virtual connecting segment refers to a line segment formed by connecting the proximate endpoints of the two candidate lines. The virtual connecting segment may simulate a potential continuous relationship between the two candidate lines. The virtual connecting segment is not an actual connection between the proximate endpoints of the two candidate lines, but is determined by calculation based on coordinates of the proximate endpoints of the two candidate lines.
[0124] The direction deviation refers to angles between a direction of the virtual connecting segment and respective directions of the two candidate lines. Merely by way of example, the processor 130 may determine the direction angle of the virtual connecting segment, determine a difference between the direction angle of the virtual connecting segment and the direction angle of the two candidate lines, and designate the difference as the direction deviation between the virtual connecting segment and the two candidate lines.
[0125] The preset threshold refers to a maximum direction deviation angle (e.g., 3°) between the virtual connecting segment and the two candidate lines. If the direction deviation is less than the preset threshold, it indicates that the direction of the virtual connecting segment is consistent with extension directions of the two candidate lines, and the two candidate lines are be merged.
[0126] In some embodiments of the present disclosure, by using the consistency parameters of the two candidate lines, it may be determined whether any two non-adjacent candidate lines can be merged, thereby achieving a good line merging effect and ensuring the extraction of line features of a complete structure of the docking device.
[0127] In some embodiments, the processor 130 may merge the plurality of candidate line features to obtain the plurality of merged line features. The processor 130 may designate the plurality of merged line features as the plurality of initial line features.
[0128] In some embodiments, the processor 130 may sequentially traverse the projected endpoints of adjacent line segments based on serial numbers on the line segments. Whether the adjacent line segments need to be merged is determined to obtain the merged line segment using the projected endpoints of the adjacent line segments. In this manner, a plurality of line segments may be merged to obtain the merged line segment, and the merged line segment is designated as the initial line feature. The serial numbers on the line segments may be determined based on spatial positions of the line segments. As an example, the processor 130 may assign serial numbers in an order from smallest to largest based on an average distance from the line segments to the radar device (e.g., a distance from a midpoint of a line segment to the radar device) . The serial numbers on the line segments may also be determined based on other ways. For example, the serial numbers on the line segments may be determined based on an original acquisition order of corresponding point cloud data.
[0129] Through the above manners, the plurality of line segments or merged line segments may be obtained, and each of the plurality of line segments or merged line segments is designated as the initial line feature to obtain the fitted line and the corresponding line point cloud set.
[0130] FIG. 8 is a flowchart illustrating an exemplary process for determining a candidate line feature according to some embodiments of the present disclosure. In some embodiments, process 800 may be performed by a processing device (e.g., the processor 130) . As shown in FIG. 8, the process 800 includes the following steps.
[0131] Step 810, an initial point set is obtained based on point cloud data.
[0132] The initial point set refers to a point set composed of selected partial point clouds from the point cloud data.
[0133] In some embodiments, the processor 130 may arbitrarily select a point in the point cloud data as a starting point. For example, after assigning serial numbers to all point clouds, a point with a middle serial number is selected. The processor 130 may select a preset count (e.g., 3, 5, 10, etc. ) of points (which may be adjacent or non-adjacent) on both sides of the starting point to form the initial point set. The point cloud serial numbers (e.g., 1 to N, N is a total count of the point clouds) are assigned to the point clouds during scanning acquisition of the point cloud data according to a laser scanning order. Serial numbers of adjacent point clouds are also adjacent.
[0134] During the docking process of the target device, a head of the target device (e.g., a front of a vehicle) is generally directed toward the docking device. In a line extraction process, for example, a line fitting algorithm may be started from the point cloud data of a middle sequence collected by the radar device. The middle sequence refers to a scenario where the point cloud data are sorted by serial number, and line extraction may be started from a middle serial number. As another example, the line extraction may be started from a head sequence and / or a tail sequence. The following description uses starting line extraction from the middle sequence as an example.
[0135] Step 820, the initial point set is fitted to obtain an initial candidate line feature.
[0136] The initial candidate line feature refers to a line feature obtained by performing a line fitting algorithm on the initial point set.
[0137] When using a point cloud data pi as a starting point, the point cloud data pi and a preset count of adjacent point cloud data may form an initial point set {Cpi} . For example, an initial point set {Cpi} may be constructed by taking three points from each of the left and right sides adjacent to the sequence number of the point cloud data pi. A line fitting algorithm is performed on the point cloud data included in the initial point set {Cpi} using a preset line fitting algorithm, thereby obtaining an initial candidate line feature Lci.
[0138] Step 830, other point cloud data in the point cloud data excluding the initial point set is traversed and re-fitted based on a first traversal direction and a second traversal direction to update the initial candidate line feature.
[0139] The first traversal direction and the second traversal direction are two directions determined based on the initial candidate line feature for re-fitting other point clouds in the point cloud data excluding the initial point set. For example, the first traversal direction may be a direction of increasing point cloud sequence numbers, and the second traversal direction may be a direction of decreasing point cloud sequence numbers.
[0140] In some embodiments, for the first traversal direction, the processor 130 may determine a vertical distance between a current traversed point cloud and the initial candidate line feature. It is known that there are two cases: the vertical distance is less than the traversal distance threshold, and the vertical distance is not less than the traversal distance threshold. In response to determining that the vertical distance is less than the traversal distance threshold, the processor 130 adds the current point cloud to the initial point set and updates the initial point set. The processor 130 re-fits the updated initial point set to obtain the initial candidate line feature and traverses a next point cloud. In response to determining that the vertical distance is not less than the traversal distance threshold, the processor 130 stops traversal in the current traversal direction and proceeds with traversal in the second traversal direction.
[0141] The term “traversal” refers to a sequential screening process of point clouds along the traversal direction. For example, the traversal includes, for other point clouds in the point cloud data excluding the initial point set, checking relationship (e.g., whether the vertical distance is less than the traversal distance threshold) between each point and the initial candidate line feature along a preset direction (e.g., the first traversal direction and the second traversal direction) one by one, and processing (e.g., adding qualifying points to the point set and updating the line fitting result) based on the check result, until all point clouds to be checked in the direction are processed (or stop due to unmet conditions) .
[0142] The current point cloud refers to the point cloud currently being screened in the current traversal direction.
[0143] The vertical distance refers to the shortest distance from the current point cloud to the initial candidate line feature. The vertical distance is configured to determine whether the point cloud belongs to the initial candidate line feature. The vertical distance may be determined based on the coordinates of the current point cloud and the equation of the initial candidate line feature.
[0144] The traversal distance threshold refers to a preset distance critical value. For example, the distance threshold may be 1 mm, 2 mm, or 3 mm. If the vertical distance is less than the traversal distance threshold, the current point cloud belongs to the initial candidate line feature; otherwise, the current point cloud does not belong to the initial candidate line feature.
[0145] In some embodiments, in response to determining that the vertical distance between the current point cloud and the initial candidate line feature is less than the traversal distance threshold, the current point cloud is added to the initial point set and the initial point set is updated to expand the initial point set.
[0146] In some embodiments, the processor 130 may re-fit the updated initial point set using the preset line fitting algorithm to update the initial candidate line feature. The processor 130 may perform the same screening on a next point cloud as performed on the current point cloud.
[0147] In some embodiments, in response to determining that the vertical distance between the current point cloud and the initial candidate line feature is greater than the traversal distance threshold, stopping traversal in the current traversal direction, and initiating traversal in the second traversal direction. For example, when screening and re-fitting other point clouds from the first traversal direction, if the vertical distance between a certain point cloud and the initial candidate line feature is greater than the traversal distance threshold, that point cloud is considered not to belong to the initial candidate line feature, traversal in the first direction is stopped and traversal in the second traversal direction is initiated. For example, the first traversal direction is to screen the point cloud data one by one from the line segment endpoint epi1 of the initial point set {Cpi} in the direction of increasing point cloud sequence numbers, and the second traversal direction is to screen the point cloud data one by one from the other endpoint epi2 of the initial point set {Cpi} in the direction of decreasing point cloud sequence numbers.
[0148] The traversal process for the second traversal direction is the same as that for the first traversal direction. In some embodiments, during the traversal in the second traversal direction, if the vertical distance between the current point cloud and the initial candidate line feature is greater than the traversal distance threshold, the traversal stops.
[0149] Merely by way of example, embodiments of the present disclosure are described using the least squares method as the preset line fitting algorithm. The line segment may be represented using a linear equation: ax+by+c=0, where a, b, c are coefficients in the linear equation. The least squares method may be configured to perform line fitting algorithm on the point cloud data included in the initial point set {Cpi} , thereby obtaining the coefficients (a, b, and c) of the line segment.
[0150] In some embodiments, the preset line fitting algorithm may be represented by the following formula (2) :
[0151] The intermediate results used by each coefficient may be expressed as:
[0152] m1=∑ixi.
[0153] m2=∑iyi.
[0154] w1=N·∑ixiyi-∑ixi·∑iyi.
[0155]
[0156] w3=∑ixi·∑iyi-N·∑ixiyi.
[0157] In the above formulas, xi, yi are coordinates in the x and y directions, respectively, of the i-th point cloud data in the initial point set {Cpi} . N represents the count of the point cloud data included in the initial point set {Cpi} .
[0158] Step 840, in response to traversal stopping in both the first traversal direction and the second traversal direction, a last re-fitted initial candidate line feature is designated as one candidate line feature. The initial point set when traversal in both the first traversal direction and the second traversal direction stops is the line point cloud set corresponding to the candidate line feature.
[0159] In some embodiments, when the traversal stops in both the first traversal direction and the second traversal direction, the point clouds used to generate the line segment have been extracted, and the line segment generated at this time may serve as the candidate line feature.
[0160] In some embodiments, when determining the plurality of candidate line features, upon traversing to the end position (e.g., the endpoint with the larger sequence number) of the previous candidate line feature, the generation of the candidate line feature is concluded, resulting in one generated candidate line feature and a corresponding line point cloud set of the generated candidate line feature. This approach may prevent subsequent deduplication processing issues caused by overlapping regions between two line segments.
[0161] FIG. 9 is a flowchart illustrating an exemplary process for determining a target line feature according to some embodiments of the present disclosure. In some embodiments, process 900 may be executed by a processing device (e.g., processor 130) . As shown in FIG. 9, the process 900 includes the following steps.
[0162] Step 910, at least two first line features that satisfy a first filtering condition is determined from the plurality of initial line features.
[0163] The first filtering condition refers to a rule for filtering the first line features from the initial line features. In some embodiments, the first filtering condition is related to docking related information. For example, the first filtering condition includes at least different scale conditions determined corresponding to the docking related information of the docking device. The first filtering condition may be determined based on scale information of the docking device. For example, the processor 130 may determine the first filtering condition using a first scale included in the scale information. Merely by way of example, the scale information includes a length and a width. Using the length to determine the first filtering condition is taken as an example for description. Embodiments of the present disclosure may set the condition according to a specific application scenario.
[0164] In some embodiments, the first filtering condition includes a parallel condition and a first scale condition. The first scale condition is determined based on the first scale in the docking related information.
[0165] The first scale condition is determined based on the first scale (e.g., a length L) of the docking device. The parallel condition is that a parallelism or a direction angle difference between the initial line features is less than a preset difference threshold pa_th. The first scale condition is that a difference between a length of the initial line feature and the length L of the docking device is less than a preset length difference. Thereby, at least two first line features Lk1 and Lk2 may be extracted. For example, the first line feature Lk1 and the first line feature Lk2 are two parallel line segments.
[0166] Step 920, the first direction is determined based on the at least two first line features.
[0167] At least partial point cloud data included in the first line feature may represent the point cloud data at middle sequence or representative point cloud data of the first line feature. Embodiments of the present disclosure impose no limitation on the at least partial point cloud data. The at least partial point cloud data included in the first line feature may be configured to determine the first direction corresponding to the first line feature, thereby, reducing a line fitting error introduced by endpoints of the line segment.
[0168] In some embodiments, for each first line feature of the at least two first line features, the processor 130 may obtain the point cloud data within a preset point cloud range to obtain at least a portion of the point cloud data. Perform a line fitting algorithm on the at least a portion of the point cloud data to obtain a plurality of third line features. The first direction is determined based on directions of at least two third line features.
[0169] The preset point cloud range refers to a specific point cloud area composed of the point cloud data related to determining the third line feature.
[0170] In some embodiments, the processor 130 may determine a center point of each first line feature of the at least two first line features. For example, the center points of the first line feature Lk1 and the first line feature Lk2 are Lkc1 and Lkc2, respectfully. The processor 130 respectively taking the center points Lkc1 and Lkc2 as centers, obtains the point cloud data located within the preset point cloud range of the center points Lkc1 and Lkc2 on the corresponding first line features, so as to obtain the at least at least a portion of the point cloud data. The preset point cloud range is related to the first scale (e.g., the length) of the docking device. For example, the preset point cloud range includes a first preset ratio of the first scale (e.g., the length) of the docking device. Merely by way of example, from the first line features, taking the center points Lkc1 and Lkc2 as the centers respectively, the point cloud data within a distance of 0.4*L from the center points Lkc1 and Lkc2 on both sides of the center points, is extracted to obtain the at least a portion of the point cloud data.
[0171] In some embodiments, the processor 130 may further use the preset line fitting algorithm to perform the line fitting algorithm on the at least the portion of the point cloud data to obtain the third line feature. The third line feature is a re-fitted first line feature. Corresponding to the first line feature, the count of the third line feature is at least two. The at least two third line features may be denoted as Lk3 and Lk4 respectively.
[0172] In some embodiments, the processor 130 may further determine the first direction DRk based on directions corresponding to the at least two third line features Lk3 and Lk4. For example, the processor 130 may take a direction corresponding to one of the third line features Lk3 and Lk4 as the first direction DRk. As another example, the processor 130 may determine the first direction DRk by synthesizing directions corresponding to the third line features Lk3 and Lk4. For example, the processor 130 may determine an average value of directions corresponding to at least two third line features Lk3 and Lk4 as the first direction DRk.
[0173] In some embodiments, the processor 130 may project all points in the point cloud data onto the first line feature to determine a relative position quantization parameter of each point cloud and a vertical distance to the first line feature. The processor 130 may determine a count of suspicious trailing points based on the relative position quantization parameter and the vertical distance. The processor 130 may determine a reflection intensity deviation based on the point cloud data. The processor 130 may determine a preset ratio corresponding to the preset point cloud range based on the reflection intensity deviation and the count of suspicious trailing points.
[0174] The relative position quantization parameter refers to a parameter used to define a specific position of a projection point of a point cloud on the first line feature. Merely by way of example, a relative position quantization parameter t of a point cloud P may be determined based on the following formula (3) : In formula (3) , x and y represent x-axis and y-axis coordinates of the point cloud P, respectively; x1 and y1 represent x-axis and y-axis coordinates of a starting point of the first line feature, respectively; x2 and y2 represent x-axis and y-axis coordinates of an ending point of the first line feature, respectively.
[0175] In some embodiments, when the relative position quantization parameter t is less than 0, it indicates that a projection point P'of the point cloud P on the first line feature is located on a left outer side of the starting point of the first line feature. When the relative position quantization parameter t is greater than 1, it indicates that the projection point P' of the point cloud P on the first line feature is located on a right outer side of the ending point of the first line feature. When the relative position quantization parameter t satisfies 0≤t≤1, it indicates that the projection point P' of the point cloud P on the first line feature is located in a main body area of the first line feature. The main body area of the first line feature refers to an area in the first line feature that is located between a starting point area and an ending point area of the first line feature. The starting point area refers to an area composed of point clouds near the starting point (e.g., point clouds with point cloud sequence numbers in the top 10%) in the first line feature. The ending point area refers to an area composed of point clouds near the ending point (e.g., point clouds with point cloud sequence numbers in the bottom 10%) in the first line feature.
[0176] The vertical distance from the point cloud to the first line feature refers to a shortest distance from the point cloud to the first line feature. In some embodiments, the vertical distance from the point cloud to the first line feature may be determined based on coordinates of the point cloud and an equation of the first line.
[0177] A suspicious trailing point refers to a point cloud that may have an abnormal trailing. In some embodiments, the processor 130 may determine a count of suspicious trailing points based on the relative position quantization parameter and the vertical distance.
[0178] In some embodiments, the processor 130 may determine deviation points based on the vertical distance from the point cloud to the first line feature. The processor 130 may determine the relative position quantization parameter of the deviation point. The processor 130 may determine the suspicious trailing point and the count of suspicious trailing points based on a spacing between adjacent deviation points.
[0179] The deviation point refers to a point cloud whose vertical distance to the first line feature is greater than a deviation distance threshold. The deviation distance threshold may be preset.
[0180] In some embodiments, for each deviation point, the processor 130 may determine corresponding relative position quantization parameter of the each deviation point and retain deviation points whose relative position quantization parameter is greater than 1 or less than 0. That is, point clouds whose projection points lie outside the first line feature are retained.
[0181] In some embodiments, the processor 130 may further determine a spacing between the adjacent deviation points along an extension direction of the first line feature (determined based on a distance between the projection points of adjacent projection points on the first line feature, e.g., an Euclidean distance) . If the spacing is greater than a spacing threshold, the two adjacent deviation points are determined to be the suspicious trailing points.
[0182] The reflection intensity deviation refers to the reflection intensity deviation between an endpoint area and a main body area of the first line feature. In some embodiments, the reflection intensity deviation includes a starting point region deviation and an ending point region deviation.
[0183] In some embodiments, the processor 130 may directly obtain a reflection intensity of each point cloud from the point cloud data (e.g., a laser echo signal strength recorded during LiDAR scanning) . The processor 130 may calculate an average reflection intensity for the starting point area, the ending point area, and the main body area. The processor 130 may determine the reflection intensity deviation based on the average reflection intensity of the starting point area, the ending point area, and the main body area. Merely by way of example, a starting point area deviation K1 and an ending point area deviation K2 may be determined based on the following formula (4) : In formula (4) , S represents the average reflection intensity of the starting point area, M represents the average reflection intensity of the main body area, and Z represents the mean reflection intensity of the ending point area.
[0184] In some embodiments, the processor 130 may determine the preset ratio corresponding to the preset point cloud range based on the reflection intensity deviation and the count of suspicious trailing points. The preset ratio refers to a ratio of the point cloud data within the preset point cloud range to all point cloud data. Merely by way of example, the processor 130 may determine the preset ratio corresponding to the preset point cloud range via a preset lookup table based on the reflection intensity deviation and the count of suspicious trailing points. For example, the larger the reflection intensity deviation and the greater the count of suspicious trailing points, the smaller the preset ratio is. The preset lookup table may be determined based on expert experience.
[0185] In some embodiments of the present disclosure, determining the preset ratio corresponding to the preset point cloud range based on the reflection intensity deviation and the count of suspicious trailing points enables dynamic adjustment of the preset ratio, avoiding issues of excessive noise points or loss of valid points caused by a fixed range, thereby ensuring that the point cloud within the preset point cloud range is more accurate.
[0186] In some embodiments, the processor 130 may further fine-tune the preset ratio based on a direction deviation between the third line feature and the first line feature. The direction deviation between the third line feature and the first line feature may be determined based on an included angle between the third line feature and the first line feature. A larger included angle indicates a greater direction deviation between the third line feature and the first line feature.
[0187] In some embodiments, a large direction deviation between the third line feature and the first line feature indicates that the endpoint area (e.g., the starting point area and / or the ending point area) of the first line feature may have morphological distortion (e.g., structural abnormality caused by impact at an endpoint of the docking device) , necessitating a reduction of the preset ratio. A small direction deviation between the third line feature and the first line feature indicates that the endpoint area and the main body area of the first line feature are morphologically similar, allowing for an expansion of the preset ratio.
[0188] In some embodiments of the present disclosure, fine-tuning the preset ratio based on the direction deviation between the third line feature and the first line feature can further improve the accuracy of the first direction, facilitating docking between the target device and the docking device.
[0189] In some embodiments, for each first line feature, the processor 130 may group a line point cloud set of the first line feature to obtain a plurality of line point cloud subsets. The processor 130 may perform the line fitting algorithm based on the plurality of line point cloud subsets, respectively, to obtain a plurality of first line subsections. The processor 130 may determine a composite direction of the first line feature based on subdirections corresponding to the plurality of first line subsections. The processor 130 may determine the first direction based on the composite direction of the plurality of first line features.
[0190] The line point cloud subset refers to a sub-point set obtained by dividing the line point cloud set of the first line feature according to a certain rule (e.g., random division and uniform division) . In some embodiments, the processor 130 may perform random division on the line point cloud set of the first line feature. Each result of the random division may be the line point cloud subset.
[0191] The first line subsection refers to a fitted line segment obtained by performing the line fitting algorithm on the line point cloud subset. The line fitting algorithm may be performed based on the preset line fitting algorithm.
[0192] The subdirection corresponding to the first line subsection refers to a direction corresponding to the first line subsection.
[0193] The composite direction of the first line feature refers to a direction obtained by fusing the subdirections corresponding to the plurality of first line subsections of the same first line feature. Merely by way of example, the processor 130 may determine a direction angle interval with the highest frequency of occurrence among the plurality of subdirections and determine an average value of all subsection direction angles within the interval as the composite direction of the first line feature.
[0194] In some embodiments, the processor 130 may determine an average value of composite directions of all first line features and determine the average value as the first direction.
[0195] In some embodiments, when determining the composite direction, the processor 130 may further determine a weight corresponding to the subdirection based on the count of the point cloud and distribution information of the line point cloud subset corresponding to the first line subsection. The processor 130 may determine the composite direction based on the weight corresponding to the subdirection.
[0196] The distribution information refers to, after dividing the first line feature into the plurality of line point cloud subsets, a count of point clouds in the point set corresponding to the first line subsection that fall into each line point cloud subset. For example, if a first line feature is divided into 5 line point cloud subsets, and the corresponding distribution information is [3, 10, 7, 0, 20] , this indicates that the count of the point clouds in the 5 line point cloud subsets are 3, 10, 7, 0, and 20, respectively.
[0197] The distribution information reflects the distribution uniformity of points on the first line subsection (e.g., in the sequence [3, 10, 7, 0, 20] , points are concentrated in the 2nd and 5th line point cloud subsets, indicating a more concentrated distribution; if the sequence is [8, 9, 7, 10, 6] , the distribution is uniform) .
[0198] The processor 130 may determine a count weight corresponding to the count of the point cloud of the line point cloud subset corresponding to the first line subsection. For example, a ratio of the count of the point cloud of the first line subsection to the count of the point cloud of all first line subsections is determined as the count weight.
[0199] The processor 130 may determine a distribution weight corresponding to a distribution situation of the first line subsection. For example, the distribution weight is determined based on a standard deviation of the distribution information. A smaller standard deviation indicates a more uniform distribution and a larger distribution weight.
[0200] In some embodiments, the processor 130 may fuse the count weight and the distribution weight to determine a weight corresponding to each subdirection. For example, a weight w corresponding to a subdirection is w=α×wN+ (1-α) ×wD, where wN represents the count weight, wD represents the distribution weight, and α is a fusion coefficient (e.g., 0.6, which may be adjusted according to scenarios prioritizing quantity or distribution) . A higher weight indicates that the subdirection is more reliable and has a greater proportion in the subsequent calculation of the composite direction.
[0201] In some embodiments, the processor 130 may perform a weighted summation based on the weight corresponding to each subdirection to determine the composite direction of the corresponding first line feature.
[0202] In some embodiments of the present disclosure, grouping the line point cloud set of the first line feature to determine the plurality of subdirections and further determining the first direction can isolate local noise (e.g., deviation caused by occlusion in a certain segment of the point cloud) and avoid interference from local abnormal points on the overall direction during a single fitting. By integrating the plurality of subdirections, the composite direction of the first line feature becomes closer to the true direction (e.g., a direction deviation caused by a slight bend in the middle of a straight line may be corrected through multi-subsection fusion) , ultimately improving the reliability of the first direction.
[0203] Step 930, the second direction is determined based on the first direction and the preset angular condition.
[0204] In some embodiments, the processor 130 may determine the second direction VDR that satisfies a preset angular condition with the first direction based on the first direction. The included angle between the second direction and the first direction satisfies the preset angular condition. The preset angular condition may indicate that the included angle between the second direction and the first direction differs by a preset angle. For example, the second direction and the first direction satisfy a perpendicular relationship, and the second direction differs from the first direction by 90 degrees. As another example, the second direction differs from the first direction by 60 degrees. As still another example, the second direction differs from the first direction by 45 degrees. As still another example, the second direction differs from the first direction by 35 degrees. It may be understood that the preset angular condition may be set according to application scenarios in the embodiments of the present disclosure, and the embodiments of the present disclosure do not limit the preset angular condition. More descriptions regarding the preset angular condition may be found in FIG. 6 and related descriptions thereof.
[0205] Step 940, at least one second line feature that satisfies a second filtering condition is determined from the plurality of initial line features.
[0206] The second filtering condition refers to a rule for filtering the second line feature from the initial line features. In some embodiments, the second filtering condition is related to the docking related information. For example, the second filtering condition includes at least different scale conditions determined corresponding to the docking related information of the docking device. The second filtering condition may be determined based on the scale information of the docking device. For example, the second filtering condition is determined by using a second scale included in the scale information. Merely by way of example, the scale information includes a length and a width. The determination of the second filtering condition by using the width is described as an example, and the embodiments of the present disclosure may set it according to specific application scenarios.
[0207] Filter out an initial line feature that satisfies the second filtering condition from the line sets {CLi} of a plurality of initial line features to obtain at least one second line feature Lw. The second filtering condition includes a second direction condition and a second scale condition. The second scale condition is determined based on a second scale (e.g., a width W) of the docking device. For example, the second scale condition is that a difference between a length of the initial line feature and the width W of the docking device is less than a preset width difference. The second direction condition is that a difference between a direction of the initial line feature and the second direction VDR is less than a preset angle difference. Thereby, an initial line feature that is close to the second direction VDR and has a length close to the width W of the docking device may be extracted as the second line feature Lw. For example, the second line feature Lw is a vertical line segment perpendicular to two parallel line segments.
[0208] In some embodiments, there may be a plurality of second line features Lw that satisfy the condition. Therefore, in response to a count of the second line features being greater than a preset count (e.g., the preset count is 1) , a second line feature that satisfies a third filtering condition may be determined to obtain a final second line feature. The third filtering condition includes at least one of the following: a distance between a center point of the second line feature and a center point of the first line feature belongs to a preset distance range, or the center point of the second line feature and the center point of the first line feature satisfy a preset positional relationship. The preset distance range is related to a first scale (e.g., a length L) of the docking device. For example, the preset distance range belongs to a preset difference range of a second preset ratio of the first scale (e.g., the length) of the docking device. Merely by way of example, the preset distance range includes a preset difference range of L / 2. The preset positional relationship is that the center points are both on a preset side of the second line feature.
[0209] Merely by way of example, if there are a plurality of second line features Lw, for a j-th second line feature Lwj, where j is an integer, a distance from a center point (e.g., Lkc1) of the first line feature to the second line feature Lwj is determined, and a positional relationship between center points (e.g., Lkc1 and Lkc2) of the first line features and the second line feature Lwj is determined. If the distance from Lkc1 to the second line feature Lwj is close to L / 2, and the center points Lkc1 and Lkc2 are both on a preset side (e.g., an upper side) of the second line feature Lwj, the second line feature Lwj may be determined as the final second line feature Lw, i.e., the vertical line segment. The preset side may represent a side of the center point away from the target device.
[0210] The above solution utilizes the parallel and perpendicular constraint relationships of line features and the scale information of the docking device to quickly filter out the initial line features that satisfy the conditions from the extracted set of the initial line features, thereby obtaining at least two parallel first line features Lk1 and Lk2 and at least one second line feature Lw perpendicular to the first line features Lk1 and Lk2. In addition, the point cloud data of a fixed length is taken from both sides of the center point of the first line feature to re-fit the first line feature, improving the accuracy of the fitting of the first line feature. Therefore, an accurate first direction can be determined, and errors caused by endpoints of the line segment can be reduced.
[0211] FIG. 10 is a flowchart illustrating an exemplary process for determining a target position according to some other embodiments of the present disclosure. In some embodiments, process 1000 may be performed by a processing device (e.g., the processor 130) . As shown in FIG. 10, the process 1000 includes the following steps.
[0212] Step 1010, an intersection point of the first line feature and the second line feature is obtained.
[0213] In some embodiments, the processor 130 may obtain intersection points between at least two first line features and the second line feature, respectively, to obtain a plurality of intersection points. Merely by way of example, the processor 130 may obtain intersection points of the parallel first line features Lk1 and Lk2 with a vertical line segment (e.g., a second line feature Lw) , to obtain two intersection points, respectively, and denote the two intersection points as G1 and G2, respectively.
[0214] Step 1020, a target docking coordinate system is constructed based on the intersection point, the first direction, and the second direction.
[0215] In some embodiments, the processor 130 may construct the target docking coordinate system based on the intersection point, the first direction, and the second direction. For example, the processor 130 may obtain a center point G0 of each intersection point and take the center point as a coordinate origin of the target docking coordinate system. For example, the center point G0 of the intersection point G1 and the intersection point G2 is taken as the coordinate origin. Then, a first axis direction is determined based on a direction corresponding to the first line feature (e.g., the first direction) . For example, the first axis direction is an x-axis direction. In some embodiments, the processor 130 may also obtain an average orientation of the first line features Lk1 and Lk2. A direction toward the second line feature is the first axis. Thus, the target docking coordinate system {D} is constructed based on the coordinate origin and the first axis. For example, a midpoint of the two intersection points is taken as the origin, the first direction is taken as the x-axis direction, and a side in the second direction is determined as a y-axis direction by a right-hand rule, thereby obtaining the target docking coordinate system {D} . The target docking coordinate system refers to a coordinate system used for locating the target position.
[0216] Step 1030, the target position is determined based on the target docking coordinate system and the docking related information.
[0217] In some embodiments, the processor 130 may determine the target position based on the target docking coordinate system and the docking related information. For example, the processor 130 may determine the target position by using each intersection point, the target docking coordinate system, and the docking related information of the docking device (e.g., a preset docking point, a current pose of the target device, a docking parameter) .
[0218] In some embodiments, the processor 130 may convert the preset docking point P to the target docking coordinate system {D} by using the target docking coordinate system, so as to obtain a converted docking point (Qx, Qy, Qa) . The Qx, Qy, and Qa represent an x-axis, a y-axis, and a posture angle, respectively. Then, the target position is determined based on the docking parameter, the converted docking point, the current pose, etc. The preset docking point refers to a preset position where the target device docks with the docking device. The converted docking point refers to a preset position, in the target docking coordinate system, where the target device docks with the docking device.
[0219] In some embodiments, the target position may be represented by the following formula (5) : Tmd=Tmb*TbL*TLd*Td (5) In formula (5) , Tmd represents the target position (e.g., a position where the target device is expected to stop upon successful docking) . Td represents a pose in the world coordinate system. Td may be constructed from Qx, Qy, and Qa.
[0220] FIG. 17 is a schematic diagram illustrating an exemplary docking between a target device and a docking device according to some embodiments of the present disclosure. Merely by way of example, referring to FIG. 17, Tmb represents a current pose of the target device 110, i.e., a pose of the identified target device 110 in the world coordinate system. TbL represents the docking parameter, i.e., an extrinsic parameter of the radar device 120 relative to a device center of the target device 110. TLd represents a pose of the target docking coordinate system {D} relative to a radar coordinate system of the radar device 120. Td represents the preset docking point, i.e., the converted docking point, representing a preset expected pose of the target device 110 in the target docking coordinate system {D} when the target device 110 stops upon successful docking with the docking device 1701.
[0221] In some embodiments, the processor 130 may dock the target device with the docking device based on the target position. During the process of the target device docking with the docking device, the target device switches to an odometry mode for docking. Using the target position determined above can significantly reduce calibration requirements for the docking position.
[0222] In some embodiments, the processor 130 may continuously obtain the first line feature while controlling the target device to move to the target position. The processor 130 may obtain distances between the target device and at least two first line features obtained at different positions, respectively, to obtain a moving distance. The processor 130 may control the target device to move toward the target position based on the moving distance, causing the target device to move along a perpendicular bisector of the second line feature.
[0223] In some embodiments, during the process of the target device docking with the docking device, after the docking process starts, the processor 130 may continue to collect the point cloud data and continuously obtain the at least two first line features (e.g., Lk1, Lk2) of the target device at different positions. More descriptions regarding continuously obtaining the at least two first line features may refer to the specific implementation process of obtaining the first line feature in the foregoing embodiments, and details are not described herein again.
[0224] In some embodiments, the processor 130 may convert each point cloud data to a device coordinate system of the target device, and obtain distances between the target device and each first line feature, respectively, to obtain the moving distance (e.g., denoted as d1 and d2) . The processor 130 may feed the moving distance back to a motion control module of the target device. The processor 130 may control the target device to move toward the target position based on the moving distance, causing the target device to move along the perpendicular bisector of the second line feature. The perpendicular bisector of the second line feature is close to a perpendicular bisector of the docking device.
[0225] The device coordinate system refers to a real coordinate system where the target device is located. That the perpendicular bisector of the second line feature is close to the perpendicular bisector of the docking device refers to a distance between the perpendicular bisector of the second line feature and the perpendicular bisector of the docking device that is less than a perpendicular bisector distance threshold. The perpendicular bisector distance threshold may be preset. For example, the perpendicular bisector distance threshold may be preset to 0.5 cm, 1 cm, and 1.5 cm.
[0226] In this embodiment, a relatively accurate target docking point can be determined. Docking based on the target docking point can significantly reduce calibration requirements for the docking position. During the docking process, at least two first line features are continuously obtained, and distances between the target device and each first line feature are obtained, respectively, to obtain the moving distance. The target device is controlled to move toward the target docking point based on the moving distance. The target device tries to stay close to and move along the perpendicular bisector of the docking device for docking. Continuous recognition during movement can further eliminate cumulative errors of the odometer and improve the accuracy of final docking.
[0227] FIG. 11 is a flowchart illustrating an exemplary process for determining whether to control a target device to stop moving according to some embodiments of the present disclosure. In some embodiments, process 1100 may be executed by a processing device (e.g., the processor 130) . As shown in FIG. 11, the process 1100 includes the following steps.
[0228] Step 1110, whether a docking abnormal condition occurs is detected based on the target line feature.
[0229] The docking abnormal condition refers to a situation where an abnormality occurs during docking between the target device and the docking device, preventing them from completing the docking.
[0230] The docking abnormal condition includes the presence of an obstacle in an area corresponding to the docking device. For example, the obstacle may be an object. As another example, the obstacle may be another target device. The docking device is a material rack. Another robot might be present in the material rack itself due to a malfunction and not exit in time. Therefore, it is possible to continuously detect whether there is an obstacle in the area corresponding to the material rack within a certain distance before entering the docking device.
[0231] In some embodiments, the target line feature may be the target line feature obtained in step 620 in FIG. 6 and / or a target line feature continuously obtained based on the point cloud data continuously collected during the process of the target device docking with the docking device. The target line feature includes at least two first line features and at least one second line feature. Embodiments of the present disclosure do not limit the target line feature in this step.
[0232] In some embodiments, the target line feature may be configured to detect whether a docking abnormal condition occurs (e.g., whether an obstacle exists in the area corresponding to the docking device) .
[0233] In some embodiments, the processor 130 may detect whether the docking abnormal condition occurs based on any one of the following embodiments, or may detect whether the docking abnormal condition occurs based on a combination of the following embodiments.
[0234] In some embodiments, there are two known cases: the target line feature includes the first line feature and the second line feature, and the target line feature does not include at least one of the first line feature and the second line feature. In response to determining that the target line feature comprises the first line feature and the second line feature, a first docking area is determined based on the first line feature, the second line feature, and the docking related information. Whether the point cloud data within the first docking area satisfies an abnormal condition is detected, and in response to determining that the point cloud data satisfies the abnormal condition, determine that the docking abnormal condition occurs.
[0235] The first docking area refers to an area where the target device and the docking device may dock with each other.
[0236] In some embodiments, if the first line feature Lk1, Lk2 and the second line feature Lw in the target line feature are successfully fitted. That is, in response to determining that the target line feature includes the first line feature and the second line feature. The processor 130 may determine a first docking area R1 based on the first line feature (Lk1, Lk2) , the second line feature Lw, and the docking related information (e.g., the scale information of the docking device) . A direction of a first side of the first docking area R1 is the first direction or an average orientation corresponding to the first line feature Lk1 / Lk2. A length of the first side is the length L of the docking device. A direction of a second side of the first docking area R1 is the second direction corresponding to the second line feature Lw. A width of the second side is the width W of the docking device.
[0237] Merely by way of example, the processor 130 may construct a rectangular area using the three fitted line features Lk1, Lk2, and Lw and the length L and the width W of the docking device, thereby obtaining the first docking area R1. A direction of a length side of the first docking area R1 is consistent with a direction of the first line feature Lk1, and a length of the length side is L. A direction of a width side is consistent with a direction of the second line feature Lw, and a width of the width side is W.
[0238] Then, each point cloud data is traversed to determine whether each point cloud data is within the first docking area R1, so as to obtain each point cloud data in the first docking area R1. Whether the point cloud data in the first docking area R1 satisfies the abnormal condition is detected. In response to determining that the abnormal condition is satisfied, determine that the docking abnormal condition occurs. If an obstacle exists in the first docking area R1, determine that the target device does not proceed to dock for the time being.
[0239] The abnormal condition refers to a rule for determining whether an abnormality exists in the point cloud data.
[0240] In some embodiments, the processor 130 may perform clustering processing on each point cloud data in the first docking area R1 to obtain a plurality of clusters. If a length corresponding to the point cloud data of a cluster is greater than a length threshold, and a count of clusters with lengths greater than the length threshold is greater than a count threshold, determine that the point cloud data in the first docking area R1 satisfies the abnormal condition, and an obstacle exists in the area corresponding to the docking device.
[0241] In some embodiments, the processor 130 may determine, in response to obtaining the first line feature and failing to obtain the second line feature, that the docking abnormal condition occurs.
[0242] In some embodiments, if the first line feature Lk1, Lk2 in the target line feature is successfully fitted and the second line feature Lw is not successfully fitted, that is, the first line feature can be obtained and the second line feature cannot be obtained, then in response to obtaining the first line feature and failing to obtain the second line feature, determine that the docking abnormal condition occurs. For this case, the obstacle may be directly determined that exist in the area corresponding to the docking device, and the target device does not proceed to dock.
[0243] In some embodiments, if both the first line feature Lk1, Lk2 and the second line feature Lw in the target line feature are not successfully fitted, that is, neither the first line feature nor the second line feature can be obtained, the detection of the point cloud data may further determine whether it satisfies the no-abnormality condition. For example, if a ranging distance between the point clouds is less than a preset ranging threshold and a laser check of the radar device shows no abnormality, it may be determined that the no-abnormality condition is satisfied.
[0244] In some embodiments, the processor 130 may determine, in response to simultaneously failing to obtain the first line feature and the second line feature and detecting no abnormality in the point cloud data, a second docking area based on the docking related information. Whether the point cloud data in the second docking area satisfies the abnormal condition is detected. In response to determining that the abnormal condition is satisfied, determine that the docking abnormal condition occurs. That is, when the target line feature satisfies any one or more of the above cases, the processor 130 determines that the docking abnormal condition occurs.
[0245] In some embodiments, in response to simultaneously failing to obtain the first line feature and the second line feature and detecting no abnormality in the point cloud data, the processor 130 may determine a second docking area R2 based on the scale information (e.g., the length L and width W) of the docking device, a preset docking point P (Px, Py) , and a pose (e.g., Mx, My) of a preset docking coordinate system. The second docking area refers to a preset area where the target device and the docking device dock with each other. A center coordinate of the second docking area R2 may be determined based on the scale information (e.g., the length L and width W) , the preset docking point P (Px, Py) , and the pose (Mx, My, Ma) of the preset docking coordinate system. For example, a rectangular area may be constructed. A first difference between half of the length L and an x-axis coordinate of the preset docking coordinate system may be obtained. Then, a difference between the x-axis coordinate of the preset docking point P and the first difference is obtained to obtain an x-axis coordinate of a center coordinate point. A second difference between half of the width W and a y-axis coordinate of the preset docking coordinate system is obtained. Then, a difference between the y-axis coordinate of the preset docking point P and the second difference is obtained to obtain a y-axis coordinate of the center coordinate point. The length of the second docking area R2 is L, and the width is W. A direction of the constructed rectangular area may refer to a direction of the preset docking coordinate system, that is, a direction of a posture angle Ma.
[0246] The center coordinate of the second docking area R2 may be obtained by the following formula (6) : In formula (6) , (Pcx, Pcy) represent an x-axis coordinate and a y-axis coordinate of the center coordinate, respectively. (Px, Py) represent an x-axis coordinate and a y-axis coordinate of the preset docking point P, respectively. (Mx, My) represent an x-axis coordinate and a y-axis coordinate of the preset docking coordinate system, respectively. L represents the length of the docking device. W represents the width of the docking device.
[0247] In some embodiments, the processor 130 may obtain the point cloud data within the second docking area R2, detect whether the point cloud data in the second docking area satisfies the abnormal condition, and in response to determining that the abnormal condition is satisfied, determine that the docking abnormal condition occurs. More descriptions regarding the detection process for the docking abnormal condition of the second docking area may refer to specific implementation manners of the detection process for the docking abnormal condition of the first docking area R1, which are not repeated herein.
[0248] In some embodiments, the abnormal condition further includes that an obstacle cluster area is greater than a preset area threshold.
[0249] The obstacle cluster area refers to an area obtained by clustering point clouds corresponding to the obstacle and projecting the clustered point cloud clusters onto a docking area (e.g., the first docking area or the second docking area) . In some embodiments, obstacle clusters may be a plurality of clusters corresponding to the point cloud data that satisfy the abnormal condition. For example, the obstacle cluster may be a cluster for which a length corresponding to the point cloud data is greater than the length threshold.
[0250] In some embodiments, the obstacle cluster area may be determined based on a total area of all obstacle clusters. For example, the processor 130 may determine a total area of all clusters for which the length corresponding to the point cloud data is greater than the length threshold as the obstacle cluster area.
[0251] In some embodiments, when the obstacle cluster area is greater than the preset area threshold, the processor 130 may determine that the obstacle area is large and the point cloud data satisfies the abnormal condition.
[0252] In some embodiments, the processor 130 may further determine an effective area of the first docking area and further determine a ratio of the obstacle cluster area to the effective area. When the ratio exceeds a preset ratio threshold, the processor 130 may determine that the obstacle area is large and the point cloud data satisfies the abnormal condition. When the ratio does not exceed the preset ratio threshold, the processor 130 may determine that the point cloud data does not satisfy the abnormal condition, that is, the obstacle is small and does not affect docking. The effective area refers to an area where the docking device and the target device dock with each other. Merely by way of example, the effective area may be a product of the length L of the docking device and the width W of the docking device.
[0253] In some embodiments of the present disclosure, determining whether the point cloud data is abnormal based on the obstacle cluster area enables precise assessment of the impact level of obstacles. This reduces ineffective interventions while ensuring docking safety, thereby improving the stability and efficiency of the docking process.
[0254] Step 1120, in response to detecting that the docking abnormal condition occurs, the target device is controlled to stop moving.
[0255] In some embodiments, in response to detecting that the docking abnormal condition occurs, the processor 130 controls the target device to stop moving and not to dock with the docking device (e.g., pausing the docking with the docking device, and the docking may continue after the abnormal condition is eliminated) . When the docking abnormal condition is detected and the obstacle exists in the area corresponding to the docking device, a determination not to dock with the docking device may be made, which can improve the accuracy of docking.
[0256] In some embodiments, when no docking abnormal condition is detected and no obstacle exists in the area corresponding to the docking device, the processor 130 determines that the target device can dock with the docking device. Determining the target position based on the target line feature to enable the target device to dock with the docking device using the target position can improve the accuracy of docking.
[0257] FIG. 12 is a flowchart illustrating an exemplary process for determining a target position according to some other embodiments of the present disclosure. In some embodiments, process 1200 may be performed by the processing device (e.g., the processor 130) . As shown in FIG. 12, the process 1200 includes the following steps.
[0258] Step 1210, a plurality of point cloud clusters are determined based on the point cloud data;
[0259] In some embodiments, the target device includes a robot. During the execution of a work task by the robot, for example, the robot may utilize the installed LiDAR sensor to scan environment contours such as walls, work machines, shelves, building supports, etc., in a work environment, e.g., a workshop or a warehouse, and construct an environment map for navigation. The robot estimates the change in motion of the robot using the odometry and simultaneously scans, using the LiDAR sensor installed on the vehicle body, the environment contours for localization and navigation by matching with a grid map. In the robot navigation, the robot internally stores an environmental map used to mark the operation path of the robot and waypoints the robot needs to pass through and reach.
[0260] For ease of description, the following embodiments of the present disclosure are described using the target device as a robot and the docking device as a shelf as an example, but this does not constitute a limitation.
[0261] In some embodiments, the point cloud data includes point clouds collected by the target device identifying the docking device at a current waypoint.
[0262] The current waypoint is a waypoint in the operation path of the robot within the recognition area.
[0263] For shelf recognition, the robot first moves to the recognition area via an odometry navigation, a LiDAR sensor navigation, or a QR code navigation, etc., and then switches to an odometry navigation mode. Additionally, an initial position of an initial shelf may be obtained, i.e., the sent position of the shelf that needs to be docked with. The initial position of the initial shelf may be preset.
[0264] FIG. 13 is a schematic diagram illustrating an exemplary scenario of a shelf docking according to some embodiments of the present disclosure. Referring to FIG. 13, the processor 130 may set the recognition area based on information such as the measurement accuracy and angular resolution of the radar sensor. The recognition area represents an area where the shelf recognition needs to be performed. The recognition area may be determined based on a first recognition distance r1 and a second recognition distance r2. The first recognition distance refers to a distance between the target device and the shelf when the target device starts recognizing the shelf. The second recognition distance refers to the distance between the target device and the shelf when the target device stops recognizing the shelf. The first recognition distance is greater than the second recognition distance. The distance between the target device and the shelf may be a distance between the radar device and a shelf leg on the nearest side of the initial shelf. The recognition area may be an area between the position where the target device starts recognizing the shelf and the position where the target device stops recognizing the shelf. Merely by way of example, referring to FIG. 13, the recognition area may be the area obtained by subtracting the second recognition distance r2 from the first recognition distance r1.
[0265] The robot may move within the recognition area. During movement within the recognition area, path planning may be performed based on the initial position of the initial shelf to obtain a current operation path. The operation path may include a plurality of waypoints for operation within the recognition area. The shelf recognition may be performed once at each waypoint. When the robot enters the recognition area, the robot performs the shelf recognition and may obtain recognition results for the waypoints.
[0266] At the current waypoint within the recognition area, the robot performs the shelf recognition and may obtain a current recognition result for the current waypoint. The current waypoint is any waypoint in the operation path of the robot within the recognition area. Thus, the robot may continuously perform the shelf recognition during movement within the scope of the recognition area. In some embodiments, during the entire process of the shelf recognition within the recognition area, the robot moves at a preset speed.
[0267] In some embodiments, each waypoint in the operation path represents a waypoint where the shelf recognition needs to be performed. The waypoints may be determined based on a recognition cycle of the shelf or according to an operation cycle of the operation path. Merely by way of example, the recognition cycle may be set based on the scale range of the recognition area and the distribution of the shelves. For example, in a work environment where shelves are densely distributed, the recognition cycle is smaller. In a work environment where shelves are sparsely distributed, the recognition cycle is larger. Embodiments of the present disclosure may set the recognition cycle according to specific application scenarios.
[0268] In some embodiments, detecting shelves in the work environment may obtain actual positions of the shelves and the size type (the corresponding preset shelf model in the model library) to which the shelves belong. The current recognition result may include at least one of the following: the shelf leg (e.g., the target shelf leg combination) and the target shelf model.
[0269] In some embodiments, during movement within the recognition area, the robot may collect the point cloud data for shelves in the work environment at each waypoint. Each waypoint may be taken as the current waypoint to obtain the point cloud data collected for the shelf at the current waypoint.
[0270] The point cloud cluster refers to a collection of points in the point cloud data that have similar characteristics (e.g., close spatial positions, similar reflection intensities, and consistent geometric attributes) . Different point cloud clusters form relatively dense groups in space, with clear gaps or feature differences between the different point cloud clusters.
[0271] In some embodiments, the processor 130 may perform clustering on the point cloud data to determine the plurality of point cloud clusters.
[0272] In some embodiments, for the radar sensor, e.g., for a mechanically rotating radar, motion distortion may occur in the point cloud data during movement of the robot, thereby affecting the ranging accuracy. Therefore, a motion compensation of the point cloud data may be performed first. In some embodiments, before determining the plurality of point cloud clusters based on the point cloud data, the method further includes: performing a 2D LiDAR motion compensation on the point cloud data.
[0273] The motion compensation may be performed by removing distortion from the point cloud. For example, the motion compensation is performed by referring to data from other odometry, or by referring to the amount of motion change in the point cloud data at different times. The embodiments of the present disclosure do not limit the manner of motion compensation.
[0274] In some embodiments, the processor may perform the motion compensation on the point cloud data using a motion speed of the robot to obtain compensated point cloud data. The motion speed includes a linear velocity and an angular velocity. More details regarding the motion compensation may be found in FIG. 14 and related descriptions thereof.
[0275] In some embodiments, after motion compensation and before determining the plurality of point cloud clusters, the processor 130 may further remove the point cloud data outside a preset filtering range.
[0276] The preset filtering range refers to a preset range for filtering irrelevant point cloud data. In some embodiments, the preset filtering range includes a range with an initial position of the target shelf as an origin and a preset multiple of a longest hypotenuse in the preset shelf model as a radius.
[0277] The target shelf refers to a shelf that the target device (e.g., the robot) needs to dock with. The initial position of the target shelf refers to a preset position of the target shelf. For example, the preset filtering range includes a range with the initial position (e.g., a center position) of the initial shelf as an origin and the preset multiple of the longest hypotenuse in the preset shelf model as the radius. That is, a circular filtering area is generated, thereby filtering out the point cloud data outside the circular filtering area.
[0278] In some embodiments, the processor 130 may perform clustering of the point cloud cluster on the filtered point cloud data to determine the plurality of point cloud clusters. A distance between adjacent point clouds in the point cloud cluster is less than a third threshold. Thereby, the processor may traverse the point cloud data in an index order, determine whether the distance between adjacent point clouds is less than the third threshold dp, and if the distance is less than the third threshold dp, determine that the adjacent point clouds belong to a same point cloud cluster. Thereby, the plurality of point cloud clusters may be obtained. By determining an angle between the adjacent point clouds, trailing point cloud data may be removed.
[0279] Step 1220, one or more candidate shelf legs are determined based on the plurality of point cloud clusters.
[0280] A candidate shelf leg refers to a point cloud cluster preliminarily filtered from the point cloud data that may belong to a shelf support leg.
[0281] In some embodiments, the processor 130 may filter, from the plurality of point cloud clusters, target point cloud clusters that satisfy a preset clustering condition. In some embodiments, the preset clustering condition includes at least one of the following: a length of the point cloud cluster is greater than a first threshold, a count of the point clouds in the point cloud cluster is greater than a second threshold, and a distance between adjacent point clouds in the point cloud cluster is less than a third threshold.
[0282] In some embodiments, the processor 130 may determine one or more candidate shelf legs based on the target point cloud clusters that satisfy the preset clustering condition. For example, the processor 130 may obtain the center coordinate of each target point cloud cluster as the center point (e.g., the center position) of the candidate shelf leg. The processor 130 may save, for each target point cloud cluster, coordinate of the center points of the target point cloud cluster correspondingly. For example, the processor 130 may calculate center coordinates pc (xc, yc) of a target point cloud cluster according to the following formula (7) : In formula (7) , xi represents an x-coordinate of an i-th point cloud data in the target point cloud cluster, yi represents a y-coordinate of the i-th point cloud data in the point cloud cluster, the point cloud cluster includes n point cloud data, and n is an integer.
[0283] Step 1230, a target shelf leg combination and a target shelf model are determined based on the one or more candidate shelf legs and a preset shelf model.
[0284] The preset shelf model refers to a pre-built digital shelf reference template.
[0285] In some embodiments, the processor 130 may further obtain a model library. For example, the processor 130 may pre-establish a model library of a working environment based on typical structures, size parameters, and characteristic patterns of shelves. The model library includes preset shelf models of a plurality of size types. The model library may store a plurality of preset shelf models and related information of the preset shelf models, e.g., a scale and a position of the preset shelf model. The scale of the preset shelf model includes, but is not limited to, the length L and the width W of the shelf, e.g., a length lw and a width lh of the shelf leg (or a radius r for a circular shelf leg) . When the robot is started or the model library is updated, all shelf models in the model library are sent to an identification module of the robot to initialize or update the model library.
[0286] In some embodiments, the preset filtering range for filtering the point cloud clusters is determined based on a structural feature of the initial shelf model.
[0287] The structural feature of the initial shelf model refers to attributes of physical composition, component layout, and interrelationships of the initial shelf model. For example, the structural feature of the initial shelf model includes a shape (e.g., a rectangular shape, a circular shape, etc. ) of the initial shelf model, a count of the shelf legs, an arrangement (e.g., rectangular distribution, parallel distribution, and symmetric distribution) of the shelf legs, and relative positional relationships (e.g., a spacing between adjacent shelf legs) of the shelf legs.
[0288] Merely by way of example, the processor 130 may generate an initial filtering range based on the structural feature of the initial shelf model. Taking a rectangular shelf with a length L and a width W as an example, the processor 130 may set the initial filtering range to a preset multiple of the length L and the width W of the shelf. For example, the initial filtering range is a rectangular area of 1.5L×1.5W. The processor 130 may further divide, within the initial filtering range, sub-filtering areas corresponding to the shelf legs based on a distribution pattern (e.g., three shelf legs distributed in a triangle, four shelf legs distributed in a rectangle) of the shelf legs of the initial shelf model. For example, if the shelf leg distribution pattern is four shelf legs distributed in a rectangle, the processor 130 may divide four circular sub-filtering areas (aradius of the circular sub-filtering area may be preset, e.g., twice a diameter of the shelf leg) , corresponding to theoretical positions of the four shelf legs respectively, for filtering point clouds corresponding to the shelf legs. In some embodiments, the processor 130 may further determine a count of the filtered point clouds in real time. If a count of point clouds in a sub-filtering area is 0 or less than a preset count of the point cloud, the processor 130 may automatically increase a radius of the sub-filtering area to prevent point clouds corresponding to the shelf from being filtered out.
[0289] The target shelf leg combination refers to a group of shelf legs filtered from the plurality of candidate shelf legs that conforms to the structural feature (e.g., a count, a spacing, and a dimensional matching) of the preset shelf model.
[0290] The target shelf model refers to a preset shelf model that matches the structural feature of the target shelf.
[0291] In some embodiments, the processor 130 may filter, based on the one or more candidate shelf legs, the plurality of shelf leg combinations that satisfy a preset combination condition, and determine a recognition scale of the target shelf based on the plurality of shelf leg combinations. The processor 130 may match the recognition scale of the target shelf with a preset scale of the preset shelf model to obtain the target shelf leg combination and the target shelf model. More descriptions regarding determining the target shelf leg combination and the target shelf model may be found in FIG. 15 and related descriptions thereof.
[0292] Step 1240, the target position of the target device is determined based on the point cloud data, the target shelf leg combination, and the target shelf model.
[0293] In some embodiments, the target position includes an actual position and an actual orientation of the target shelf.
[0294] The actual position refers to a position where the target shelf is actually located. The actual orientation refers to a true orientation of a position where the target shelf docks with the target device (e.g., the robot) .
[0295] In some embodiments, the processor 130 may perform a preset decomposition on the point cloud cluster corresponding to the target shelf leg combination to obtain a main direction. The processor 130 may obtain an initial orientation of the target shelf by using the main direction corresponding to each of the point cloud clusters. The processor 130 may construct an error equation based on the initial orientation, and optimize the error equation to determine the actual position and the actual orientation of the target shelf.
[0296] The preset decomposition refers to a processing process in which, for a point cloud cluster corresponding to the target shelf leg combination, a preset decomposition algorithm based on geometric features or statistical characteristics of the point cloud (e.g., Principal Component Analysis and directional clustering) is adopted to analyze and separate directional information of the point cloud cluster, thereby extracting a dominant direction (e.g., the main direction) in the point cloud cluster.
[0297] In some embodiments, the processor 130 may determine whether a count of the point cloud data in the point cloud cluster corresponding to the target shelf leg combination is greater than a count of fitting. If the point cloud data is sufficient (e.g., exceeding 10 point clouds) or if the point cloud data is relatively sparse, a fitting calculation may be performed using the target shelf leg combination and the target shelf model to obtain a more accurate target position and target orientation of the target shelf.
[0298] In some embodiments, the processor 130 may perform the preset decomposition on the point cloud cluster corresponding to the target shelf leg combination to obtain the main direction.
[0299] The main direction refers to a primary direction of data distribution in the point cloud cluster. In some embodiments, the target shelf leg combination includes at least two candidate shelf legs. The preset decomposition includes at least one of the following: Principal Component Analysis (PCA) decomposition, Singular Value Decomposition (SVD) decomposition, etc.
[0300] After obtaining the target shelf leg combination and the target shelf model, a precise shelf leg center and shelf center may be solved in combination with the target shelf model. The shelf leg center and the shelf center coordinates (e.g., the center position of the target shelf leg combination / the center position of the target shelf model) solved above are used as initial values for the solution. PCA decomposition on the point cloud clusters corresponding to each candidate shelf leg in the filtered target shelf leg combination is performed to obtain an initial orientation value of each candidate shelf leg in a LiDAR coordinate system. The LiDAR coordinate system refers to a coordinate system in which the laser emitted by the radar device 120 is located.
[0301] Performing PCA decomposition on the point cloud cluster corresponding to the candidate shelf leg may obtain a mean and a covariance of the point cloud data in the point cloud cluster, as shown in the following formula (8) and formula (9) : pjrepresents the i-th point cloud in the point cloud cluster. |Z| represents a count of the point clouds in the point cloud cluster.
[0302] Afterξiperforming SVD decomposition on the covariance, an eigenvector corresponding to the largest eigenvalue is taken as the main direction β of the point cloud cluster.
[0303] In some embodiments, the processor 130 may obtain the initial orientation of the target shelf by using the main direction corresponding to each of the point cloud clusters.
[0304] The processor may obtain the initial orientation of the target shelf based on a scale of the shelf leg corresponding to each point cloud cluster and the main direction corresponding to the point cloud cluster.
[0305] In some embodiments, when a count of point clouds in the point cloud cluster is large (e.g., greater than the count of fitting) , the initial orientation α of the target shelf may be determined based on the following formula (10) : In formula (10) , lh refers to the length of the shelf leg corresponding to the point cloud cluster, lw refers to the width of the shelf leg corresponding to the point cloud cluster, and β refers to the main direction of the cluster point cloud. The initial orientation α may be limited to a set angular range (e.g., within a range of plus or minus 180 degrees) .
[0306] In some embodiments, when it is detected that the count of the point clouds in the point cloud cluster is small (e.g., not greater than the count of fitting) , the initial orientation of the target shelf is estimated using point clouds ci and cj in the point cloud clusters of two shelf legs. Merely by way of example, if a distance dij between ci and cj is close to a leg length L of a sent initial shelf, the initial orientation of the target shelf may be determined based on the following formula (11) :
[0307] If the distance dij is close to a leg width W of the sent initial shelf, the initial orientation of the target shelf may be determined based on the following formula (12) : Thereby, the angle of the initial orientation α is constrained between plus and minus 180 degrees.
[0308] In some embodiments, the processor 130 may construct the error equation based on the initial orientation and optimize the error equation to determine the actual position and the actual orientation of the target shelf.
[0309] Assuming that the center coordinate of a candidate shelf leg to be estimated is cl, and the initial orientation of the target shelf is αl, then using point clouds hitting the candidate shelf leg, the error equation ei is constructed as shown in the following formula (13) : In formula (13) , si represents a weight of each point cloud in a residual term, pjx represents an x-coordinate of the j-th point cloud, clx represents the x-coordinate in the center coordinate, pjx represents a y-coordinate of the j-th point cloud, cly represents the y-coordinate in the center coordinate.
[0310] By performing nonlinear optimization solving on the error equation constructed by all point clouds hitting the candidate shelf leg, the center coordinate of each candidate shelf leg and the target orientation of the corresponding target shelf may be obtained. Then, the candidate shelf legs are filtered, and the center position of the target shelf may be determined using the center coordinate of each candidate shelf leg.
[0311] In some embodiments, a fitting calculation is performed on the shelf center position, as follows:
[0312] First, in the target shelf leg combination, a line direction of a long side of the target shelf leg combination is determined as the orientation of the target shelf. Assume that the shelf center position to be solved is C, and an initial value of C is the estimated value (e.g., the center position of the target shelf) obtained above. If, after filtering, IDs of each candidate shelf legs in a group of the target shelf leg combination are id0, id1, id2, id3, respectively, and assuming the four candidate shelf legs correspond to the lower left, lower right, upper right, and upper left of the shelf (the target shelf leg combination may also have only three candidate shelf legs or two candidate shelf legs; here, four candidate shelf legs are used as an example for description) , then the error equation constructed for the candidate shelf leg id0 is as shown in formula (14) and formula (15) : An error term eid0 corresponding to the candidate shelf leg id0 is as shown in formula (16) and formula (17) : eid0x=|clid0x–uid0x| (16) eid0y=|clid0y-uid0y| (17) cx, cy, and cα represent the x-coordinate, y-coordinate, and orientation of the shelf center point to be determined, respectively. clid0 represents the center coordinates of the previously determined candidate shelf leg.
[0313] Similarly, the error equations for other candidate shelf legs (e.g., id1, id2, and id3) are constructed in a manner similar to that for the candidate shelf leg id0, and are not repeated here.
[0314] The error equations and error terms corresponding to the aforementioned target shelf leg combination (id0, id1, id2, id3) are combined. Perform the nonlinear optimization solving to determine the actual position (e.g., the center point coordinates) and the actual orientation of the target shelf. The actual orientation of the target shelf is compared with the orientation of the sent initial shelf. Angles such as pi / 2 and pi are successively added to the current actual orientation. Comparing the actual orientation after adding the angles and the orientation of the sent initial shelf, the orientation that is closest to the orientation of the sent initial shelf is determined as the final target orientation of the target shelf. This orientation may also serve as the docking direction for the robot when entering the shelf.
[0315] In some embodiments, the processor 130 may also determine the actual position and the actual orientation of the target shelf based on the point cloud data and the target shelf model using a position recognition model.
[0316] The position recognition model is a machine learning model. For example, the position recognition model includes one or more of a neural network model, a deep neural network model, and a convolutional neural network model.
[0317] In some embodiments, the processor 130 may input the point cloud data and the target shelf model into the position recognition model. The position recognition model outputs the actual position and the actual orientation of the target shelf.
[0318] The position recognition model may be obtained through training. Training samples for the position recognition model include historical point cloud data and historical target shelf models. Labels include actual positions and actual orientations of historical target shelves. The training samples and the labels may be collected and annotated through historical docking processes.
[0319] In some embodiments, the processor 130 may also determine the target position based on the current recognition result and a reference recognition result.
[0320] The current recognition result refers to a recognition result for the target shelf during the current docking process. The current recognition result is the actual position and the actual orientation of the target shelf.
[0321] The reference recognition result includes a previous recognition result or a preset recognition result. The previous recognition result refers to a target recognition result of a previous waypoint or a current recognition result of the previous waypoint, etc. The preset recognition result refers to an initialized recognition result, e.g., the initial position of the initial shelf. For example, if the shelf recognition is performed for the first time in the recognition area, the reference recognition result may be the preset recognition result. As another example, if the shelf recognition is not performed for the first time in the recognition area, the reference recognition result may be the preset recognition result or the previous recognition result. The target recognition result refers to a result obtained by recognizing the target shelf. The target recognition result includes the target position for the target device to dock with the docking device and the orientation of the docking device (e.g., the target shelf) .
[0322] In some embodiments, the processor 130 may compare the current recognition result with the reference recognition result to determine the target position of the target shelf.
[0323] In some embodiments, the processor 130 may determine a recognition difference between the current recognition result and the reference recognition result. In response to determining that the recognition difference is greater than a preset difference, update the target position based on the current recognition result.
[0324] In some embodiments, the processor may obtain the recognition difference between a current recognition result P2 and a reference recognition result P1. The recognition difference may be expressed as P2 -P1. A determination is made as to whether the recognition difference is greater than the preset difference Δd. The current recognition result includes the center position of the shelf. The reference recognition result includes the target endpoint of the shelf. In some embodiments, in response to determining that the recognition difference is greater than the preset difference, the target position is updated to the current recognition result. In some embodiments, in response to determining that the recognition difference is not greater than the preset difference, the target position is not updated.
[0325] In some embodiments, the current waypoint is a waypoint in the operation path of the robot within the recognition area. The operation path is obtained through path planning based on the initial position of the target shelf. Merely by way of example, the path planning algorithms include the Dijkstra algorithm, the A*algorithm, the multi-source path (Floyd-Warshall) algorithm, the genetic algorithm, the ant colony algorithm, etc. More descriptions regarding the current waypoint may be found in step 1210 and related descriptions thereof.
[0326] The reference recognition result includes the previous recognition result or the preset recognition result. The target position corresponding to the current waypoint before updating may be the preset recognition result, the target recognition result of a previous waypoint, etc. For example, if the shelf recognition is performed for the first time in the recognition area, the target position may be the preset recognition result. If the shelf recognition is not performed for the first time in the recognition area, the target position may be the target position of the previous waypoint.
[0327] In some embodiments, after updating the target position based on the current recognition result, the processor 130 may also designate the current recognition result as a target endpoint. The path planning is re-performed based on the target endpoint to obtain a new operation path.
[0328] The target endpoint refers to a point where the target device finally stops docking with the docking device (e.g., the shelf) .
[0329] In some embodiments of the present disclosure, taking the current recognition result as the target endpoint and re-performing the path planning based on the target endpoint to obtain the new operation path enables the robot to travel according to the new operation path to reach a subsequent waypoint in subsequent processes (e.g., within the recognition area) . In this manner, before the robot enters the shelf, the shelf recognition is continuously performed within the scope of the recognition area to detect the deviation between the center position of the shelf and the target endpoint, thereby adjusting an own trajectory of the robot.
[0330] In some embodiments, the processor 130 may also determine the preset shelf model for the subsequent waypoint based on the target position. In response to determining that the recognition difference corresponding to the preset number of times for the subsequent waypoint is greater than the preset difference, update the preset shelf model to a plurality of preset shelf models.
[0331] In some embodiments, the processor 130 may determine a mode for shelf recognition based on the current recognition result of each waypoint. The preset shelf model is a plurality of preset shelf models or a target shelf model corresponding to a historical waypoint. The historical waypoint refers to a waypoint prior to the current waypoint, such as the previous waypoint, the waypoints from three times prior. When the preset shelf model includes a plurality of shelf models, the mode for the shelf recognition is a multi-model recognition mode. When the preset shelf model is the target shelf model corresponding to the historical waypoint, the mode for the shelf recognition is a single-model recognition mode.
[0332] In some embodiments, the preset shelf model for a subsequent waypoint is determined based on the target recognition result of the current waypoint. For example, the target shelf model corresponding to the current waypoint is determined as the preset shelf model for filtering in the subsequent waypoint.
[0333] In some embodiments, in response to determining that a recognition difference corresponding to a preset number of times for the subsequent waypoint is greater than the preset difference, updating the preset shelf model to a plurality of preset shelf models.
[0334] For the above embodiment, after the current recognition result is successfully obtained for the first time, that is, after the shelf center point is successfully recognized, during the recognition of the subsequent waypoint, whether a distance between the target position of the target shelf and the acquired point cloud data is greater than a filtering threshold may be determined. The filtering threshold is a hypotenuse of the target shelf model. If the distance is greater than the hypotenuse, the point cloud data is filtered, and the target shelf model is taken as the preset shelf model. A target shelf model successfully recognized for the first time is directly used to determine the long side and the short side of the shelf. That is, the multi-model recognition mode is switched to a shelf length judgment of a single-model, and the single-model recognition mode is entered. This means the preset shelf model includes the target shelf model.
[0335] In some embodiments, if the recognition difference between the current recognition result of the subsequent waypoint and the reference recognition result is greater than a preset difference. For example, if a distance between a center point of the target shelf recognized at the subsequent waypoint and a center point recognized previously is greater than the preset difference (e.g., 1 cm) , the path planning is re-performed based on the latest recognized center point as the target endpoint. Otherwise, the center point of the shelf recognized previously is kept as the target endpoint.
[0336] In some embodiments, during operation of the robot in the recognition area, in response to determining that the recognition differences between the current recognition results (e.g., a recognized shelf center point) of waypoints detection for a continuous preset number of times (e.g., three times) and the reference recognition result (e.g., a shelf center point recognized previously) all are greater than the preset difference (e.g., 30 cm) , or in response to determining that failure in shelf recognition at a waypoint, the target shelf model is determined to be incorrect or the target recognition result (e.g., the shelf center point) recognized for the first time is determined to be incorrect. The target recognition result is updated to a preset recognition result, and a multi-model recognition mode is restored. That is, the preset shelf model includes the plurality of preset shelf models.
[0337] In the above manner, after the robot enters the recognition area, the shelf recognition is performed multiple times during movement. By comparing the shelf center recognized this time with a preset center or a historical recognition result, an accurate recognition result is selected, and the path endpoint is updated. Meanwhile, the current recognition result is used to switch from the multi-model recognition mode to a single-model recognition mode to accelerate recognition. In addition, recognition can be performed during movement. The robot does not stop from entering the recognition area until entering under the shelf, which has higher efficiency compared to stopping at the recognition preparation point for recognition. Furthermore, recognition is performed throughout the entire recognition area, which reduces a distance traveled by pure odometry and reduces the accumulated error of the odometry.
[0338] In some embodiments, after the target position is determined based on the current recognition result and the reference recognition result, the processor 130 may further determine whether the target device is within the recognition area. In response to determining that the target device is within the recognition area, recognize the shelf within the recognition area to obtain the target position. Or, in response to determining that the target device is not in the recognition area, determining the target position as a final target position.
[0339] Merely by way of example, after step 1240, the processor 130 may further determine whether the robot is still in the recognition area. In some embodiments, in response to determining that the robot is still in the recognition area, shelf recognition may continue, and the above steps 1210 to 1240 may continue to be executed. That is, the step of the robot performing shelf recognition in the recognition area to obtain the current recognition result of a current waypoint, and subsequent steps are executed. In some embodiments, in response to determining that the robot is not in the recognition area, that is, the robot has left the recognition area, and the target position may be taken as the final target position for docking.
[0340] In some embodiments, the processor 130 may further control the target device (e.g., the robot) to dock with the docking device (e.g., the shelf) based on the target position.
[0341] After leaving the recognition area, the robot may switch to an odometry mode to enter the bottom of the shelf through navigation based on the target recognition result and control the robot to dock with the shelf.
[0342] In some embodiments, the target position may include the actual position and the actual orientation of the target shelf. The processor 130 may control the robot to enter the bottom of the target shelf through navigation and dock with the target shelf according to the actual position and the actual orientation of the target shelf. Specifically, the processor 130 may select an entry direction of the shelf according to the target orientation. The center position is converted to a world coordinate system through laser external parameters and a current pose of the robot to obtain a detected target endpoint (e.g., the target position) Z. The robot enters the bottom of the target shelf through navigation. When approaching the target endpoint at a preset distance Z (e.g., γ meters) , activate the upward-facing camera in advance to locate a QR code under the target shelf. That is, the upward-looking camera may be configured to scan the QR code under the shelf, allowing the robot to travel directly under the target shelf and lift the target shelf. The QR code is attached to the shelf. A zero-degree direction of the shelf is determined by a direction of a QR code attached to a back of the shelf. In this manner, even if shelf models on site are similar and difficult to distinguish, causing an error in the center position of the shelf in a forward direction of the robot, the upward-looking camera can still be turned on in advance to scan the QR code of the shelf for more accurate docking. The upward-looking camera is a visual sensor used for imaging from a top or upward perspective of an object (e.g., the target device) . The upward-looking camera may acquire view information from a top or upward perspective of the object through a vertical or tilted upward optical path. The upward-looking camera may be disposed on the target device. For example, the upward-looking camera is preset on a top of the target device.
[0343] Since the shelf legs are generally made of metal, when a laser hits a metal shelf leg, interference points may occur, causing a deviation in an estimated shelf center. Therefore, the upward-looking camera is turned on in advance when a distance to the shelf center is γ meters. When the upward-looking camera scans the QR code on a back of the shelf, a position of the robot is adjusted by detecting a relative pose of the upward-looking camera relative to the QR code, so that the relative pose is less than a set threshold. The robot stops adjusting the position and records the relative pose. That is, the robot is considered to have reached directly under the shelf center, lifts the shelf, and completes shelf docking. During movement of the robot lifting the shelf, a pose of the robot estimated by laser navigation is superimposed with a relative change amount of the robot relative to the QR code, thereby ensuring that the shelf can follow an ideal route during movement of the robot and that the shelf can be placed at an ideal target point when put down.
[0344] In this embodiment, the robot performs shelf recognition in the recognition area to obtain the current recognition result of the current waypoint. The current waypoint refers to a waypoint in the operation path of the robot in the recognition area. Using the current recognition result and the reference recognition result to determine the target position enables multiple recognitions at different positions during movement and enables the selection of an optimal recognition result. Compared with recognition at a same point, this manner has higher robustness and improves the accuracy of shelf recognition. Controlling the robot to dock with the shelf based on the target position can improve the accuracy of shelf docking.
[0345] FIG. 14 is a flowchart illustrating an exemplary process for performing motion compensation on point cloud data according to some embodiments of the present disclosure. In some embodiments, process 1400 may be executed by a processing device (e.g., the processor 130) . As shown in FIG. 14, the process 1400 includes the following steps.
[0346] Step 1410, a first pose of a virtual vehicle coordinate system corresponding to the point cloud data at a first time and a second pose of the virtual vehicle coordinate system corresponding to the point cloud data at a second time are obtained.
[0347] The first time is a time used as a reference among acquisition times corresponding to point cloud data. The second time is a time other than the first time . Thus, all point cloud data may be converted for the first time.
[0348] The virtual vehicle coordinate system refers to a coordinate system used to represent motion distortion of the robot. The real vehicle coordinate system refers to a coordinate system used to represent an actual real motion of the robot.
[0349] The virtual vehicle coordinate system may be estimated based on measurement data from motion sensors of the robot itself (e.g., wheel odometry and an IMU) through a kinematic model. For example, the robot acquires its own motion information such as displacement and angular velocity in real time through internal sensors (e.g., wheel odometry calculates a moving distance based on wheel rotation counts, and the IMU calculates velocity changes through acceleration integration) . Then, based on a preset kinematic model (e.g., a differential drive model, an Ackermann model, etc. ) , a pose (position and attitude) at each moment is cumulatively calculated starting from an initial coordinate system (e.g., a coordinate system when the robot is started) , thereby constructing a coordinate system that is updated in real time with the movement of the robot. Due to sensor measurement errors (e.g., wheel slippage and IMU drift) or simplifications of the kinematic model, this coordinate system gradually deviates from an actual motion trajectory of the robot, i.e., “motion distortion” exists. Therefore, it is called the virtual vehicle coordinate system.
[0350] The real vehicle coordinate system may be obtained by eliminating the motion distortion through external environmental information or motion calibration means. For example, the processor associates, uses external sensors (e.g., the LiDAR or a visual camera) to perceive fixed features in the environment (e.g., walls, shelves and landmarks) , the motion trajectory of the robot with environmental features through SLAM (Simultaneous Localization and Mapping) technology or feature matching algorithms (e.g., ICP point cloud matching, visual feature matching) , and correct an accumulated error of the virtual vehicle coordinate system, thereby obtaining the real vehicle coordinate system aligned with a real position in the environment.
[0351] Since the robot is moving during a scanning process of the radar sensor in the recognition area, an emission origin of each point is different. Therefore, a last point in the point cloud data in one frame is taken as an origin, and a timestamp of the last point is acquired. Then, a time interval ti of an i-th point relative to an acquisition time may be obtained. Merely by way of example, the time interval ti may be determined based on the following formula (18) : ti= (θi-θmax) / θinc*tinc (18) In formula (18) , θmax represents a maximum emission angle of a scanning point (e.g., the point cloud) in a laser reference system of the radar sensor. θi represents an emission angle of an i-th scanning point in the laser reference system. θinc represents an emission angle increment between adjacent points in the laser coordinate system. tinc represents the time interval between adjacent scanning points.
[0352] A velocity vector [vx, vy, wz] of a vehicle body at the scanning timestamp stamp is obtained by using laser navigation or odometer navigation. The velocity vector is in a coordinate system of the vehicle body of the robot. Assuming that the velocity of the vehicle body remains constant during one scanning cycle, the vehicle body performs uniform motion. The velocity vector may also represent a linear velocity. The vehicle body velocity vector v has a rotational relationship with the real vehicle coordinate system b. A rotation angle is β=atan2 (vy, vx) . A virtual vehicle coordinate system b' is assumed to have the same direction as the vehicle body velocity vector v. At this time, a pose of the virtual vehicle coordinate system b' differs from a pose of the real vehicle coordinate system (e.g., the real vehicle coordinate system) b by an angle of -β. A circular motion radius of b'is
[0353] In some embodiments, for an i-th scanning point (point cloud) , a timestamp thereof is denoted as ti, and a position coordinate thereof in a laser coordinate system is denoted as Afirst moment t0 corresponding to the first scanning point (reference point cloud) is obtained. A first pose of the virtual vehicle coordinatesystem b′0 is obtained by using the linear velocity. Then, a second pose of the virtual vehicle coordinatesystem b′i at a second moment ti corresponding to the i-th scanning point is obtained by using an angular velocity.
[0354] Step 1420, a relative pose of the second time relative to the first time is determined based on the first pose and the second pose.
[0355] The relative pose refers to a pose change situation of the virtual vehicle coordinate system corresponding to point cloud data of the second moment relative to the first moment.
[0356] In some embodiments, the processor 130 obtains, using the first pose and the second pose an i-th scanning point at the second moment relative to the scanning point at the first moment, which corresponds to a relative pose between the virtual vehicle coordinate systems.
[0357] Step 1430, a second transformation pose is obtained based on the relative pose and a first transformation pose.
[0358] The first transformation pose represents a transformation pose of a real vehicle coordinate system corresponding to the second moment relative to the virtual vehicle coordinate system. The second transformation pose represents a transformation pose of the real vehicle coordinate system at the second moment relative to the real vehicle coordinate system at the first moment.
[0359] That is, the second transformation pose of the real vehicle coordinate system at the second moment relative to the real vehicle coordinate system at the first moment is obtained based on the relative pose of the i-th scanning point and the first transformation pose of the real vehicle coordinate system relative to the virtual vehicle coordinate system. Thereby, motion compensation can be performed on each piece of point cloud data to achieve point cloud distortion removal.
[0360] In some embodiments, a third transformation pose of the virtual vehicle coordinate system relative to the real vehicle coordinate system at the first moment t0, the relative pose of the second moment ti relative to the first moment t0, and the first transformation pose of the real vehicle coordinate system relative to the virtual vehicle coordinate system at the second moment ti are used to obtain a second transformation pose of the real vehicle coordinate system bi relative to the real vehicle coordinate system b0.
[0361] Step 1440, a motion compensation on the point cloud data at the second time is performed based on the second transformation pose to determine point cloud data at the second time after the motion compensation.
[0362] A pose corresponding to the point cloud data of the second moment is The motion-compensated point cloud data of the second moment is obtained by performing motion compensation on the pose of the point cloud data at the second moment using the second transformation pose
[0363] In some embodiments, the point cloud data of the second moment is projected into a laser coordinate system of the first moment by using the laser extrinsic parameters and the second transformation pose to obtain the motion-compensated point cloud data of the second moment. The laser extrinsic parameters may include at least one of: a first laser extrinsic parameter of the real vehicle coordinate system relative to the laser coordinate system, or a second laser extrinsic parameter of the laser coordinate system relative to the real vehicle coordinate system.
[0364] Merely by way of example, the motion compensation is specifically described below with one embodiment.
[0365] A right-handed coordinate system is established with a circle center as an origin and a v direction at moment t0 as an x-axis. Thereby, a first pose of the virtual vehicle coordinate system b′0 at moment t0 may be obtained. Merely by way of example, the first pose may be determined by the following formula (19) :
[0366] Since an angle of rotation of the vehicle body around the circle center at moment ti is α=ω·ti, where ωrepresents the angular velocity, the second pose of the virtual vehicle coordinate system b′i may be determined by the following formula (20) :
[0367] From the above, a relative pose of the virtual vehicle coordinate system b′i relative to thevirtual vehicle coordinate system b′0 may be obtained. Merely by way of example, the relative pose may be determined by the following formula (21) :
[0368] Merely by way of example, a transformation pose of the real vehicle coordinate system b relative to the virtual vehicle coordinate system b′ may be determined by the following formula (22) :
[0369] In summary, the second transformation pose is obtained by using a third transformation pose at moment t0, the relative pose and the first transformation pose at moment ti. That is, the second transformation pose of the real vehicle coordinate system bi relative to the real vehicle coordinate system b0 may be obtained. Merely by way of example, the second transformation pose may be determined by the following formula (23) :
[0370] Then, the point cloud data of the second moment may be projected into the laser coordinate system of the first moment by combining the laser extrinsic parameters (e.g., ) and the second transformation pose to obtain the motion-compensated point cloud data of the second moment, thereby achieving motion distortion removal. Merely by way of example, the motion-compensated point cloud data is expressed as formula (24) :
[0371] Through the above method, the point cloud data of the shelf can be continuously collected during movement in the recognition area. The motion compensation is performed on the collected point cloud data to obtain more accurate point cloud data for shelf recognition, thereby improving the accuracy of shelf recognition.
[0372] In some embodiments, the motion-compensated point cloud data may be configured to perform subsequent steps, e.g., steps corresponding to processes 1200 and 1500.
[0373] FIG. 15 is a flowchart illustrating an exemplary process for determining a target shelf leg combination and a target shelf model according to some embodiments of the present disclosure. In some embodiments, process 1500 may be executed by a processing device (e.g., the processor 130) . As shown in FIG. 15, the process 1500 includes the following steps.
[0374] Step 1510, a plurality of shelf leg combinations that satisfy a preset combination condition are filtered based on the one or more candidate shelf legs.
[0375] In some embodiments, the processor 130 may determine a plurality of groups of shelf leg combinations satisfying the preset combination condition based on a plurality of candidate shelf legs. Each group of the shelf leg combinations includes at least two candidate shelf legs. The at least two candidate shelf legs included in the shelf leg combination belong to the same shelf. For example, one shelf leg combination may include two candidate shelf legs. As another example, one shelf leg combination may include three candidate shelf legs. As still another example, one shelf leg combination may include four candidate shelf legs.
[0376] The preset combination condition refers to a rule for determining whether candidate shelf legs can form a reasonable shelf leg combination.
[0377] In some embodiments, the preset combination condition includes that a triangle formed by three candidate shelf legs satisfies the Pythagorean theorem or that four candidate shelf legs satisfy a preset rectangular condition. In some embodiments, different shelf leg combinations correspond to different preset combination conditions.
[0378] In some embodiments, the preset combination condition includes: a distance between two candidate shelf legs is within a reference range, a triangle formed by three candidate shelf legs satisfies the Pythagorean theorem, and four candidate shelf legs satisfy a preset rectangular condition. The reference range is greater than a first multiple γ of a shortest side Lmin of the preset shelf model and less than a second multiple δ of a longest side Lmax of the preset shelf model. The shortest side Lmin of the preset shelf model represents the shortest side length of the shelf among all the preset shelf models in the model library. The longest side Lmax of the preset shelf model represents the longest side length of the shelf among all the preset shelf models in the model library.
[0379] Specifically, the preset combination condition includes at least one of the following:
[0380] Combination of two candidate shelf legs of preset combination condition (1) : When two points (e.g., a, b) are obtained, a distance between the two candidate shelf legs is within a reference range (γ·Lmin, δ·Lmax) . The reference range is greater than the first multiple γ of the shortest side Lmin of the preset shelf model and less than the second multiple δ of the longest side Lmax of the preset shelf model. γ and δ are scaling coefficients, respectively. For example, the first multiple γ is 0.8, and the second multiple δ is 1.2. The present disclosure does not limit this. If the preset combination condition (1) is satisfied, an edge formed by the two candidate shelf legs may be the point cloud cluster of the candidate shelf, and the two candidate shelf legs may be grouped. Otherwise, the two candidate shelf legs are filtered out.
[0381] Combination of three candidate shelf legs of preset combination condition (2) : When three points (e.g., a, b, c) are obtained, a triangle formed by the three candidate shelf legs satisfies the Pythagorean theorem. The longest side in the triangle formed by the three points, e.g., Lab, may be obtained. Then, it is determined whether the lengths of the three sides satisfy the Pythagorean theorem: i.e., the condition of a right triangle is satisfied. If the Pythagorean theorem is not satisfied, the combination of the three candidate shelf legs is filtered out. If the Pythagorean theorem is satisfied, the three candidate shelf legs may be grouped.
[0382] Combination of four candidate shelf legs of preset combination condition (3) : When four points (e.g., a, b, c, d) are obtained, the four candidate shelf legs satisfy a preset rectangular condition.
[0383] In some embodiments, for the above conditions, in the combination of the four candidate shelf legs, any three shelf legs satisfy the preset combination condition (2) , and any two shelf legs satisfy the preset combination condition (1) . In the combination of the three candidate shelf legs, any two shelf legs satisfy the preset combination condition (1) .
[0384] Merely by way of example, among n candidate shelf legs {p1, p2, p3, …, pn} , combinations of four points satisfying the preset combination condition are first filtered. For example, points {p1, p2} are first taken, and it is determined whether points {p1, p2} satisfy condition (1) . If not, {p1, p3} are selected, and so on. If satisfied, p3 is selected to obtain a combination of three points {p1, p2, p3} , and it is determined whether points {p1, p2, p3} satisfied condition (2) . If not, {p1, p2, p4} are selected, and so on. If satisfied, p4 is further selected to obtain a combination of four points {p1, p2, p3, p4} , and it is determined whether points {p1, p2, p3, p4} satisfied condition (3) . If not, {p1, p2, p3, p5} are selected, and so on. All candidate shelf legs are traversed in this pattern to obtain all qualified combinations of four candidate shelf legs, thereby completing rapid preliminary filtering.
[0385] During traversal of shelf legs in the candidate shelf leg set, if a combination of four candidate shelf legs has already been recorded as a group, it may be skipped directly to speed up the search. If a combination of three candidate shelf legs (e.g., ID) is a subset of the above group of four candidate shelf legs, it may be skipped directly. Otherwise, the three candidate shelf legs are stored and recorded as a group.
[0386] By analogy, combinations of candidate shelf legs satisfying the preset combination conditions (1) to (3) are filtered in the above manner, and several groups of shelf leg combinations may be obtained.
[0387] Step 1520, a recognition scale of the target shelf is determined based on the plurality of shelf leg combinations.
[0388] In some embodiments, for the center points of all candidate shelf legs, combinations of four points satisfying the preset rectangular condition are first filtered. The combinations of four points are then sequentially compared with m (m is a positive integer) preset shelf models to filter the preset shelf model with a high matching degree. However, due to influences such as an angular resolution of LiDAR, a thickness of the shelf legs, and a recognition distance, only three shelf legs may be recognized in some scenarios. Therefore, in embodiments of the present disclosure, if there is no combination of four points satisfying the preset rectangular condition, a combination satisfying the Pythagorean theorem is filtered. The combination is then sequentially compared with the m preset shelf models to filter a preset shelf model with a high matching degree. When an environment is complex, a count of the combinations of candidate shelf legs also increases multiplicatively. If a count of the preset shelf models is large, the traversal and filtering process is time-consuming at this time, affecting the real-time performance of recognition. Therefore, the shelf leg combinations may also be filtered by comprehensively using the above preset combination conditions (1) to (3) . The shelf leg combinations are matched with the preset shelf models to filter out a matched preset shelf model, thereby obtaining the target shelf model. The matched combination of candidate shelf legs is taken as the target shelf leg combination.
[0389] In some embodiments, after several groups of shelf leg combinations are obtained, a recognition scale of the shelf may be obtained based on the several groups of shelf leg combinations. Specifically, the recognition scale of the shelf may be obtained based on at least one side length formed by the candidate shelf legs in each shelf leg combination. The recognition scale of the shelf refers to a scale parameter for recognizing the shelf.
[0390] The recognition scale of the target shelf refers to a scale parameter for recognizing the target shelf.
[0391] The recognition scale of the target shelf includes a recognition length, a recognition width, and / or a recognition position. The recognition position of the shelf is obtained based on each shelf leg combination, e.g., a center position for shelf recognition.
[0392] In some embodiments, the recognition length / recognition width of the shelf may be a side length formed by the shelf leg combination. For example, for the combination of two candidate shelf legs, a side length between the two points, i.e., a distance, may be taken as the recognition length / recognition width. The recognition position of the shelf is at a midpoint of the side length.
[0393] In some embodiments, the recognition length of the shelf may be the longest side corresponding to a perpendicular relationship in the shelf leg combination. The recognition width of the shelf may be the shortest side corresponding to the perpendicular relationship in the shelf leg combination. For example, for the combination of three candidate shelf legs, if a triangle formed by the three points satisfies the Pythagorean theorem, the longest side corresponding to the perpendicular relationship is taken as the recognition length, and the shortest side corresponding to the perpendicular relationship is taken as the recognition width. The recognition position of the shelf is the midpoint of the hypotenuse.
[0394] In some embodiments, the recognition length of the shelf is an average value of a plurality of side lengths formed by the candidate shelf legs in the shelf leg combination. For example, for the combination of four candidate shelf legs, the combination of four points may form a plurality of triangular sub-combinations of three points. Lengths and widths may be obtained for the plurality of triangular sub-combinations. This part may refer to the case of the combination of three candidate shelf legs described above, and details are not repeated here. Thus, a plurality of lengths and widths corresponding to the plurality of sub-combinations may be obtained. Average values of the plurality of lengths and widths are then obtained, respectively, thereby obtaining the recognition length and a recognition width corresponding to the combination of the four candidate shelf legs. The recognition position of the shelf is an average value of the four points.
[0395] Merely by way of example, several groups of combinations of four different points are obtained, i.e., combinations of four candidate shelf legs, e.g., {pl1, pl2, pl3, pl4} . Every three points may be taken as a group, and any group needs to satisfy the condition of the right triangle. Taking {pl1, pl2, pl3} as an example, a hypotenuse Lp1p2 is first found based on the lengths of the formed sides. Then, it is determined whether the other two sides Lp2p3 and Lp1p3 are perpendicular. If perpendicular, the Pythagorean theorem is satisfied. A longer side may be selected as a recognition length l′1 of the shelf, and a shorter side may be selected as a recognition width w′1 of the shelf. A midpoint pc1 of the hypotenuse Lp1p2 is taken as a midpoint of the triangle, serving as the recognition position of the shelf, i.e., a recognized center position of the shelf. By analogy, it is determined whether all four groups of triangles satisfy the condition of a right triangle. If all satisfy the conditionof a right triangle, four groups of scales may be obtained, e.g., lengths l′1, l′2, l′3, l′4 and widths w′1, w′2, w′3, w′4. Then, an average value of the lengths of the shelf is obtained: l′= (l′1+l′2+l′3+l′4) / 4, as the recognition length. Similarly, an average value w′ of the width may be determined as a recognition width. In addition, a center of the four points is obtained to determine the recognition position of the shelf, i.e., the shelf center position: pc= (pc1+ pc2+pc3+pc4) .
[0396] Step 1530, the recognition scale of the target shelf is matched with a preset scale of the preset shelf model to obtain the target shelf leg combination and the target shelf model.
[0397] The preset scale refers to a scale parameter predefined in the preset shelf model for describing the preset shelf model.
[0398] The preset shelf model may include all the preset shelf models received by the robot for the current recognition. The preset shelf model may include the preset scale (the preset length / the preset width) of the shelf corresponding to the preset shelf model, the center position of the shelf corresponding to the preset shelf model, etc. Here, the preset shelf model is denoted as { {L1, W1} , …, {Lm, Wm} } . Li represents the preset length, Wi represents the preset width, i ranges from 1 to m, and m is an integer greater than 1.
[0399] In some embodiments, the processor 130 may match the recognition scale of the target shelf with the preset scale of the preset shelf model to obtain the preset shelf model that satisfies the preset matching condition. The preset shelf model satisfying the preset matching condition includes a matched shelf leg combination and a matched shelf model. The processor 130 may select the matched shelf leg combination and the matched shelf model that satisfy the preset distance condition based on the initial position of the target shelf and the shelf center corresponding to a plurality of matched shelf leg combinations, to obtain the target shelf leg combination and the target shelf model.
[0400] In some embodiments, the preset matching condition includes at least one of the following: a scale difference between the recognition scale and the preset scale is less than a first scale threshold; a difference between the scale difference between the recognition scale and the preset scale and another scale difference is less than a second scale threshold, the another scale difference is a scale difference other than a smallest scale difference; and / or the preset distance condition includes that a distance between the shelf center corresponding to the matched shelf leg combination and the initial position of the target shelf is smallest.
[0401] In some embodiments, the processor may obtain the scale difference between the recognition scale and the preset scale. If the scale difference is less than the first scale threshold, the preset matching condition is satisfied, and the matched shelf leg combination and the matched shelf model are obtained. The scale difference may include at least one of the following: a first difference errL between the recognition length and the preset length, a second difference errw between the recognition width and the preset width, and a sum errsum of the first difference and the second difference. Each scale difference needs to be less than a corresponding first scale threshold (γL, γw, γsum) , i.e., the preset matching condition. An exemplary preset matching condition is shown in formula (25) :
[0402] In formula (25) , l′ refers to the recognition length of the detected shelf, Li refers to the preset length of the sent preset shelf model; w′ refers to the recognition width of the detected shelf, Wi refers to the preset width of the sent preset shelf model.
[0403] The shelf leg combination satisfying the above conditions and the qualified preset shelf model are saved. For example, it may be recorded as { {pl1, pl2, pl3, pl4} , {L1, W1} } , { {pl2, pl3, pl4, pl5} , {L2, W2} } } …, etc. {pl1, pl2, pl3, pl4} represents the shelf leg combination, {L1, W1} represents the preset shelf model matched with the shelf leg combination, i.e., the matched shelf leg combination and the matched shelf model, which may serve as an initial matching combination.
[0404] In some embodiments, the processor may perform further filtering on the matched shelf leg combinations and matched shelf models. For example, if the count of initial matching combinations is large, e.g., greater than a combination threshold, further filtering is performed for more accurate matching. Certainly, if the count of initial matching combinations is small, e.g., not greater than the combination threshold, further filtering may be omitted, and the initial matching combinations may be configured as final matching combinations. During the further filtering process, an initial matching combination corresponding to the smallest scale difference among the filtered matched shelf leg combinations and matched shelf models may be obtained. For example, the matched shelf leg combination and the matched shelf model corresponding to the smallest sum errsum are obtained, and initial matching combinations are traversed to find those where a difference between the smallest scale difference and another scale difference is less than the second scale threshold. The another scale difference may be scale differences other than the smallest scale difference, for example, among the initial matching combinations, other sums errsumi (e.g., the i-th other sum) besides the smallest sum errsum, and the second scale threshold is γerr. Embodiments of the present disclosure do not limit the preset matching condition.
[0405] A difference between the smallest scale difference and another scale difference is less than the second scale threshold, e.g., |min (errsum) -errsumi|<γerr.
[0406] If the filtered matched shelf leg combination and the matched shelf model satisfy the above condition, the filtered matched shelf leg combination and the matched shelf model may be determined as a final matched shelf leg combination and a final matched shelf model, that is, a final matching combination.
[0407] Then, using the initial position of the initial shelf (e.g., a position P of the shelf to be docked with in an sent environment map) , the matched shelf leg combination and the matched shelf model that satisfy the preset distance condition are selected to obtain the target shelf leg combination and the target shelf model. The preset distance condition includes that a distance from the initial position of the initial shelf is the smallest.
[0408] In some embodiments, a distance between a recognition position C of the shelf corresponding to the matched shelf leg combination and the initial position of the initial shelf is obtained. The recognition position C is the center position of the shelf recognized by the robot. Thus, the matched shelf leg combination and the matched shelf model with the smallest distance from the initial position of the initial shelf are selected as the target shelf leg combination and the target shelf model. For example, the matched shelf leg combination with the smallest distance from the initial position of the initial shelf may be obtained as the target shelf leg combination, and then the matched shelf model corresponding to the target shelf leg combination is taken as the target shelf model.
[0409] FIG. 16 is a schematic diagram illustrating an exemplary shelf model matching according to some embodiments of the present disclosure. Referring to FIG. 16, merely by way of example, if there are a plurality of matching combinations or a plurality of qualified matched shelf models, e.g., both preset shelf model 1 and preset shelf model 2 meet the requirements, a distance between the recognition position C of the shelf corresponding to the matched shelf leg combination and the initial position P of the initial shelf is obtained. The matched shelf leg combination / preset shelf model with the smallest distance from the initial position P of the initial shelf may be selected as the target shelf leg combination / target shelf model. Even if both preset shelf model 1 and preset shelf model 2 meet the requirements, since the preset shelf model 2 is closer to a sent map point P (the initial position of the initial shelf) , the final target shelf model is the preset shelf model 2.
[0410] In some embodiments, if no combination of four candidate shelf legs satisfying the preset combination condition is obtained, combinations of three candidate shelf legs are filtered from n candidate shelf legs {p1, p2, p3, …, pn} . During the process of obtaining the shelf leg combination, whether the preset combination condition (1) is satisfied is determined. If satisfied, whether the preset combination condition (2) is satisfied is determined. If satisfied, the longer side other than the hypotenuse is selected as the recognition length of the shelf, the shorter side is selected as the recognition width of the shelf, and the midpoint of the hypotenuse is taken as the shelf center, i.e., the recognition position. When the plurality of matching combinations of preset shelf models and shelf leg combinations are obtained, a matching combination with the smallest sum errsum may be selected, and a traversal is performed to determine the existence of |min (errsum) -errsumi|<γerr. If it exists, the distance between the center position of the matched shelf leg combination and the center position of the initial shelf is obtained, and the shelf leg combination with the closest distance and the preset shelf model are taken as the final target shelf leg combination and target shelf model.
[0411] Through the above methods, an accurate target shelf model and target shelf leg combination may be filtered, thereby obtaining a more accurate shelf position and enabling accurate shelf docking.
[0412] The above solution provides an autonomous recognition method of multiple shelf models. For scenarios where multiple shelves of different sizes exist at the same site, the preset shelf model that best matches the point cloud data detection may be filtered by detecting shelf legs of the shelf and the initial pose of the sent shelf. Even when the shelf is placed askew and some shelf legs are occluded, correct recognition can still be achieved, significantly reducing the probability of misrecognition. Meanwhile, a rapid filtering mechanism for the candidate shelf legs is provided. Multiple rapid judgment conditions are set, which can significantly reduce search time consumption. It may not only support application scenarios where multiple shelves of different sizes are placed on one site, but also distinguish corresponding shelf types and estimate the actual position of the shelf center. Furthermore, since successful recognition is possible when three shelf legs are scanned, recognition can still be performed under the shelf for most LiDARs and shelves. However, the odometry mode has cumulative errors during operation. By setting the shortest recognition distance and an adjusting threshold, the operation distance using the odometry mode is made as short as possible, effectively improving docking accuracy.
[0413] FIG. 18 is a block diagram illustrating an exemplary automatic guiding system for a target device according to some embodiments of the present disclosure. As shown in FIG. 18, the automatic guiding system 1800 for a target device includes an acquisition module 1810, a determination module 1820, and a docking module 1830.
[0414] The acquisition module 1810 is configured to acquire point cloud data via a radar device. In some embodiments, the point cloud data is within a same plane parallel to the ground.
[0415] The determination module 1820 is configured to determine a target position of the target device based on the point cloud data.
[0416] The docking module 1830 is configured to control the target device to move to the target position to dock with a docking device.
[0417] It should be noted that the above description of the automatic guiding system 1800 for the target device and its modules is for descriptive convenience only and should not limit the present disclosure to the exemplified embodiments. In some embodiments, the acquisition module 1810, the determination module 1820, and the docking module 1830 disclosed in FIG. 18 may be different modules in one system, or one module may implement the functions of two or more of the above modules. For example, the modules may share one storage module, or each module may have its own storage module. Such variations fall within the protection scope of the present disclosure.
[0418] FIG. 19 is a flowchart illustrating an exemplary docking process for a target device according to some embodiments of the present disclosure. In some embodiments, process 1900 may be executed by a processing device (e.g., processor 130) . As shown in FIG. 19, the process 1900 includes the following steps.
[0419] Step 1910, docking related information of a docking device and point cloud data are obtained by the target device.
[0420] In some embodiments, the processor 130 may obtain the docking related information of the docking device by the target device. For example, the processor 130 may obtain docking related information of the docking device, such as scale information, a preset docking point, a current pose of the target device, and docking parameters via various sensors or modules of the target device (e.g., the IMU, the wheel odometer, the visual odometer, and the radar device) .
[0421] In some embodiments, the processor 130 may also obtain the point cloud data via the radar device. More descriptions regarding obtaining the docking related information of the docking device and the point cloud data may be found in FIG. 6 and related descriptions thereof.
[0422] Step 1920, a line fitting algorithm is performed on the point cloud data to obtain a plurality of initial line features.
[0423] In some embodiments, the processor 130 may perform the line fitting algorithm on the point cloud data using a preset line fitting algorithm to obtain the plurality of initial line features.
[0424] Step 1930, the plurality of initial line features are processed based on the docking related information of the docking device to obtain target line features.
[0425] In some embodiments, the processor 130 may process the plurality of initial line features based on the docking related information of the docking device to extract the target line feature. For example, the target line feature may be extracted from the plurality of initial line features by using scale information of the docking device. The target line features comprise target line features in at least two different directions. Each direction may include at least one target line feature. More descriptions regarding obtaining the target line feature may be found in FIG. 6 and FIG. 9 and related descriptions thereof.
[0426] Step 1940, a target position is determined based on the target line features, and docking with the docking device is performed based on the target position.
[0427] In some embodiments, the processor 130 may obtain an intersection point of a first line feature and a second line feature. construct a target docking coordinate system based on the intersection point, the first direction, and the second direction, and determined the target position based on the target docking coordinate system and the docking related information.
[0428] In some embodiments, the processor 130 may control the target device to move toward the target position and control the target device to dock with the docking device. More descriptions regarding determining the target position and docking with the docking device based on the target position may be found in FIG. 3 to FIG. 16 and related descriptions thereof.
[0429] FIG. 20 is a flowchart illustrating an exemplary docking process for a target device according to some other embodiments of the present disclosure. In some embodiments, process 2000 may be executed by a processing device (e.g., processor 130) . As shown in FIG. 20, the process 2000 includes the following steps.
[0430] Step 2010, whether a docking abnormal condition occurs is detected based on the target line feature.
[0431] The docking abnormal condition includes: an obstacle exists in an area corresponding to the docking device. For example, the obstacle may be an object. As another example, the obstacle may be another target device. The docking device is a material rack. Another robot may be present inside the material rack due to a malfunction and not exit in time. Therefore, it is possible to continuously detect whether the obstacle exists in the area corresponding to the material rack within a certain distance before entering the docking device.
[0432] In some embodiments, the processor 130 may detect whether the docking abnormal condition occurs based on the target line feature. More descriptions regarding detecting whether the docking abnormal condition occurs may be found in FIG. 11 and related descriptions thereof.
[0433] In some embodiments, in response to detecting that the docking abnormal condition occurs, step 2020 below is executed.
[0434] In some embodiments, in response to detecting that the docking abnormal condition does not occur, step 2030 below is executed.
[0435] Step 2020, the target device does not to dock with the docking device is determined.
[0436] In response to detecting that the docking abnormal condition occurs, the processor 130 determines the target device does not to dock with the docking device. When the docking abnormal condition is detected and an obstacle exists in the area corresponding to the docking device, it may be determined the target device does not to dock with the docking device, which can improve docking accuracy.
[0437] Step 2030, the target position is determined based on the target line feature, and a dock process with the docking device is performed based on the target position.
[0438] When no docking abnormal condition is detected and no obstacle exists in the area corresponding to the docking device, in response to detecting that the docking abnormal condition does not occur, it is determined that the target device docks with the docking device is possible. Then, the target position is determined based on the target line feature to use the target position for the target device to dock with the docking device, which can improve docking accuracy. More descriptions regarding determining the target position and docking with the docking device based on the target position may be found in FIG. 3 to FIG. 16 and related descriptions thereof.
[0439] FIG. 21 is a flowchart illustrating an exemplary docking process for a target device according to still some other embodiments of the present disclosure. In some embodiments, process 2100 may be executed by a processing device (e.g., the processor 130) . As shown in FIG. 21, the process 2100 includes the following steps.
[0440] In step 2110, the docking device in a recognition area is identified, by the target device, to obtain a current recognition result of a current waypoint.
[0441] In some embodiments, the target device includes a robot. The docking device includes a shelf.
[0442] In some embodiments, the robot is capable of moving within the recognition area. During movement within the recognition area, path planning may be performed based on an initial position of an initial shelf to obtain a current operation path. The operation path may include a plurality of waypoints for operation within the recognition area. A shelf recognition may be performed once for each waypoint. When entering the recognition area, the robot recognizes the shelf and obtain recognition result for the each waypoint. More descriptions regarding identifying the docking device to obtain the current recognition result of the current waypoint may be found in FIG. 12 and related descriptions thereof.
[0443] In step 2120, a target recognition result is determined based on the current recognition result and a reference recognition result.
[0444] In some embodiments, the processor 130 may compare the current recognition result with the reference recognition result to determine a more accurate current recognition result as the target recognition result. More descriptions regarding determining the target recognition result may be found in FIG. 12 and related descriptions thereof.
[0445] In step 2130, the target device is controlled to perform docking with the docking device based on the target recognition result.
[0446] In some embodiments, after leaving the recognition area, the robot may switch to an odometry mode to navigate under the shelf based on the target recognition result, thereby controlling the robot to dock with the shelf. More descriptions regarding controlling the target device to dock with the docking device may be found in FIG. 3 to FIG. 20 and related descriptions thereof.
[0447] For the foregoing embodiments, the present disclosure provides a computer device. Please refer to FIG. 22. FIG. 22 is a schematic diagram illustrating an exemplary structure of a computer device according to some embodiments of the present disclosure. The computer device 40 includes a storage 41 and a processor 42. The storage 41 and the processor 42 are coupled. Program data is stored in the storage 41. The processor 42 is configured to execute the program data to implement the steps of any embodiment of the docking method for the device described above.
[0448] In the present embodiment, the processor 42 may also be referred to as a Central Processing Unit (CPU) . The processor 42 may be an integrated circuit chip with signal processing capability. The processor 42 may also be a general-purpose processor, a digital signal processor (DSP) , an application specific integrated circuit (ASIC) , a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic device, or discrete hardware component. The general-purpose processor may be a microprocessor, or the processor 42 may be any conventional processor.
[0449] For the method of the foregoing embodiments, it may be implemented in the form of a computer program. Accordingly, the present disclosure provides a computer-readable storage medium. Please refer to FIG. 23. FIG. 23 is a schematic diagram illustrating an exemplary structure of a computer-readable storage medium according to some embodiments of the present disclosure. Program data 51 executable by a processor is stored in the computer-readable storage medium 50. The program data 51 may be executed by the processor to implement the steps of any embodiment of the docking method for the device described above.
[0450] In the present embodiment, the computer-readable storage medium 50 may be a U disk, a mobile hard disk, a read-only memory (ROM) , a random access memory (RAM) , a magnetic disk, an optical disk, or other medium capable of storing the program data 51. Alternatively, it may be a server storing the program data 51. The server may send the stored program data 51 to other devices for execution, or may execute the stored program data 51 itself.
[0451] The basic concepts have been described above. Obviously, for the person skilled in the art, the above detailed disclosure is merely an example, and does not constitute a limitation of the present disclosure. Although not explicitly described herein, various modifications, improvements, and corrections to this disclosure may occur to a person skilled in the art. Such modifications, improvements, and corrections are suggested in this disclosure, so such modifications, improvements, and corrections still belong to the spirit and scope of the exemplary embodiments of this disclosure.
[0452] At the same time, the present disclosure uses specific words to describe the embodiments of the present disclosure. For example, “one embodiment, ” “an embodiment, ” and / or “some embodiments” mean a certain feature, structure, or characteristic associated with at least one embodiment of this disclosure. Therefore, it should be emphasized and noted that two or more references to "an embodiment" or "one embodiment" or "an alternative embodiment" in various places in this disclosure are not necessarily referring to the same embodiment. In addition, certain features, structures, or characteristics of the one or more embodiments of this disclosure may be combined as appropriate.
[0453] In addition, unless explicitly stated in the claims, the order of processing elements and sequences described in this disclosure, the use of alphanumerics, or the use of other names is not intended to limit the order of the processes and methods of this disclosure. Although the above disclosure discusses through various examples what is currently considered to be a variety of useful embodiments of the disclosure, it is to be understood that such detail is solely for illustration, and that the appended claims are not limited to the disclosed embodiments, but, on the contrary, are intended to cover modifications and equivalent arrangements that are within the spirit and scope of the disclosed embodiments. For example, although the implementation of various components described above maybe embodied in a hardware device, it may also be implemented as a software-only solution, e.g., an installation on an existing server or mobile device.
[0454] Similarly, it should be noted that, in order to simplify the expressions disclosed in this disclosure and thus help the understanding of one or more embodiments, in the foregoing description of the embodiments of this disclosure, various features may sometimes be combined into one embodiment, accompanying drawing, or description. However, this method of disclosure does not imply that the subject matter of the disclosure requires more features than are recited in the claims. Rather, claimed subject matter may lie in less than all features of a single foregoing disclosed embodiment.
[0455] Some embodiments use numbers to describe quantities of ingredients and attributes, it should be understood that such numbers used to describe the embodiments, in some examples, use the modifiers “about” , “approximately” , or “substantially” to retouch. Unless stated otherwise, “about” , “approximately” , or “substantially” means that a variation of ±20%is allowed for the stated number. Accordingly, in some embodiments, the numerical parameters used in the present disclosure and claims are approximate values, and the approximate values may be changed according to characteristics required by individual embodiments. In some embodiments, the numerical parameters should take into account the specified significant digits and use a general digit reservation method. Notwithstanding that the numerical fields and parameters used in some embodiments of this disclosure to confirm the breadth of their ranges are approximations, in specific embodiments, such numerical values are set as precisely as practicable.
[0456] For each patent, patent application, patent application publication, and other material, such as an article, a book, a specification, a publication, a document, etc., cited in this disclosure, the entire contents of which are hereby incorporated into this disclosure by reference. Application history documents that are inconsistent with or conflict with the contents of this disclosure are excluded, as are documents (currently or hereafter appended to this disclosure) limiting the broadest scope of the claims of this disclosure. It should be noted that, if there is any inconsistency or conflict between the descriptions, definitions, and / or use of terms in the accompanying materials of this disclosure and the contents of this disclosure, the descriptions, definitions, and / or use of terms in this disclosure shall prevail.
[0457] Finally, it should be understood that the embodiments described in this disclosure are only used to illustrate the principles of the embodiments of this disclosure. Other variations may also belong to the scope of this disclosure. Accordingly, by way of example and not limitation, alternative configurations of the embodiments of this disclosure may be considered consistent with the instructions of this disclosure. Correspondingly, the embodiments of this disclosure are not limited to the embodiments expressly introduced and described in this disclosure.
Claims
1.An automatic guiding method for a target device, comprising:obtaining point cloud data through a radar device, wherein the point cloud data is within a same plane parallel to the ground;determining a target position of the target device based on the point cloud data; andcontrolling the target device to move to the target position to dock with a docking device.2.The automatic guiding method according to claim 1, wherein the determining the target position of the target device based on the point cloud data includes:performing a line fitting algorithm on the point cloud data to determine a plurality of initial line features;determining a target line feature based on the plurality of initial line features and docking related information; anddetermining the target position based on the target line feature.3.The automatic guiding method according to claim 2, wherein the target line feature comprises a first line feature and / or a second line feature, wherein the first line feature corresponds to a first direction, the second line feature corresponds to a second direction, and an angle between the first direction and the second direction satisfies a preset angular condition.4.The automatic guiding method according to claim 3, wherein the determining the target line feature based on the plurality of initial line features and the docking related information includes:determining, from the plurality of initial line features, at least two first line features that satisfy a first filtering condition;determining the first direction based on the at least two first line features;determining the second direction based on the first direction and the preset angular condition; anddetermining, from the plurality of initial line features, at least one second line feature that satisfy a second filtering condition;wherein the first filtering condition and the second filtering condition are determined based on the docking related information.5.The automatic guiding method according to claim 4, wherein the first filtering condition comprises a parallel condition and a first scale condition, the first scale condition being determined based on a first scale in the docking related information; and / orthe second filtering condition comprises a second direction condition and a second scale condition, the second scale condition being determined based on a second scale in the docking related information.6.The automatic guiding method according to claim 4, wherein the determining the first direction based on the at least two first line features includes:for each first line feature of the at least two first line features,obtaining the point cloud data within a preset point cloud range to obtain at least a portion of the point cloud data;performing a line fitting algorithm on the at least a portion of the point cloud data to obtain a third line feature; anddetermining the first direction based on directions of at least two third line features.7.The automatic guiding method according to claim 2, wherein the performing the line fitting algorithm on the point cloud data to determine the plurality of initial line features includes:fitting the point cloud data using a preset line fitting algorithm to obtain a plurality of candidate line features and a line point cloud set corresponding to each candidate line feature of the plurality of candidate line features;projecting endpoints in the line point cloud set corresponding to each candidate line feature onto the corresponding candidate line feature to obtain projected endpoints;merging the plurality of candidate line features based on the projected endpoints to obtain a merged line feature; anddesignating the merged line feature as an initial line feature of the plurality of initial line features.8.The automatic guiding method according to claim 7, wherein the fitting the point cloud data using the preset line fitting algorithm to obtain the plurality of candidate line features and the line point cloud set corresponding to each candidate line feature includes:obtaining an initial point set based on the point cloud data;fitting the initial point set to obtain an initial candidate line feature;traversing and re-fitting other point cloud data in the point cloud data excluding the initial point set based on a first traversal direction and a second traversal direction to update the initial candidate line feature, wherein the first traversal direction and the second traversal direction are two directions determined based on the initial candidate line feature; andin response to traversal stopping in both the first traversal direction and the second traversal direction, designating a last re-fitted initial candidate line feature as one candidate line feature, wherein the initial point set when traversal in both the first traversal direction and the second traversal direction stops is the line point cloud set corresponding to the candidate line feature.9.The automatic guiding method according to claim 8, wherein the traversing and re-fitting the other point cloud data in the point cloud data excluding the initial point set to update the initial candidate line feature includes:for the first traversal direction, determining a vertical distance between a current point cloud being traversed and the initial candidate line feature;in response to determining that the vertical distance is less than a traversal distance threshold, adding the current point cloud to the initial point set and updating the initial point set;re-fitting the updated initial point set to update the initial candidate line feature, and continuing traversal to a next point cloud; andin response to determining that the vertical distance is greater than the traversal distance threshold, stopping traversal in the current traversal direction and initiating traversal in the second traversal direction.10.The automatic guiding method according to claim 7, wherein the merging the plurality of candidate line features based on the projected endpoints to obtain the merged line feature includes:in response to determining that the projected endpoints corresponding to two adjacent candidate line features satisfy a preset merging condition, merging the line point cloud sets corresponding to the two adjacent candidate line features to obtain a merged point cloud set; andfitting point cloud data of the merged point cloud set using the preset line fitting algorithm to obtain the merged line feature;wherein the preset merging condition comprises: a distance between the projected endpoints corresponding to the two adjacent candidate line features being less than a first distance threshold, and / or distances from the projected endpoints corresponding to the two adjacent candidate line features to the adjacent candidate line features both being less than a second distance threshold.11.The automatic guiding method according to claim 3, wherein the determining the target position based on the target line feature includes:obtaining an intersection point of the first line feature and the second line feature;constructing a target docking coordinate system based on the intersection point, the first direction, and the second direction; anddetermining the target position based on the target docking coordinate system and the docking related information.12.[Corrected under Rule 26, 30.10.2025]The automatic guiding method according to claim 4, further comprising:continuously obtaining the first line feature while controlling the target device to move to the target position;obtaining distances between the target device and at least two first line features acquired at different positions, respectively, to obtain a moving distance; andcontrolling the target device to move toward the target position based on the moving distance, such that the target device moves along a perpendicular bisector of the second line feature.13.The automatic guiding method according to claim 3, further comprising:detecting whether a docking abnormal condition occurs based on the target line feature;in response to detecting that the docking abnormal condition occurs, controlling the target device to stop moving.14.The automatic guiding method of claim 13, wherein the docking related information comprises at least one of: scale information, a preset docking point, or a preset docking coordinate system; and wherein the detecting whether the docking abnormal condition occurs based on the target line feature comprises:in response to determining that the target line feature comprises the first line feature and the second line feature, determining a first docking area based on the first line feature, the second line feature, and the docking related information, detecting whether point cloud data within the first docking area satisfies an abnormal condition, and in response to determining that the point cloud data satisfies the abnormal condition, determining that the docking abnormal condition occurs; and / orin response to determining that the target line feature includes the first line feature and does not include the second line feature, determining that the docking abnormal condition occurs; and / orin response to determining that the target line feature does not include both the first line feature and the second line feature, and detecting that the point cloud data has no abnormal condition, determining a second docking area based on the docking related information, detecting whether point cloud data within the second docking area satisfies the abnormal condition, and in response to determining that the point cloud data satisfies the abnormal condition, determining that the docking abnormal condition occurs.15.The automatic guiding method of claim 1, wherein the point cloud data comprises a point cloud collected by the target device by identifying the docking device at a current waypoint, the docking device comprises a shelf; and wherein the determining the target position of the target device based on the point cloud data includes:determining a plurality of point cloud clusters based on the point cloud data;determining one or more candidate shelf legs based on the plurality of point cloud clusters;determining a target shelf leg combination and a target shelf model based on the one or more candidate shelf legs and a preset shelf model; anddetermining the target position of the target device based on the point cloud data, the target shelf leg combination, and the target shelf model, wherein the target position comprises an actual position and an actual orientation of a target shelf.16.The automatic guiding method of claim 15, wherein the determining the one or more candidate shelf legs based on the plurality of point cloud clusters includes:filtering, from the plurality of point cloud clusters, target point cloud clusters that satisfy a preset clustering condition, wherein the preset clustering condition comprises at least one of: a length of a point cloud cluster is greater than a first threshold, a quantity of point clouds in the point cloud cluster is greater than a second threshold, or a distance between adjacent point clouds in the point cloud cluster is less than a third threshold;determining the one or more candidate shelf legs based on the target point cloud clusters that satisfy the preset clustering condition.17.The automatic guiding method of claim 15, wherein the determining the target shelf leg combination and the target shelf model based on the one or more candidate shelf legs and the preset shelf model includes:filtering, based on the one or more candidate shelf legs, a plurality of shelf leg combinations that satisfy a preset combination condition, wherein a shelf leg combination comprises at least three candidate shelf legs, and the preset combination condition comprises that a triangle formed by three candidate shelf legs of the at least three candidate shelf legs satisfies Pythagorean theorem or four candidate shelf legs of the at least three candidate shelf legs satisfy a preset rectangle condition;determining a recognition scale of the target shelf based on the plurality of shelf leg combinations; andmatching the recognition scale of the target shelf with a preset scale of the preset shelf model to obtain the target shelf leg combination and the target shelf model.18.The automatic guiding method of claim 17, wherein the matching the recognition scale of the target shelf with the preset scale of the preset shelf model to obtain the target shelf leg combination and the target shelf model includes:matching the recognition scale of the target shelf with the preset scale of the preset shelf model to determine a preset shelf model that satisfies a preset matching condition, wherein the preset shelf model that satisfies the preset matching condition comprises a matched shelf leg combination and a matched shelf model;selecting, based on an initial position of the target shelf, the matched shelf leg combination and the matched shelf model that satisfy a preset distance condition to obtain the target shelf leg combination and the target shelf model.19.The automatic guiding method of claim 18, wherein the preset matching condition comprises a scale difference between the recognition scale and the preset scale is less than a first scale threshold, and / or a difference between the scale difference between the recognition scale and the preset scale and another scale difference is less than a second scale threshold, wherein the another scale difference is a scale difference other than a smallest scale difference; and / orwherein the preset distance condition comprises that a distance between a shelf center corresponding to the matched shelf leg combination and the initial position of the target shelf is minimum.20.The automatic guiding method of claim 15, wherein before determining the plurality of point cloud clusters based on the point cloud data, the method further includes:performing 2D LiDAR motion compensation on the point cloud data.21.The automatic guiding method of claim 20, wherein the 2D LiDAR motion compensation comprises:obtaining a first pose of a virtual vehicle coordinate system corresponding to the point cloud data at a first time and a second pose of the virtual vehicle coordinate system corresponding to the point cloud data at a second time, wherein the first time is a reference time among collection times corresponding to a plurality of the point cloud data, the second time is a time other than the first time, and the virtual vehicle coordinate system is a coordinate system configured to represent a motion distortion of the target device;determining a relative pose of the second time relative to the first time based on the first pose and the second pose;obtaining a second transformation pose based on the relative pose and a first transformation pose, wherein the first transformation pose represents a transformation pose of a real vehicle coordinate system corresponding to the second time relative to the virtual vehicle coordinate system, and the second transformation pose represents a transformation pose of the real vehicle coordinate system at the second time relative to the real vehicle coordinate system at the first time; andperforming a motion compensation on the point cloud data at the second time based on the second transformation pose to determine point cloud data at the second time after the motion compensation.22.The automatic guiding method of claim 20, wherein after performing the 2D LiDAR motion compensation and before determining the plurality of point cloud clusters, the method further comprises:removing the point cloud data outside a preset filtering range, wherein the preset filtering range comprises a range with an initial position of the target shelf as an origin and with a preset multiple of a longest hypotenuse in the preset shelf model as a radius.23.The automatic guiding method of claim 15, wherein the determining the target position of the target device based on the point cloud data, the target shelf leg combination, and the target shelf model comprises:performing a preset decomposition on the point cloud clusters corresponding to the target shelf leg combination to obtain a main direction;obtaining an initial orientation of the target shelf based on the main direction corresponding to each of the point cloud clusters; andconstructing an error equation based on the initial orientation, and optimizing the error equation to determine the actual position and the actual orientation of the target shelf.24.The automatic guiding method of claim 15, wherein the determining the target position of the target device comprises:determining the target position based on a current recognition result and a reference recognition result, wherein the current recognition result is the actual position and the actual orientation of the target shelf.25.The automatic guiding method of claim 24, wherein the determining the target position based on the current recognition result and the reference recognition result comprises:determining a recognition difference between the current recognition result and the reference recognition result;in response to determining that the recognition difference is greater than a preset difference, updating the target position based on the current recognition result.26.The automatic guiding method of claim 25, wherein the current waypoint is a waypoint in an operation path of a robot within a recognition area, wherein:the operation path is obtained by performing a path planning based on an initial position of the target shelf; and / or, the reference recognition result comprises a previous recognition result or a preset recognition result.27.The automatic guiding method of claim 26, wherein after updating the target position with the current recognition result, the method further comprises:designating the current recognition result as a target endpoint, and re-performing the path planning based on the target endpoint to obtain a new operation path.28.The automatic guiding method of claim 26, further comprising:determining a preset shelf model for a subsequent waypoint based on the target position;in response to determining that a recognition difference corresponding to a preset number of times for the subsequent waypoint is greater than the preset difference, updating the preset shelf model to a plurality of preset shelf models.29.The automatic guiding method of claim 26, wherein after determining the target position based on the current recognition result and the reference recognition result, the method comprises:determining whether the target device is within the recognition area;in response to determining that the target device is within the recognition area, recognizing the shelf within the recognition area to obtain the target position; orin response to determining that the target device is not in the recognition area, determining the target position as a final target position.30.An automatic guiding system for a target device, comprising:an acquisition module, configured to obtain point cloud data through a radar device, wherein the point cloud data is within a same plane parallel to the ground;a determination module, configured to determine a target position of the target device based on the point cloud data; anda docking module, configured to control the target device to move to the target position to dock with a docking device.31.A docking method for a target device, comprising:obtaining, by the target device, docking related information of a docking device, and obtaining point cloud data;performing a line fitting algorithm on the point cloud data to obtain a plurality of initial line features;processing the plurality of initial line features based on the docking related information of the docking device to obtain target line features, wherein the target line features comprise target line features in at least two different directions;determining a target position based on the target line features, and performing docking with the docking device based on the target position.32.A docking method for a target device, comprising:identifying, by the target device, the docking device in a recognition area to obtain a current recognition result of a current waypoint, wherein the current waypoint is a waypoint in an operation path of the target device in the recognition area;determining a target recognition result based on the current recognition result and a reference recognition result; andcontrolling the target device to perform docking with the docking device based on the target recognition result.
Citation Information
Patent Citations
Target object positioning method and device, electronic equipment and storage medium
CN112927298A
Method for detecting feature part of object based on three-dimensional laser radar point cloud
CN115546267A
Tracking and docking method and electronic equipment for tractor and towed target
CN116413735A
Pose acquisition method and device and storage medium
CN116794629A
Goods shelf identification method, mobile robot and storage medium
CN117474892A