Robot pose determination method, robot and storage medium

By acquiring and processing odometer data and lidar data, generating considerable translation 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 positioning determination and improvement of positioning accuracy is achieved.

CN119689496AActive Publication Date: 2025-03-25FOSHAN YINXING INTELLIGENT MFG CO LTD

Patent Information

Application Number
CN202510192925.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-02-21
Publication Date
2025-03-25
Estimated Expiration
2045-02-21

AI Technical Summary

Technical Problem

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.

Method used

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.

Benefits of technology

In an environmental area where the position change in the translation direction is not obvious, considerable translation information can be generated to distinguish the position changes of the object in the translation direction, thereby obtaining a more accurate and reliable positioning and improving the positioning accuracy of the robot.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119689496A_ABST
    Figure CN119689496A_ABST
Patent Text Reader

Abstract

The embodiment of the invention relates to the technical field of robots, and discloses a robot pose determination method, a robot and a storage medium, and the method comprises the steps: obtaining odometer data and laser radar data, then determining an initial pose based on the odometer data, and then generating translation observable information based on the laser radar data, the translation observable information is used for representing the ability of the robot to distinguish the position change of the object in the translation direction, and finally, the initial pose is optimized based on the translation observable information. For an environment area in which the position change in the translation direction is not obvious, the pose determination method can generate translation considerable information to distinguish the position change of the object in the translation direction, so that a more accurate and reliable pose is obtained, and the positioning accuracy of the robot is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present application relate to the field of robotics technology, and in particular, to a method for determining a position and posture of a robot, a robot, and a storage medium. Background Art

[0002] SLAM (Simultaneous Localization And Mapping) technology is widely used in the field of robotics to solve the positioning and mapping problems of robots when moving in unknown environments.

[0003] The robot quickly acquires 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 2D LiDAR is in a long corridor environment, the collected corridor images are similar and lack significant features, which easily leads to positioning loss or error, making it impossible to build 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 posture 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 a posture of a robot, comprising: Get 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; The initial pose is optimized based on the observable information of the translation to obtain a final pose.

[0006] In some embodiments, the laser radar data includes initial radar data and disturbance radar data, and generating 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.

[0007] In some embodiments, 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.

[0008] In some embodiments, the translationally observable information includes translating sufficiently observable information and translating unobservable information, and generating the translationally observable information based on the feature vector set includes: 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.

[0009] In some embodiments, the translationally observable information includes translating sufficiently observable information and translating unobservable information, and generating the translationally observable information based on the feature vector set includes: 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.

[0010] In some embodiments, optimizing the initial pose based on the translation observable information to obtain a final pose comprises: Determine a laser observation pose based on the initial pose and the laser radar data; The initial pose and the laser observation pose are fused based on the observable translation information to obtain a final pose.

[0011] In some embodiments, determining the laser observation pose based on the initial pose 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.

[0012] In some embodiments, determining the laser observation pose based on the second matching range, the initial pose 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.

[0013] In some embodiments, fusing the initial pose with the laser observation pose based on the translation observable information to obtain the final pose includes: In response to the information that the translation is observable being information that the translation is not observable, generating a plurality of line segments based on the laser radar data fitting; 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; The fused posture is optimized based on a preset laser scanning matching algorithm to obtain a final posture.

[0014] In some embodiments, fusing the initial pose with the laser observation pose based on the translation observable information to obtain the final pose includes: 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.

[0015] In some embodiments, in response to the translation observable information being translation sufficiently observable information, generating a slip determination result comprises: 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.

[0016] In some embodiments, 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 using the preset laser scanning matching algorithm to obtain the final posture, including: 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.

[0017] In a second aspect, some embodiments of the present application provide a robot comprising a memory and a processor, wherein the memory is connected to the processor, and 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 above.

[0018] In a third aspect, some embodiments of the present application provide a computer-readable storage medium, wherein 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 as described above.

[0019] Beneficial effects of the embodiments of the present application: Different from the prior art, the embodiment of the present application provides a method for determining the posture of a robot, which includes: obtaining odometer data and laser radar data, then determining the initial posture based on the odometer data, and then generating observable translation information based on the laser radar data, the observable translation information is used to indicate the robot's ability to distinguish the position change of an object in the translation direction, and finally optimizing the initial posture based on the observable translation information. For environmental areas where the position change in the translation direction is not obvious, the posture determination method can generate observable translation information to distinguish the position change of the object in the translation direction, thereby obtaining a more accurate and reliable posture and improving the positioning accuracy of the robot. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] One or more embodiments are exemplarily described by pictures in the corresponding drawings, and these exemplified descriptions do not constitute limitations on the embodiments. Elements with the same reference numerals in the drawings represent similar elements, and unless otherwise stated, the figures in the drawings do not constitute proportional limitations.

[0021] Figure 1 A schematic diagram of an application environment of one of the robot posture determination methods provided in this application; Figure 2 A schematic diagram of the structure of one of the robots provided in this application; Figure 3 A schematic diagram of a flow chart of a method for determining the position and posture of a robot provided in the present application; Figure 4 Provided for this application Figure 3 Schematic diagram of the process of step S30; Figure 5 Provided for this application Figure 3 Schematic diagram of the process of step S40; Figure 6 Provided for this application Figure 5 Schematic diagram of the process of step S401; Figure 7 Provided for this application Figure 5 Schematic diagram of the process of step S402; Figure 8 Provided for this application Figure 5 Another flowchart diagram of step S402 in FIG. DETAILED DESCRIPTION

[0022] The present application is 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, several variations and improvements can also be made without departing from the concept of the present application. These all belong to the protection scope of the present application.

[0023] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is 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.

[0024] 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, all within the scope of protection of the present application. In addition, although the functional module division is performed in the device schematic diagram and the logical order is shown in the flow chart, in some cases, the steps shown or described can be performed in a sequence different from the module division in the device or the flow chart. In addition, the words "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.

[0025] Unless otherwise defined, all technical and scientific terms used in this specification have the same meaning as those commonly understood by those skilled in the art to which this application belongs. The terms used in this specification and in the specification of this application are only for the purpose of describing specific embodiments and are not intended to limit this application. The term "and / or" used in this specification includes any and all combinations of one or more of the related listed items.

[0026] In addition, the technical features involved in each embodiment of the present application described below can be combined with each other as long as they do not conflict with each other.

[0027] In the embodiments of the present application, the robot may be a mobile device that can provide functional services, such as a cleaning robot, a delivery robot, a nursing robot, a remote monitoring robot, etc. The following takes the robot as an example to illustrate the method for determining the position and posture of the robot provided in the embodiments of the present application. The cleaning robot includes but is not limited to a vacuum robot, a mopping robot, or a floor washing robot.

[0028] See also Figure 1 , Figure 1 is a schematic diagram of an application environment provided by an embodiment of the present application, such as Figure 1 As shown, the application environment includes a robot 100 and a corridor 200 , wherein the laser radar 10 is installed on the robot 100 .

[0029] The laser radar 10 is disposed at the front end of the robot 100. The laser radar 10 is used to emit a laser beam, so that the laser beam reflects the laser beam after reaching an obstacle, so that the laser radar 10 receives the reflected laser beam, and determines the distance between the laser radar 10 and the obstacle according to the time difference between sending the laser beam and receiving the emitted laser beam. In some embodiments, the laser radar 10 includes but is not limited to laser radars such as pulse laser radar and continuous wave laser radar.

[0030] The robot 100 is provided with a rotating mechanism, which is a mounting frame of the laser radar 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 laser radar 10 can scan the surrounding environment and generate real-time point cloud information.

[0031] In some embodiments, the robot 100 is also equipped with a visible light camera, wherein the laser radar scans the surrounding environment of the robot 100 to obtain a laser point cloud. The visible light camera shoots the surrounding environment of the robot 100 to obtain an image. The laser radar and the visible light camera are respectively connected to the controller for communication, and the laser point cloud and the image are sent to the controller respectively. The controller calls the pre-set map-building program in the memory of the robot 100 to build an environmental map based on the laser point cloud and / or image. Among them, the map-building program may include a program corresponding to the SLAM algorithm (Simultaneous Localization and Mapping, SLAM), which will not be described 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.

[0032] It is understandable that the SLAM algorithm has both positioning and navigation functions. During the positioning process, the laser radar is controlled to rotate at high speed to emit lasers, measure the distance between the robot and the obstacle, and determine the relative position between the robot and the obstacle in combination with the map, thereby achieving positioning. In some embodiments, the robot 100 can perform visual positioning based on a visible light camera.

[0033] The controller is an electronic computing core built into the robot body, which is used to perform logical operations to achieve intelligent control of the robot. The controller communicates with the lidar and is used to build a map based on the laser point cloud data and control the robot to walk, and is also used to perform cleaning tasks based on the map.

[0034] It is 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 device, discrete gate or transistor logic, discrete hardware components, or any combination of these components. The controller can also be any traditional 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 a combination of one or more of a microcontroller unit (MCU), a field programmable gate array (FPGA), and a system on chip (SoC).

[0035] It can be understood that the robot 100 in the embodiment of the present invention also includes a storage module, which includes but is not limited to: 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) and other devices. One or more.

[0036] The robot needs to accurately sense its own position and perform precise positioning in order to draw an accurate environmental map and then complete the cleaning task based on the accurate environmental map. Figure 1 In the corridor 200 shown, the scenes are similar, and the laser frames taken at different positions may be the same or extremely similar. Therefore, the robot based on 2D lidar may lose or erroneously position itself due to the lack of significant features, resulting in inaccurate positioning, making it impossible to build a complete SLAM map, or the mapping effect may not match the actual scene.

[0037] The above application environment is only for illustrative purposes. In practical applications, the recharging method and related device provided in the following embodiments of the present invention can be further extended to other suitable application environments, and are not limited to Figure 1 The application environment shown in .

[0038] In response to the above problems, some embodiments of the present application provide a method for determining the posture of a robot, the method comprising: obtaining odometer data and lidar data, then determining the initial posture based on the odometer data, and then generating observable translation information based on the lidar data, the observable translation information being used to indicate the robot's ability to distinguish the position changes of an object in the translation direction, and finally optimizing the initial posture based on the observable translation information.

[0039] Therefore, for environmental areas where the position changes in the translation direction are not obvious, the robot's posture determination method can generate observable translation information to distinguish the position changes of the object in the translation direction, and then obtain a more accurate and reliable posture, thereby improving the robot's positioning accuracy.

[0040] Some embodiments of the present application provide a robot, see Figure 2 The robot 100 includes at least one processor 102 and a memory 103 ( Figure 2 (a bus connection and a processor are used as an example).

[0041] 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 robot posture determination methods provided in the following embodiments.

[0042] It is understandable that the processor 102 can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can 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.

[0043] The memory 103, as a non-transient computer-readable storage medium, can be used to store non-transient software programs, non-transient computer executable programs and modules, such as program instructions / modules corresponding to the posture determination method of the robot in the embodiment of the present application. The processor 102 can implement any one of the posture determination methods of the robot provided in the following embodiments by running the non-transient software programs, instructions and modules stored in the memory 103. In some embodiments, the memory 103 may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage devices. In some embodiments, the memory 103 may also include a memory remotely arranged relative to the processor, and these remote memories may be connected to the processor via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network and a combination thereof.

[0044] In some embodiments, the robot 100 may also include sensors such as a laser radar, a camera, a gyroscope, an odometer, a magnetic field meter, an accelerometer, or a speedometer. These sensors help the robot 100 sense the environment, build an environmental map, or perform other controls. It is understood that the structure of the example of 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 arrange the components differently. The illustrated components can be implemented in hardware, software, or a combination of software and hardware.

[0045] It can be understood from the above that the posture determination method of the robot provided in the embodiment of the present application can be implemented by the robot, for example, by one or more processors of the robot. In some embodiments, the posture determination method of the robot provided in the embodiment of the present application can also be implemented by other devices with computing and processing capabilities. Other devices with computing and processing capabilities can be intelligent devices that are connected to the robot in communication, such as servers.

[0046] The following describes the method for determining the position and posture of the robot provided in the embodiment of the present application in combination with the exemplary application and implementation of the robot provided in the embodiment of the present application. Figure 3 , Figure 3 1 is a flow chart of a method for determining the position and posture of a robot provided in an embodiment of the present application. It can be understood that the execution subject of the method for determining the position and posture of a robot can be one or more processors of the robot.

[0047] like Figure 3 As shown, the method S100 includes but is not limited to the following steps: S10: Obtain odometer data and lidar data; The robot's odometer data refers to the data that records the robot's own motion information during the cleaning process, which mainly includes the robot's position change, change in driving direction, and movement distance. Odometer data can be obtained through sensors such as cameras, gyroscopes, odometers, accelerometers, or speedometers.

[0048] LiDAR data is information about the surrounding environment collected by the LiDAR during operation, including point cloud information and reflection intensity information. A point cloud is a collection of a large number of three-dimensional points, each of which represents the location where the laser beam intersects the surface of an object, usually represented by (x, y, z). Reflection intensity refers to the reflection intensity of each point, which is determined by factors such as the material, color, and roughness of the surface of the object. LiDAR data can be used to obtain the surrounding environment conditions, such as the location of obstacles, obstacle identification, and planning of cleaning paths.

[0049] In some embodiments, the laser radar data is subjected to pre-processing operations such as distortion correction and filtering to obtain valid laser radar data. Valid laser radar data refers to the laser radar data obtained when the laser radar is within the ranging range. If the laser radar emits laser beyond the ranging range, the returned laser radar data is zero, which is invalid laser radar data. Through filtering and other processing operations, the invalid laser radar data is filtered out to obtain valid laser radar data, which is also the final laser radar data used for subsequent processing and analysis.

[0050] S20: Determine an initial position and posture based on the odometer data; The initial pose can be expressed as (x, y, θ), where x and y are the coordinates of the robot on the two-dimensional plane, and θ is the angle the robot is facing. For example, when θ=0°, the robot may be moving parallel to a wall of the room, and when θ=90°, the robot may be moving perpendicular to the previous direction, turning to a corner or another area.

[0051] There is a known reference point in the robot's environment, such as a base station. First, determine the coordinates of this reference point in the global coordinate system (x ref ,y ref ), and then when the robot moves from the reference point to the starting point, the odometer starts to record the motion information from the reference point (such as driving distance and direction change). By combining the reference point coordinates with the motion information of the starting point, the starting position of the robot can be obtained.

[0052] In the process of the robot moving from the starting point to the current position, the odometer data is obtained. Based on the odometer data and the starting posture, the initial posture of the robot at the current position can be obtained through integration calculation.

[0053] S30: generating translation observable information based on the laser radar data, where the translation observable information is used to indicate the robot's ability to distinguish position changes of an object in a translation direction; The observable translation information includes sufficiently observable translation information and unobservable translation information. The sufficiently observable translation information indicates that the position change of the object in the translation direction can be distinguished based on the laser radar data, and the unobservable translation information indicates that the position change of the object in the translation direction cannot be distinguished based on the laser radar data.

[0054] In a long corridor environment, the LiDAR scans the surrounding environment to obtain LiDAR data. Since the environmental scenes are relatively similar, the corresponding translation observable information is translation unobservable information. In an environment with many significant features, the LiDAR scans the surrounding environment to obtain LiDAR data. Since the environmental differences are obvious and there are many obstacles, the corresponding translation observable information is translation sufficiently observable information.

[0055] Therefore, based on the observability analysis of the lidar data, the corresponding translation observable information is obtained. The translation observable information can accurately distinguish the environment in which the lidar is located and determine whether it is in a long corridor environment. Then, based on different environments, different posture determination methods are selected to make positioning more accurate.

[0056] In some embodiments, the initial posture of the robot is slightly perturbed, and the lidar data before the disturbance and the lidar data after the disturbance are iteratively matched based on the point cloud registration algorithm (Point-to-Line ICP, PL-ICP for short) to the nearest point, and a posture-related cost function is constructed. The translation matrix corresponding to the minimum cost function is extracted to obtain the corresponding set of feature vectors, and then the corresponding translation observable information is generated based on the set of feature vectors.

[0057] LiDAR data includes initial radar data and disturbance radar data, such as Figure 4 As shown, step S30 includes: S301: 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; The following pose cost function is constructed based on the PL-ICP algorithm: (1) Among them, ai and bi are matching point pairs, bi is the initial radar data, ai is the perturbed radar data, ni is the local normal vector of bi, and i is the i-th laser point.

[0058] S302: Determine a target Hessian matrix based on the pose cost function; Obtain the target Hessian matrix corresponding to the minimized pose cost function. Formula (1) can be converted into a rotation-translation related form through mathematical derivation: F = X T HX, by differentiating the rotation and translation parameters, we can get the Jacobi matrix and the target Hessian matrix.

[0059] The specific derivation process is as follows: When the laser scanning has a small movement X=(X R ,X t ), where X R is the rotation angle, X t is the translation amount, then formula (1) can be converted to: (2) Since the radar data before and after the disturbance are the same, that is, ai=bi. Therefore, the pose cost function (2) is effective for the parameter X=(X R ,X t ) is: (3) Let a i =[a ix ,a iy ],n i =[n ix ,n iy ], expanded to: (4) The target Hessian matrix is: (5) Obviously, the pose cost function at this time can be converted to: F=X T HX (6) S303: Generate translation observable information based on the target Hessian matrix.

[0060] Firstly, the translation Hessian matrix is ​​extracted based on the target Hessian matrix, and then the translation Hessian matrix is ​​eigendecomposed to obtain a set of eigenvectors. The eigenvector set includes multiple translation eigenvectors. The translation eigenvector is used to represent the degree of degradation of the lidar data in the vector direction of the translation eigenvector. The degree of degradation is the degree of position change identified based on the lidar data. The observable information of translation is generated based on the eigenvector set.

[0061] Since positioning in a long corridor environment is prone to errors mainly because the laser data is severely degraded in the translation direction, the translation observability is mainly analyzed. In the embodiment of the present application, the translation observability is characterized by the translation feature vector, that is, the degree of degradation of the laser radar data in the translation direction.

[0062] Perform eigendecomposition on the translation Hessian matrix and obtain the eigenvector set ( ,....., ), which is the translation eigenvector The eigenvalue of the translation eigenvector is λ, and its corresponding vector direction is the normal vector direction. The magnitude of the eigenvalue λ represents the degree of degradation of the lidar data in the vector direction corresponding to the eigenvalue λ.

[0063] If the eigenvalue λ is large, the degree of degradation of the eigenvector characterizing the translation in the direction of its corresponding vector is low, the degree of position change recognized based on the lidar data is high, and the robot may be in an area with significant features. Correspondingly, if the eigenvalue λ is small, the degree of degradation of the eigenvector characterizing the translation in the direction of its corresponding vector is high, the degree of position change recognized based on the lidar data is low, and the robot may be in a long corridor area.

[0064] Thus, observable information of translation can be generated based on the feature vector set. First, the minimum translation feature vector is found in the feature vector set. In response to the minimum translation feature vector being less than or equal to the preset feature threshold, unobservable information of translation is generated. The unobservable information of translation is used to indicate that the position change of the object in the translation direction cannot be distinguished based on the laser radar data. In response to the minimum translation feature vector being greater than the preset feature threshold, sufficiently observable information of translation is generated. The sufficiently observable information of translation is used to indicate that the position change of the object in the translation direction can be distinguished based on the laser radar data.

[0065] The feature vector set ( ,....., ), in the direction of the eigenvector corresponding to each eigenvalue λ, the pose cost function is: (7) The minimum translation eigenvector in the eigenvector set is , we only need to replace the minimum translation eigenvector It can be compared with the preset feature threshold. From the above implementation, it can be seen that when the minimum translation feature vector When λmin is very small (the eigenvalue λmin is very small), it indicates that the laser in this frame is degenerate in the vector direction corresponding to λmin (the direction of its normal vector), that is, when the same amplitude of movement occurs, the value of F in the corresponding vector direction is smaller than the value of F in any other direction.

[0066] If λmin is less than or equal to the preset feature threshold, it means that the robot movement causes a small change in the pose cost function, and the degree of degradation in the vector direction corresponding to λmin is high. Based on the lidar data, it is impossible to distinguish the position change of the object in the translation direction, and the corresponding translation observable information is translation unobservable information.

[0067] If λmin is greater than the preset feature threshold, it indicates that the corresponding eigenvalue is large, and there is no serious degradation problem in any direction of the laser frame. Based on the lidar data, the position change of the object in the translation direction can be distinguished. The corresponding translation observable information is sufficiently observable information, and the robot is likely to be in an environment with more significant features.

[0068] Among them, the preset feature threshold can be set as needed. In the embodiment of the present application, the preset feature threshold is zero. If λmin=0, it represents that the corresponding posture cost function F is always zero, and movement will not cause the posture cost function to change. The vector direction corresponding to the eigenvalue is the direction in which the laser data is completely degraded, and the robot is more likely to be in a long corridor environment.

[0069] In some embodiments, the degree and direction of degradation of the laser data may also be determined by the relative size of the maximum translation eigenvector and the minimum translation eigenvector.

[0070] First, the maximum translation feature vector and the minimum translation feature vector are found in the feature vector set. In response to the ratio of the maximum translation feature vector to the minimum translation feature vector being greater than or equal to the preset ratio threshold, the information that the translation is unobservable is generated. In response to the ratio of the maximum translation feature vector to the minimum translation feature vector being less than the preset ratio threshold, the information that the translation is sufficiently observable is generated.

[0071] The maximum translation eigenvector in the eigenvector set is , the minimum translation eigenvector is If the ratio of the two (the ratio of the corresponding eigenvalues) exceeds the preset threshold, it means that there are more point cloud distributions in the x direction and fewer or even no point cloud distributions in the y direction. This means that the lidar data is severely degraded when the laser point is translated in one direction, and the observable information of the translation is unobservable information of the translation. The robot is likely to be in a long corridor environment.

[0072] Correspondingly, if the ratio of the two (the ratio of the corresponding eigenvalues ​​of the two) does not exceed the preset threshold, the corresponding observable translation information is sufficiently observable translation information, the lidar data has not been seriously degraded, and the robot is likely to be in an environment with more significant features.

[0073] Therefore, based on the lidar data, a translation Hessian matrix can be obtained, and then based on the translation Hessian matrix, a set of eigenvectors can be obtained. Based on the size of the minimum translation eigenvector in the eigenvector set or based on the ratio between the maximum translation eigenvector and the minimum translation eigenvector in the eigenvector set, the corresponding translation observable information can be generated.

[0074] If the observable information of translation is sufficiently observable information of translation, it indicates that the LiDAR data has not been seriously degraded, and the robot is likely to be in an environment with many significant features. If the observable information of translation is unobservable information of translation, it indicates that the LiDAR data has been seriously degraded in the vector direction, and the robot is likely to be in a long corridor environment.

[0075] That is, based on the observable information of translation, the robot's environment can be accurately determined to improve the accuracy of subsequent posture determination and improve the accuracy of positioning.

[0076] S40: Optimizing the initial pose based on the translation observable information to obtain a final pose.

[0077] Based on the observable information of translation, the environment in which the robot is located can be determined. Different environments have different corresponding optimization measures. Different optimization measures are taken to optimize the initial posture of the robot in a targeted manner, and the final posture is more accurate.

[0078] like Figure 5 As shown, step S40 includes: S401: Determine a laser observation posture based on the initial posture and the laser radar data; Based on the lidar data, relevant scan matching is performed to locally optimize the initial pose and obtain the locally optimized pose, i.e., the laser observation pose.

[0079] In some embodiments, Figure 6 As shown, step S401 includes: S4011: 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; The default point cloud matching algorithm is the Correlation Scan Matching (CSM) algorithm, which calculates the correlation between the LiDAR data and the probability map (two-dimensional grid map) under different pose assumptions, and finds the pose with the highest correlation as the candidate pose of the robot. Normalized Cross-Correlation and other methods are usually used to calculate the correlation between the LiDAR scan data and the probability map under different poses.

[0080] First, determine the first matching range, which is the range of posture variation set around the initial posture, such as ±Δx, ±Δy in the x and y directions, and ±Δθ at the angle θ. Then, within the first matching range, sample the possible postures according to a certain step size to obtain a series of hypothesized postures (xi, yi, θi), where i=1,2,...,n, and n is the number of hypothesized postures.

[0081] For each assumed pose, each distance measurement value of the lidar data is converted to the coordinate system of the probability map according to the pose, and the converted coordinates (X, Y) are obtained, which are the converted lidar data. The correlation between the converted lidar data and the corresponding area in the probability map is calculated, that is, the matching score.

[0082] Each hypothesized pose corresponds to a matching score, and the hypothesized pose (xbest, ybest, θbest) with the highest matching score is obtained. The hypothesized pose (xbest, ybest, θbest) with the highest matching score is taken as the first candidate observation pose, and its corresponding matching score is the matching score of the first candidate observation pose.

[0083] S4012: Obtaining a matching score of a first observation posture at a previous moment, where the previous moment is a moment adjacent to the target moment and arranged before the target moment; S4013: In response to the difference between the matching score of the first observation posture and the matching score of the first candidate observation posture being greater than a first preset score difference, setting a second matching range, wherein the second matching range is greater than the first matching range; If the time corresponding to the initial posture is the target time Tj, the matching score of the first candidate observation posture is Pj. Then the previous time of the target time is T j-1 , T j-1 The observation posture corresponding to the moment is the first observation posture, which is also obtained by the preset point cloud matching algorithm in the above embodiment. j-1 Among the hypothetical poses corresponding to the time, the hypothetical pose with the highest matching score, the matching score corresponding to the first observed pose is P j-1 .

[0084] The matching score P of the first observation pose j-1 Compare with the matching score Pj of the first candidate observation pose. If the matching score Pj of the first observation pose j-1 The difference between the matching score Pj of the first candidate observation pose and the matching score Pj of the first observation pose is greater than the first preset score difference, then the matching score Pj of the first candidate observation pose is characterized by the matching score Pj of the first candidate observation pose relative to the matching score Pj of the first observation pose. j-1 The matching score Pj of the first candidate observation pose is significantly reduced, the correlation is low, and the robot's surrounding environment may mutate or the data may be abnormal. In this case, the matching range needs to be expanded and the relevant scanning and matching needs to be performed again with a larger second matching range.

[0085] If the matching score P of the first observation pose j-1 The difference between the matching score Pj of the first candidate observation pose and the matching score Pj of the first observation pose is less than or equal to the first preset score difference, then the matching score Pj of the first candidate observation pose is characterized by the matching score Pj of the first candidate observation pose relative to the matching score Pj of the first observation pose. j-1 If the change is small, the first observation pose is determined as the laser observation pose.

[0086] The first observation pose is the laser observation pose at the previous moment that has been determined, and its matching score P j-1 Higher to match the score P j-1 As a benchmark, determine whether the first candidate observation pose is accurate. If it is inaccurate or unreliable, expand the matching range to obtain a more accurate candidate observation pose within a larger matching range.

[0087] S4014: Determine the laser observation pose based on the laser radar data of the second matching range and the initial pose.

[0088] Similar to the above embodiment, the preset point cloud matching algorithm and the initial posture are also adopted. Within the second matching range, multiple hypothesized postures and corresponding matching scores are obtained, and then the hypothesized posture with the highest matching score is determined as the second candidate observation posture. The matching score of the second candidate observation posture is then compared with the matching score of the first observation posture to determine whether the second candidate observation posture is accurate or reliable.

[0089] In some embodiments, the lidar data is first matched within a second matching range based on a preset point cloud matching algorithm and an initial pose 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 to be a laser observation pose.

[0090] The specific process is similar to the above embodiment and will not be repeated here. Accordingly, the difference between the matching score of the first observation posture and the matching score of the second candidate observation posture is less than or equal to the second preset score difference, indicating that the matching score has increased compared with the previous moment, and the second candidate observation posture is better, and the second candidate observation posture is determined as the laser observation posture.

[0091] 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 the first preset score threshold, the matching range is further expanded and matching is performed again to find a better candidate observation pose as the laser observation pose.

[0092] S402: Based on the observable translation information, the initial pose and the laser observation pose are fused to obtain a final pose.

[0093] The initial pose determined based on the odometer data is fused with the laser observation pose obtained after local optimization, and different fusion measures are taken according to the different environments in which the robot is located to obtain a more accurate final pose.

[0094] In some embodiments, Figure 7 As shown, step S402 includes: S4021: In response to the information that the translation is observable being information that the translation is not observable, generating a plurality of line segments based on the laser radar data by fitting; The information of translation observable is the information of translation unobservable, which indicates that the robot is in a long corridor environment with a high probability. In the 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.

[0095] S4022: 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; The robot obtains lidar data through laser scanning, generates multiple line segments based on the lidar data fitting, and selects line segments greater than a preset length threshold from the multiple line segments, that is, selects long line segments with a certain length, and determines the selected long line segments as target line segments.

[0096] If there is no line segment greater than a preset length threshold among the multiple line segments, that is, there is no long line segment among the 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.

[0097] S4023: 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; If the difference between the slopes of the two target line segments is less than the preset slope difference, it indicates that the slopes of the two target line segments are close, the two target line segments are almost parallel or parallel, and it is determined that the environment in which the robot is located is a long corridor environment.

[0098] For a long corridor environment, the translation value measured by the odometer is more trusted, so the translation value in the laser observation pose is replaced by the translation value in the initial pose, and the other values ​​in the laser observation pose remain unchanged to obtain a fused pose.

[0099] S4024: Optimize the fusion posture based on a preset laser scanning matching algorithm to obtain a final posture.

[0100] In the embodiment of the present application, the preset laser scan matching algorithm is the Ceres scan matcher, which mainly adopts a nonlinear 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, and find the best transformation relationship between two or more point clouds collected at different times, so that they can be accurately aligned, thereby determining the final position and posture of the laser radar.

[0101] 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 between the laser scan data and the previously constructed map. If the Ceres scan matcher eventually converges to a local minimum, the corresponding robot pose is the most accurate pose. The robot pose corresponding to the Ceres scan matcher when it converges is used as the final pose of the laser radar.

[0102] In some embodiments, Figure 8 As shown, step S402 also includes: S4025: In response to the appreciable translation information being sufficiently appreciable translation information, generating a slippage determination result; The observable translation information is sufficiently observable translation information, which indicates that the robot is located in an environment with more significant features (non-corridor environment) with a high probability. In this case, it is necessary to confirm again whether the change in the lidar data is partly due to the slipping of the robot's wheels, so as to adopt different posture correction parameters.

[0103] There are many ways to determine whether the robot is slipping, such as the robot's linear velocity and / or the error between the initial pose and the laser observed pose.

[0104] In some embodiments, whether the robot is slipping is determined by the error between the initial posture and the laser observation posture: the error between the initial posture and the laser observation posture is calculated, and a slip judgment result is generated based on the error and a preset error threshold.

[0105] In some embodiments, if the error is greater than or equal to a preset error threshold, the generated slip judgment result is a slip result, wherein the preset error threshold can be set as needed.

[0106] In some embodiments, whether the robot is slipping is determined by the linear speed of the robot: the linear speed of the robot is obtained, and a slipping judgment result is generated based on the linear speed and a preset speed threshold.

[0107] In some embodiments, if the linear speed is greater than or equal to a preset speed threshold, the generated slippage judgment result is a slippage result, wherein the preset speed threshold can be set as required.

[0108] In some embodiments, whether the robot is slipping is determined by the robot's linear speed and the error between the initial posture and the laser observed posture: the error between the initial posture and the laser observed posture and the linear speed of the robot are calculated, and a slip judgment result is generated based on the comparison result between the error and a preset error threshold and the comparison result between the linear speed and a preset speed threshold.

[0109] In some embodiments, if the error is greater than or equal to a preset error threshold, and the linear speed is greater than or equal to a preset speed threshold, the generated slip judgment result is a slip result. The above two conditions are used to jointly judge whether the robot has slipped, and the judgment is more accurate.

[0110] S4026: Based on the slip judgment result, a preset laser scanning matching algorithm is used to optimize the laser observation posture to obtain a final posture.

[0111] Based on whether the robot slips, the weights of different constraint items in the preset laser scanning matching algorithm are adaptively adjusted to obtain a more accurate posture.

[0112] In some embodiments, the preset laser scanning matching algorithm includes a position translation residual block, which is a residual function constraint item in the preset laser scanning matching algorithm. If the slip judgment result is that a slip result occurs, the weight of the position translation residual block is reduced to update the preset scanning matching algorithm, and then the laser observation posture is optimized based on the updated preset laser scanning matching algorithm to obtain the final posture.

[0113] Among them, the laser observation posture is optimized based on the updated preset laser scanning matching algorithm, which is similar to the optimization process in the above embodiment and will not be repeated here. When the preset laser scanning matching algorithm converges to a local minimum, the posture of the corresponding robot is the most accurate posture, and the posture of the robot corresponding to the updated preset laser scanning matching algorithm when it converges is determined as the final posture.

[0114] In summary, the robot's posture determination method can generate observable translation information to distinguish the position change of the object in the translation direction, and then obtain a more accurate and reliable posture, thereby improving the positioning accuracy of the robot.

[0115] An embodiment of the present application also provides a computer-readable storage medium, which stores computer-executable instructions, and the computer-executable instructions are used to enable an electronic device to execute the robot posture determination method provided in the embodiment of the present application.

[0116] In some embodiments, the storage medium may be a memory such as FRAM, ROM, PROM, EPROM, EE PROM, flash memory, magnetic surface memory, optical disk, or CD-ROM; or may be various devices including one or any combination of the above memories.

[0117] In some embodiments, 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 as a stand-alone program or as a module, component, subroutine or other unit suitable for use in a computing environment.

[0118] As an example, executable instructions may, but need not necessarily, correspond to a file in a file system, may be stored as part of a file storing other programs or data, such as in one or more scripts in a HyperText Markup Language (HTML) document, in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subroutines, or code portions).

[0119] As an example, executable instructions may be deployed to be executed on one computing device (including devices such as smart terminals and servers), or on multiple computing devices located in one location, or on multiple computing devices distributed in multiple locations and interconnected by a communication network.

[0120] It should be noted that the device embodiments described above are merely illustrative, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0121] Through the description of the above embodiments, it can be clearly understood by those skilled in the art that each embodiment can be implemented by means of software plus a general hardware platform, or by hardware. It can be understood by those skilled in the art that all or part of the processes in the above embodiment methods can be completed by instructing the relevant hardware through a computer program, and the program can be stored in a computer-readable storage medium, and when the program is executed, it can include the processes of the embodiments of the above methods. Among them, the storage medium can be a disk, an optical disk, a read-only memory (ROM) or a random access memory (RAM), etc.

[0122] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Under the concept of the present application, the technical features in the above embodiments or different embodiments can also be combined, the steps can be implemented in any order, and there are many other changes in different aspects of the present application as described above, which are not provided in detail for the sake of simplicity. Although the present application has been described in detail with reference to the aforementioned embodiments, a person of ordinary skill in the art should understand that the technical solutions described in the aforementioned embodiments can still be modified, or some of the technical features can be replaced by equivalents. These modifications or replacements do not deviate the essence of the corresponding technical solutions 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: Get 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; The initial pose is optimized based on the observable information of the translation to obtain a final 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 translation observable information includes translation sufficiently observable information and translation unobservable information, and the generating of the translation observable information based on the feature vector set includes: 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 translation observable information includes translation sufficiently observable information and translation unobservable information, and the generating of the translation observable information based on the feature vector set includes: 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: 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; The initial pose and the laser observation pose are fused based on the observable translation information to obtain a final pose.

7. The method for determining a position and posture according to claim 6, 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.

8. The method for determining a position and posture according to claim 7, 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.

9. The method for determining a position and posture according to claim 6, 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 information that the translation is observable being information that the translation is not observable, generating a plurality of line segments based on the laser radar data fitting; 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; The fused posture is optimized based on a preset laser scanning matching algorithm to obtain a final posture.

10. The method for determining a position and posture according to claim 6, 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.

11. The method for determining a position and posture according to claim 10, 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.

12. The method for determining a position and posture according to claim 10, 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.

13. 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-12.

14. 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 12.

Citation Information

Patent Citations

  • Scanning matching method and system based on historical multi-frame point cloud information fusion

    CN109848988A

  • Slipping detection method of self-moving equipment, computer medium and self-moving equipment

    CN117073665A

  • Mobile robot slip detection method, system, medium and equipment

    CN117805840A

  • Positioning scene degradation processing method of robot, and rapid positioning method and system

    CN118363008A

  • Mobile robot mapping chip and mobile robot

    CN118365519A

Cited By

  • Slipping detection method and device, electronic equipment and storage medium

    CN120471960A