Method and device for determining posture, electronic device and storage medium

By obtaining the robot's wheel speed and point cloud data, combined with wheel slip and dynamic object information, the robot's posture is determined, solving the problem of inaccurate posture at low cost in existing technologies and achieving accurate posture determination in multiple scenarios.

CN115164874BActive Publication Date: 2025-09-09苏州盈科电子有限公司
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210793677.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-07-05
Publication Date
2025-09-09
Estimated Expiration
2042-07-05

AI Technical Summary

Technical Problem

Existing technologies have difficulty in accurately determining the position and posture of a mobile robot while maintaining low costs, especially when the wheels slip or there are dynamic objects in the environment, resulting in inaccurate position and posture determination.

Method used

By obtaining the first and second wheel speeds of the robot, the wheel slip information is determined. Combined with the dynamic object information in the point cloud of two adjacent frames, the robot's position and posture are determined by using data fusion and constraint functions of different sensors.

Benefits of technology

The accuracy of the robot's posture is improved in common scenarios, and errors caused by wheel slip and dynamic objects are reduced without the need for adding high-cost high-precision sensors.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115164874B_ABST
    Figure CN115164874B_ABST
Patent Text Reader

Abstract

The present disclosure relates to a method and device, electronic device, and storage medium for determining posture, including: obtaining a first wheel speed and a second wheel speed of a robot, wherein the first wheel speed and the second wheel speed are measured by different sensors; determining wheel slip information indicating whether the robot's wheels are slipping based on the first wheel speed and the second wheel speed; determining dynamic object information describing the movement of objects around the robot based on two adjacent frames of point clouds describing the distribution of objects around the robot; and determining the posture of the robot based on the wheel slip information and the dynamic object information. The method according to the embodiment of the present disclosure can reduce the probability of inaccurate determination of the robot's posture due to inaccurate odometer measurement data in common scenarios, thereby improving the accuracy of the determined posture. Furthermore, the method according to the embodiment of the present disclosure can obtain accurate robot posture while maintaining low cost.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of automation, and in particular to a method and device for determining posture, an electronic device, and a storage medium. Background Art

[0002] With the advent of the artificial intelligence era, the development and manufacturing of mobile robots have developed rapidly and have been applied in multiple industries.

[0003] In most scenarios, a mobile robot must first determine its own position and posture before it can perform subsequent tasks. Therefore, obtaining an accurate position and posture is one of the key points in mobile robot research.

[0004] Although there are various methods in the related art for determining the position and posture of a mobile robot, each of these methods has its own drawbacks and cannot obtain an accurate position and posture of the robot while maintaining a low cost. Summary of the Invention

[0005] In view of this, the present disclosure proposes a solution for determining posture.

[0006] According to one aspect of the present disclosure, a method for determining a posture is provided, comprising:

[0007] Obtaining a first wheel speed and a second wheel speed of the robot, where the first wheel speed and the second wheel speed are measured by different sensors;

[0008] determining wheel slip information indicating whether a wheel of the robot is slipping based on the first wheel speed and the second wheel speed;

[0009] Determining dynamic object information describing movement of objects around the robot based on two adjacent frames of point clouds describing distribution of objects around the robot;

[0010] The position and posture of the robot are determined based on the wheel slip information and the dynamic object information.

[0011] In one possible implementation, determining the position and posture of the robot based on the wheel slip information and the dynamic object information includes:

[0012] When it is determined that the wheel is slipping and there are no dynamic objects in the environment of the robot, the posture of the robot is determined based on the point cloud.

[0013] In one possible implementation, determining the position and posture of the robot based on the wheel slip information and the dynamic object information includes:

[0014] When it is determined that the wheel is slipping and there is a dynamic object in the environment of the robot, the posture of the robot is determined based on point clouds other than the point cloud representing the dynamic object.

[0015] In one possible implementation, determining the position and posture of the robot based on the wheel slip information and the dynamic object information includes:

[0016] When it is determined that the wheel is not slipping and there are dynamic objects in the environment of the robot, the posture of the robot is determined according to the first wheel speed and / or the second wheel speed.

[0017] In one possible implementation, determining the position and posture of the robot based on the wheel slip information and the dynamic object information includes:

[0018] When it is determined that the wheel is not slipping and there are no dynamic objects in the environment of the robot, the posture of the robot is determined based on fusion data of the first wheel speed or the second wheel speed and the point cloud.

[0019] In one possible implementation, determining the position and posture of the robot based on the point cloud includes:

[0020] Determine the lidar scanning range at the adjacent moment based on the lidar scanning range at the first moment, the time difference between the first moment and an adjacent moment, and the change in the scanning coordinates of at least one point in the point cloud at the adjacent moment relative to the first moment;

[0021] Determining a constraint function according to the laser radar scanning range at the first moment and the laser radar scanning range at the adjacent moment;

[0022] determining a velocity of the robot based on at least three points in the point cloud at a current moment and the constraint function;

[0023] The position and posture of the robot are determined according to the speed of the robot.

[0024] In one possible implementation, determining the speed of the robot based on at least three points in the point cloud at a current moment and the constraint function includes:

[0025] Obtaining polar coordinates of at least three points in the point cloud at the current moment in a preset polar coordinate system and Cartesian coordinates in a Cartesian coordinate system;

[0026] The velocity of the robot is determined based on the polar coordinates, the Cartesian coordinates and the constraint function.

[0027] According to another aspect of the present disclosure, there is provided an apparatus for determining a posture, comprising:

[0028] a wheel speed acquisition unit, configured to acquire a first wheel speed and a second wheel speed of the robot, wherein the first wheel speed and the second wheel speed are measured by different sensors;

[0029] a wheel slip information determining unit, configured to determine wheel slip information indicating whether a wheel of the robot is slipping based on the first wheel speed and the second wheel speed;

[0030] a dynamic object information determining unit, configured to determine dynamic object information describing movement of objects around the robot based on two adjacent frames of point clouds describing distribution of objects around the robot;

[0031] A posture determination unit is used to determine the posture of the robot based on the wheel slip information and the dynamic object information.

[0032] In a possible implementation, the posture determination unit includes:

[0033] The first posture determination subunit is used to determine the posture of the robot based on the point cloud when it is determined that the wheel is slipping and there are no dynamic objects in the environment of the robot.

[0034] In a possible implementation, the posture determination unit includes:

[0035] The second posture determination subunit is used to determine the posture of the robot based on point clouds other than the point cloud representing the dynamic object when it is determined that the wheel is slipping and there is a dynamic object in the environment of the robot.

[0036] In a possible implementation, the posture determination unit includes:

[0037] The third posture determination subunit is configured to determine the posture of the robot according to the first wheel speed and / or the second wheel speed when it is determined that the wheel is not slipping and there are dynamic objects in the environment of the robot.

[0038] In a possible implementation, the posture determination unit includes:

[0039] The fourth posture determination subunit is used to determine the posture of the robot based on the fusion data of the first wheel speed or the second wheel speed and the point cloud when it is determined that the wheel is not slipping and there are no dynamic objects in the environment of the robot.

[0040] In a possible implementation, the first posture determination subunit includes:

[0041] an adjacent-time scanning range determining unit, configured to determine the lidar scanning range at the adjacent time according to the lidar scanning range at the first time, the time difference between the first time and the adjacent time, and the change in the scanning coordinates at the adjacent time relative to at least one point in the point cloud at the first time;

[0042] A constraint function determining unit, configured to determine a constraint function according to the laser radar scanning range at the first moment and the laser radar scanning range at the adjacent moment;

[0043] a robot speed determination unit, configured to determine the speed of the robot based on at least three points in the point cloud at a current moment and the constraint function;

[0044] The first posture determination subunit is used to determine the posture of the robot according to the speed of the robot.

[0045] In a possible implementation, the robot speed determination unit includes:

[0046] a point coordinate determining unit, configured to obtain polar coordinates of at least three points in the point cloud at the current moment in a preset polar coordinate system and Cartesian coordinates in a Cartesian coordinate system;

[0047] The robot speed determination subunit is used to determine the speed of the robot based on the polar coordinates, the Cartesian coordinates, and the constraint function.

[0048] According to another aspect of the present disclosure, an electronic device is provided, comprising: a processor; and a memory for storing processor-executable instructions; wherein the processor is configured to implement the above method when executing the instructions stored in the memory.

[0049] According to another aspect of the present disclosure, a non-volatile computer-readable storage medium is provided, on which computer program instructions are stored, wherein the computer program instructions implement the above method when executed by a processor.

[0050] According to another aspect of the present disclosure, a computer program product is provided, including a computer-readable code, or a non-volatile computer-readable storage medium carrying the computer-readable code. When the computer-readable code runs in a processor of an electronic device, the processor in the electronic device executes the above method.

[0051] By obtaining the wheel speeds of the robot measured by different sensors: a first wheel speed and a second wheel speed; determining wheel slip information indicating whether the robot's wheels are slipping based on the first wheel speed and the second wheel speed; determining dynamic object information describing the movement of objects around the robot based on two adjacent frames of point clouds describing the distribution of objects around the robot; and then determining the robot's posture based on the wheel slip information and the dynamic object information. According to various aspects of the present disclosure, the probability of inaccurate robot posture determination due to inaccurate odometer data in common scenarios can be reduced; because the influence of wheel slip and / or dynamic objects on the determination of the robot's posture is taken into account, the accuracy of the determined posture is improved. As a result, it is possible to obtain a relatively accurate robot position without adding high-cost high-precision sensors to the robot. That is, the method of the embodiment of the present disclosure can obtain accurate robot posture while maintaining low costs.

[0052] Further features and aspects of the present disclosure will become apparent from the following detailed description of exemplary embodiments with reference to the attached drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0053] The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate exemplary embodiments, features, and aspects of the disclosure and, together with the description, serve to explain the principles of the disclosure.

[0054] Figure 1 A flowchart of a method for determining a posture according to an embodiment of the present disclosure is shown.

[0055] Figure 2 A flowchart of a method for determining a posture according to an embodiment of the present disclosure is shown.

[0056] Figure 3 A block diagram of an apparatus for determining a posture according to an embodiment of the present disclosure is shown.

[0057] Figure 4 A block diagram of an electronic device according to an embodiment of the present disclosure is shown.

[0058] Figure 5 A block diagram of another electronic device according to an embodiment of the present disclosure is shown. DETAILED DESCRIPTION

[0059] Various exemplary embodiments, features, and aspects of the present disclosure will be described in detail below with reference to the accompanying drawings. The same reference numerals in the accompanying drawings represent elements with the same or similar functions. Although various aspects of the embodiments are shown in the accompanying drawings, the drawings are not necessarily drawn to scale unless otherwise indicated.

[0060] The word “exemplary” is used exclusively herein to mean “serving as an example, example, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.

[0061] In addition, numerous specific details are provided in the following detailed description to better illustrate the present disclosure. Those skilled in the art will appreciate that the present disclosure can be practiced without certain specific details. In some instances, methods, means, components, and circuits well known to those skilled in the art are not described in detail in order to highlight the main points of the present disclosure.

[0062] With the advent of the artificial intelligence era, the development and manufacturing of mobile robots have developed rapidly and have been applied in multiple industries.

[0063] In most scenarios, a mobile robot must first determine its own position and posture before it can perform subsequent tasks. Therefore, how to obtain an accurate position and posture is one of the key points in the research of mobile robots.

[0064] In related technologies, sensors can be used to obtain the position and posture of a robot.

[0065] However, the accuracy of some sensors is proportional to their cost. In order to obtain more accurate posture, high-precision sensors are required, which will increase the cost of the robot.

[0066] While some sensors, such as odometers, are inexpensive, their accuracy depends on the application scenario. In some common scenarios, it's impossible to accurately determine the robot's position and posture.

[0067] Typically, an odometer can be used to obtain the robot's travel data, such as speed, acceleration, etc. Based on the robot's travel data, the robot's position and posture can be determined.

[0068] The more commonly used odometry types are wheel odometry or laser odometry. However, the accuracy of wheel odometry is limited by the normal rotation of the robot's wheels. If the wheels slip or spin, the data measured by the wheel odometry will be inaccurate, which in turn will lead to inaccurate movement data and position of the robot. If a laser odometry is used, since the laser odometry determines the robot's movement data through the point cloud it generates, the accuracy of the laser odometry data is limited by the point cloud. If there are dynamic objects in the robot's environment, part of the point cloud will be moving. In this case, it is impossible to obtain accurate movement data of the robot based on the point cloud generated by the laser odometry, and thus it is impossible to obtain the accurate position of the robot.

[0069] In summary, when determining the robot's posture, it is impossible to obtain optimal results in terms of cost and accuracy, which brings great obstacles to the manufacture and application of mobile robots.

[0070] Therefore, the embodiments of the present disclosure provide a method for determining the posture of a robot, which can obtain a more accurate posture of the robot at a lower cost.

[0071] Figure 1 A flow chart of a method for determining a posture according to an embodiment of the present disclosure is shown. Figure 1 As shown, the method for determining the posture includes:

[0072] S11, obtaining a first wheel speed and a second wheel speed of the robot, where the first wheel speed and the second wheel speed are measured by different sensors.

[0073] The robot of the embodiment of the present disclosure may be a mobile robot, and the position and orientation information of the robot are to be determined.

[0074] The robot may have wheels for traveling. The rotational speed of the wheels is referred to as wheel speed. In the disclosed embodiment, two different sensors may be used to measure the wheel speeds, and the measured wheel speeds may be named first wheel speed and second wheel speed, respectively.

[0075] For example, a wheel odometer or laser odometer with low cost but high measurement accuracy may be used to measure the wheel speed, and this wheel speed may be named the first wheel speed; an inertial measurement unit (IMU) may be used to measure the wheel speed, and this wheel speed may be named the second wheel speed.

[0076] The first wheel speed and the second wheel speed here can be the wheel speeds of the robot measured by two different sensors at the same moment, or the average speed of the wheel rotation of the robot when it moves from one position to another.

[0077] The primary error in using an IMU is the cumulative error generated by continuous wheel speed measurement. While the initial wheel speed measurement by the IMU is relatively accurate, the cumulative error increases over time. While high-precision IMUs can control this cumulative error within a certain range to meet wheel speed accuracy requirements, they are expensive.

[0078] Considering that in the embodiment of the present disclosure, only the wheel slip information needs to be determined by the IMU, and there is no need to measure the wheel speed for a long time, the IMU in the embodiment of the present disclosure can be a low-cost, low-precision IMU to reduce the cost of the robot.

[0079] S12: Determine wheel slip information indicating whether wheels of the robot are slipping based on the first wheel speed and the second wheel speed.

[0080] In the embodiment of the present disclosure, a wheel speed difference threshold may be set, and the difference between the first wheel speed and the second wheel speed may be compared with the wheel speed difference threshold to determine wheel slip information.

[0081] The difference between the first wheel speed and the second wheel speed can be represented by a difference or ratio between the first wheel speed and the second wheel speed. The disclosed embodiments do not limit the representation of the difference between the first wheel speed and the second wheel speed. When the difference is compared with a wheel speed difference threshold and meets a preset condition, wheel slip information can be determined. Wheel slip information may include: wheel slip, wheel non-slip, etc.

[0082] For example, a preset condition can be set: if the absolute value of the difference between the first and second wheel speeds is less than a wheel speed difference threshold, the wheel slip information is determined to be non-slip. Conversely, if the absolute value of the difference between the first and second wheel speeds is greater than or equal to the wheel speed difference threshold, the wheel slip information is determined to be slip.

[0083] The specific value of the wheel speed difference threshold can be obtained based on experience. For example, the wheel speed difference value in a slipping situation and the wheel speed difference value in a non-slipping situation can be observed to obtain the wheel speed difference threshold used to determine whether the wheel is slipping.

[0084] S13: Determine dynamic object information describing movement of objects around the robot based on two adjacent frames of point clouds describing distribution of objects around the robot.

[0085] In the disclosed embodiments, a robot may include a laser transmitter and a laser receiver. The robot can emit laser light at a preset frequency within its environment. The laser light strikes other objects in the environment and is reflected back to the robot, where it is received by the laser receiver. Based on the received laser light, a point cloud describing the distribution of objects around the robot can be generated.

[0086] Since the laser is emitted at a certain frequency, each emission can form a frame of point cloud; two consecutive emissions can form two adjacent frames of point cloud.

[0087] Since the points in the point cloud representing the same object have a relatively stable geometric relationship, it is possible to determine whether the relative position of the point representing a certain object and other points in the point cloud has changed in two adjacent frames of point cloud. Based on this, it is possible to determine whether there are dynamic objects in the environment.

[0088] In the embodiment of the present disclosure, determining the dynamic object information may include determining whether there is a dynamic object in the environment where the robot is located, identifying a point cloud representing the dynamic object, etc.

[0089] The embodiment of the present disclosure does not limit the order of S12 and S13.

[0090] S14: Determine the posture of the robot based on the wheel slip information and the dynamic object information.

[0091] Since wheel slippage will affect the accuracy of the data measured by the wheel odometer, in the case of wheel slippage, the data measured by the wheel odometer may have large errors, which in turn will affect the accuracy of determining the robot's position.

[0092] In addition, if there are dynamic objects in the robot's environment, the data measured by the laser odometry may have large errors, which will affect the accuracy of determining the robot's position.

[0093] Therefore, when determining the robot's posture, wheel slip information and dynamic object information can be referred to to reduce the probability of wheel slip and / or dynamic objects affecting the determination of the robot's posture, thereby improving the accuracy of determining the robot's posture.

[0094] In an embodiment of the present disclosure, first, the wheel speeds of the robot measured by different sensors are obtained: a first wheel speed and a second wheel speed; wheel slip information indicating whether the robot's wheels are slipping is determined based on the first wheel speed and the second wheel speed; dynamic object information describing the movement of objects around the robot is determined based on two adjacent frames of point clouds describing the distribution of objects around the robot; and then, the robot's posture is determined based on the wheel slip information and the dynamic object information. The method of the embodiment of the present disclosure can reduce the probability of inaccurate robot posture determination due to inaccurate odometer data in common scenarios; because the influence of wheel slip and / or dynamic objects on the determination of the robot's posture is taken into account, the accuracy of the determined posture is improved. As a result, a relatively accurate robot position can be obtained without adding high-cost, high-precision sensors to the robot. That is, the method of the embodiment of the present disclosure can obtain accurate robot posture while maintaining low costs.

[0095] In one possible implementation, determining the posture of the robot based on the wheel slip information and the dynamic object information includes: when it is determined that the wheel is slipping and there are no dynamic objects in the environment of the robot, determining the posture of the robot based on the point cloud.

[0096] If the wheel slip information indicates wheel slippage, the data measured by the wheel odometry may contain large errors. Therefore, in this case, if the wheel odometry data is used to determine the robot's position, it may result in inaccurate position.

[0097] If the dynamic object information indicates that there are no dynamic objects in the robot's environment, it means that the change in the position of the points in each frame point cloud is caused by the change in the robot's posture. Therefore, the point cloud can be used to determine the robot's posture.

[0098] Therefore, when the robot's wheels slip and there are no dynamic objects in the robot's environment, the robot's position and posture can be determined based on the point cloud. Therefore, in the scenario of the robot's wheels slipping, a relatively accurate robot position and posture can be obtained without significantly increasing the cost.

[0099] In one possible implementation, determining the posture of the robot based on the point cloud includes: determining the lidar scanning range at the adjacent moment according to the lidar scanning range at the first moment, the time difference between the first moment and the adjacent moment, and the change in the scanning coordinates of at least one point in the point cloud at the first moment; determining a constraint function according to the lidar scanning range at the first moment and the lidar scanning range at the adjacent moment; determining the speed of the robot based on at least three points in the point cloud at the current moment and the constraint function; and determining the posture of the robot according to the speed of the robot.

[0100] In one possible implementation, determining the speed of the robot based on at least three points in the point cloud at the current moment and the constraint function includes: obtaining the polar coordinates of at least three points in the point cloud at the current moment in a preset polar coordinate system and the Cartesian coordinates in a Cartesian coordinate system; based on the polar coordinates and the Cartesian coordinates, according to the constraint function, determining the speed of the robot.

[0101] In the disclosed embodiments, the robot may include a laser radar. When the robot emits laser light and it strikes an object, it generates at least one scanning point. The range covered by these scanning points represents the scanning range of the laser radar. The scanning range of the laser radar may change as the robot moves.

[0102] The laser falls on the object and then reflects back to the robot, which can generate a point cloud describing the distribution of objects in the robot's environment. Therefore, the point cloud of each frame can also reflect the changes in the lidar scanning range.

[0103] In the embodiment of the present disclosure, a scanning coordinate system and a polar coordinate system can be pre-set, with the position of the laser radar (robot) as the origin of the scanning coordinate system and the polar coordinate system. A point in the point cloud can have scanning coordinates and / or polar coordinates of the scanning point.

[0104] The scanning coordinates of the scanning point may be expressed based on the polar angle in the polar coordinates of the scanning point.

[0105] For example, in the embodiment of the present disclosure, the scanning coordinates of the scanning point are expressed using formula (1):

[0106] α=k α θ (1)

[0107] in, N represents the number of LiDAR scan points, FOV represents the LiDAR scan angle, which can be the angle between the boundaries of the scan range. θ represents the polar angle of the robot's position in polar coordinates.

[0108] In the disclosed embodiments, the first moment can be any moment or a specified moment. The disclosed embodiments do not limit the value of the time difference between the first moment and an adjacent moment. When a time difference is preset, a moment before the first moment that is separated from the first moment by the preset time difference, and / or a moment after the first moment that is separated from the first moment by the preset time difference, can be considered an adjacent moment to the first moment. The time difference here can be the time interval between two consecutive radar scans.

[0109] The position of the scanning point (scanning coordinates) can change during the robot's movement. Based on the changes in the scanning coordinates of the scanning point at each moment, the changes in the scanning range can be obtained.

[0110] For example, a function R(t, α) can be set to represent the scanning range of the lidar at a first moment. The time interval between the first moment and the second moment is Δt, and the second moment can be an adjacent moment to the first moment. If the coordinate change of the scanning point between the first moment and the second moment is Δα, the scanning range of the lidar at the second moment can be expressed as R(t+Δt, α+Δα).

[0111] Then, by performing a Taylor expansion on R(t+Δt, α+Δα) and discarding the higher-order terms, we can obtain an expression for how the lidar's scanning range changes over time. This expression can be expressed as formula (2).

[0112]

[0113] make Then formula (2) can be transformed into formula (3)

[0114]

[0115] make represents the average speed of the scanning point from the first moment to the second moment; let represents the scanning coordinates of the scanning point from the first moment to the second moment. Then, by combining equations (1) and (3), equation (3) can be transformed into equation (4).

[0116]

[0117] in, It represents the average angular velocity of the scanning point from the first moment to the second moment.

[0118] The speed of the scanning point can be expressed as In order to describe the speed of each scanning point in the scanning range on the basis of the same vector, the speed of the scanning point can be described by Cartesian coordinates. The speed of the scanning point can be expressed in Cartesian coordinates as For ease of understanding, formulas (5) and (6) can be used to express the conversion relationship between the speed of the scanning point in the scanning range in the two coordinate systems.

[0119]

[0120]

[0121] Since the speed of the scanning point in the scanning range is equal to the speed of the laser radar, but in the opposite direction, the speed of the scanning point It can be expressed by the linear velocity and angular velocity of the laser radar. For ease of understanding, it can be expressed by formula (7)

[0122]

[0123] Here, v x,s Indicates the linear velocity of the laser radar in the X-axis direction in the Cartesian coordinate system, v y,s Indicates the linear velocity of the laser radar in the Y-axis direction in the Cartesian coordinate system, ω s Represents the angular velocity of the lidar.

[0124] By combining formulas (4)-(7), formula (4) can be transformed into formula (8). Formula (8) can be used as a constraint function.

[0125]

[0126] From formula (8), we can see that the unknown quantity is v x,s 、v y,s 、ω s . Therefore, at least three scanning points are needed to determine the speed of the LiDAR. As mentioned above, a point cloud can have scanning coordinates and / or polar coordinates of scanning points, so at least three points in the point cloud are needed to determine the speed of the LiDAR. The speed of the LiDAR includes: the linear speed of the LiDAR in the X-axis direction, the linear speed of the LiDAR in the Y-axis direction, and the angular speed of the LiDAR.

[0127] Then, the speed of the robot can be determined using the speed of the lidar, and then the robot's position can be determined.

[0128] The method of determining the speed and posture of the robot based on the speed of the laser radar is described in detail in the relevant technology and will not be repeated here.

[0129] The above method for determining the speed of a LiDAR uses a relatively small amount of data, thereby improving the efficiency of determining the speed of the LiDAR. Furthermore, since the scanning coordinates and polar coordinates of the scanning points can be accurately determined, the above method for determining the speed of the LiDAR has a high degree of accuracy.

[0130] In one possible implementation, before determining the speed of the robot based on at least three points in the point cloud at the current moment and the constraint function, the method further includes: determining an error function that describes the scanning coordinate error of the point in the point cloud based on the polar coordinates and scanning coordinates of the point in each point cloud, and determining the value of each error function according to the scanning coordinates of the point in each point cloud; sorting the points in each point cloud according to the value of the error function; and determining the speed of the lidar using the scanning coordinates of the point whose error function value is less than the error threshold.

[0131] Due to the errors of the laser radar equipment itself, such as measurement noise, and / or errors in the above calculation process, such as the error caused by removing high-order terms during Taylor expansion. Therefore, the speed of the laser radar determined may have a large error. In order to reduce the error, the scanning points can be selected, and the points (points in the point cloud) that make the value of the error function less than a pre-set error threshold are selected as target points, and the scanning coordinates of the target points are used to determine the speed of the laser radar. The error function here can be established based on the polar coordinates and scanning coordinates of the scanning point. The embodiment of the present disclosure does not limit the form of the error function.

[0132] In one possible implementation, after determining the constraint function based on the laser radar scanning range at the first moment and the laser radar scanning range at the adjacent moment, the method further includes: defining a geometric residual based on the constraint function; determining an optimization function based on the geometric residual; and determining, based on the optimization function, the speed of the laser radar corresponding to the minimum value of the optimization function.

[0133] To further improve the accuracy of the LiDAR velocity determination, we can create a geometric residual and then develop an optimization function based on it. The scan coordinates of each scan point are then fed into the optimization function to determine the LiDAR velocity at which the optimization function minimizes the value. The following example illustrates this process.

[0134] First, a geometric residual ρ(ξ) is established. For example, the geometric residual can be in the form expressed by formula (9).

[0135]

[0136] Where ξ represents the speed of the laser radar, ξ=(v x , v y ,ω),v x Indicates the linear velocity of the laser radar in the X-axis direction, v y represents the linear velocity of the laser radar in the Y-axis direction, and ω represents the angular velocity of the laser radar.

[0137] Then, the optimization function F(ρ) is determined according to the geometric residual. For example, the optimization function may be in the form of formula (10).

[0138]

[0139] Here, k represents an adjustable parameter.

[0140] Next, the scanning coordinates of each scanning point in the scanning range are brought into the optimization function to determine the speed ξ of the laser radar corresponding to the minimum value of the optimization function. M For ease of understanding, the present disclosure may use formula (11) to express ξ M

[0141]

[0142] Wherein, H represents the H scanning points in the scanning range, and i represents the i-th scanning point.

[0143] In the embodiment of the present disclosure, determining ξ M The process can be an iterative calculation process. In order to better handle outliers in the scan points and reduce the probability of outliers affecting the accuracy of the determined lidar velocity, the weight can be updated after the current iteration and before the next iteration. The weight γ here can be related to the geometric residual ρ, and the weight γ can be expressed in the form of formula (12).

[0144]

[0145] In one possible implementation, determining the position and posture of the robot based on the wheel slip information and the dynamic object information includes: when it is determined that the wheel is slipping and there is a dynamic object in the environment of the robot, determining the position and posture of the robot based on a point cloud other than a point cloud representing the dynamic object.

[0146] If the dynamic object information indicates the presence of a dynamic object in the robot's environment, the changes in the relative positions of points in each frame of the point cloud are not necessarily due to changes in the robot's posture, but may be caused by the movement of the dynamic object. In this case, the LiDAR velocity determined using the point cloud may have a large error.

[0147] Therefore, a point cloud representing the dynamic object can be determined based on the dynamic object information. When using the point cloud to determine the LiDAR speed, the point cloud representing the dynamic object is excluded, and the points in the point cloud excluding the point cloud representing the dynamic object are used to determine the LiDAR speed. This can reduce the impact of dynamic objects on the accuracy of the LiDAR speed determination and improve the accuracy of the determined LiDAR speed. For specific implementations of determining the LiDAR speed based on points in the point cloud excluding the point cloud representing the dynamic object, please refer to the possible implementations provided in this disclosure and will not be detailed here.

[0148] Therefore, even when the robot's wheels slip and there are dynamic objects in the environment, the embodiment of the present disclosure can still obtain a relatively accurate laser radar speed and a relatively accurate robot travel speed, thereby improving the accuracy of the robot's posture obtained in this scenario, and eliminating the need for expensive high-precision sensors, thereby reducing the cost of the robot.

[0149] In one possible implementation, determining the posture of the robot based on the wheel slip information and the dynamic object information includes: when it is determined that the wheels are not slipping and there are dynamic objects in the environment of the robot, determining the posture of the robot according to the first wheel speed and / or the second wheel speed.

[0150] If the wheel slip information indicates no wheel slip, the wheel odometer data is highly reliable and accurate. Therefore, in this case, the wheel odometer data can be used to determine the robot's position and posture. Therefore, the first wheel speed can be used to determine the robot's position and posture.

[0151] Because the IMU's cumulative error is not significant in a short period of time, the difference between the second wheel speed and the first wheel speed is small. Therefore, when the IMU's cumulative error is not significant, the second wheel speed can also be used to determine the robot's position and posture.

[0152] In this scenario, wheel odometry data is more reliable. However, the accuracy of laser odometry data may be affected by the point cloud representing dynamic objects. Therefore, in this scenario, the wheel odometry data can be used instead of laser odometry data to obtain a more accurate robot pose.

[0153] In one possible implementation, determining the position and posture of the robot based on the wheel slip information and the dynamic object information includes: determining the position and posture of the robot based on fusion data of the first wheel speed or the second wheel speed and the point cloud when it is determined that the wheel is not slipping and there are no dynamic objects in the environment of the robot.

[0154] As mentioned earlier, if the wheel slip information indicates that the wheels are not slipping, the wheel odometry data is highly reliable. If the dynamic object information indicates that there are no dynamic objects in the robot's environment, the point cloud can be used to determine the robot's position.

[0155] Therefore, in this scenario, both the wheel odometer data and the laser odometer data can be used to determine the robot's position and posture. Therefore, the first wheel speed and point cloud can be used to determine the robot's position and posture.

[0156] As mentioned above, the difference between the second wheel speed and the first wheel speed is small because the IMU's cumulative error is not significant in a short period of time. Even when the IMU's cumulative error is not significant, the second wheel speed and point cloud can still be used to determine the robot's pose.

[0157] In order to further improve the accuracy of the determined robot pose, reduce the error in the data measured using the odometer, and / or reduce the error in the process of determining the robot pose using the data measured by the odometer, in the embodiment of the present disclosure, the data measured by the two odometers can be fused to obtain fused data, and then the robot pose can be determined based on the fused data. For example, the first wheel speed and the point cloud can be fused using an extended Kalman filter. The method of fusing the data measured by the two odometers and the method of determining the robot pose based on the fused data are described in the related art and will not be repeated here.

[0158] The method based on the embodiment of the present disclosure can reduce the probability of the robot's wheels slipping and / or the accuracy of the robot's posture determined by the image of dynamic objects in the robot's environment, thereby improving the accuracy of determining the robot's posture. Moreover, the method of the embodiment of the present disclosure makes up for the shortcomings of wheel odometers, laser odometers, and IMUs in measuring robot posture, and is applicable to more common scenarios where the robot's posture cannot be accurately determined. In addition, the method of the embodiment of the present disclosure does not use high-cost equipment, so it can achieve the technical effect of obtaining accurate robot posture while maintaining low costs.

[0159] In one possible implementation, the robot may include: a wheel odometer module, a laser odometer module, a wheel slip detection module, a dynamic obstacle detection module, and a judgment module. The following describes in detail the process of determining the robot's posture based on the robot in the embodiment of the present disclosure.

[0160] Figure 2 A flow chart of a method for determining a posture according to an embodiment of the present disclosure is shown. Figure 2 As shown, the method includes:

[0161] First, the wheel odometry module measures first data, and the laser odometry module measures second data. The first data includes, for example, the robot's wheel speed. The second data includes, for example, point cloud data. The wheel slip detection module determines wheel slip information, while the obstacle detection module determines dynamic object information.

[0162] Second, the judgment module makes a judgment based on the wheel slip information and dynamic object information. It determines whether the robot's wheels are slipping and whether there are dynamic objects in the robot's environment. The judgment module can output a judgment result, which includes: wheel slip and no dynamic objects in the environment; wheel slip and dynamic objects in the environment; no wheel slip and dynamic objects in the environment; no wheel slip and no dynamic objects in the environment.

[0163] Third, the robot's position and posture are determined based on the judgment results of the judgment module.

[0164] When the judgment result is that the wheels are slipping and there are no dynamic objects in the environment, the speed of the laser radar is determined based on the second data, and then the speed and posture of the robot are determined.

[0165] When the judgment result is that the wheels are slipping and there are dynamic objects in the environment, based on the second data, the point cloud representing the dynamic object is removed to obtain the remaining point cloud; the remaining point cloud is used to determine the speed of the lidar, and then determine the speed and posture of the robot.

[0166] When the judgment result is that the wheels are not slipping and there are dynamic objects in the environment, the speed of the laser radar is determined based on the first data, and then the speed and posture of the robot are determined.

[0167] When the judgment result is that the wheels are not slipping and there are no dynamic objects in the environment, the first data and the second data can be fused to obtain fused data, and the position and posture of the robot can be determined based on the fused data.

[0168] Figure 3 FIG. 1 is a block diagram of a device for determining a posture according to an embodiment of the present disclosure. Figure 3 As shown, the device 30 for determining the posture includes:

[0169] A wheel speed acquisition unit 31 is used to acquire a first wheel speed and a second wheel speed of the robot, where the first wheel speed and the second wheel speed are measured by different sensors;

[0170] a wheel slip information determining unit 32, configured to determine wheel slip information indicating whether a wheel of the robot is slipping based on the first wheel speed and the second wheel speed;

[0171] a dynamic object information determining unit 33, configured to determine dynamic object information describing movement of objects around the robot based on two adjacent frames of point clouds describing distribution of objects around the robot;

[0172] The posture determination unit 34 is configured to determine the posture of the robot based on the wheel slip information and the dynamic object information.

[0173] In a possible implementation, the posture determination unit 34 includes:

[0174] The first posture determination subunit is used to determine the posture of the robot based on the point cloud when it is determined that the wheel is slipping and there are no dynamic objects in the environment of the robot.

[0175] In a possible implementation, the posture determination unit 34 includes:

[0176] The second posture determination subunit is used to determine the posture of the robot based on point clouds other than the point cloud representing the dynamic object when it is determined that the wheel is slipping and there is a dynamic object in the environment of the robot.

[0177] In a possible implementation, the posture determination unit 34 includes:

[0178] The third posture determination subunit is configured to determine the posture of the robot according to the first wheel speed and / or the second wheel speed when it is determined that the wheel is not slipping and there are dynamic objects in the environment of the robot.

[0179] In a possible implementation, the posture determination unit 34 includes:

[0180] The fourth posture determination subunit is used to determine the posture of the robot based on the fusion data of the first wheel speed or the second wheel speed and the point cloud when it is determined that the wheel is not slipping and there are no dynamic objects in the environment of the robot.

[0181] In a possible implementation, the first posture determination subunit includes:

[0182] an adjacent-time scanning range determining unit, configured to determine the lidar scanning range at the adjacent time according to the lidar scanning range at the first time, the time difference between the first time and the adjacent time, and the change in the scanning coordinates at the adjacent time relative to at least one point in the point cloud at the first time;

[0183] A constraint function determining unit, configured to determine a constraint function according to the laser radar scanning range at the first moment and the laser radar scanning range at the adjacent moment;

[0184] a robot speed determination unit, configured to determine the speed of the robot based on at least three points in the point cloud at a current moment and the constraint function;

[0185] The first posture determination subunit is used to determine the posture of the robot according to the speed of the robot.

[0186] In a possible implementation, the robot speed determination unit includes:

[0187] a point coordinate determining unit, configured to obtain polar coordinates of at least three points in the point cloud at the current moment in a preset polar coordinate system and Cartesian coordinates in a Cartesian coordinate system;

[0188] The robot speed determination subunit is used to determine the speed of the robot based on the polar coordinates, the Cartesian coordinates, and the constraint function.

[0189] In some embodiments, the functions or modules included in the device provided by the embodiments of the present disclosure can be used to execute the method described in the above method embodiments. The specific implementation can refer to the description of the above method embodiments. For the sake of brevity, it will not be repeated here.

[0190] The present disclosure also provides a computer-readable storage medium having computer program instructions stored thereon, wherein the computer program instructions implement the above method when executed by a processor. The computer-readable storage medium may be a volatile or non-volatile computer-readable storage medium.

[0191] An embodiment of the present disclosure further proposes an electronic device, comprising: a processor; and a memory for storing instructions executable by the processor; wherein the processor is configured to implement the above method when executing the instructions stored in the memory.

[0192] An embodiment of the present disclosure also provides a computer program product, including computer-readable code, or a non-volatile computer-readable storage medium carrying computer-readable code. When the computer-readable code runs in a processor of an electronic device, the processor in the electronic device executes the above method.

[0193] Figure 4 FIG1 is a block diagram of an apparatus 800 for determining a posture according to an exemplary embodiment. For example, the apparatus 800 may be a mobile phone, a computer, a digital broadcast terminal, a messaging device, a game console, a tablet device, a medical device, a fitness device, a personal digital assistant, etc.

[0194] Reference Figure 4 , the apparatus 800 may include one or more of the following components: a processing component 802 , a memory 804 , a power component 806 , a multimedia component 808 , an audio component 810 , an input / output (I / O) interface 812 , a sensor component 814 , and a communication component 816 .

[0195] The processing component 802 generally controls the overall operation of the device 800, such as operations associated with display, phone calls, data communications, camera operation, and recording operations. The processing component 802 may include one or more processors 820 to execute instructions to perform all or part of the steps of the above-described method. In addition, the processing component 802 may include one or more modules to facilitate interaction between the processing component 802 and other components. For example, the processing component 802 may include a multimedia module to facilitate interaction between the multimedia component 808 and the processing component 802.

[0196] The memory 804 is configured to store various types of data to support the operations of the device 800. Examples of such data include instructions for any application or method operating on the device 800, contact data, phone book data, messages, pictures, videos, etc. The memory 804 can be implemented by any type of volatile or non-volatile storage device, or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk, or optical disk.

[0197] The power supply component 806 provides power to the various components of the device 800. The power supply component 806 may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to the device 800.

[0198] The multimedia component 808 includes a screen that provides an output interface between the device 800 and the user. In some embodiments, the screen may include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen can be implemented as a touch screen to receive input signals from the user. The touch panel includes one or more touch sensors to sense touches, slides, and gestures on the touch panel. The touch sensor can not only sense the boundaries of the touch or slide action, but also detect the duration and pressure associated with the touch or slide operation. In some embodiments, the multimedia component 808 includes a front camera and / or a rear camera. When the device 800 is in an operating mode, such as a shooting mode or a video mode, the front camera and / or the rear camera can receive external multimedia data. Each front camera and rear camera can be a fixed optical lens system or have focal length and optical zoom capabilities.

[0199] The audio component 810 is configured to output and / or input audio signals. For example, the audio component 810 includes a microphone (MIC), which is configured to receive external audio signals when the device 800 is in an operating mode, such as a call mode, a recording mode, and a voice recognition mode. The received audio signal can be further stored in the memory 804 or transmitted via the communication component 816. In some embodiments, the audio component 810 also includes a speaker for outputting audio signals.

[0200] I / O interface 812 provides an interface between processing component 802 and peripheral interface modules, such as a keyboard, click wheel, buttons, etc. These buttons may include but are not limited to: a home button, volume buttons, a start button, and a lock button.

[0201] The sensor assembly 814 includes one or more sensors for providing various aspects of the status assessment of the device 800. For example, the sensor assembly 814 can detect the open / closed state of the device 800, the relative positioning of components, such as the display and keypad of the device 800. The sensor assembly 814 can also detect changes in the position of the device 800 or a component of the device 800, the presence or absence of user contact with the device 800, the orientation or acceleration / deceleration of the device 800, and temperature changes of the device 800. The sensor assembly 814 may include a proximity sensor configured to detect the presence of nearby objects without any physical contact. The sensor assembly 814 may also include an optical sensor, such as a CMOS or CCD image sensor, for use in imaging applications. In some embodiments, the sensor assembly 814 may also include an accelerometer, a gyroscope, a magnetic sensor, a pressure sensor, or a temperature sensor.

[0202] The communication component 816 is configured to facilitate wired or wireless communication between the device 800 and other devices. The device 800 can access a wireless network based on a communication standard, such as WiFi, 2G or 3G, or a combination thereof. In an exemplary embodiment, the communication component 816 receives a broadcast signal or broadcast-related information from an external broadcast management system via a broadcast channel. In an exemplary embodiment, the communication component 816 also includes a near field communication (NFC) module to facilitate short-range communication. For example, the NFC module can be implemented based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology and other technologies.

[0203] In an exemplary embodiment, the apparatus 800 may be implemented by one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), controllers, microcontrollers, microprocessors, or other electronic components to perform the above-described method.

[0204] In an exemplary embodiment, a non-volatile computer-readable storage medium is also provided, such as a memory 804 including computer program instructions that can be executed by the processor 820 of the apparatus 800 to perform the above method.

[0205] Figure 5 1 is a block diagram of an apparatus 1900 for determining a posture according to an exemplary embodiment. For example, the apparatus 1900 may be provided as a server or a terminal device. Figure 5 The apparatus 1900 includes a processing component 1922, which further includes one or more processors, and a memory resource represented by a memory 1932 for storing instructions, such as an application, that can be executed by the processing component 1922. The application stored in the memory 1932 may include one or more modules, each corresponding to a set of instructions. In addition, the processing component 1922 is configured to execute the instructions to perform the above-described method.

[0206] The device 1900 may also include a power supply component 1926 configured to perform power management of the device 1900, a wired or wireless network interface 1950 configured to connect the device 1900 to a network, and an input / output (I / O) interface 1958. The device 1900 may operate based on an operating system stored in the memory 1932, such as Windows Server™, MacOS X™, Unix™, Linux™, FreeBSD™, or the like.

[0207] In an exemplary embodiment, a non-volatile computer-readable storage medium is also provided, such as a memory 1932 including computer program instructions that can be executed by the processing component 1922 of the apparatus 1900 to perform the above-described method.

[0208] The present disclosure may be a system, method and / or computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for causing a processor to implement various aspects of the present disclosure.

[0209] A computer-readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium can be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. More specific examples (a non-exhaustive list) of computer-readable storage media include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, such as a punch card or a raised structure in a groove on which instructions are stored, and any suitable combination thereof. As used herein, a computer-readable storage medium is not to be construed as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through an electrical wire.

[0210] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in the computer-readable storage medium in each computing / processing device.

[0211] The computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, and conventional procedural programming languages ​​such as "C" language or similar programming languages. Computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as an independent software package, partially on a user's computer, partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., utilizing an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be personalized by utilizing the state information of the computer-readable program instructions. The electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present disclosure.

[0212] Various aspects of the present disclosure are described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.

[0213] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processor of the computer or other programmable data processing device, a device is generated that implements the functions / actions specified in one or more blocks in the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, where these instructions cause the computer, programmable data processing device, and / or other device to operate in a specific manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks in the flowchart and / or block diagram.

[0214] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more blocks in the flowchart and / or block diagram.

[0215] The flow charts and block diagrams in the accompanying drawings show the possible architecture, functions and operations of the systems, methods and computer program products according to multiple embodiments of the present disclosure. In this regard, each box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and the part of the module, program segment or instruction contains one or more executable instructions for realizing the prescribed logical function. In some alternative implementations, the functions marked in the box can also occur in a sequence different from that marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented by a dedicated hardware-based system that performs the prescribed function or action, or can be implemented by a combination of dedicated hardware and computer instructions.

[0216] While various embodiments of the present disclosure have been described above, the foregoing description is intended to be illustrative, non-exhaustive, and not limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is selected to best explain the principles of the embodiments, their practical applications, or technological improvements in the marketplace, or to enable others skilled in the art to understand the embodiments disclosed herein.

Claims

1. A method for determining a posture, characterized in that: include: Obtaining a first wheel speed and a second wheel speed of the robot, where the first wheel speed and the second wheel speed are measured by different sensors; determining wheel slip information indicating whether a wheel of the robot is slipping based on the first wheel speed and the second wheel speed; Determining dynamic object information describing movement of objects around the robot based on two adjacent frames of point clouds describing distribution of objects around the robot, the dynamic object information including whether there are dynamic objects in the environment where the robot is located; Determining the position and posture of the robot based on the wheel slip information and the dynamic object information; The determining the position and posture of the robot based on the wheel slip information and the dynamic object information includes: When it is determined that the wheel is slipping and there are no dynamic objects in the environment of the robot, determining a position and posture of the robot based on the point cloud; When it is determined that the wheel is slipping and there is a dynamic object in the environment of the robot, determining a position and posture of the robot based on a point cloud other than a point cloud representing the dynamic object; When it is determined that the wheel is not slipping and there is a dynamic object in the environment of the robot, determining the posture of the robot according to the first wheel speed and / or the second wheel speed; When it is determined that the wheel is not slipping and there are no dynamic objects in the environment of the robot, the posture of the robot is determined based on fusion data of the first wheel speed or the second wheel speed and the point cloud.

2. The method according to claim 1, characterized in that Determining the position and posture of the robot based on the point cloud includes: Determine the lidar scanning range at the adjacent moment based on the lidar scanning range at the first moment, the time difference between the first moment and an adjacent moment, and the change in the scanning coordinates of at least one point in the point cloud at the adjacent moment relative to the first moment; Determining a constraint function according to the laser radar scanning range at the first moment and the laser radar scanning range at the adjacent moment; determining a velocity of the robot based on at least three points in the point cloud at a current moment and the constraint function; The position and posture of the robot are determined according to the speed of the robot.

3. The method according to claim 2, characterized in that The determining the speed of the robot based on at least three points in the point cloud at the current moment and the constraint function includes: Obtaining polar coordinates of at least three points in the point cloud at the current moment in a preset polar coordinate system and Cartesian coordinates in a Cartesian coordinate system; The velocity of the robot is determined based on the polar coordinates, the Cartesian coordinates and the constraint function.

4. A device for determining a posture, characterized in that: include: a wheel speed acquisition unit, configured to acquire a first wheel speed and a second wheel speed of the robot, wherein the first wheel speed and the second wheel speed are measured by different sensors; a wheel slip information determining unit, configured to determine wheel slip information indicating whether a wheel of the robot is slipping based on the first wheel speed and the second wheel speed; a dynamic object information determining unit, configured to determine dynamic object information describing movement of objects around the robot based on two adjacent frames of point clouds describing distribution of objects around the robot, the dynamic object information including whether there are dynamic objects in the environment where the robot is located; a posture determination unit, configured to determine the posture of the robot based on the wheel slip information and the dynamic object information; The posture determination unit includes: a first posture determination subunit, configured to determine the posture of the robot based on the point cloud when it is determined that the wheel is slipping and there are no dynamic objects in the environment of the robot; a second posture determination subunit, configured to determine the posture of the robot based on point clouds other than the point cloud representing the dynamic object when it is determined that the wheel is slipping and there is a dynamic object in the environment of the robot; a third posture determination subunit, configured to determine the posture of the robot according to the first wheel speed and / or the second wheel speed when it is determined that the wheel is not slipping and there is a dynamic object in the environment of the robot; The fourth posture determination subunit is used to determine the posture of the robot based on the fusion data of the first wheel speed or the second wheel speed and the point cloud when it is determined that the wheel is not slipping and there are no dynamic objects in the environment of the robot.

5. An electronic device, characterized in that: include: processor; a memory for storing processor-executable instructions; The processor is configured to implement the method according to any one of claims 1 to 3 when executing the instructions stored in the memory.

6. A non-volatile computer-readable storage medium having computer program instructions stored thereon, characterized in that: When the computer program instructions are executed by a processor, the method according to any one of claims 1 to 3 is implemented.

Citation Information

Patent Citations

  • Detection method and correction method for AGV (Automatic Guided Vehicle) body slipping

    CN110082561A

  • Autonomous pose measurement method based on SLAM technology

    CN112902953A