Method for determining pose of robot, robot and storage medium
By acquiring and processing odometer data and lidar data, generating translational considerable information and optimizing the initial pose, the problem of low positioning accuracy of the robot in the lack of significant feature environment is solved, and more accurate pose determination and positioning is achieved.
Patent Information
- Application Number
- CN202510192925.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-02-21
- Publication Date
- 2025-06-10
- Estimated Expiration
- 2045-02-21
AI Technical Summary
In environments such as long corridors, robots based on 2D lidar are prone to positioning loss or errors due to lack of distinctive features, and cannot build a complete SLAM map or the mapping effect is inconsistent with the actual scene.
By acquiring odometer data and lidar data, determining the initial position based on the odometer data, and then generating translational considerable information based on the lidar data, indicating the robot's ability to distinguish the position changes of the object in the translation direction, and finally optimizing the initial position based on the translational considerable information.
It improves the positioning accuracy of the robot and can generate accurate positioning in an environment where the position of the translation direction is not obvious, reducing positioning loss or errors.
Smart Images

Figure CN119689496B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the technical field of robots, and particularly to a method for determining the pose of a robot, a robot, and a storage medium. Background Art
[0002] The SLAM (Simultaneous Localization And Mapping) technology is widely used in the field of robots to solve the problems of localization and mapping when a robot moves in an unknown environment.
[0003] The robot quickly obtains environmental information based on lidar scanning to draw an accurate environmental map. However, in order to draw an accurate environmental map, the robot needs to accurately sense its own position. But when a robot based on a 2D lidar is in a long corridor environment, due to the similarity of the corridor images collected and the lack of significant features, it is easy to have situations of lost or incorrect positioning, resulting in the inability to construct a complete SLAM map, or the mapping effect does not match the actual scene. Summary of the Invention
[0004] The embodiments of the present application aim to provide a method for determining the pose of a robot, a robot, and a storage medium, which can improve the positioning accuracy of the robot.
[0005] In a first aspect, some embodiments of the present application provide a method for determining the pose of a robot, including:
[0006] Obtain odometer data and lidar data;
[0007] Determine an initial pose based on the odometer data;
[0008] Generate translational observable information based on the lidar data, where the translational observable information is used to represent the ability of the robot to distinguish the position change of an object in the translational direction;
[0009] Optimize the initial pose based on the translational observable information to obtain a final pose.
[0010] In some embodiments, the lidar data includes initial radar data and perturbed radar data, and the generating translational observable information based on the lidar data includes:
[0011] Construct a pose cost function based on the initial radar data and the perturbed radar data. The pose cost function is used to represent the deviation between the initial radar data and the perturbed radar data. The initial radar data is the radar data collected by the robot at the initial pose, and the perturbed radar data is the radar data collected after perturbing the initial pose. Moreover, the initial radar data and the perturbed radar data satisfy the point cloud matching condition;
[0012] Determine a target Hessian matrix based on the pose cost function;
[0013] Generate translational observable information based on the target Hessian matrix.
[0014] In some embodiments, the generating translational observable information based on the target Hessian matrix includes:
[0015] Extract a translational Hessian matrix based on the target Hessian matrix;
[0016] Perform eigenvalue decomposition on the translational Hessian matrix to obtain a set of eigenvectors. The set of eigenvectors includes multiple translational eigenvectors. The translational eigenvectors are used to represent the degree of degradation of the lidar data in the vector direction of the translational eigenvector, and the degree of degradation is the degree of identifying position changes based on the lidar data;
[0017] Generate translational observable information based on the set of eigenvectors.
[0018] In some embodiments, the translational observable information includes translational sufficiently observable information and translational unobservable information. The generating translational observable information based on the set of eigenvectors includes:
[0019] Find the minimum translational eigenvector in the set of eigenvectors;
[0020] In response to the minimum translational eigenvector being less than or equal to a preset eigenvector threshold, generate translational unobservable information. The translational unobservable information is used to represent that based on the lidar data, the position changes of an object in the translational direction cannot be distinguished;
[0021] In response to the minimum translational eigenvector being greater than the preset eigenvector threshold, generate translational sufficiently observable information. The translational sufficiently observable information is used to represent that based on the lidar data, the position changes of an object in the translational direction can be distinguished.
[0022] In some embodiments, the translational observable information includes translational sufficiently observable information and translational unobservable information. The generating translational observable information based on the set of eigenvectors includes:
[0023] Find the maximum translational eigenvector and the minimum translational eigenvector in the set of eigenvectors;
[0024] In response to the ratio of the maximum translation feature vector to the minimum translation feature vector being greater than or equal to a preset ratio threshold, generate translation non-observable information, where the translation non-observable information is used to indicate that based on the lidar data, the position change of an object in the translation direction cannot be distinguished.
[0025] In response to the ratio of the maximum translation feature vector to the minimum translation feature vector being less than the preset ratio threshold, generate sufficient translation observable information, where the sufficient translation observable information is used to indicate that based on the lidar data, the position change of an object in the translation direction can be distinguished.
[0026] In some embodiments, optimizing the initial pose based on the translation observable information to obtain the final pose includes:
[0027] Determine a laser observation pose based on the initial pose and the lidar data;
[0028] Fuse the initial pose and the laser observation pose based on the translation observable information to obtain the final pose.
[0029] In some embodiments, determining the laser observation pose based on the initial pose and the lidar data includes:
[0030] Perform matching processing on the lidar data within a first matching range based on a preset point cloud matching algorithm and the initial pose at the target time to obtain a first candidate observation pose and a matching score corresponding to the first candidate observation pose, where the first matching range is a pose change range set based on the initial pose;
[0031] Obtain the matching score of the first observation pose at the previous time, where the previous time is the time adjacent to the target time and arranged before the target time;
[0032] In response to the difference between the matching score of the first observation pose and the matching score of the first candidate observation pose being greater than a first preset score difference, set a second matching range, where the second matching range is greater than the first matching range;
[0033] Determine the laser observation pose based on the second matching range, the initial pose, and the lidar data.
[0034] In some embodiments, determining the laser observation pose based on the second matching range, the initial pose, and the lidar data includes:
[0035] Based on the preset point cloud matching algorithm and the initial pose, perform matching processing on the lidar data within the second matching range to obtain a second candidate observation pose and a matching score corresponding to the second candidate observation pose;
[0036] In response to the difference between the matching score of the first observation pose and the matching score of the second candidate observation pose being less than or equal to a second preset score difference, determine the second candidate observation pose as the lidar observation pose.
[0037] In some embodiments, the fusing the initial pose and the lidar observation pose based on the translational observable information to obtain a final pose includes:
[0038] In response to the translational observable information being translational unobservable information, generate multiple line segments by fitting the lidar data;
[0039] Select line segments with lengths greater than a preset length threshold from the multiple line segments as target line segments;
[0040] In response to the difference between the slopes of two of the target line segments being less than a preset slope difference, fuse the initial pose and the lidar observation pose to obtain a fused pose;
[0041] Optimize the fused pose based on a preset lidar scan matching algorithm to obtain a final pose.
[0042] In some embodiments, the fusing the initial pose and the lidar observation pose based on the translational observable information to obtain a final pose includes:
[0043] In response to the translational observable information being translational sufficiently observable information, generate a slip judgment result;
[0044] Based on the slip judgment result, optimize the lidar observation pose using a preset lidar scan matching algorithm to obtain a final pose.
[0045] In some embodiments, the generating a slip judgment result in response to the translational observable information being translational sufficiently observable information includes:
[0046] In response to the translational observable information being translational sufficiently observable information, calculate the error between the initial pose and the lidar observation pose, and generate a slip judgment result based on the error and a preset error threshold; or,
[0047] In response to the translational observable information being translational sufficiently observable information, obtain the linear velocity of the robot, and generate a slip judgment result based on the linear velocity and a preset velocity threshold; or,
[0048] In response to the translational observable information being sufficient translational observable information, calculate the error between the initial pose and the laser observation pose and the linear velocity of the robot, and generate a slipping determination result based on the comparison result between the error and a preset error threshold and the comparison result between the linear velocity and a preset velocity threshold.
[0049] In some embodiments, the slipping determination result includes a slipping occurrence result, the preset laser scan matching algorithm includes a position translation residual block, and based on the slipping determination result, the preset laser scan matching algorithm is used to optimize the laser observation pose to obtain the final pose, including:
[0050] In response to the slipping determination result being a slipping occurrence result, reduce the weight of the position translation residual block to update the preset laser scan matching algorithm;
[0051] Based on the updated preset laser scan matching algorithm, optimize the laser observation pose to obtain the final pose.
[0052] In a second aspect, some embodiments of the present application provide a robot, including a memory and a processor, the memory is connected to the processor, and the processor is configured to execute one or more computer programs stored in the memory. When the processor executes the one or more computer programs, the robot implements the above-mentioned robot pose determination method.
[0053] In a third aspect, some embodiments of the present application provide a computer-readable storage medium, the computer-readable storage medium stores a computer program, the computer program includes program instructions, and when the program instructions are executed by a processor, the processor executes the above-mentioned robot pose determination method.
[0054] Advantages of the embodiments of the present application: Different from the prior art, the robot pose determination method provided by the embodiments of the present application includes: obtaining odometer data and lidar data, then determining an initial pose based on the odometer data, and then generating translational observable information based on the lidar data. The translational observable information is used to represent the ability of the robot to distinguish the position change of an object in the translational direction. Finally, the initial pose is optimized based on the translational observable information. For an environmental area where the position change in the translational direction is not obvious, this pose determination method can generate translational observable information to distinguish the position change of an object in the translational direction, thereby obtaining a more accurate and reliable pose and improving the positioning accuracy of the robot. Description of the Drawings
[0055] One or more embodiments are exemplarily illustrated by the pictures in the corresponding accompanying drawings. These exemplary illustrations do not constitute limitations on the embodiments. Elements with the same reference numerals in the drawings are represented as similar elements. Unless otherwise stated, the drawings in the figures do not constitute a scale limitation.
[0056] Figure 1 Schematic diagram of the application environment of one of the pose determination methods for the robot provided by this application;
[0057] Figure 2 Schematic diagram of the structure of one of the robots provided by this application;
[0058] Figure 3 Schematic flow chart of one of the pose determination methods for the robot provided by this application;
[0059] Figure 4 Provided by this application Figure 3 Schematic flow chart of step S30 therein;
[0060] Figure 5 Provided by this application Figure 3 Schematic flow chart of step S40 therein;
[0061] Figure 6 Provided by this application Figure 5 Schematic flow chart of step S401 therein;
[0062] Figure 7 Provided by this application Figure 5 Schematic flow chart of step S402 therein;
[0063] Figure 8 Provided by this application Figure 5 Another schematic flow chart of step S402 therein. Detailed implementation manners
[0064] The present application will be described in detail below in conjunction with specific embodiments. The following embodiments will help those skilled in the art to further understand the present application, but do not limit the present application in any form. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present application, several modifications and improvements can still be made. These all fall within the protection scope of the present application.
[0065] In order to make the purpose, technical solution and advantages of the present application clearer, the present application will be further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0066] It should be noted that if there is no conflict, the various features in the embodiments of the present application can be combined with each other, and all are within the protection scope of the present application. In addition, although functional module division is performed in the device schematic diagram and the logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in a different order from the module division in the device or the flowchart. In addition, the terms "first", "second", "third", etc. used herein do not limit the data and execution order, but only distinguish the same items or similar items with basically the same functions and effects.
[0067] Unless otherwise defined, all technical and scientific terms used in this specification have the same meaning as commonly understood by those of ordinary skill in the technical field to which this application belongs. The terms used in this specification in the description of the present application are only for the purpose of describing specific embodiments and are not used to limit the present application. The term "and / or" used in this specification includes any and all combinations of one or more of the related listed items.
[0068] In addition, the technical features involved in the various embodiments of the present application described below can be combined with each other as long as they do not conflict with each other.
[0069] In the embodiments of the present application, the robot can be a mobile device capable of providing functional services, such as: cleaning robots, delivery robots, nursing robots, remote monitoring robots, etc. Hereinafter, taking the cleaning robot as an example, the method for determining the pose of the robot provided by the embodiments of the present application will be described. The cleaning robot includes, but is not limited to, vacuuming robots, mopping robots, floor washing robots, etc.
[0070] Please refer to Figure 1 , Figure 1 which is a schematic diagram of an application environment provided by the embodiments of the present application. As Figure 1 shown, the application environment includes a robot 100 and a corridor 200, wherein a lidar 10 is installed on the robot 100.
[0071] The lidar 10 is disposed at the front end of the fuselage of the robot 100. The lidar 10 is used to emit a laser beam so that the laser beam is reflected after reaching an obstacle, so that the lidar 10 receives the reflected laser beam, and determines the distance between the lidar 10 and the obstacle according to the time difference between sending the laser beam and receiving the emitted laser beam. In some embodiments, the lidar 10 includes, but is not limited to, pulsed lidar and continuous wave lidar, etc.
[0072] The robot 100 is provided with a rotating mechanism, which is the mounting skeleton of the lidar 10 and is used for direction adjustment. In some embodiments, the rotating mechanism may include a rotating base driven by a belt. The rotating mechanism rotates at a stable speed, so that the lidar 10 can scan the surrounding environment and generate real-time point cloud information.
[0073] In some embodiments, a visible light camera is also installed on the robot 100. The lidar scans the surrounding environment where the robot 100 is located to obtain a laser point cloud. The visible light camera takes pictures of the surrounding environment where the robot 100 is located to obtain images. The lidar and the visible light camera are respectively communicatively connected to the controller, and the laser point cloud and the image are respectively sent to the controller. The controller calls a pre-loaded map construction program in the memory of the robot 100 to construct an environmental map based on the laser point cloud and / or the image. Among them, the map construction program may include a program corresponding to the SLAM algorithm (Simultaneous Localization and Mapping, SLAM), which will not be introduced in detail here. The map is saved in the memory of the robot 100. When the robot moves for operation, the controller calls the map as the basis for autonomous positioning, path planning, and obstacle avoidance.
[0074] It can be understood that the SLAM algorithm has both positioning and navigation functions. During the positioning process, the lidar is controlled to rotate at a high speed to emit laser light, measure the distance between the robot and the obstacle, and combine the map to judge the relative position between the robot and the obstacle, so as to achieve positioning. In some embodiments, the robot 100 can perform visual positioning based on the visible light camera.
[0075] The controller is an electronic computing core built into the robot body and is used to execute logical operation steps to achieve intelligent control of the robot. The controller is communicatively connected to the lidar and is used to establish a map according to the laser point cloud data, control the robot to walk, and is also used to perform cleaning tasks based on the map.
[0076] It can be understood that the controller can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a single-chip microcomputer, an ARM (Acorn RISC Machine), or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or any combination of these components. The controller can also be any conventional processor, controller, microcontroller, or state machine. The controller can also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors combined with a DSP and / or any other such configuration, or one or more combinations of a microcontroller unit (MCU), a field-programmable gate array (FPGA), and a system-on-chip (SoC).
[0077] It can be understood that the robot 100 in the embodiments of the present invention further includes a storage module, and the storage module includes, but is not limited to, one or more of devices such as Flash flash memory, NAND flash memory, vertical NAND flash memory (VNAND), NOR flash memory, resistive random access memory (RRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), spin-transfer torque random access memory (STT-RAM), etc.
[0078] The robot needs to accurately sense its own position and perform precise positioning in order to draw an accurate environmental map, and then be able to complete the cleaning task based on the accurate environmental map. However, in Figure 1 In the long corridor 200 shown, the scenes are similar, and the laser frames captured at different positions may be the same or extremely similar. Therefore, a robot based on a 2D lidar may experience positioning loss or error due to the lack of significant features, resulting in inaccurate positioning, and thus unable to construct a complete SLAM map, or the mapping effect does not match the actual scene.
[0079] The above application environment is only for illustrative purposes. In actual applications, the charging method and related devices provided in the following embodiments of the present invention can be further extended to other suitable application environments, rather than being limited to Figure 1 the application environment shown in
[0080] In view of the above problems, some embodiments of the present application provide a method for determining the pose of a robot. The method includes: obtaining odometer data and lidar data, then determining an initial pose based on the odometer data, generating translational observability information based on the lidar data, where the translational observability information is used to represent the ability of the robot to distinguish the position change of an object in the translational direction, and finally optimizing the initial pose based on the translational observability information.
[0081] Thus, for an environmental area where the position change in the translational direction is not obvious, the method for determining the pose of the robot can generate translational observability information to distinguish the position change of an object in the translational direction, thereby obtaining a more accurate and reliable pose and improving the positioning accuracy of the robot.
[0082] Some embodiments of the present application provide a robot. Please refer to Figure 2 , the robot 100 includes at least one processor 102 and a memory 103 ( Figure 2 taking the case of being connected by a bus and one processor as an example).
[0083] It can be understood that the processor 102 is used to provide computing and control capabilities to control the robot to execute any one of the methods for determining the pose of the robot provided in the following embodiments.
[0084] It can be understood that the processor 102 may be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it may also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components.
[0085] The memory 103, as a non-transitory computer-readable storage medium, can be used to store non-transitory software programs, non-transitory computer-executable programs, and modules, such as the program instructions / modules corresponding to the robot pose determination method in the embodiments of the present application. By running the non-transitory software programs, instructions, and modules stored in the memory 103, the processor 102 can implement any one of the robot pose determination methods provided in the following embodiments. In some embodiments, the memory 103 may include a high-speed random access memory, and may also include a non-transitory memory, such as at least one disk storage device, a flash memory device, or other non-transitory solid-state storage devices. In some embodiments, the memory 103 may further include a memory remotely provided with respect to the processor, and these remote memories can be connected to the processor through a network. Examples of the above network include but are not limited to the Internet, an enterprise intranet, a local area network, a mobile communication network, and combinations thereof.
[0086] In some embodiments, the robot 100 may further include sensors such as a lidar, a camera, a gyroscope, an odometer, a magnetometer, an accelerometer, or a speedometer. These sensors help the robot 100 sense the environment, build an environmental map, or perform other controls. It can be understood that the structure exemplified in this embodiment does not constitute a limitation on the robot 100. In some implementations, the robot 100 may include more or fewer components than shown in the figure, or combine certain components, or split certain components, or have different component arrangements. The illustrated components can be implemented in hardware, software, or a combination of software and hardware.
[0087] As can be understood from the above, the robot pose determination method provided in the embodiments of the present application can be implemented by a robot, for example, executed by one or more processors of the robot. In some embodiments, the robot pose determination method provided in the embodiments of the present application can also be implemented and executed by other devices with computing and processing capabilities. Other devices with computing and processing capabilities can be intelligent devices communicatively connected to the robot, such as a server, etc.
[0088] The following combines the exemplary applications and implementations of the robot provided in the embodiments of the present application to illustrate the robot pose determination method provided in the embodiments of the present application. Please refer to Figure 3 , Figure 3 which is a schematic flowchart of the robot pose determination method provided in the embodiments of the present application. It can be understood that the execution subject of this robot pose determination method can be one or more processors of the robot.
[0089] As Figure 3 shown, the method S100 includes but is not limited to the following steps:
[0090] S10: Obtain odometer data and lidar data;
[0091] The odometry data of the robot refers to the data that records the robot's own motion information during the cleaning process, which mainly includes relevant parameters such as the position change of the sweeping robot, the change of the driving direction, and the moving distance. The odometry data can be obtained through sensors such as cameras, gyroscopes, odometers, accelerometers, or speedometers.
[0092] Lidar data is the information about the surrounding environment collected by the lidar during operation, which includes point cloud information and reflection intensity information. The point cloud is a set composed of a large number of three-dimensional points, and each point represents the position where the laser beam intersects the object surface, usually represented by (x, y, z). The reflection intensity refers to the reflection intensity of each point, which is determined by factors such as the material, color, and roughness of the object surface. Through lidar data, the surrounding environment conditions can be obtained, such as the position of obstacles, the identification of obstacles, and the planning of the cleaning path.
[0093] In some embodiments, preprocessing operations such as distortion correction and filtering are performed on the lidar data to obtain effective lidar data. Effective lidar data refers to the lidar data obtained when the lidar is within the ranging range. If the lidar emits laser beyond the ranging range, the returned lidar data is zero, which is invalid lidar data. Through processing operations such as filtering, the invalid lidar data is filtered out to obtain effective lidar data, which is also the final lidar data for subsequent processing and analysis.
[0094] S20: Determine the initial pose based on the odometry data;
[0095] The initial pose can be expressed as (x, y, θ), where x and y are the coordinates of the robot in the two-dimensional plane, and θ is the orientation angle of the robot. For example: when θ = 0°, the robot may be moving parallel to a certain wall of the room; when θ = 90°, the robot may be moving perpendicular to the previous direction, turning towards a corner or another area.
[0096] There is a known reference point in the environment where the robot is located, such as a base station. First, determine the coordinates (x ref , y ref ) of this reference point in the global coordinate system. Then, when the robot moves from the reference point to the starting point, the odometer starts to record the motion information (such as the driving distance and direction change) from the reference point. Combining the reference point coordinates with the motion information of the starting point, the starting pose of the robot's starting point can be obtained.
[0097] During the process of the robot moving from the starting point to the current position, the odometry data is obtained. Based on the odometry data and the starting pose, through integral operation, the initial pose of the robot at the current position can be obtained.
[0098] S30: Generate translational observability information based on the lidar data, where the translational observability information is used to represent the ability of the robot to distinguish the position change of an object in the translational direction;
[0099] The translational observability information includes sufficient translational observability information and non - translational observability information. Among them, the sufficient translational observability information indicates that the position change of an object in the translational direction can be distinguished based on the lidar data, and the non - translational observability information indicates that the position change of an object in the translational direction cannot be distinguished based on the lidar data.
[0100] In a long corridor environment, the lidar scans the surrounding environment to obtain lidar data. Due to the relatively similar environmental scenes, the corresponding translational observability information is non - translational observability information. For an environment with more significant features, the lidar scans the surrounding environment to obtain lidar data. Due to the obvious environmental differences and more obstacles, the corresponding translational observability information is sufficient translational observability information.
[0101] Thus, based on the lidar data for observability analysis, the corresponding translational observability information is obtained. The translational observability information can accurately distinguish the environment where the lidar is located, determine whether it is in a long corridor environment, and then based on different environments, select different pose determination methods to make the positioning more accurate.
[0102] In some embodiments, the initial pose of the robot is slightly perturbed. The lidar data before perturbation and the lidar data after perturbation are subjected to point - to - line iterative closest point matching based on the point cloud registration algorithm (Point - to - Line ICP, abbreviated as PL - ICP) to construct a pose - related cost function, and the translation matrix corresponding to the minimum cost function is extracted to obtain a corresponding set of feature vectors, and then the corresponding translational observability information is generated based on the set of feature vectors.
[0103] The lidar data includes initial lidar data and perturbed lidar data. As Figure 4 shown, step S30 includes:
[0104] S301: Construct a pose cost function based on the initial lidar data and the perturbed lidar data. The pose cost function is used to represent the deviation between the initial lidar data and the perturbed lidar data. The initial lidar data is the lidar data collected by the robot in the initial pose, and the perturbed lidar data is the lidar data collected after perturbing the initial pose, and the initial lidar data and the perturbed lidar data satisfy the point cloud matching condition;
[0105] Based on the PL - ICP algorithm, construct the following pose cost function:
[0106] (1)
[0107] Among them, \(a_i\) and \(b_i\) are matching point pairs, \(b_i\) is the initial radar data, \(a_i\) is the perturbed radar data, \(n_i\) is the local normal vector of \(b_i\), and \(i\) is the \(i\)-th laser point.
[0108] S302: Determine the target Hessian matrix based on the pose cost function;
[0109] Obtain the target Hessian matrix corresponding to the minimized pose cost function. Through mathematical derivation, formula (1) can be converted into a form related to rotation and translation: \(F = X\) T \(HX\). By taking the derivatives of the rotation and translation parameters, the Jacobian matrix and the target Hessian matrix can be obtained.
[0110] The specific derivation process is as follows:
[0111] When there is a small motion \(X=(X\) R , \(X\) t ) during laser scanning, where \(X\) R is the rotation angle and \(X\) t is the translation amount, then formula (1) can be converted into:
[0112] (2)
[0113] Since the radar data before and after perturbation is the same, that is, \(a_i = b_i\). Therefore, the Jacobian matrix of the pose cost function (2) with respect to the parameter \(X=(X\) R , \(X\) t ) is:
[0114] (3)
[0115] Let \(a\) i =[ \(a\) ix , \(a\) iy , \(n\) i =[ \(n\) ix , \(n\) iy , and expand to get:
[0116] (4)
[0117] The target Hessian matrix (Hessian) is:
[0118] (5)
[0119] Obviously, the pose cost function at this time can be converted into:
[0120] \(F = X\) T \(HX\) (6)
[0121] S303: Generate translation observable information based on the target Hessian matrix.
[0122] First, extract the translational Hessian matrix based on the target Hessian matrix, and then perform eigenvalue decomposition on the translational Hessian matrix to obtain a set of eigenvectors. The set of eigenvectors includes multiple translational eigenvectors, and the translational eigenvectors are used to represent the degree of degradation of lidar data in the vector direction of the translational eigenvector. The degree of degradation is the degree of recognized position change based on lidar data. Generate translational observable information based on the set of eigenvectors.
[0123] Since the positioning in a long corridor environment is prone to errors mainly because the laser data is severely degraded in the translational direction, therefore, mainly analyze the translational observability. In the embodiments of the present application, the translational observability is characterized by translational eigenvectors, that is, the degree of degradation of lidar data in the translational direction.
[0124] Perform eigenvalue decomposition on the translational Hessian matrix to obtain a set of eigenvectors ( ,....., ), which is composed of translational eigenvectors . The eigenvalue of the translational eigenvector is λ, and its corresponding vector direction is the normal vector direction. The magnitude of the eigenvalue λ represents the degree of degradation of lidar data in the vector direction corresponding to the eigenvalue λ.
[0125] If the eigenvalue λ is large, it indicates that the degree of degradation of the translational eigenvector in its corresponding vector direction is low, and the degree of recognized position change based on lidar data is high. The robot may be in an area with significant features. Correspondingly, if the eigenvalue λ is small, it indicates that the degree of degradation of the translational eigenvector in its corresponding vector direction is high, and the degree of recognized position change based on lidar data is low. The robot may be in a long corridor area.
[0126] Therefore, translational observable information can be generated based on the set of eigenvectors. First, find the minimum translational eigenvector in the set of eigenvectors. In response to the minimum translational eigenvector being less than or equal to a preset feature threshold, generate translational unobservable information, which is used to represent that the position change of an object in the translational direction cannot be distinguished based on lidar data. In response to the minimum translational eigenvector being greater than the preset feature threshold, generate translational sufficiently observable information, which is used to represent that the position change of an object in the translational direction can be distinguished based on lidar data.
[0127] In the set of eigenvectors ( ,....., ), in the direction of the eigenvector corresponding to each eigenvalue λ, the pose cost function is:
[0128] (7)
[0129] The minimum translational eigenvector in the set of eigenvectors is , it is only necessary to compare the minimum translation eigenvector with a preset feature threshold. As can be seen from the above embodiments, when the minimum translation eigenvector is very small (the eigenvalue λmin is very small), it indicates that the frame of laser is degenerate in the vector direction corresponding to λmin (its normal vector direction), that is, when the same amplitude of motion occurs, the value of F in the corresponding vector direction is smaller than the value of F in any other direction.
[0130] If λmin is less than or equal to the preset feature threshold, it means that the change in the pose cost function caused by the robot's motion is very small, the degree of degeneracy in the vector direction corresponding to this λmin is relatively high, and the position change of the object in the translation direction cannot be distinguished based on the lidar data, then the corresponding translation observable information is translation unobservable information.
[0131] If λmin is greater than the preset feature threshold, it indicates that the corresponding eigenvalue is relatively large, there is no serious degeneracy problem in any direction of this frame of laser, the position change of the object in the translation direction can be distinguished based on the lidar data, then the corresponding translation observable information is translation sufficiently observable information, and the probability that the robot is in an environment with more significant features is relatively high.
[0132] Among them, the preset feature threshold can be set as needed. In the embodiments of the present application, the preset feature threshold is zero. If λmin = 0, it means that the corresponding pose cost function F is always zero, and the motion will not cause a change in the pose cost function. The vector direction corresponding to this eigenvalue is the completely degenerate direction of the laser data, and the probability that the robot is in a long corridor environment is relatively high.
[0133] In some embodiments, the degree of degeneracy and the degenerate direction of the lidar data can also be determined by the relative magnitudes of the maximum translation eigenvector and the minimum translation eigenvector.
[0134] First, find the maximum translation eigenvector and the minimum translation eigenvector in the eigenvector set. In response to the ratio of the maximum translation eigenvector to the minimum translation eigenvector being greater than or equal to a preset ratio threshold, generate translation unobservable information. In response to the ratio of the maximum translation eigenvector to the minimum translation eigenvector being less than the preset ratio threshold, generate translation sufficiently observable information.
[0135] The maximum translation eigenvector in the eigenvector set is , and the minimum translation eigenvector is , if the ratio of the two (the ratio of the corresponding eigenvalue of the two) exceeds the preset threshold, it indicates that the number of point cloud distributions in the x direction is large, and the number of point cloud distributions in the y direction is small or even non-existent. This means that when the laser points are translated in one direction, the lidar data has seriously degraded, and the translational observable information becomes non-observable information, and the probability that the robot is in a long corridor environment is relatively high.
[0136] Correspondingly, if the ratio of the two (the ratio of the corresponding eigenvalue of the two) does not exceed the preset threshold, the corresponding translational observable information is sufficiently observable information, the lidar data has not seriously degraded, and the probability that the robot is in an environment with more significant features is relatively high.
[0137] Thus, based on the lidar data, a translational Hessian matrix can be obtained. Then, based on the translational Hessian matrix, a set of eigenvectors can be obtained. Based on the magnitude of the minimum translational eigenvector in the set of eigenvectors or the ratio between the maximum translational eigenvector and the minimum translational eigenvector in the set of eigenvectors, the corresponding translational observable information is generated.
[0138] If the translational observable information is sufficiently observable information, it indicates that the lidar data has not seriously degraded, and the probability that the robot is in an environment with more significant features is relatively high. If the translational observable information is non-observable information, it indicates that the lidar data has seriously degraded in the vector direction, and the probability that the robot is in a long corridor environment is relatively high.
[0139] That is, based on the translational observable information, the environment where the robot is located can be accurately determined, so as to improve the accuracy of subsequent pose determination and improve the accuracy of positioning.
[0140] S40: Optimize the initial pose based on the translational observable information to obtain the final pose.
[0141] Based on the translational observable information, the environment where the robot is located can be determined. Different environments correspond to different optimization measures. By taking different optimization measures to specifically optimize the initial pose of the robot, the obtained final pose is more accurate.
[0142] As Figure 5 shown, step S40 includes:
[0143] S401: Determine the laser observation pose based on the initial pose and the lidar data;
[0144] Perform relevant scan matching based on the lidar data to locally optimize the initial pose to obtain the locally optimized pose, that is, the laser observation pose.
[0145] In some embodiments, as Figure 6 shown, step S401 includes:
[0146] S4011: Based on the preset point cloud matching algorithm and the initial pose at the target moment, perform matching processing on the lidar data within the first matching range to obtain the first candidate observation pose and the matching score corresponding to the first candidate observation pose. The first matching range is a pose change range set based on the initial pose.
[0147] The preset point cloud matching algorithm is the Correlation Scan Matching (CSM) algorithm. By calculating the correlation between the lidar data and the probability map (two-dimensional grid map) under different pose hypotheses, the pose with the highest correlation is found as the candidate pose of the robot. Usually, methods such as Normalized Cross-Correlation are used to calculate the correlation between the lidar scan data and the probability map under different poses.
[0148] First, determine the first matching range. The first matching range is a pose change range set around the initial pose. For example, it is the range of ±Δx and ±Δy in the x and y directions, and the range of ±Δθ in the angle θ. Then, within the first matching range, sample the possible poses at a certain step size to obtain a series of hypothesized poses (xi, yi, θi), where i = 1, 2,..., n, and n is the number of hypothesized poses.
[0149] For each hypothesized pose, transform each distance measurement value of the lidar data to the coordinate system of the probability map according to this pose to obtain the transformed coordinates (X, Y), which are the transformed lidar data. Calculate the correlation between the transformed lidar data and the corresponding area in the probability map, that is, the matching score.
[0150] Then each hypothesized pose corresponds to a matching score. Obtain the hypothesized pose (xbest, ybest, θbest) with the highest matching score, and use the hypothesized pose (xbest, ybest, θbest) with the highest matching score as the first candidate observation pose, and its corresponding matching score is the matching score of the first candidate observation pose.
[0151] S4012: Obtain the matching score of the first observation pose at the previous moment. The previous moment is the moment adjacent to the target moment and arranged before the target moment.
[0152] S4013: In response to the difference between the matching score of the first observation pose and the matching score of the first candidate observation pose being greater than the first preset score difference, set the second matching range. The second matching range is larger than the first matching range.
[0153] If the time corresponding to the initial pose is the target time Tj, and the matching score of the first candidate observation pose corresponding to it is Pj. Then the previous time of the target time is T j-1 , T j-1 The observation pose corresponding to the time is the first observation pose, which is also obtained by the preset point cloud matching algorithm in the above embodiments. T j-1 Among the hypothesized poses corresponding to the time, the hypothesized pose with the highest matching score, and the matching score corresponding to the first observation pose is P j-1 .
[0154] Compare the matching score P j-1 of the first observation pose with the matching score Pj of the first candidate observation pose. If the difference between the matching score P j-1 of the first observation pose and the matching score Pj of the first candidate observation pose is greater than the first preset score difference, it indicates that the matching score Pj of the first candidate observation pose is j-1 significantly reduced compared to the matching score P of the first observation pose. The matching score Pj of the first candidate observation pose is relatively low, and the correlation is relatively low. The environment around the robot may have mutated or the data is abnormal. Then, it is necessary to expand the matching range and perform relevant scan matching again within a larger second matching range.
[0155] If the difference between the matching score P j-1 of the first observation pose and the matching score Pj of the first candidate observation pose is less than or equal to the first preset score difference, it indicates that the matching score Pj of the first candidate observation pose j-1 has a small change compared to the matching score P of the first observation pose. Then, the first observation pose is determined as the laser observation pose.
[0156] The first observation pose is the laser observation pose of the previous time that has been determined, and its matching score P j-1 is relatively high. Taking the matching score P j-1 as a benchmark, determine whether the first candidate observation pose is accurate. If it is not accurate or reliable, then expand the matching range to obtain a more accurate candidate observation pose within a larger matching range.
[0157] S4014: Determine the laser observation pose based on the lidar data of the second matching range and the initial pose.
[0158] Similar to the above embodiments, the preset point cloud matching algorithm and the initial pose are also adopted. Within the second matching range, multiple hypothesized poses and corresponding matching scores are obtained, and then the hypothesized pose with the highest matching score is determined as the second candidate observation pose. Then, compare the matching score of the second candidate observation pose with the matching score of the first observation pose to determine whether the second candidate observation pose is accurate or reliable.
[0159] In some embodiments, first, based on a preset point cloud matching algorithm and an initial pose, the lidar data is matched within a second matching range to obtain a second candidate observation pose and a matching score corresponding to the second candidate observation pose. Then, in response to the difference between the matching score of the first observation pose and the matching score of the second candidate observation pose being less than or equal to a second preset score difference, the second candidate observation pose is determined as the lidar observation pose.
[0160] The specific process is similar to the above embodiments and will not be elaborated here. Correspondingly, the difference between the matching score of the first observation pose and the matching score of the second candidate observation pose being less than or equal to the second preset score difference indicates that the matching score increases compared to the previous moment, and the second candidate observation pose is better. The second candidate observation pose is determined as the lidar observation pose.
[0161] If the difference between the matching score of the first observation pose and the matching score of the second candidate observation pose is greater than a first preset score threshold, the matching range is continued to be expanded and the matching is performed again to find a better candidate observation pose as the lidar observation pose.
[0162] S402: Based on the translational observable information, fuse the initial pose and the lidar observation pose to obtain the final pose.
[0163] Fuse the initial pose determined based on the odometry data and the lidar observation pose obtained after local optimization, and adopt different fusion measures according to the different environments where the robot is located to obtain a more accurate final pose.
[0164] In some embodiments, as Figure 7 shown, step S402 includes:
[0165] S4021: In response to the translational observable information being translational unobservable information, generate multiple line segments by fitting the lidar data;
[0166] The translational observable information being translational unobservable information indicates that the probability of the environment where the robot is located being a long corridor environment is relatively high. In a long corridor environment, the two corridor sides are two nearly parallel line segments. Based on this feature, it is confirmed again whether the robot is in a long corridor environment.
[0167] S4022: Screen out the line segments with lengths greater than a preset length threshold from the multiple line segments as target line segments;
[0168] The robot obtains the lidar data through laser scanning, generates multiple line segments by fitting the lidar data, and screens out the line segments with lengths greater than the preset length threshold from the multiple line segments, that is, screens out the long line segments with a certain length, and determines the screened long line segments as target line segments.
[0169] If there is no line segment longer than a preset length threshold among multiple line segments, that is, there is no long line segment among multiple line segments, it is determined that the robot is not in a long corridor environment. The preset length threshold can be set as needed.
[0170] S4023: In response to the difference between the slopes of the two target line segments being less than a preset slope difference, fuse the initial pose and the laser observation pose to obtain a fused pose.
[0171] If the difference between the slopes of two target line segments is less than the preset slope difference, it indicates that the slopes of the two target line segments are close, and the two target line segments are almost parallel or parallel, and it is determined that the environment where the robot is located is a long corridor environment.
[0172] For a long corridor environment, more trust is placed in the translational value measured by the odometer. Then, the translational value in the laser observation pose is replaced with the translational value in the initial pose, and other values in the laser observation pose remain unchanged to obtain a fused pose.
[0173] S4024: Optimize the fused pose based on a preset laser scan matching algorithm to obtain a final pose.
[0174] In the embodiments of the present application, the preset laser scan matching algorithm is the Ceres scan matcher. The Ceres scan matcher mainly uses a non - linear least - squares algorithm to provide high - precision point cloud matching results. The Ceres scan matcher is used to match the currently scanned point cloud with the previously constructed map point cloud or the adjacent scanned point cloud, find the best transformation relationship between the point clouds collected at two or more different times, so that they can be accurately aligned, thereby determining the final pose of the lidar.
[0175] The Ceres scan matcher uses an iterative method to find the optimal solution. The fused pose is used as the iterative initial value of the Ceres scan matcher. The Ceres scan matcher continuously optimizes the fused pose to complete the matching work between the laser scan data and the previously constructed map. If the Ceres scan matcher finally converges to a local minimum value, the corresponding pose of the robot is the most accurate pose, and the pose of the robot corresponding to the convergence of the Ceres scan matcher is used as the final pose of the lidar.
[0176] In some embodiments, as Figure 8 shown, step S402 further includes:
[0177] S4025: In response to the translational observable information being translational sufficiently observable information, generate a slip judgment result.
[0178] The translational observable information is sufficient translational observable information, indicating a relatively high probability that the environment where the robot is located is an environment with more significant features (non-corridor environment). Then, reconfirm whether part of the reason for the change in the lidar data is the slippage of the robot's wheels, so as to adopt different pose correction parameters.
[0179] There are various ways to determine whether the robot is slipping. For example: the error between the linear velocity of the robot and / or the initial pose and the laser observation pose, etc.
[0180] In some embodiments, it is determined whether the robot is slipping by the error between the initial pose and the laser observation pose: calculate the error between the initial pose and the laser observation pose, and generate a slippage judgment result based on the error and a preset error threshold.
[0181] In some embodiments, if the error is greater than or equal to the preset error threshold, the generated slippage judgment result is that slippage occurs. Among them, the preset error threshold can be set as needed.
[0182] In some embodiments, it is determined whether the robot is slipping by the linear velocity of the robot: obtain the linear velocity of the robot, and generate a slippage judgment result based on the linear velocity and a preset velocity threshold.
[0183] In some embodiments, if the linear velocity is greater than or equal to the preset velocity threshold, the generated slippage judgment result is that slippage occurs. Among them, the preset velocity threshold can be set as needed.
[0184] In some embodiments, it is determined whether the robot is slipping jointly by the linear velocity of the robot and the error between the initial pose and the laser observation pose: calculate the error between the initial pose and the laser observation pose and the linear velocity of the robot, and generate a slippage judgment result based on the comparison result between the error and the preset error threshold and the comparison result between the linear velocity and the preset velocity threshold.
[0185] In some embodiments, if the error is greater than or equal to the preset error threshold and the linear velocity is greater than or equal to the preset velocity threshold, the generated slippage judgment result is that slippage occurs. Using the above two conditions to jointly judge whether the robot slips, the judgment is more accurate.
[0186] S4026: Based on the slippage judgment result, optimize the laser observation pose using a preset laser scan matching algorithm to obtain the final pose.
[0187] Based on whether the robot slips, adaptively adjust the weights of different constraint terms in the preset laser scan matching algorithm to obtain a more accurate pose.
[0188] In some embodiments, the preset laser scan matching algorithm includes a position translation residual block. The position translation residual block is a residual function constraint term in the preset laser scan matching algorithm. If the skid judgment result is a skid occurrence, the weight of the position translation residual block is reduced to update the preset scan matching algorithm, and then the laser observation pose is optimized based on the updated preset laser scan matching algorithm to obtain the final pose.
[0189] Among them, optimizing the laser observation pose based on the updated preset laser scan matching algorithm is similar to the optimization process in the above embodiments and will not be elaborated here. When the preset laser scan matching algorithm converges to a local minimum, the corresponding pose of the robot is the most accurate pose, and the pose of the robot corresponding to the convergence of the updated preset laser scan matching algorithm is determined as the final pose.
[0190] In summary, the method for determining the pose of the robot can generate translational observable information to distinguish the position change of an object in the translational direction, and then obtain a more accurate and reliable pose, improving the positioning accuracy of the robot.
[0191] The embodiment of the present application also provides a computer-readable storage medium. The computer-readable storage medium stores computer-executable instructions, and the computer-executable instructions are used to cause an electronic device to execute the method for determining the pose of the robot provided by the embodiment of the present application.
[0192] In some embodiments, the storage medium may be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, flash memory, magnetic surface memory, optical disc, or CD-ROM; or it may be various devices including one or any combination of the above memories.
[0193] In some embodiments, the executable instructions may be in the form of a program, software, software module, script, or code, written in any form of programming language (including compiled or interpreted languages, or declarative or procedural languages), and may be deployed in any form, including being deployed as an independent program or being deployed as a module, component, subroutine, or other unit suitable for use in a computing environment.
[0194] As an example, the executable instructions may or may not correspond to files in the file system, and may be stored as part of a file that stores other programs or data. For example, they may be stored in one or more scripts in a Hyper Text Markup Language (HTML) document, stored in a single file dedicated to the program being discussed, or stored in multiple cooperating files (for example, files that store one or more modules, subroutines, or code portions).
[0195] As an example, the executable instructions may be deployed to execute on one computing device (including devices such as smart terminals and servers), or on multiple computing devices located at one location, or on multiple computing devices distributed at multiple locations and interconnected through a communication network.
[0196] It should be noted that the device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed to multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0197] Through the description of the above embodiments, those of ordinary skill in the art can clearly understand that each embodiment can be implemented by means of software plus a general hardware platform, and of course, it can also be implemented by hardware. Those of ordinary skill in the art can understand that all or part of the processes of implementing the above embodiment methods can be completed by instructing relevant hardware through a computer program. The program can be stored in a computer-readable storage medium. When the program is executed, it can include the processes of the above method embodiments. Among them, the storage medium can be a magnetic disk, an optical disc, a read-only memory (ROM), or a random access memory (RAM), etc.
[0198] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, and are not intended to limit them; under the idea of the present application, the technical features in the above embodiments or different embodiments can also be combined, and the steps can be implemented in any order, and there are many other changes in different aspects of the present application as described above. For the sake of brevity, they are not provided in detail; although the present application has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions recorded in the foregoing embodiments, or perform equivalent replacements for some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the scope of the technical solutions of the embodiments of the present application.
Claims
1. A method for determining the position and posture of a robot, characterized in that: include: Obtain odometer data and lidar data; Determining an initial pose based on the odometer data; Generate translation observable information based on the laser radar data, wherein the translation observable information is used to represent the robot's ability to distinguish position changes of an object in a translation direction; Optimizing the initial pose based on the translation observable information to obtain a final pose; Optimizing the initial pose based on the translation observable information to obtain the final pose comprises: Determine a laser observation pose based on the initial pose and the laser radar data; Based on the observable information of the translation, the initial pose and the laser observation pose are fused to obtain a final pose; The observable translation information includes sufficiently observable translation information and unobservable translation information, and fusing the initial pose with the laser observation pose based on the observable translation information to obtain the final pose includes: In response to the observable translation information being unobservable translation information, generating a plurality of line segments based on the laser radar data by fitting, wherein the unobservable translation information is used to indicate that a position change of an object in a translation direction cannot be distinguished based on the laser radar data; Filtering out a line segment whose length is greater than a preset length threshold from the plurality of line segments as a target line segment; In response to a difference between the slopes of the two target line segments being less than a preset slope difference, fusing the initial pose with the laser observation pose to obtain a fused pose; Optimizing the fused posture based on a preset laser scanning matching algorithm to obtain a final posture; The fusing the initial pose with the laser observation pose to obtain a fused pose includes: The translation value in the laser observation pose is replaced by the translation value in the initial pose, and other values in the laser observation pose remain unchanged, to obtain the fused pose.
2. The method for determining a posture according to claim 1, characterized in that: The laser radar data includes initial radar data and disturbance radar data, and the generating of translation observable information based on the laser radar data includes: Constructing a pose cost function based on the initial radar data and the perturbed radar data, wherein the pose cost function is used to represent the deviation between the initial radar data and the perturbed radar data, wherein the initial radar data is radar data collected by the robot at the initial pose, and the perturbed radar data is radar data collected after the initial pose is perturbed, and the initial radar data and the perturbed radar data meet a point cloud matching condition; Determine a target Hessian matrix based on the pose cost function; Generate translation observable information based on the target Hessian matrix.
3. The method for determining a posture according to claim 2, characterized in that: Generating translation observable information based on the target Hessian matrix includes: Extracting a translation Hessian matrix based on the target Hessian matrix; Performing eigendecomposition on the translation Hessian matrix to obtain a set of eigenvectors, wherein the set of eigenvectors includes a plurality of translation eigenvectors, wherein the translation eigenvectors are used to represent a degree of degradation of the laser radar data in a vector direction of the translation eigenvector, wherein the degree of degradation is a degree of position change identified based on the laser radar data; Translation observable information is generated based on the set of feature vectors.
4. The method for determining a position and posture according to claim 3, characterized in that: The generating translation observable information based on the feature vector set comprises: Finding the minimum translation eigenvector in the eigenvector set; In response to the minimum translation feature vector being less than or equal to a preset feature threshold, generating translation unobservable information, wherein the translation unobservable information is used to indicate that a position change of an object in a translation direction cannot be distinguished based on the laser radar data; In response to the minimum translation feature vector being greater than a preset feature threshold, sufficiently significant translation information is generated, where the sufficiently significant translation information is used to indicate that position changes of an object in a translation direction can be distinguished based on the laser radar data.
5. The method for determining a position and posture according to claim 3, characterized in that: The generating translation observable information based on the feature vector set comprises: Finding the maximum translation feature vector and the minimum translation feature vector in the feature vector set; In response to a ratio of the maximum translation feature vector to the minimum translation feature vector being greater than or equal to a preset ratio threshold, generating translation unobservable information, wherein the translation unobservable information is used to indicate that a position change of an object in a translation direction cannot be distinguished based on the laser radar data; In response to the ratio of the maximum translation feature vector to the minimum translation feature vector being less than a preset ratio threshold, sufficiently significant translation information is generated, wherein the sufficiently significant translation information is used to indicate that the position change of the object in the translation direction can be distinguished based on the laser radar data.
6. The method for determining a position and posture according to claim 1, characterized in that: Determining the laser observation posture based on the initial posture and the laser radar data includes: Based on a preset point cloud matching algorithm and the initial pose of the target at the moment, matching processing is performed on the laser radar data within a first matching range to obtain a first candidate observation pose and a matching score corresponding to the first candidate observation pose, wherein the first matching range is a pose change range set based on the initial pose; Obtaining a matching score of a first observation pose at a previous moment, wherein the previous moment is a moment adjacent to the target moment and arranged before the target moment; In response to a difference between a matching score of the first observation posture and a matching score of the first candidate observation posture being greater than a first preset score difference, setting a second matching range, the second matching range being greater than the first matching range; The laser observation pose is determined based on the second matching range, the initial pose and the laser radar data.
7. The method for determining a position and posture according to claim 6, characterized in that: Determining the laser observation posture based on the second matching range, the initial posture and the laser radar data includes: Based on a preset point cloud matching algorithm and the initial pose, matching processing is performed on the laser radar data within the second matching range to obtain a second candidate observation pose and a matching score corresponding to the second candidate observation pose; In response to a difference between the matching score of the first observation pose and the matching score of the second candidate observation pose being less than or equal to a second preset score difference, the second candidate observation pose is determined to be the laser observation pose.
8. The method for determining a position and posture according to claim 1, characterized in that: The fusing the initial pose and the laser observation pose based on the translation observable information to obtain the final pose comprises: In response to the appreciable translation information being sufficiently appreciable translation information, generating a slip determination result; Based on the slip judgment result, the laser observation posture is optimized by using a preset laser scanning matching algorithm to obtain a final posture.
9. The method for determining a position and posture according to claim 8, characterized in that: In response to the translation observable information being sufficient translation observable information, generating a slip determination result includes: In response to the observable translation information being sufficiently observable translation information, calculating an error between the initial posture and the laser observation posture, and generating a slip determination result based on the error and a preset error threshold; or, In response to the translation observable information being sufficiently observable information, obtaining the linear speed of the robot, and generating a slip determination result based on the linear speed and a preset speed threshold; or, In response to the observable translation information being sufficiently observable translation information, the error between the initial posture and the laser observation posture and the linear speed of the robot are calculated, and a slip judgment result is generated based on a comparison result between the error and a preset error threshold and a comparison result between the linear speed and the preset speed threshold.
10. The method for determining a position and posture according to claim 8, characterized in that: The slip judgment result includes a slip result, the preset laser scanning matching algorithm includes a position translation residual block, and based on the slip judgment result, the laser observation posture is optimized by using the preset laser scanning matching algorithm to obtain the final posture, which includes: In response to the slippage judgment result being a slippage result, reducing the weight of the position translation residual block to update the preset laser scanning matching algorithm; The laser observation posture is optimized based on the updated preset laser scanning matching algorithm to obtain the final posture.
11. A robot, characterized in that: It includes a memory and a processor, the memory is connected to the processor, the processor is used to execute one or more computer programs stored in the memory, and when the processor executes the one or more computer programs, the robot implements the robot posture determination method as described in any one of claims 1 to 10.
12. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, wherein the computer program includes program instructions, and when the program instructions are executed by a processor, the processor executes the robot posture determination method according to any one of claims 1 to 10.