Positioning methods, devices, robots, and storage media for mobile devices
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-12-27
- Publication Date
- 2026-08-14
AI Technical Summary
[0004]本申请实施例提供了移动设备的定位方法、装置及机器人,可以解决移动设备在定位过程中定位速度较慢的问题
[0019]在本申请实施例中,在预构建的栅格地图估测与采集的点云对应的定位栅格,得到候选栅格,并根据预构建的映射关系确定候选栅格对应的目标障碍物栅格。由于预构建的映射关系包括栅格地图中的定位栅格与目标障碍物栅格的对应关系,因此,与采集的点云实时遍历匹配栅格地图上的栅格来得到匹配结果相比,本申请实施例中直接根据预构建的映射关系来确定与候选栅格对应的目标障碍物栅格的速度更快。此外,根据目标障碍物栅格以及采集的点云能够对得到移动设备的粗定位进行校正,进而得到移动设备在当前时刻对应的准确的位置信息。也即,采用本申请实施例提供的移动设备的定位方法,能够快速、准确地得到移动设备的位置信息,更好的满足实时性要求。
Smart Images

Figure CN116182834B_ABST
Abstract
Description
Technical Field
[0001] This application belongs to the field of positioning technology, and in particular relates to positioning methods, devices, robots, and computer-readable storage media for mobile devices. Background Technology
[0002] Currently, mobile devices (such as robots) need to perform positioning operations during movement.
[0003] In existing methods, a LiDAR scanner can be pre-installed on a mobile device. As the device moves, the radar acquires a point cloud of the environment. The mobile device then matches this point cloud with the point cloud of a pre-built map, and uses the matching result to locate itself. However, the point cloud matching process is time-consuming, resulting in slow localization. Summary of the Invention
[0004] This application provides a method, apparatus, and robot for locating mobile devices, which can solve the problem of slow positioning speed of mobile devices during the positioning process.
[0005] In a first aspect, embodiments of this application provide a method for locating a mobile device, comprising:
[0006] Obtain the point cloud data collected by the mobile device at the current moment;
[0007] Candidate grids are obtained by estimating and collecting the location grids corresponding to the point cloud from the pre-constructed grid map;
[0008] The target obstacle grid corresponding to the candidate grid is determined according to the pre-constructed mapping relationship, wherein the target obstacle grid is the obstacle grid that matches the candidate grid, the obstacle grid is the grid corresponding to the obstacle in the grid map, and the mapping relationship includes the correspondence between the positioning grid in the grid map and the target obstacle grid;
[0009] The location information of the mobile device at the current moment is determined based on the identified target obstacle grid and the collected point cloud.
[0010] Secondly, embodiments of this application provide a positioning device for a mobile device, comprising:
[0011] The point cloud acquisition module is used to acquire the point cloud collected by the mobile device at the current moment;
[0012] The candidate grid determination module is used to estimate the location grid corresponding to the point cloud in the pre-constructed grid map and obtain candidate grids;
[0013] The target obstacle grid determination module is used to determine the target obstacle grid corresponding to the candidate grid according to the pre-built mapping relationship, wherein the target obstacle grid is the obstacle grid that matches the candidate grid, the obstacle grid is the grid corresponding to the obstacle in the grid map, and the mapping relationship is used to record the correspondence between each positioning grid in the grid map and the target obstacle grid;
[0014] The location determination module is used to determine the location information of the mobile device at the current moment based on the determined target obstacle grid and the collected point cloud.
[0015] Thirdly, embodiments of this application provide a robot including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the method described in the first aspect.
[0016] Fourthly, embodiments of this application provide a computer-readable storage medium storing a computer program that, when executed by a processor, implements the method described in the first aspect.
[0017] Fifthly, embodiments of this application provide a computer program product that, when run on a robot, causes the robot to perform the method described in any one of the first aspects above.
[0018] The beneficial effects of the embodiments in this application compared with the prior art are:
[0019] In this embodiment, the location grids corresponding to the collected point cloud are estimated from the pre-constructed grid map to obtain candidate grids, and the target obstacle grids corresponding to the candidate grids are determined according to the pre-constructed mapping relationship. Since the pre-constructed mapping relationship includes the correspondence between location grids in the grid map and target obstacle grids, this embodiment is faster than obtaining matching results by real-time traversal and matching of grids on the grid map using the collected point cloud. Furthermore, the coarse positioning of the mobile device can be corrected based on the target obstacle grid and the collected point cloud, thereby obtaining the accurate location information of the mobile device at the current moment. In other words, the mobile device positioning method provided in this embodiment can quickly and accurately obtain the location information of the mobile device, better meeting real-time requirements. Attached Figure Description
[0020] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments or the prior art will be briefly introduced below.
[0021] Figure 1 This is a schematic flowchart of a positioning method for a mobile device provided in an embodiment of this application;
[0022] Figure 2 This is a schematic diagram of a grid map provided in one embodiment of this application;
[0023] Figure 3 This is a schematic diagram of a search area provided in an embodiment of this application;
[0024] Figure 4 This is a schematic diagram of a grid map with 9 positioning grids provided in one embodiment of this application;
[0025] Figure 5 This is a schematic diagram of the structure of a positioning device for a mobile device according to another embodiment of this application;
[0026] Figure 6 This is a schematic diagram of the structure of a robot provided in one embodiment of this application. Detailed Implementation
[0027] In the following description, specific details such as particular system architectures and techniques are set forth for illustrative purposes and not for limitation, in order to provide a thorough understanding of the embodiments of this application. However, those skilled in the art will understand that this application may also be implemented in other embodiments without these specific details. In other instances, detailed descriptions of well-known systems, apparatuses, circuits, and methods have been omitted so as not to obscure the description of this application with unnecessary detail.
[0028] It should be understood that, when used in this application specification and the appended claims, the term "comprising" indicates the presence of the described features, integrals, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, integrals, steps, operations, elements, components and / or a collection thereof.
[0029] It should also be understood that the term “and / or” as used in this application specification and the appended claims means any combination of one or more of the associated listed items and all possible combinations, and includes such combinations.
[0030] References to "one embodiment" or "some embodiments" in this specification mean that one or more embodiments of this application include a specific feature, structure, or characteristic described in connection with that embodiment. Therefore, the phrases "in one embodiment," "in some embodiments," "in other embodiments," "in still other embodiments," etc., appearing in different parts of this specification do not necessarily refer to the same embodiment, but rather mean "one or more, but not all, embodiments," unless otherwise specifically emphasized.
[0031] Example 1:
[0032] In mobile device localization, the device needs to be located by matching the point cloud acquired by radar with the point cloud in a pre-constructed grid map. For example, the constructed grid map can be a two-dimensional grid map, where each grid cell can be a point in the point cloud. Matching the real-time acquired laser point cloud with the map point cloud is often achieved through real-time traversal. For example, the kd-tree method is used to find the nearest point in the map point cloud corresponding to a point in the real-time acquired laser point cloud (point-to-point proximity search). Then, the pose transformation relationship between the laser point cloud and the matched map point cloud is calculated, and the point in the laser point cloud undergoes pose transformation. This process is repeated until a preset condition is met. Using real-time traversal to find the matching point cloud results in slower mobile device localization. This is because the constructed grid map has a large number of grid points with irregular distribution. Especially in large scenes, such as airports, or complex environments, such as restaurants, real-time kd-tree traversal takes a long time, thus reducing localization speed. Mobile devices, especially service robots, change position rapidly during movement, resulting in slow positioning speeds. This can affect the robot's real-time positioning accuracy and increase the risk of accidents.
[0033] To improve the positioning speed of mobile devices, this application provides a positioning method for mobile devices. In this method, for a pre-constructed grid map, a mapping relationship is pre-built, including the correspondence between positioning grids and target obstacle grids in the grid map. When the mobile device acquires a point cloud, it can quickly determine the target obstacle grid corresponding to the positioning grid from the pre-built mapping relationship based on the positioning grid corresponding to the point cloud. That is, it can quickly find the target obstacle grid matching the positioning grid from the pre-constructed grid map, thereby improving the positioning speed of the mobile device.
[0034] The positioning method for mobile devices provided in the embodiments of this application will now be described with reference to the accompanying drawings.
[0035] Figure 1 A flowchart illustrating a positioning method for a mobile device according to an embodiment of this application is shown below in detail:
[0036] Step S11: Obtain the point cloud collected by the mobile device at the current moment.
[0037] Among them, mobile devices refer to devices that can move autonomously, such as various types of robots (e.g., delivery robots, disinfection robots, etc.) and vehicles that are automatically inspected.
[0038] In this embodiment, the mobile device can collect point clouds through a measuring device. This measuring device may include radar (such as lidar) or a stereo camera. Specifically, if a lidar is installed on the mobile device, it can collect point clouds at preset intervals. For example, if the preset interval is 0.01 seconds, and the lidar collects point clouds once at "10:10:09", it will collect point clouds again at "10:10:10". That is, assuming the current time is "10:10:09", the point cloud collected by the mobile device at the current time is the point cloud collected by the lidar of the mobile device at "10:10:09".
[0039] Step S12: Estimate the location grid corresponding to the collected point cloud in the pre-constructed grid map to obtain candidate grids.
[0040] In this context, a raster map can refer to a map that uses two-dimensional graticles to represent planar information. For example, one graticle corresponds to one point in a point cloud. In this case, selecting several graticles from the raster map can construct a map point cloud. Figure 2 A schematic diagram of a raster map is shown. Figure 2 In the grid map, black represents the outline of obstacles, and white represents passable areas. Obstacles can include objects such as walls, chairs, and tables that impede the movement of mobile devices. In some embodiments, if it is impossible to determine whether an area is passable or an obstacle during the construction of the grid map, it can be marked in gray. Figure 2 (Not shown), that is, areas marked in gray indicate unknown areas. In other embodiments, areas such as cliffs and stairs may also be marked in gray to prohibit robots from passing through.
[0041] It should be noted that the colors used to mark obstacles and passable areas in the grid map can be set according to actual needs, as long as the set colors can effectively distinguish between the two.
[0042] In this context, a positioning grid refers to a grid used to assist in determining the location of a mobile device. After the mobile device acquires a point cloud, it can estimate the corresponding grid on the grid map based on the information included in the acquired point cloud and the information of the point cloud on the grid map. For example, by projecting the acquired point cloud onto the positioning grid of the grid map, the resulting projected grid is the candidate grid in this embodiment of the application.
[0043] Step S13: Determine the target obstacle grid corresponding to the candidate grid according to the pre-constructed mapping relationship, wherein the target obstacle grid is the obstacle grid that matches the candidate grid, the obstacle grid is the grid corresponding to the obstacle in the grid map, and the mapping relationship includes the correspondence between the positioning grid and the target obstacle grid in the grid map.
[0044] In this context, the grid cell corresponding to an obstacle on the grid map is called the obstacle grid.
[0045] In this embodiment, the correspondence between the positioning grid and the target obstacle grid is predetermined, and the mapping relationship of this embodiment is determined based on the correspondence. Specifically, all grids in the grid map can be used as positioning grids (each grid serves as a positioning grid). In this case, the mapping relationship includes the correspondence between each grid in the grid map and the target obstacle grid. Alternatively, only a portion of the grids in the grid map can be used as positioning grids. In this case, the mapping relationship includes the correspondence between a portion of the grid map and the target obstacle grid.
[0046] In this embodiment of the application, for example, the obstacle grid closest to the positioning grid can be used as the obstacle grid that matches the positioning grid. In this case, the target obstacle grid corresponding to the positioning grid is the obstacle grid closest to the positioning grid. Of course, the target obstacle grid corresponding to the positioning grid can also be determined according to other matching rules, which is not limited here.
[0047] Step S14: Determine the location information of the mobile device at the current moment based on the determined target obstacle grid and the collected point cloud.
[0048] During operation, the robot can obtain its approximate position information based on sensor data. Using this approximate position information, along with a point cloud reflecting the relative pose of the mobile device to the target obstacle grid at the current moment, the precise position information of the mobile device at that moment can be determined.
[0049] In this embodiment, since the pre-built mapping relationship includes the correspondence between the positioning grids and the target obstacle grids in the grid map, it is faster to directly determine the target obstacle grid corresponding to the candidate grid by traversing and matching the grids on the grid map in real time using the collected point cloud to obtain the matching result. Furthermore, the coarse positioning of the mobile device can be corrected based on the target obstacle grid and the collected point cloud, thereby obtaining the accurate location information of the mobile device at the current moment. That is, the mobile device positioning method provided in this embodiment can quickly and accurately obtain the location information of the mobile device, better meeting real-time requirements.
[0050] Example 2:
[0051] In some embodiments, to improve the speed of obtaining the positioning grid, step S12 in the foregoing embodiments includes:
[0052] A1. Based on the mobile device's operating information from the previous moment to the current moment and the location information determined by the mobile device in the previous moment, determine the mapping range on the grid map.
[0053] Here, "the previous moment" refers to the moment when the point cloud was last collected, and the previous moment and the current moment are two adjacent moments when the point cloud was collected.
[0054] The operational information from the previous moment to the current moment includes distance values and / or the orientation of the mobile device. Additionally, this operational information may also include the mobile device's speed, etc., without limitation. For example, the robot's operational information can be obtained from inertial measurement unit (IMU) data, odometry data, etc.
[0055] A2. Estimate the location grid corresponding to the collected point cloud within the mapping range.
[0056] In this embodiment, since the mobile device is located in real time during operation, the possible current location range of the mobile device can be estimated based on the location information determined by the mobile device at the previous moment and the operation information of the mobile device from the previous moment to the current moment. For example, assuming that the operation information includes distance values, which can be obtained through odometer data, the mobile device may currently be located at the position corresponding to the location point of the previous moment's location information as the center and the distance value as the radius of the arc. IMU information can also be referenced to determine the direction information, thus narrowing the mapping range. Compared with estimating the entire grid map, since this embodiment only estimates the positioning grid corresponding to the point cloud within the mapping range, it can effectively improve the estimation speed of estimating the positioning grid corresponding to the point cloud, improve the accuracy of positioning grid mapping, and reduce deviation. For example, each grid of the grid map has coordinate range information. The mobile device can obtain the coarse positioning coordinate information of the mobile device at the current moment based on the operation information from the previous moment to the current moment and the location information determined by the mobile device at the previous moment. Then, based on the point cloud information and acquisition parameters at the current moment, the point cloud can be matched to the corresponding positioning grid.
[0057] Therefore, in this embodiment, the coarse positioning information of the mobile device at the current moment can be obtained by combining the precise positioning from the previous moment with the mobile device's operational information, thus narrowing the mapping range, improving the speed of the positioning grid, and consequently increasing the point cloud matching speed. In other words, the mobile device positioning method provided in this application embodiment can obtain the mobile device's location information more quickly.
[0058] Example 3:
[0059] In some embodiments, before step S13 in the foregoing embodiments, a preset mapping relationship needs to be constructed. In this case, the mobile device positioning method provided in this application embodiment further includes:
[0060] B1. Identify at least two predetermined obstacle grids in the grid map, wherein the predetermined obstacle grids are the obstacle grids that participate in the operation of constructing the mapping relationship.
[0061] Optionally, all grids in the map can be traversed to extract all black grids (obstacle grids) as the predetermined obstacle grids.
[0062] Specifically, before constructing the mapping relationship, obstacle grids participating in the calculation of constructing the mapping relationship are selected from the obstacle grid to obtain the predetermined obstacle grid. Preferably, all inner obstacle grids in the grid map are used as predetermined obstacle grids. Considering that some obstacles, such as walls, may be quite thick and may occupy multiple grids on the grid map along their thickness direction, the grid closest to the passable area of the mobile device is used as an inner obstacle, while the remaining grids are used as outer obstacles, and the outer obstacle grids do not need to participate in the construction of the mapping relationship. Since the LiDAR can only scan the innermost obstacle surface when scanning obstacles to obtain point cloud information, using all inner obstacle grids as predetermined obstacle grids can improve the accuracy and calculation speed of the mapping relationship construction.
[0063] In this embodiment of the application, since the target obstacle grid corresponding to the positioning grid is subsequently determined based on the distance between the positioning grid and the obstacle grid, in order to improve the accuracy of the constructed mapping relationship, it is necessary to select at least two obstacle grids from the grid map as predetermined obstacle grids.
[0064] B2. Determine the positioning grid in the grid map and calculate the distance value of the positioning grid, wherein the positioning grid is the grid that participates in the operation of constructing the above mapping relationship, and the distance value of the positioning grid is used to reflect the distance between the positioning grid and the predetermined obstacle grid.
[0065] In this setting, the distance between the predetermined obstacle grid and itself is set to 0.
[0066] Specifically, non-obstacle grids are selected from the grid map as positioning grids, and the distance between the positioning grid and the predetermined obstacle grid is calculated to obtain a distance value, which is used as the distance value of the positioning grid. It should be noted that each distance value represents the distance between the positioning grid and a predetermined obstacle grid. Specifically, all or part of the grids in the grid map can be used as positioning grids.
[0067] B3. Determine the target obstacle grid corresponding to the positioning grid based on the distance value of the positioning grid.
[0068] Specifically, if the obstacle grid closest to the positioning grid is selected as the matching obstacle grid (i.e., the distance value filtering condition is the minimum distance value), then the predetermined obstacle grid corresponding to the minimum distance value among all the distance values of the positioning grid is selected as the target obstacle grid corresponding to the positioning grid. In this case, since the distance between the predetermined obstacle grid and itself is 0, i.e., the distance of the predetermined obstacle grid is 0, it is used as its corresponding target obstacle grid. Of course, other distance value filtering conditions can also be set, and the target obstacle grids corresponding to the positioning grid and the predetermined obstacle grid can be filtered according to the set distance value filtering conditions.
[0069] B4. Construct a mapping relationship based on the positioning grid and the target obstacle grid corresponding to the positioning grid.
[0070] Since the matching of two grids is related to their distance—for example, the closer the two grids are, the higher their matching degree—in this embodiment, after determining the positioning grid in the grid map and calculating the distance value of the positioning grid reflecting the distance between the positioning grid and the predetermined obstacle grid, the target obstacle grid corresponding to the positioning grid can be determined based on the distance value of the positioning grid. Furthermore, a mapping relationship containing the correspondence between the positioning grid and the target obstacle grid can be accurately constructed based on the predetermined obstacle grid, the aforementioned positioning grid, and the target obstacle grid corresponding to the aforementioned positioning grid. Preferably, the mapping relationship is constructed before the robot starts working, facilitating direct use during robot operation and improving positioning speed.
[0071] Optionally, each grid cell on the raster map can be numbered, and the mapping relationship can be stored in the form of a relational table for quick lookup and use by mobile devices. The mapping information for each location grid cell can include: the number of the nearest target obstacle grid cell, and the distance to that target obstacle grid cell.
[0072] When in use, the point cloud data collected in real time by the LiDAR is projected onto a grid map. Based on a stored relational table, the corresponding target obstacle grid number and distance can be found on the grid map. Correspondingly, the actual coordinates of the target obstacle grid can also be determined based on its grid number.
[0073] In some other embodiments, steps B2, B3, and B4 above can be replaced by: calculating the distance values of the grid cells in the map and the corresponding target obstacle grid cells, and determining the positioning grid cells, their target obstacle grid cells, and the corresponding distance values.
[0074] Specifically, starting from the predetermined obstacle grid itself, the system traverses the surrounding grids circumferentially, calculating the distance between each traversed grid and its nearest predetermined obstacle grid. This process is repeated, centering on each traversed grid, until the distance between the traversed grid and the predetermined obstacle grid exceeds a set grid distance, at which point the traversal stops. At this point, all grids whose distance to the predetermined obstacle grid does not exceed the set grid distance are considered positioning grids (including the predetermined obstacle grid). Through this process, the nearest target obstacle grid and its distance value can be obtained, thus establishing a mapping relationship: positioning grid – nearest target obstacle grid – distance value. The set grid distance can be determined by converting the robot's positioning deviation range into grid distances, thereby reducing the computational load and accelerating the computation speed.
[0075] In some embodiments, step B2, when determining the location grid in the grid map, includes:
[0076] The search area is determined on the grid map based on the predetermined obstacle grid and the preset search radius, and the positioning grid is determined in the search area.
[0077] The preset search radius can be set according to actual conditions, such as the deviation distance of the point cloud. For example, assuming the deviation distance of the point cloud is 3 meters and the scale of the raster map to the actual scene is 1 / 90, the preset search radius can be set to 3*(1 / 90) = 1 / 30 meters.
[0078] like Figure 3 As shown, the distance indicated by the double arrows is the preset search radius, based on... Figure 3 When determining the positioning grid based on the predetermined obstacle grid shown, the search area is first determined according to the preset search radius (i.e., Figure 3 The area corresponding to the middle slash is then used to determine the positioning grid within that search area.
[0079] In this embodiment of the application, considering that the deviation distance between point clouds will not be too far, that is, a positioning grid will usually not be misidentified as matching a distant predetermined obstacle grid, the search area is determined according to the predetermined obstacle grid and the preset search radius, and then the positioning grid is determined in the search area. This not only filters out the effective positioning grid, but also reduces the number of determined positioning grids, thereby improving the speed and accuracy of subsequent target obstacle grid determination.
[0080] In some embodiments, the minimum distance value corresponding to the positioning grid can be determined by traversal. In this case, step B2 above includes:
[0081] B21. Use the predetermined obstacle grid as the parent point.
[0082] B22. Traverse each parent point and find the child point corresponding to the parent point in the current traversal in the grid map. The child point is the positioning grid adjacent to the parent point.
[0083] It should be noted that the sub-points in this embodiment can be searched in the entire grid map or in a part of the grid map. For example, the search area is first determined based on the parent point and the preset search radius, and then the sub-points (that is, the positioning grids) are determined from the determined search area.
[0084] B23. Determine the parent-child relationship of each child point found in this traversal, and calculate the distance value of each child point found in this traversal.
[0085] In this context, the parent-child relationship refers to the correspondence between the positioning grids that serve as parent points and the positioning grids that serve as child points. In a single traversal, a parent point typically has multiple child points; that is, in a single traversal, multiple sets of parent-child relationships can be determined, and multiple distance values can be calculated (each child point corresponds to one distance value).
[0086] B24. For each child point, if the parent-child relationship and distance value corresponding to the child point are not recorded, then record the parent-child relationship and distance value corresponding to the child point. If the parent-child relationship and distance value corresponding to the child point have been recorded, and the distance value of the child point determined in this traversal is less than the distance value of the child point already recorded, then update the distance value and parent-child relationship of the child point already recorded using the distance value and parent-child relationship determined in this traversal.
[0087] In this embodiment, after calculating the distance value corresponding to a sub-point, it is determined whether the distance value meets a preset retention condition. If it does, the distance value of the sub-point is recorded; otherwise, the distance value is discarded. The preset retention condition may include: for each sub-point, whether its distance value has been recorded in previous traversals. If not, the distance value obtained in the current traversal is recorded as the distance value of the sub-point. If it has been recorded, it is determined whether the distance value obtained in the current traversal is less than the previously recorded distance value. If it is less, the previously recorded distance value is updated using the distance value obtained in the current traversal.
[0088] B25. Determine the new parent point based on each child point found in this traversal, and return to the steps of traversing each parent point as described above, until the traversal stops.
[0089] Specifically, a new parent point can be selected from the child points according to a preset parent point selection rule. The preset parent point selection rule may include: whether the child point has not been traversed as a parent point before; if so, the child point is regarded as a new parent point; if not, it is determined whether the distance value of the child point in this traversal is less than the recorded distance value; if it is less, the child point is regarded as a new parent point.
[0090] The traversal stopping condition can include: all the positioning grids of the target area have been traversed. The target area can be the entire grid map or a portion of the grid map. For example, if B22 above searches for a sub-point in a portion of the grid map (such as the search area), then the target area is the aforementioned search area.
[0091] B26. Use the distance values corresponding to each recorded sub-point as the distance values of each positioning grid.
[0092] Correspondingly, B3 above includes:
[0093] Based on the parent-child relationship corresponding to the distance value of the positioning grid, the target obstacle grid corresponding to the positioning grid is determined.
[0094] Specifically, since there is a correspondence between the recorded parent-child relationship and the distance value, that is, the distance value is used to reflect the distance between the child point and the parent point in the corresponding parent-child relationship, the corresponding parent-child relationship can be determined based on the distance value of the positioning grid, and then the obstacle grid corresponding to the parent point can be determined from the parent-child relationship. The determined obstacle grid is the target obstacle grid corresponding to the positioning grid.
[0095] In this embodiment of the application, since the distance value of the child point is calculated by traversing the parent point to search for the child point, and the traversal method can ensure the comprehensiveness of the searched child points, the reliability of the obtained distance value as the minimum value can also be guaranteed by the above traversal method.
[0096] Understandably, a kdtree can also be used to calculate the mapping relationship, but this involves a large amount of computation and is slow.
[0097] In some embodiments, the distance value of a child point can be determined based on the distance value of the parent point and the distance value between the child point and the parent point. In this case, step B2 above, when calculating the distance value corresponding to each child point found in this traversal, includes:
[0098] For each child point found in this traversal, calculate the distance value corresponding to the child point based on the distance value of the child point's parent point and the distance value between the child point and the parent point.
[0099] Since the distance value of the positioning grid is used to reflect the distance between the positioning grid and the predetermined obstacle grid, and the positioning grid itself may be a predetermined obstacle grid (in which case, the distance value of the positioning grid is 0), the positioning grid may also be a positioning grid adjacent to the predetermined obstacle grid (in which case, the distance value of the positioning grid can be directly calculated based on the distance between the positioning grid and the predetermined obstacle grid), and the positioning grid may also be a positioning grid that is not adjacent to the predetermined obstacle grid (in which case, the corresponding distance value of the positioning grid can be calculated by using the distance value of the positioning grid adjacent to the obstacle grid), therefore, based on the distance value of the parent point corresponding to the child point and the distance value between the child point and the parent point, the distance value obtained from the previous traversal can be used efficiently to quickly and accurately calculate the distance value corresponding to the child point.
[0100] To more clearly describe how to determine the parent point, child points, and how to calculate the distance value of the child points, a specific application example is described below.
[0101] Figure 4 A schematic diagram of a grid map with nine positioning grids is shown. Figure 4 In this case, assuming that only grid A is a predetermined obstacle grid, then after performing the above step B21, only one parent point is obtained, which is the positioning grid A.
[0102] Traverse the positioning grid A and find its child points, which are: positioning grid B, positioning grid C, positioning grid D, positioning grid E, positioning grid F, positioning grid G, positioning grid H, and positioning grid J.
[0103] For a positioning grid A, both the child and parent points in its parent-child relationship are itself, and the distance between them is 0.
[0104] For positioning grid B, in its parent-child relationship, the parent point is positioning grid A, and the child point is positioning grid B. From Figure 4 It can be seen that the distance between positioning grid A and positioning grid B can be obtained by calculating the distance between the center of positioning grid A and the center of positioning grid B, which is assumed to be 1.
[0105] For a positioning grid C, its parent is positioning grid A, and its child is positioning grid C. The distance between positioning grid C and positioning grid A can be calculated as √2, which is the distance between the centers of positioning grid C and positioning grid A. For positioning grid I to the left of C, it will be traversed by B, C, and other surrounding positioning grids. When traversed by B, its distance from the predetermined obstacle grid A is the distance from I to B plus the distance from B to A, i.e., √2 + 1. Similarly, when traversed by C, its distance from the predetermined obstacle grid A is the distance from I to C plus the distance from C to A, i.e., 1 + √2.
[0106] The process of determining the parent-child relationship of positioning grids D, E, F, G, H, and J is similar to that of determining the parent-child relationship of positioning grids B and C. Furthermore, the calculation process for the distance values of positioning grids D, E, F, G, H, and J is also similar to that of positioning grids B and C, and will not be elaborated upon here.
[0107] After determining the parent-child relationships and distance values of positioning grids B, C, D, E, F, G, H, and J, since this is the first traversal of the parent points, the parent-child relationships and distance values of these child points are not recorded. That is, after traversing positioning grid A, the parent-child relationships and distance values of positioning grids B, C, D, E, F, G, H, and J are recorded respectively.
[0108] Suppose the parent point selection rules include: whether a child point has not been traversed as a parent point before; if so, then the child point is treated as a new parent point; otherwise, it is determined whether the distance value of the child point in the current traversal is less than the recorded distance value; if it is less, then the child point is treated as a new parent point. Since positioning grids B, C, D, E, F, G, H, and J have not been traversed as parent points before, these child points are all treated as new parent points.
[0109] Traverse these new parent points. Assuming the current traversal is of positioning grid C, find the child points of positioning grid C, which are positioning grid B, positioning grid A, and positioning grid D. Then calculate the distance values of positioning grid B, positioning grid A, and positioning grid D respectively. The obtained distance values are √2+1, √2+√2, and √2+1 respectively. Since the distance value (√2+1) of positioning grid B is greater than the recorded distance value (1) in this traversal, the distance value "√2+1" calculated in this traversal is discarded. Similarly, the distance values of positioning grid A and positioning grid D are also less than the recorded distance values, so the distance values calculated in this traversal are also discarded.
[0110] After traversing the child points B, C, D, E, F, G, H, and J, taking positioning grid B as an example, since positioning grid B has already been traversed as a parent point, and the distance value calculated for positioning grid B in this traversal is greater than the previously recorded distance value, positioning grid B will not be included as a new parent point in the next traversal. The process for determining whether the other positioning grids can be new parent points is similar to that for positioning grid B, and will not be elaborated here.
[0111] Once the traversal stopping condition is met, the traversal stops, and the distance value of each recorded sub-point is used as the distance value of the corresponding positioning grid.
[0112] In some embodiments of this application, the mapping relationship further includes the correspondence between positioning grids and distance values, and step S14 above includes:
[0113] C1. Based on the determined target obstacle grid, the collected point cloud, and the distance value corresponding to the positioning grid in the mapping relationship, determine the relative pose between the point cloud corresponding to the target obstacle grid and the collected point cloud.
[0114] Specifically, the point cloud corresponding to the target obstacle grid (assumed to be the first point cloud) is determined. A data point set is extracted from the first point cloud. The extracted data point set is then subjected to geometric transformation (such as rotation and / or translation transformation) to obtain a transformed data point set. The distance between the transformed data point set and the data point set corresponding to the acquired point cloud is then calculated. If the calculated distance is less than or equal to the distance value of the positioning grid (i.e., the positioning grid corresponding to the acquired point cloud), the iteration stops, and the relative pose between the first point cloud and the acquired point cloud is calculated. Otherwise, the step of extracting the data point set from the first point cloud and subsequent steps are returned, and it is then determined whether the distance between the new transformed data point set and the data point set corresponding to the acquired point cloud meets the requirements.
[0115] C2. Determine the location information of the mobile device at the current moment based on the relative pose, the mobile device's operation information from the previous moment to the current moment, and the location information determined by the mobile device at the previous moment.
[0116] Specifically, based on the operating information from the previous moment to the current moment (assuming a duration of t), the operating distance and / or operating angle of the mobile device within the duration of t are determined. Then, combined with the position information (i.e., accurate position information) determined by the mobile device at the previous moment and the determined relative pose, the accurate position information of the mobile device at the current moment can be determined, thereby achieving the calibration of the position information of the mobile device.
[0117] For example, when using the positioning method of this application to locate a robot, it can be applied as follows:
[0118] (1) Convert the laser information collected by the robot into point cloud information.
[0119] (2) Convert the black grid points (obstacle grids) in the two-dimensional grid map into point cloud information.
[0120] (3) Using the map point cloud as the original point cloud and the laser point cloud as the target point cloud, find the nearest matching original point for each target point according to the pre-constructed mapping relationship. Calculate the pose transformation between the matching points through SVD and translation, and then perform pose transformation on the target point. Repeat matching and pose transformation until a preset condition is met, which may be that the error function (matching rate) is less than a certain range, a certain number of iterations, or a certain amount of time. Obtain the relative pose of the laser point cloud and the grid point cloud, which is the pose that the robot needs to correct. Perform pose correction on the robot to obtain the robot's current accurate position information.
[0121] In other words, in this embodiment of the application, when performing ICP matching, the nearest original point corresponding to each target point is not found through kdtree, which reduces the amount of computation and ensures the accuracy of the robot's real-time positioning.
[0122] It should be understood that the sequence number of each step in the above embodiments does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0123] Example 4:
[0124] Corresponding to the positioning method of the mobile device in the above embodiments, Figure 5 A structural block diagram of a positioning device for a mobile device provided in an embodiment of this application is shown. For ease of explanation, only the parts related to the embodiments of this application are shown.
[0125] Reference Figure 5The positioning device 5 of the mobile device includes: a point cloud acquisition module 51, a candidate grid determination module 52, a target obstacle grid determination module 53, and a position determination module 54. Wherein:
[0126] The point cloud acquisition module 51 is used to acquire the point cloud collected by the mobile device at the current moment.
[0127] The candidate grid determination module 52 is used to estimate the location grid corresponding to the point cloud collected above in the pre-constructed grid map to obtain candidate grids.
[0128] The target obstacle grid determination module 53 is used to determine the target obstacle grid corresponding to the candidate grid according to the pre-constructed mapping relationship, wherein the target obstacle grid is the obstacle grid that matches the candidate grid, the obstacle grid is the grid corresponding to the obstacle in the grid map, and the mapping relationship includes the correspondence between the positioning grid in the grid map and the target obstacle grid.
[0129] The location determination module 54 is used to determine the location information of the mobile device at the current moment based on the determined target obstacle grid and the collected point cloud.
[0130] In this embodiment, since the pre-built mapping relationship includes the correspondence between the positioning grids and the target obstacle grids in the grid map, it is faster to directly determine the target obstacle grid corresponding to the candidate grid by traversing and matching the grids on the grid map in real time using the collected point cloud to obtain the matching result. Furthermore, the coarse positioning of the mobile device can be corrected based on the target obstacle grid and the collected point cloud, thereby obtaining the accurate location information of the mobile device at the current moment. That is, the mobile device positioning method provided in this embodiment can quickly and accurately obtain the location information of the mobile device, better meeting real-time requirements.
[0131] In some embodiments, the candidate grid determination module 52 includes:
[0132] The mapping range determination unit is used to determine the mapping range on the grid map based on the operating information of the mobile device from the previous time to the current time and the location information of the mobile device determined in the previous time.
[0133] The positioning grid estimation unit is used to estimate the positioning grid corresponding to the point cloud collected above within the above mapping range.
[0134] In some embodiments, before determining the target obstacle grid corresponding to the candidate grid according to the pre-constructed mapping relationship, the mobile device positioning method provided in this application includes:
[0135] The predetermined obstacle grid determination module is used to determine at least two predetermined obstacle grids in the grid map, wherein the predetermined obstacle grids are obstacle grids that participate in the operation of constructing the above mapping relationship.
[0136] The distance value calculation module for the positioning grid is used to determine the positioning grid in the grid map and calculate the distance value of the positioning grid, wherein the positioning grid is a grid that participates in the operation of constructing the mapping relationship, and the distance value is used to reflect the distance between the positioning grid and the predetermined obstacle grid.
[0137] The target obstacle grid determination module is used to determine the target obstacle grid corresponding to the positioning grid based on the distance value of the positioning grid.
[0138] The mapping relationship construction module is used to construct the above mapping relationship based on the above positioning grid and the target obstacle grid corresponding to the above positioning grid.
[0139] In some embodiments, when the distance value calculation module of the positioning grid determines the positioning grid in the grid map, it is specifically used for:
[0140] The search area is determined in the grid map based on the predetermined obstacle grid and the preset search radius, and the positioning grid is determined in the search area.
[0141] In some embodiments, the distance value calculation module of the positioning grid is specifically used for:
[0142] Use the aforementioned predetermined obstacle grid as the parent point.
[0143] For each parent point, search for the child point corresponding to the parent point in the current traversal in the above grid map. The child point is the positioning grid adjacent to the parent point.
[0144] Determine the parent-child relationship of each child point found in this traversal, and calculate the distance value of each child point found in this traversal.
[0145] For each child point, if the parent-child relationship and distance value corresponding to the child point are not recorded, then the parent-child relationship and distance value corresponding to the child point are recorded. If the parent-child relationship and distance value corresponding to the child point have been recorded, and the distance value of the child point determined in this traversal is less than the distance value of the child point that has been recorded, then the distance value and parent-child relationship of the child point determined in this traversal are used to update the recorded distance value and parent-child relationship of the child point that has been recorded.
[0146] Determine the new parent point based on each child point found in this traversal, and return to the steps of traversing each parent point until the traversal stops.
[0147] The distance values corresponding to each recorded sub-point are used as the distance values of each of the above positioning grids.
[0148] Correspondingly, the aforementioned target obstacle grid determination module is specifically used for:
[0149] Based on the parent-child relationship corresponding to the distance values of the aforementioned positioning grids, the target obstacle grid corresponding to the aforementioned positioning grids is determined.
[0150] In some embodiments, the calculation of the distance value corresponding to each sub-point found in this traversal includes:
[0151] For each child point found in this traversal, calculate the distance value corresponding to the child point based on the distance value of the parent point corresponding to the child point and the distance value between the child point and the parent point.
[0152] In some embodiments, the mapping relationship also includes the correspondence between the positioning grid and the distance value, and the position determination module 54 includes:
[0153] The relative pose determination unit is used to determine the relative pose between the point cloud corresponding to the target obstacle grid and the collected point cloud based on the determined target obstacle grid, the collected point cloud, and the distance value corresponding to the positioning grid in the mapping relationship.
[0154] The location information determination unit is used to determine the location information of the mobile device at the current time based on the relative pose, the operation information of the mobile device from the previous time to the current time, and the location information determined by the mobile device at the previous time.
[0155] It should be noted that the information interaction and execution process between the above-mentioned devices / units are based on the same concept as the method embodiments of this application. For details on their specific functions and technical effects, please refer to the method embodiments section, and they will not be repeated here.
[0156] Example 5:
[0157] Figure 6 This is a schematic diagram of the structure of a robot provided in one embodiment of this application. Figure 6 As shown, the robot 6 in this embodiment includes: at least one processor 60 ( Figure 6 The diagram shows only one processor, a memory 61, and a computer program 62 stored in the memory 61 and executable on the at least one processor 60, which, when executing the computer program 62, implements the steps in any of the above method embodiments.
[0158] The robot may include, but is not limited to, a processor 60 and a memory 61. Those skilled in the art will understand that... Figure 6 This is merely an example of robot 6 and does not constitute a limitation on robot 6. It may include more or fewer parts than shown in the figure, or combine certain parts, or different parts, such as input / output devices, network access devices, etc.
[0159] The processor 60 may be a Central Processing Unit (CPU), or it may be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or any conventional processor.
[0160] In some embodiments, the memory 61 may be an internal storage unit of the robot 6, such as a hard disk or memory of the robot 6. In other embodiments, the memory 61 may be an external storage device of the robot 6, such as a plug-in hard disk, smart media card (SMC), secure digital (SD) card, flash card, etc., equipped on the robot 6. Furthermore, the memory 61 may include both internal storage units and external storage devices of the robot 6. The memory 61 is used to store operating systems, applications, bootloaders, data, and other programs, such as the program code of computer programs. The memory 61 can also be used to temporarily store data that has been output or will be output.
[0161] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the above-described division of functional units and modules is merely an example. In practical applications, the above functions can be assigned to different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiments can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit. Furthermore, the specific names of the functional units and modules are only for easy differentiation and are not intended to limit the scope of protection of this application. The specific working process of the units and modules in the above system can be referred to the corresponding process in the foregoing method embodiments, and will not be repeated here.
[0162] This application also provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps described in the various method embodiments above.
[0163] This application provides a computer program product that, when run on a robot, enables the robot to perform the steps described in the above-described method embodiments.
[0164] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, all or part of the processes in the methods of the above embodiments of this application can be implemented by a computer program instructing related hardware. The computer program can be stored in a computer-readable storage medium, and when executed by a processor, it can implement the steps of the various method embodiments described above. The computer program includes computer program code, which can be in the form of source code, object code, executable files, or certain intermediate forms. The computer-readable medium can include at least: any entity or device capable of carrying computer program code to a photographing device / terminal device, a recording medium, a computer memory, a read-only memory (ROM), a random access memory (RAM), an electrical carrier signal, a telecommunication signal, and a software distribution medium. Examples include USB flash drives, portable hard drives, magnetic disks, or optical disks. In some jurisdictions, according to legislation and patent practice, computer-readable media cannot be electrical carrier signals or telecommunication signals.
[0165] In the above embodiments, the descriptions of each embodiment have different focuses. For parts that are not described in detail or recorded in a certain embodiment, please refer to the relevant descriptions of other embodiments.
[0166] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0167] In the embodiments provided in this application, it should be understood that the disclosed apparatus / network devices and methods can be implemented in other ways. For example, the apparatus / network device embodiments described above are merely illustrative. For instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between devices or units may be electrical, mechanical, or other forms.
[0168] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0169] The above-described embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this application, and should all be included within the protection scope of this application.
Claims
1. A positioning method for a mobile device, characterized in that, include: Obtain the point cloud data collected by the mobile device at the current moment; Candidate grids are obtained by estimating and collecting the location grids corresponding to the point cloud from the pre-constructed grid map; The target obstacle grid corresponding to the candidate grid is determined according to the pre-constructed mapping relationship, wherein the target obstacle grid is the obstacle grid that matches the candidate grid, the obstacle grid is the grid corresponding to the obstacle in the grid map, and the mapping relationship includes the correspondence between the positioning grid in the grid map and the target obstacle grid; The location information of the mobile device at the current moment is determined based on the determined target obstacle grid and the collected point cloud. Before determining the target obstacle grid corresponding to the candidate grid based on the pre-built mapping relationship, the process includes: In the grid map, at least two predetermined obstacle grids are identified. The predetermined obstacle grids are the inner obstacle grids that participate in the operation of constructing the mapping relationship. The inner obstacle grids are the grids that are closest to the passable area of the mobile device. In the grid map, a positioning grid is determined, and the distance value of the positioning grid is calculated. The positioning grid is a grid that participates in the operation of constructing the mapping relationship, and the distance value of the positioning grid is used to reflect the distance between the positioning grid and the predetermined obstacle grid. The target obstacle grid corresponding to the positioning grid is determined based on the distance value of the positioning grid; The mapping relationship is constructed based on the positioning grid and the target obstacle grid corresponding to the positioning grid.
2. The positioning method for a mobile device as described in claim 1, characterized in that, The location grid corresponding to the point cloud estimated and acquired in the pre-constructed grid map includes: Based on the mobile device's operating information from the previous moment to the current moment and the location information of the mobile device determined in the previous moment, a mapping range is determined on the grid map; The location grid corresponding to the point cloud collected within the mapping range is estimated.
3. The positioning method for a mobile device as described in claim 1, characterized in that, Determining the location grid in the grid map includes: The search area is determined on the grid map based on the predetermined obstacle grid and the preset search radius, and the positioning grid is determined in the search area.
4. The positioning method for a mobile device as described in claim 1, characterized in that, The step of determining the location grid in the grid map and calculating the distance value of the location grid includes: Use the predetermined obstacle grid as the parent point; Traverse each parent point and find the child point corresponding to the parent point in the current traversal in the grid map, wherein the child point is the positioning grid adjacent to the parent point; Determine the parent-child relationship of each child point found in this traversal, and calculate the distance value of each child point found in this traversal; For each child point, if the parent-child relationship and distance value corresponding to the child point are not recorded, then the parent-child relationship and distance value corresponding to the child point are recorded. If the parent-child relationship and distance value corresponding to the child point have been recorded, and the distance value of the child point determined in this traversal is less than the distance value of the child point that has been recorded, then the distance value and parent-child relationship of the child point determined in this traversal are used to update the recorded distance value and parent-child relationship of the child point. Determine the new parent point based on each child point found in this traversal, and return the steps of traversing each parent point until the traversal stop condition is met; The distance values corresponding to each recorded sub-point are used as the distance values of each of the positioning grids; Correspondingly, determining the target obstacle grid corresponding to the positioning grid based on the distance value of the positioning grid includes: The target obstacle grid corresponding to the positioning grid is determined based on the parent-child relationship corresponding to the distance value of the positioning grid.
5. The positioning method for a mobile device as described in claim 4, characterized in that, The calculation of the distance value corresponding to each sub-point found in this traversal includes: For each child point found in this traversal, calculate the distance value corresponding to the child point based on the distance value of the parent point corresponding to the child point and the distance value between the child point and the parent point.
6. The positioning method for a mobile device as described in any one of claims 1 to 5, characterized in that, The mapping relationship also includes the correspondence between the positioning grid and the distance value. Determining the location information of the mobile device at the current moment based on the determined target obstacle grid and the collected point cloud includes: Based on the determined target obstacle grid, the collected point cloud, and the distance value corresponding to the positioning grid in the mapping relationship, the relative pose between the point cloud corresponding to the target obstacle grid and the collected point cloud is determined; The location information of the mobile device at the current moment is determined based on the relative pose, the operation information of the mobile device from the previous moment to the current moment, and the location information of the mobile device determined at the previous moment.
7. A positioning device for a mobile device, characterized in that, include: The point cloud acquisition module is used to acquire the point cloud collected by the mobile device at the current moment; The candidate grid determination module is used to estimate the location grid corresponding to the point cloud in the pre-constructed grid map and obtain candidate grids; The target obstacle grid determination module is used to determine the target obstacle grid corresponding to the candidate grid according to the pre-built mapping relationship, wherein the target obstacle grid is the obstacle grid that matches the candidate grid, the obstacle grid is the grid corresponding to the obstacle in the grid map, and the mapping relationship is used to record the correspondence between each positioning grid in the grid map and the target obstacle grid; The location determination module is used to determine the location information of the mobile device at the current moment based on the determined target obstacle grid and the collected point cloud; The predetermined obstacle grid determination module determines at least two predetermined obstacle grids in the grid map. The predetermined obstacle grids are inner obstacle grids that participate in the calculation of constructing the mapping relationship. The inner obstacle grids are the grids that are closest to the passable area of the mobile device. The positioning grid distance value calculation module is used to determine the positioning grid in the grid map and calculate the distance value of the positioning grid, wherein the positioning grid is a grid that participates in the operation of constructing the mapping relationship, and the distance value of the positioning grid is used to reflect the distance between the positioning grid and the predetermined obstacle grid; The target obstacle grid determination module is used to determine the target obstacle grid corresponding to the positioning grid based on the distance value of the positioning grid; The mapping relationship construction module is used to construct the mapping relationship based on the positioning grid and the target obstacle grid corresponding to the positioning grid.
8. A robot comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the method as described in any one of claims 1 to 6.
9. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, it implements the method as described in any one of claims 1 to 6.
Citation Information
Patent Citations
Equipment positioning method, grid map construction method and mobile robot
CN110858076A
Robot positioning method and device, computer readable storage medium and robot
CN112462769A