Robot pose determining method and device, readable storage medium and robot

文档序号:934599 发布日期:2021-03-05 浏览:20次 中文

阅读说明:本技术 一种机器人位姿确定方法、装置、可读存储介质及机器人 (Robot pose determining method and device, readable storage medium and robot ) 是由 赵勇胜 刘志超 熊友军 于 2019-08-28 设计创作,主要内容包括:本发明属于计算机技术领域,尤其涉及一种机器人位姿确定方法、装置、计算机可读存储介质及机器人。所述方法获取由安装在机器人上的激光雷达当前所采集的激光帧;根据所述激光帧计算所述机器人在由第一指针所指向的地图中的当前位姿,并获取已插入由所述第一指针所指向的地图的激光帧数;若小于第一阈值,则将所述激光帧插入由所述第一指针所指向的地图;若大于等于第一阈值且小于第二阈值,则分别将所述激光帧插入由所述第一指针所指向的地图以及由预设的第二指针所指向的地图;若等于第二阈值,则将所述第一指针指向由所述第二指针所指向的地图,将所述第二指针指向新建的空地图,并将所述激光帧插入由所述第一指针所指向的地图。(The invention belongs to the technical field of computers, and particularly relates to a robot pose determining method and device, a computer readable storage medium and a robot. The method comprises the steps of obtaining a laser frame currently collected by a laser radar installed on a robot; calculating the current pose of the robot in a map pointed by a first pointer according to the laser frame, and acquiring the number of laser frames inserted into the map pointed by the first pointer; if the current position of the laser frame is less than a first threshold value, inserting the laser frame into a map pointed by the first pointer; if the laser frame is larger than or equal to a first threshold and smaller than a second threshold, respectively inserting the laser frame into a map pointed by the first pointer and a map pointed by a preset second pointer; and if the current position is equal to a second threshold value, pointing the first pointer to a map pointed by the second pointer, pointing the second pointer to a newly-built air map, and inserting the laser frame into the map pointed by the first pointer.)

1. A robot pose determination method is characterized by comprising the following steps:

acquiring a laser frame currently acquired by a laser radar installed on a robot;

calculating the current pose of the robot in a map pointed by a preset first pointer according to the laser frame, and acquiring the number of laser frames inserted into the map pointed by the first pointer;

if the number of the laser frames is smaller than a preset first threshold value, inserting the laser frames into a map pointed by the first pointer;

if the number of the laser frames is greater than or equal to the first threshold and smaller than a preset second threshold, respectively inserting the laser frames into a map pointed by the first pointer and a map pointed by a preset second pointer;

and if the number of the laser frames is equal to the second threshold value, pointing the first pointer to a map pointed by the second pointer, pointing the second pointer to a newly-built air map, and inserting the laser frames into the map pointed by the first pointer.

2. The robot pose determination method according to claim 1, wherein the calculating the current pose of the robot in a map pointed to by a preset first pointer from the laser frame comprises:

if the laser frame is a first frame, setting the current pose as a preset initial pose;

if the laser frame is not the first frame, acquiring odometer data, and calculating the predicted pose of the robot according to the odometer data;

and performing matching calculation in the region determined by the predicted pose by using a preset matching algorithm to obtain the current pose.

3. The robot pose determination method of claim 2, wherein the calculating a predicted pose of the robot from the odometry data comprises:

calculating a predicted pose of the robot according to:

pose_odom_predict=p_odom+v*(t_lidar-t_odom)

wherein t _ odom is the acquisition time of the odometer data, t _ lidar is the acquisition time of the laser frame, p _ odom is the pose in the odometer data, v is the speed in the odometer data, and pos _ odom _ predict is the predicted pose.

4. The robot pose determination method according to claim 1, further comprising, after calculating a current pose of the robot in a map pointed to by a preset first pointer from the laser frame,:

judging whether the current pose meets a preset pose judgment condition, wherein the pose judgment condition is as follows: the displacement of the current pose relative to a previous pose is greater than a preset displacement threshold, or the rotation angle of the current pose relative to the previous pose is greater than a preset angle threshold, or the time difference of the current pose relative to the previous pose is greater than a preset time threshold, wherein the previous pose is calculated according to a laser frame inserted into a map pointed by the first pointer in the previous frame;

and if the current pose does not meet the pose determination condition, the step of acquiring the number of frames inserted into the map pointed by the first pointer and the subsequent steps are not executed.

5. The robot pose determination method according to any one of claims 1 to 4, further comprising, before pointing the first pointer to a map pointed to by the second pointer:

freeing the memory space occupied by the map pointed to by the first pointer.

6. A robot pose determining apparatus, comprising:

the laser frame acquisition module is used for acquiring a laser frame currently acquired by a laser radar installed on the robot;

the pose calculation module is used for calculating the current pose of the robot in a map pointed by a preset first pointer according to the laser frame;

the frame number acquisition module is used for acquiring the number of laser frames inserted into the map pointed by the first pointer;

the first processing module is used for inserting the laser frame into a map pointed by the first pointer if the number of the laser frames is smaller than a preset first threshold;

the second processing module is used for respectively inserting the laser frame into a map pointed by the first pointer and a map pointed by a preset second pointer if the number of the laser frames is greater than or equal to the first threshold and smaller than a preset second threshold;

and the third processing module is used for pointing the first pointer to the map pointed by the second pointer, pointing the second pointer to the newly-built air-ground map and inserting the laser frame into the map pointed by the first pointer if the number of the laser frames is equal to the second threshold.

7. The robot pose determination apparatus according to claim 6, wherein the pose calculation module includes:

an initial pose setting unit, configured to set the current pose as a preset initial pose if the laser frame is a first frame;

the predicted pose calculation unit is used for acquiring odometer data if the laser frame is not the first frame, and calculating the predicted pose of the robot according to the odometer data;

and the current pose calculating unit is used for performing matching calculation in the area determined by the predicted pose by using a preset matching algorithm to obtain the current pose.

8. The robot pose determination apparatus according to claim 7, wherein the predicted pose calculation unit is specifically configured to calculate the predicted pose of the robot according to the following equation:

pose_odom_predict=p_odom+v*(t_lidar-t_odom)

wherein t _ odom is the acquisition time of the odometer data, t _ lidar is the acquisition time of the laser frame, p _ odom is the pose in the odometer data, v is the speed in the odometer data, and pos _ odom _ predict is the predicted pose.

9. A computer-readable storage medium storing computer-readable instructions, wherein the computer-readable instructions, when executed by a processor, implement the steps of the robot pose determination method according to any one of claims 1 to 5.

10. A robot comprising a memory, a processor and computer readable instructions stored in the memory and executable on the processor, characterized in that the processor, when executing the computer readable instructions, implements the steps of the robot pose determination method according to any one of claims 1 to 5.

Technical Field

The invention belongs to the technical field of computers, and particularly relates to a robot pose determining method and device, a computer readable storage medium and a robot.

Background

The laser radar odometer is used as the front end of a laser radar instant positioning And Mapping (SLAM) system, And the improvement of the precision of the system is beneficial to the improvement of the Mapping precision And quality. The laser radar odometer adopts the matching between laser radar data frames to calculate the displacement between the frames, and then the pose of the current laser frame is obtained by integrating the pose of the equipment corresponding to the displacement and the previous laser frame. In this process, errors exist in the matching between each frame, and the errors are gradually accumulated, so that the positioning of the laser radar odometer is gradually shifted and misaligned.

In order to solve the problem, in the prior art, there are technical solutions for establishing a sub-map through a fixed window and establishing a sub-map through a sliding window, wherein a conventional method for establishing a sub-map through a fixed window for laser matching is as follows: the number of the laser frames of each window is fixed, after the number of the laser frames inserted into the map reaches the fixed number of frames, the map is destroyed to reestablish a new map, and the matching precision is low when the number of the laser frames inserted into the sub-map is small. The method for establishing the sub-map for laser matching by the sliding window comprises the following steps: and storing the latest laser frame with the fixed frame number and the corresponding pose of each frame to establish a map. And deleting the oldest stored laser frame and maintaining the number of the fixed frames each time a new laser frame needs to be inserted. And then re-establish the map for matching. In this way, when a new laser frame is inserted, a map needs to be reconstructed and data of a fixed frame number needs to be inserted, and the calculation amount is large.

Disclosure of Invention

In view of this, embodiments of the present invention provide a robot pose determining method, an apparatus, a computer readable storage medium, and a robot, so as to solve the problems of low accuracy and large computation amount of the existing robot pose determining method.

A first aspect of an embodiment of the present invention provides a robot pose determining method, which may include:

acquiring a laser frame currently acquired by a laser radar installed on a robot;

calculating the current pose of the robot in a map pointed by a preset first pointer according to the laser frame, and acquiring the number of laser frames inserted into the map pointed by the first pointer;

if the number of the laser frames is smaller than a preset first threshold value, inserting the laser frames into a map pointed by the first pointer;

if the number of the laser frames is greater than or equal to the first threshold and smaller than a preset second threshold, respectively inserting the laser frames into a map pointed by the first pointer and a map pointed by a preset second pointer;

and if the number of the laser frames is equal to the second threshold value, pointing the first pointer to a map pointed by the second pointer, pointing the second pointer to a newly-built air map, and inserting the laser frames into the map pointed by the first pointer.

Further, the calculating, according to the laser frame, a current pose of the robot in a map pointed to by a preset first pointer includes:

if the laser frame is a first frame, setting the current pose as a preset initial pose;

if the laser frame is not the first frame, acquiring odometer data, and calculating the predicted pose of the robot according to the odometer data;

and performing matching calculation in the region determined by the predicted pose by using a preset matching algorithm to obtain the current pose.

Further, the calculating a predicted pose of the robot from the odometry data comprises:

calculating a predicted pose of the robot according to:

pose_odom_predict=p_odom+v*(t_lidar-t_odom)

wherein t _ odom is the acquisition time of the odometer data, t _ lidar is the acquisition time of the laser frame, p _ odom is the pose in the odometer data, v is the speed in the odometer data, and pos _ odom _ predict is the predicted pose.

Further, after calculating a current pose of the robot in a map pointed to by a preset first pointer according to the laser frame, the method further includes:

judging whether the current pose meets a preset pose judgment condition, wherein the pose judgment condition is as follows: the displacement of the current pose relative to a previous pose is greater than a preset displacement threshold, or the rotation angle of the current pose relative to the previous pose is greater than a preset angle threshold, or the time difference of the current pose relative to the previous pose is greater than a preset time threshold, wherein the previous pose is calculated according to a laser frame inserted into a map pointed by the first pointer in the previous frame;

and if the current pose does not meet the pose determination condition, the step of acquiring the number of frames inserted into the map pointed by the first pointer and the subsequent steps are not executed.

Further, before pointing the first pointer to the map pointed to by the second pointer, the method further includes:

freeing the memory space occupied by the map pointed to by the first pointer.

A second aspect of an embodiment of the present invention provides a robot pose determination apparatus, which may include:

the laser frame acquisition module is used for acquiring a laser frame currently acquired by a laser radar installed on the robot;

the pose calculation module is used for calculating the current pose of the robot in a map pointed by a preset first pointer according to the laser frame;

the frame number acquisition module is used for acquiring the number of laser frames inserted into the map pointed by the first pointer;

the first processing module is used for inserting the laser frame into a map pointed by the first pointer if the number of the laser frames is smaller than a preset first threshold;

the second processing module is used for respectively inserting the laser frame into a map pointed by the first pointer and a map pointed by a preset second pointer if the number of the laser frames is greater than or equal to the first threshold and smaller than a preset second threshold;

and the third processing module is used for pointing the first pointer to the map pointed by the second pointer, pointing the second pointer to the newly-built air-ground map and inserting the laser frame into the map pointed by the first pointer if the number of the laser frames is equal to the second threshold.

Further, the pose calculation module may include:

an initial pose setting unit, configured to set the current pose as a preset initial pose if the laser frame is a first frame;

the predicted pose calculation unit is used for acquiring odometer data if the laser frame is not the first frame, and calculating the predicted pose of the robot according to the odometer data;

and the current pose calculating unit is used for performing matching calculation in the area determined by the predicted pose by using a preset matching algorithm to obtain the current pose.

Further, the predicted pose calculation unit is specifically configured to calculate the predicted pose of the robot according to the following equation:

pose_odom_predict=p_odom+v*(t_lidar-t_odom)

wherein t _ odom is the acquisition time of the odometer data, t _ lidar is the acquisition time of the laser frame, p _ odom is the pose in the odometer data, v is the speed in the odometer data, and pos _ odom _ predict is the predicted pose.

Further, the robot pose determination apparatus may further include:

the judging module is used for judging whether the current pose meets preset pose judging conditions, wherein the pose judging conditions are as follows: the current pose is displaced relative to a previous pose by a displacement threshold value which is larger than a preset displacement threshold value, or the rotation angle of the current pose relative to the previous pose is larger than a preset angle threshold value, or the time difference of the current pose relative to the previous pose is larger than a preset time threshold value, and the previous pose is calculated according to a laser frame which is inserted into a map pointed by the first pointer in the previous frame.

Further, the robot pose determination apparatus may further include:

a storage space releasing unit configured to release a storage space occupied by the map pointed to by the first pointer.

A third aspect of the embodiments of the present invention provides a computer-readable storage medium, which stores computer-readable instructions that, when executed by a processor, implement the steps of any one of the robot pose determination methods described above.

A fourth aspect of the embodiments of the present invention provides a robot, including a memory, a processor, and computer readable instructions stored in the memory and executable on the processor, where the processor implements the steps of any one of the robot pose determination methods when executing the computer readable instructions.

Compared with the prior art, the invention has the following beneficial effects: the method comprises the steps of firstly, obtaining a laser frame currently collected by a laser radar installed on a robot, then calculating the current pose of the robot in a map pointed by a preset first pointer according to the laser frame, obtaining the number of laser frames inserted into the map pointed by the first pointer, and inserting the laser frame into the map pointed by the first pointer if the number of the laser frames is smaller than a preset first threshold; if the number of the laser frames is greater than or equal to the first threshold and smaller than a preset second threshold, respectively inserting the laser frames into a map pointed by the first pointer and a map pointed by a preset second pointer; and if the number of the laser frames is equal to the second threshold value, pointing the first pointer to a map pointed by the second pointer, pointing the second pointer to a newly-built air map, and inserting the laser frames into the map pointed by the first pointer. Compared with the conventional mode of establishing the sub-map for laser matching through the fixed window, the method and the device have the advantages that the two maps with a certain frame number difference are used in a staggered mode, pose calculation is carried out in the map with a large number of laser frames (namely the map pointed by the first pointer), the problem that the number of the laser frames possibly appears in the scene with the fixed window is small is solved, calculation accuracy is improved, and compared with the mode of establishing the sub-map for laser matching through the sliding window, the method and the device can reconstruct the map only when the number of the inserted laser frames reaches the enough number (namely the second threshold), so that the operation amount is greatly reduced, and the precision and the operation amount are well balanced.

Drawings

In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings needed to be used in the embodiments or the prior art descriptions will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and it is obvious for those skilled in the art to obtain other drawings based on these drawings without inventive exercise.

Fig. 1 is a flowchart of an embodiment of a robot pose determination method according to an embodiment of the present invention;

FIG. 2 is a schematic flow chart of calculating the current pose of the robot in a map;

FIG. 3 is a schematic view of a map pointed to by a first pointer;

FIG. 4 is a schematic diagram illustrating the map pointed by the first pointer and the map pointed by the second pointer being alternately switched;

fig. 5 is a structural diagram of an embodiment of a robot pose determination apparatus according to an embodiment of the present invention;

fig. 6 is a schematic block diagram of a robot according to an embodiment of the present invention.

Detailed Description

In order to make the objects, features and advantages of the present invention more obvious and understandable, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention, and it is obvious that the embodiments described below are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.

Referring to fig. 1, an embodiment of a method for determining a pose of a robot according to an embodiment of the present invention may include:

and step S101, acquiring a laser frame currently acquired by a laser radar installed on the robot.

Preferably, while the laser frame is acquired, the acquisition time of the laser frame may also be read, which is denoted as t _ lidar herein. After the laser frame is obtained, the laser frame can be further filtered, and points too far away and too close to the laser frame can be removed, so that interference on a final pose result is avoided, and pose calculation accuracy is improved.

And S102, calculating the current pose of the robot in a map pointed by a preset first pointer according to the laser frame.

Specifically, if the laser frame is a first frame, a new empty map may be created, the first pointer points to the map, and the current pose is set as a preset initial pose, where the initial pose is the center of the map pointed by the first pointer, and is denoted as pos: { x, y, theta } {0,0 }.

If the laser frame is not the first frame, the current pose may be calculated by the process shown in fig. 2:

and step S1021, acquiring odometer data.

The odometry data can be wheel type odometry data or Inertial Measurement Unit (IMU) data or chassis odometry data fused by the two, and the data takes the pose of the wheel type odometer when the wheel type odometer is started as an origin. Here, the pose in the odometry data is denoted as p _ odom, the velocity in the odometry data is denoted as v, and the acquisition time of the odometry data is denoted as t _ odom.

And step S1022, calculating the predicted pose of the robot according to the odometer data.

Specifically, the predicted pose of the robot may be calculated according to the following equation:

pose_odom_predict=p_odom+v*(t_lidar-t_odom)

and the position _ object _ prediction is the predicted pose.

And S1023, performing matching calculation in the area determined by the predicted pose by using a preset matching algorithm to obtain the current pose.

Here, the first pointer is denoted as submap, and a map pointed by the submap is shown in fig. 3, where black is an obstacle, white is a blank area, and gray is an unknown area, and in the map, an area centered on the predicted pose may be determined, for example, the area may be a circular area centered on the predicted pose, and a radius of the circular area may be set in advance according to an actual situation, and of course, the area may also be set to be a rectangle or another shape, which is not specifically limited in this embodiment. In the area, a PCL matching algorithm or a template search matching algorithm can be adopted to match with the existing information on the map to obtain the best matching pose, the best matching pose is taken as the current pose, the current pose is marked as matched _ position, and the corresponding matching score is marked as score.

And step S103, acquiring the number of laser frames inserted into the map pointed by the first pointer.

For a newly-built air map, the laser frame number is initialized to 0, whenever a laser frame is inserted into the map, the laser frame number may be counted by a preset counter, if a condition 1 is satisfied, that is, the laser frame number is smaller than a preset first threshold, step S104 is performed, if a condition 2 is satisfied, that is, the laser frame number is greater than or equal to the first threshold and smaller than a preset second threshold, step S105 is performed, and if a condition 3 is satisfied, that is, the laser frame number is equal to the second threshold, step S106 is performed.

The specific values of the first threshold and the second threshold may be set according to actual conditions, and preferably, the second threshold may be set to be 2 times the first threshold, the first threshold is set to be n/2, the second threshold is set to be n, and n is an even number greater than 2.

Step S104, inserting the laser frame into a map pointed by the first pointer.

Step S105, respectively inserting the laser frame into the map pointed by the first pointer and the map pointed by the preset second pointer.

Here, the second pointer is denoted as a submap _ backup, and a form of a map pointed by the submap _ backup is similar to the map pointed by the submap shown in fig. 3. It is noted that the map pointed to by the second pointer is an empty map at the time of initial setup.

And step S106, pointing the first pointer to the map pointed by the second pointer, pointing the second pointer to the newly-built air-ground map, and inserting the laser frame into the map pointed by the first pointer.

Preferably, before the first pointer is pointed to the map pointed to by the second pointer, the map pointed to by the first pointer may be destroyed, so as to release the storage space occupied by the map pointed to by the first pointer.

As shown in fig. 4, the MAP pointed by the first pointer is a MAP for performing pose calculation, and is referred to as MAP1 here, the MAP pointed by the second pointer is a standby MAP, and is referred to as MAP2 here, the MAP2 is created after the number of laser frames inserted in the MAP1 reaches n/2 frames, and starts to insert laser frames, so that the number of laser frames inserted in the MAP1 is n/2 frames more than that of the MAP2, when the number of laser frames inserted in the MAP1 reaches n frames, the original MAP1 is destroyed, the original MAP2 is used as a new MAP1, an empty MAP is newly built as a new MAP2, and the above processes are repeated continuously. By the mode, two maps with a certain frame number difference are used in a staggered mode, pose calculation is carried out in the map with a large number of laser frames, the problem that the number of the laser frames possibly existing in a fixed window scene is small is solved, calculation accuracy is improved, compared with the mode that the sub-map is established for laser matching through the sliding window, the map is rebuilt only when the number of the inserted laser frames reaches the enough number, the operation amount is greatly reduced, and good balance is achieved between the accuracy and the operation amount.

Further, after step S102 and before step S103, it may be further determined whether the current pose meets a preset pose determination condition.

The pose determination conditions are as follows: the displacement of the current pose relative to the previous pose is larger than a preset displacement threshold, or the rotation angle of the current pose relative to the previous pose is larger than a preset angle threshold, or the time difference of the current pose relative to the previous pose is larger than a preset time threshold.

The previous pose is calculated from a last frame of laser light inserted into the map pointed to by the first pointer. The specific values of the displacement threshold, the angle threshold, and the time threshold may be set according to actual conditions, which is not specifically limited in this embodiment.

And if the current pose meets the pose determination condition, executing the step S103 and subsequent steps, and if the current pose does not meet the pose determination condition, not executing the step S103 and subsequent steps, and continuously acquiring next frame data collected by the laser radar and performing pose updating calculation. By the mode, the frequency of inserting the laser frame into the map can be effectively reduced, so that the frequency of map reconstruction and switching is reduced, and the purpose of further reducing the operation amount is achieved.

In summary, in the embodiment of the present invention, a laser frame currently acquired by a laser radar installed on a robot is first acquired, then, a current pose of the robot in a map pointed to by a preset first pointer is calculated according to the laser frame, a laser frame number inserted into the map pointed to by the first pointer is acquired, and if the laser frame number is smaller than a preset first threshold, the laser frame is inserted into the map pointed to by the first pointer; if the number of the laser frames is greater than or equal to the first threshold and smaller than a preset second threshold, respectively inserting the laser frames into a map pointed by the first pointer and a map pointed by a preset second pointer; and if the number of the laser frames is equal to the second threshold value, pointing the first pointer to a map pointed by the second pointer, pointing the second pointer to a newly-built air map, and inserting the laser frames into the map pointed by the first pointer. Compared with the conventional mode of establishing the sub-map for laser matching through the fixed window, the method and the device have the advantages that the two maps with a certain frame number difference are used in a staggered mode, pose calculation is carried out in the map with a large number of laser frames (namely the map pointed by the first pointer), the problem that the number of the laser frames possibly appears in the scene with the fixed window is small is solved, calculation accuracy is improved, and compared with the mode of establishing the sub-map for laser matching through the sliding window, the method and the device can reconstruct the map only when the number of the inserted laser frames reaches the enough number (namely the second threshold), so that the operation amount is greatly reduced, and the precision and the operation amount are well balanced.

It should be understood that, the sequence numbers of the steps in the foregoing embodiments do not imply an execution sequence, and the execution sequence of each process should be determined by its function and inherent logic, and should not constitute any limitation to the implementation process of the embodiments of the present invention.

Fig. 5 is a structural diagram of an embodiment of a robot pose determination apparatus according to an embodiment of the present invention, which corresponds to the robot pose determination method according to the above embodiment.

In this embodiment, a robot pose determining apparatus may include:

a laser frame acquiring module 501, configured to acquire a laser frame currently acquired by a laser radar installed on a robot;

a pose calculation module 502, configured to calculate, according to the laser frame, a current pose of the robot in a map pointed to by a preset first pointer;

a frame number obtaining module 503, configured to obtain a laser frame number inserted into the map pointed by the first pointer;

a first processing module 504, configured to insert the laser frame into a map pointed by the first pointer if the number of laser frames is smaller than a preset first threshold;

a second processing module 505, configured to insert the laser frame into a map pointed to by the first pointer and a map pointed to by a preset second pointer if the number of laser frames is greater than or equal to the first threshold and smaller than a preset second threshold;

a third processing module 506, configured to, if the number of laser frames is equal to the second threshold, point the first pointer to a map pointed by the second pointer, point the second pointer to a newly-created air-ground map, and insert the laser frame into the map pointed by the first pointer.

Further, the pose calculation module may include:

an initial pose setting unit, configured to set the current pose as a preset initial pose if the laser frame is a first frame;

the predicted pose calculation unit is used for acquiring odometer data if the laser frame is not the first frame, and calculating the predicted pose of the robot according to the odometer data;

and the current pose calculating unit is used for performing matching calculation in the area determined by the predicted pose by using a preset matching algorithm to obtain the current pose.

Further, the predicted pose calculation unit is specifically configured to calculate the predicted pose of the robot according to the following equation:

pose_odom_predict=p_odom+v*(t_lidar-t_odom)

wherein t _ odom is the acquisition time of the odometer data, t _ lidar is the acquisition time of the laser frame, p _ odom is the pose in the odometer data, v is the speed in the odometer data, and pos _ odom _ predict is the predicted pose.

Further, the robot pose determination apparatus may further include:

the judging module is used for judging whether the current pose meets preset pose judging conditions, wherein the pose judging conditions are as follows: the current pose is displaced relative to a previous pose by a displacement threshold value which is larger than a preset displacement threshold value, or the rotation angle of the current pose relative to the previous pose is larger than a preset angle threshold value, or the time difference of the current pose relative to the previous pose is larger than a preset time threshold value, and the previous pose is calculated according to a laser frame which is inserted into a map pointed by the first pointer in the previous frame.

Further, the robot pose determination apparatus may further include:

a storage space releasing unit configured to release a storage space occupied by the map pointed to by the first pointer.

It can be clearly understood by those skilled in the art that, for convenience and brevity of description, the specific working processes of the above-described apparatuses, modules and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.

In the above embodiments, the descriptions of the respective embodiments have respective emphasis, and reference may be made to the related descriptions of other embodiments for parts that are not described or illustrated in a certain embodiment.

Fig. 6 shows a schematic block diagram of a robot provided by an embodiment of the present invention, and for convenience of explanation, only the parts related to the embodiment of the present invention are shown.

As shown in fig. 6, the robot 6 of this embodiment includes: a processor 60, a memory 61 and a computer program 62 stored in said memory 61 and executable on said processor 60. The processor 60, when executing the computer program 62, implements the steps in each of the robot pose determination method embodiments described above, such as the steps S101 to S106 shown in fig. 1. Alternatively, the processor 60, when executing the computer program 62, implements the functions of the modules/units in the above device embodiments, such as the functions of the modules 501 to 506 shown in fig. 5.

Illustratively, the computer program 62 may be partitioned into one or more modules/units that are stored in the memory 61 and executed by the processor 60 to implement the present invention. The one or more modules/units may be a series of computer program instruction segments capable of performing specific functions, which are used to describe the execution of the computer program 62 in the robot 6.

Those skilled in the art will appreciate that fig. 6 is merely an example of a robot 6, and does not constitute a limitation of the robot 6, and may include more or fewer components than shown, or some components in combination, or different components, e.g., the robot 6 may also include input and output devices, network access devices, buses, etc.

The Processor 60 may be a Central Processing Unit (CPU), other general purpose Processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other Programmable logic device, discrete Gate or transistor logic device, discrete hardware component, etc. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.

The memory 61 may be an internal storage unit of the robot 6, such as a hard disk or a memory of the robot 6. The memory 61 may also be an external storage device of the robot 6, such as a plug-in hard disk, a Smart Media Card (SMC), a Secure Digital (SD) Card, a Flash memory Card (Flash Card), or the like, provided on the robot 6. Further, the memory 61 may also include both an internal storage unit and an external storage device of the robot 6. The memory 61 is used for storing the computer program and other programs and data required by the robot 6. The memory 61 may also be used to temporarily store data that has been output or is to be output.

It will be apparent to those skilled in the art that, for convenience and brevity of description, only the above-mentioned division of the functional units and modules is illustrated, and in practical applications, the above-mentioned function distribution may be performed by different functional units and modules according to needs, that is, the internal structure of the apparatus is divided into different functional units or modules to perform all or part of the above-mentioned functions. Each functional unit and module in the embodiments may be integrated in one processing unit, or each unit may exist alone physically, or two or more units are integrated in one unit, and the integrated unit may be implemented in a form of hardware, or in a form of software functional unit. In addition, specific names of the functional units and modules are only for convenience of distinguishing from each other, and are not used for limiting the protection scope of the present application. The specific working processes of the units and modules in the system may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.

In the above embodiments, the descriptions of the respective embodiments have respective emphasis, and reference may be made to the related descriptions of other embodiments for parts that are not described or illustrated in a certain embodiment.

Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.

In the embodiments provided by the present invention, it should be understood that the disclosed apparatus/robot and method may be implemented in other ways. For example, the above-described embodiments of the apparatus/robot are merely illustrative, and for example, the division of the modules or units is only one logical division, and there may be other divisions when actually implemented, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.

The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.

In addition, functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.

The integrated modules/units, if implemented in the form of software functional units and sold or used as separate products, may be stored in a computer readable storage medium. Based on such understanding, all or part of the flow of the method according to the embodiments of the present invention may also be implemented by a computer program, which may be stored in a computer-readable storage medium, and when the computer program is executed by a processor, the steps of the method embodiments may be implemented. Wherein the computer program comprises computer program code, which may be in the form of source code, object code, an executable file or some intermediate form, etc. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, usb disk, removable hard disk, magnetic disk, optical disk, computer Memory, Read-Only Memory (ROM), Random Access Memory (RAM), electrical carrier wave signals, telecommunications signals, software distribution medium, and the like. It should be noted that the computer readable medium may contain content that is subject to appropriate increase or decrease as required by legislation and patent practice in jurisdictions, for example, in some jurisdictions, computer readable media does not include electrical carrier signals and telecommunications signals as is required by legislation and patent practice.

The above-mentioned embodiments are only used for illustrating the technical solutions of the present invention, and not for limiting the same; although the present invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; such modifications and substitutions do not substantially depart from the spirit and scope of the embodiments of the present invention, and are intended to be included within the scope of the present invention.

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:远距离非视域成像方法、装置、设备及介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类