Method for robot to recognize route and robot
By performing straight line fitting and encoding on the lidar point cloud, combined with the ICP algorithm and odometry, the problem of robot positioning misjudgment in straight line areas was solved, achieving more accurate position updates and enhanced autonomy.
Patent Information
- Application Number
- CN202210625645.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-06-02
- Publication Date
- 2025-10-03
- Estimated Expiration
- 2042-06-02
AI Technical Summary
In existing technologies, it is difficult for robots to accurately locate themselves in straight areas such as corridors and wall bases, which leads to misjudgments and adverse effects on work.
By performing straight line fitting and encoding on the point cloud acquired by the lidar, using the ICP algorithm to match the point cloud, counting the encoding differences, and combining the odometer to update the position, it is determined whether the robot is in the straight line area.
The robot's positioning accuracy and autonomy in straight line areas are improved, the amount of calculation is reduced, and work efficiency and robustness are improved.
Smart Images

Figure CN115018915B_ABST
Abstract
Description
Technical Field
[0001] The present invention generally relates to the technical field of intelligent robots, and in particular to a method for robot route recognition and a robot. Background Art
[0002] In recent years, robots have been widely used in various scenarios, bringing convenience to people's work and life. In order to better serve people, robots need to autonomously locate themselves during operation.
[0003] In the existing technology, robots often use airborne laser radar for autonomous positioning, that is, autonomous positioning is achieved by matching the point cloud obtained by the laser radar with a known environmental map. The point cloud obtained by the laser radar can reflect the characteristics of the environment in which the robot is located. If the shape characteristics of the point cloud are obvious, the point cloud is easy to accurately match with the environmental map, thereby achieving autonomous positioning of the robot; but if the shape characteristics of the point cloud are relatively simple (for example, a straight line segment), the point cloud may match the entire straight area in the environmental map (such as a corridor, wall, etc.), which is prone to misjudgment, resulting in the robot being unable to accurately locate itself and unable to judge the distance it has walked out of the straight area, which will have an adverse effect on the normal operation of the robot. Therefore, it is necessary to recognize that the robot is in a straight area such as a corridor and the base of a wall.
[0004] The contents of the background technology section are merely the technologies known to the inventors and do not necessarily represent the existing technologies in this field. Summary of the Invention
[0005] In view of one or more problems in the prior art, the present invention provides a method for a robot to identify a route, wherein the robot includes a laser radar, and the method includes:
[0006] Perform straight line fitting on the first point cloud to obtain multiple fitting straight lines;
[0007] Encoding the points on the plurality of fitted straight lines;
[0008] Acquire a second point cloud by using the laser radar;
[0009] Matching the second point cloud with the first point cloud, and determining the codes of the matched points of the first point cloud; and
[0010] The difference between the codes of the points of the matched first point cloud is determined, and whether the robot is located in a straight line area is determined according to the difference.
[0011] According to one aspect of the present invention, the step of encoding the points on the multiple fitted straight lines includes: determining the angles between the multiple fitted straight lines and the horizontal direction or the vertical direction, and encoding the points on the multiple fitted straight lines as the values of the angles between the fitted straight lines on which they are located and the horizontal direction or the vertical direction, wherein the angle ranges from 0 degrees to 180 degrees.
[0012] According to one aspect of the present invention, the step of matching the second point cloud with the first point cloud includes: matching the second point cloud with the first point cloud using an ICP algorithm, wherein the first point cloud is a point cloud of an environment map.
[0013] According to one aspect of the present invention, the step of determining the difference between the codes of the points of the matched first point cloud comprises: determining the variance between the codes of the points of the matched first point cloud;
[0014] The step of determining whether the robot is located in the straight line area according to the difference includes: when the variance is less than a first threshold, determining that the robot is located in the straight line area.
[0015] According to one aspect of the present invention, the step of determining the difference between the codes of the points of the matched first point cloud further comprises: determining an average value of the difference between the codes of the points of the matched first point cloud;
[0016] The step of determining whether the robot is located in the straight line area according to the difference includes: when the average value of the difference is less than a second threshold, determining that the robot is located in the straight line area.
[0017] According to one aspect of the present invention, the step of determining the difference between the codes of the points of the matched first point cloud further comprises: determining the range of the codes of the points of the matched first point cloud;
[0018] The step of determining whether the robot is located in the straight line area according to the difference includes: when the range is less than a third threshold, determining that the robot is located in the straight line area.
[0019] According to one aspect of the present invention, the method further includes: when it is determined that the robot is located in a straight line area, updating the position of the robot at the current moment.
[0020] According to one aspect of the present invention, the robot also includes an odometer, and the step of updating the position of the robot at the current moment includes: determining the position of the robot at the previous moment by the odometer, predicting the position of the robot at the current moment based on the position at the previous moment, and updating the position of the robot at the current moment based on the prediction result.
[0021] According to one aspect of the present invention, the straight area includes corridors and wall bases.
[0022] The present invention also relates to a robot comprising:
[0023] case;
[0024] Mobile unit;
[0025] a lidar configured to detect the robot's surrounding environment to obtain a point cloud;
[0026] an odometry device configured to determine the position of the robot; and
[0027] A controller is coupled to the mobile unit, the laser radar, and the odometer, and is configured to execute the method described above.
[0028] The present invention also relates to a computer-readable storage medium, comprising computer-executable instructions stored thereon, wherein the computer-executable instructions implement the method described above when executed by a processor.
[0029] In summary, the method of the present invention encodes points in the environmental map. When the lidar point cloud matches the environmental map point cloud, the robot can simply query the code of the matching environmental map point and, based on the code differences, determine whether the robot is located in linear areas such as corridors and wall bases. Furthermore, the odometry can be used to update the robot's position, making positioning more accurate, computationally efficient, and fast. This helps improve the robot's autonomy, robustness, and efficiency, thereby enhancing the customer experience. BRIEF DESCRIPTION OF THE DRAWINGS
[0030] The accompanying drawings are used to provide a further understanding of the present invention and constitute a part of the specification. Together with the embodiments of the present invention, they are used to explain the present invention and do not constitute a limitation of the present invention. In the accompanying drawings:
[0031] Figure 1 A flowchart of a method for a robot to identify a route according to an embodiment of the present invention is shown;
[0032] Figure 2 A schematic diagram of processing a first point cloud according to an embodiment of the present invention is shown;
[0033] Figure 3 A schematic diagram of a laser radar according to an embodiment of the present invention is shown;
[0034] Figure 4 A schematic diagram showing matching a second point cloud with a first point cloud and determining the codes of the matched points of the first point cloud is shown according to a preferred embodiment of the present invention;
[0035] Figure 5A schematic diagram showing matching a second point cloud with a first point cloud and determining the codes of the matched points of the first point cloud is shown according to another preferred embodiment of the present invention;
[0036] Figure 6 A schematic diagram showing matching a second point cloud with a first point cloud and determining codes of points of the matched first point cloud according to yet another preferred embodiment of the present invention is shown;
[0037] Figure 7 A schematic diagram illustrating determining whether a robot is located in a straight line area by matching the difference in encoding of points in the first point cloud according to a preferred embodiment of the present invention is shown;
[0038] Figure 8 A schematic diagram showing updating the robot position according to a preferred embodiment of the present invention; and
[0039] Figure 9 A schematic diagram of a robot according to an embodiment of the present invention is shown. DETAILED DESCRIPTION
[0040] Hereinafter, only certain exemplary embodiments are briefly described. As will be appreciated by those skilled in the art, the described embodiments may be modified in various ways without departing from the spirit or scope of the present invention. Therefore, the drawings and description are to be considered as illustrative in nature and not restrictive.
[0041] In the description of the present invention, it should be understood that the terms "center," "longitudinal," "transverse," "length," "width," "thickness," "up," "down," "front," "back," "left," "right," "vertical," "horizontal," "top," "bottom," "inside," "outside," "clockwise," "counterclockwise," and the like, indicating positions or relationships, are based on the positions or relationships shown in the accompanying drawings and are intended solely for the purpose of facilitating the description of the present invention and simplifying the description. They do not indicate or imply that the devices or components referred to must have a specific orientation, be constructed, or operate in a specific orientation, and therefore should not be construed as limiting the present invention. Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of the technical features referred to. Thus, features designated "first" or "second" may explicitly or implicitly include one or more of the designated features. In the description of the present invention, "plurality" means two or more, unless otherwise specifically defined.
[0042] In the description of the present invention, it should be noted that, unless otherwise expressly specified or limited, the terms "mounted," "connected," and "connected" should be understood broadly. For example, they may refer to fixed, removable, or integral connections; mechanical, electrical, or intercommunication connections; direct or indirect connections through an intermediary; and internal communication between two components or interaction between two components. Those skilled in the art will understand the specific meanings of the above terms in the present invention based on specific circumstances.
[0043] In the present invention, unless otherwise expressly specified or limited, a first feature being "above" or "below" a second feature may include the first and second features being in direct contact, or may also include the first and second features not being in direct contact but being in contact via another feature between them. Furthermore, a first feature being "above," "above," and "above" a second feature may include the first feature being directly above or diagonally above the second feature, or may simply mean that the first feature is at a higher level than the second feature. A first feature being "below," "below," and "below" a second feature may include the first feature being directly above or diagonally above the second feature, or may simply mean that the first feature is at a lower level than the second feature.
[0044] The disclosure below provides many different embodiments or examples for realizing different structures of the present invention. In order to simplify the disclosure of the present invention, the components and settings of specific examples are described below. Of course, they are merely examples and are not intended to limit the present invention. In addition, the present invention may repeat reference numbers and / or reference letters in different examples. Such repetition is for the purpose of simplicity and clarity and does not in itself indicate the relationship between the various embodiments and / or settings discussed. In addition, the present invention provides examples of various specific processes and materials, but those skilled in the art will recognize the application of other processes and / or the use of other materials.
[0045] The preferred embodiments of the present invention are described below with reference to the accompanying drawings. It should be understood that the preferred embodiments described herein are only used to illustrate and explain the present invention, and are not used to limit the present invention.
[0046] The present invention provides a method for robot route identification. The method of the present invention can be used to determine whether the robot is located in a straight line area. The method has small computational complexity and high speed. The method is described in detail below.
[0047] Figure 1 FIG. 1 shows a flow chart of a method 100 for a robot to identify a route according to an embodiment of the present invention. Figure 1 As shown, the method 100 includes steps S101-S105. Each step of the method 100 is described in detail below.
[0048] In step S101 , straight line fitting is performed on the first point cloud to obtain a plurality of fitting straight lines.
[0049] In the present invention, the robot can operate in various environments, including but not limited to restaurants, hotels, hospitals, libraries, and office buildings. If the robot operates in a restaurant, the environmental map is a map of the restaurant in which the robot is located; if the robot operates in a hotel, the environmental map is a map of the hotel in which the robot is located; and if the robot operates in a hospital, the environmental map is a map of the hospital in which the robot is located. The first point cloud is a point cloud of an environmental map pre-stored in the robot, and the environmental map is a positioning map formed by the robot mapping its environment. Specifically, the robot is equipped with acquisition sensors and a modeling processor. The modeling processor models the environmental data collected by the acquisition sensors to construct an environmental map. In this embodiment, the acquisition sensors include a lidar, a binocular vision sensor, an ultrasonic sensor, and an infrared sensor. The lidar, ultrasonic, and infrared sensors collect data about the robot's working area. The modeling processor uses the data collected by these sensors to create a map. During the map creation process, different map layers are generated using different sensors, such as a static layer, a dynamic obstacle layer, an ultrasonic layer, and a visual layer. These layers are fused to produce a positioning map for the robot's positioning and navigation.
[0050] Figure 2 A schematic diagram of processing a first point cloud according to an embodiment of the present invention is shown. The operations of processing the first point cloud include straight line fitting and establishing a coordinate system. According to a preferred embodiment of the present invention, the least squares method can be used to perform straight line fitting on the first point cloud. After straight line fitting, multiple fitting lines are obtained (refer to Figure 2 (The three fitted straight lines L1, L2, and L3 are shown in the figure). According to a preferred embodiment of the present invention, a rectangular coordinate system can be established for the first point cloud. The present invention does not limit the selection of the coordinate origin and the direction of the coordinate axis. Optionally, for example, a rectangular coordinate system can be established with the point located in the lower left corner of the first point cloud as the coordinate origin O, the horizontal direction as the X-axis, and the vertical direction as the Y-axis. It should be understood that this embodiment is only an example and does not constitute a limitation of the present invention. The specific operation should be determined according to actual conditions. It should be understood that the operations of processing the first point cloud include other operations in addition to straight line fitting and establishing a coordinate system, which will be described below.
[0051] In step S102 , the points on the plurality of fitted straight lines are encoded.
[0052] Continue to refer Figure 2According to a preferred embodiment of the present invention, the points on the fitting straight line can be encoded by the angle between the fitting straight line and the horizontal direction (i.e., the X-axis). That is, the angles θ between the multiple fitting straight lines and the horizontal direction (i.e., the X-axis) are determined respectively, and the points on the multiple fitting straight lines are encoded as the values of the angles θ between the fitting straight lines and the horizontal direction (i.e., the X-axis), and stored in the robot, wherein the range of the angle θ is 0 degrees to 180 degrees. Specifically, according to a preferred embodiment of the present invention, please continue to refer to Figure 2 For example, if the angle between the fitting line L1 and the horizontal direction (ie, the X-axis) is θ1 (eg, 30 degrees), all points on the fitting line L1 are coded as 30. Figure 2 For example, if the included angle between the fitting line L2 and the horizontal direction (ie, the X axis) is θ2 (eg, 90 degrees), then all points on the fitting line L2 are coded as 90. Similarly, continue to refer to Figure 2 , the angle between the fitting line L3 and the horizontal direction (i.e., the X-axis) is θ3 (for example, 60 degrees), then all the points on the fitting line L3 are encoded as 60. The above embodiment describes the case where the points on the fitting line are encoded by the angle between the fitting line and the horizontal direction (i.e., the X-axis). Similarly, the points on the fitting line can also be encoded by the angle between the fitting line and the vertical direction (i.e., the Y-axis). Specifically, for example, if the angle between the fitting line L2 and the vertical direction (i.e., the Y-axis) is 0 degrees, then all the points on the fitting line L2 are encoded as 0. The encoding method for the points on other fitting lines is similar and will not be repeated here. In addition, it should be noted that in addition to encoding the points by the angle between the fitting line and the horizontal direction (i.e., the X-axis) or the vertical direction (i.e., the Y-axis), the points can also be encoded by other methods, and the encoded values can be set arbitrarily as needed, and the present invention does not impose any restrictions.
[0053] The above embodiment describes processing a pre-stored environment map (point cloud map), including linear fitting, coordinate system establishment, and encoding of the environment map (point cloud map). It should be understood that, in actual operation, the processed environment map (point cloud map) can also be pre-stored in the robot or in the cloud. The specific choice can be made based on actual circumstances and is not limited by the present invention. It should be understood that for fixed environments, pre-storing the processed environment map (point cloud map) can be used multiple times, which is convenient and time-saving.
[0054] In step S103 , a second point cloud is acquired by using a laser radar.
[0055] Figure 3 FIG. 1 shows a schematic diagram of a laser radar 10 according to an embodiment of the present invention. Figure 3As shown, the laser radar 10 consists of three parts: a transmitting unit 11, a receiving unit 12, and a processing unit 13. The transmitting unit 11 is configured to transmit a detection pulse L; the receiving unit 12 is configured to receive an echo pulse L' reflected by the detection pulse L from an obstacle; and the processing unit 13 is configured to generate a second point cloud based on the echo pulse L' through further signal processing, such as filtering, amplification, A / D conversion, and digital signal processing.
[0056] It should be noted that the present invention does not limit the specific type of laser radar 10, but for service robots, such as food delivery robots and sweeping robots, the laser radar 10 is preferably a single-line laser radar, because single-line laser radars have fast scanning speeds, high resolution, and high reliability. They are faster than multi-line laser radars in terms of angular frequency and sensitivity, and can better adapt to complex working environments (such as restaurants, etc.), making the robot more robust. In addition, in actual application scenarios, the laser radar 10 is fixedly installed at a preset height of the robot. Driven by the robot, the laser radar 10 scans and detects a certain field of view in the horizontal direction to generate a second point cloud.
[0057] In step S103 , the second point cloud is matched with the first point cloud to determine the codes of the matched points of the first point cloud.
[0058] According to a preferred embodiment of the present invention, the second point cloud and the first point cloud may be matched by an iterative closest point (ICP) algorithm so that the degree of overlap between the second point cloud and the first point cloud is as high as possible.
[0059] Figure 4 FIG. 1 shows a schematic diagram of matching the second point cloud with the first point cloud and determining the codes of the points of the matched first point cloud according to a preferred embodiment of the present invention. Figure 4 As shown, the points of the first matching point cloud refer to the portion circled by the white rectangular frame. Since the points of the first matching point cloud are all located on the fitting line L2, that is, the fitting line L2 overlaps or substantially overlaps, it can be determined that the code of the points of the first matching point cloud is the value corresponding to θ2 (for example, 90). It should be understood that this embodiment is merely an example and does not constitute a limitation of the present invention. In other words, if the points of the first matching point cloud are all located on the fitting line L1, the code of the points of the first matching point cloud can be determined to be the value corresponding to θ1 (for example, 30), and so on.
[0060] Figure 5 FIG. 1 shows a schematic diagram of matching the second point cloud with the first point cloud and determining the codes of the points of the matched first point cloud according to another preferred embodiment of the present invention. Figure 5 As shown, the points of the matched first point cloud refer to the part circled by the white rectangular frame. Since some of the points of the matched first point cloud are located on the fitting line L2 and the other part are located on the fitting line L1, it can be determined that the code of the points of the matched first point cloud located on the fitting line L2 is the value corresponding to θ2 (for example, 90), and the code of the points of the matched first point cloud located on the fitting line L1 is the value corresponding to θ1 (for example, 30).
[0061] Figure 6 FIG. 2 shows a schematic diagram of matching a second point cloud with a first point cloud and determining the encoding of the points of the matched first point cloud according to yet another embodiment of the present invention. Figure 6 As shown, the points of the matched first point cloud refer to the part circled by the white rectangular frame. Since part of the points of the matched first point cloud are located on the fitting line L2 and the other part are located on the fitting line L4, and the fitting line L2 is parallel to the fitting line L4, it can be determined that the points of the matched first point cloud located on the fitting line L2 and the fitting line L4 have the same code, for example, both are 90.
[0062] The above embodiment describes matching the second point cloud with the first point cloud, and determining whether the points of the matched first point cloud are located on the same fitting straight line or on different fitting straight lines. The following is a detailed description of how to determine whether the robot is located in a straight line area through coding.
[0063] In step S105 , the difference between the codes of the points of the matched first point cloud is determined, and it is determined whether the robot is located in a straight line area based on the difference.
[0064] Figure 7 A schematic diagram showing a method for determining whether a robot is located in a straight line area by matching the difference in the encoding of the points of the first point cloud according to a preferred embodiment of the present invention is shown. Figure 7 As shown, assuming that the robot is located at point A, the second point cloud is matched with the first point cloud, and it is detected that the codes of the points of the matched first point cloud are the same (for example, both are 90), then it means that the points of the matched first point cloud are located on the same fitting straight line, or on parallel fitting straight lines. Therefore, it can be determined that point A where the robot is located is in a straight line area (for example, a corridor or near the base of a wall).
[0065] Continue to refer Figure 7Assuming the robot is at point B, the second point cloud is matched with the first point cloud. It is detected that the codes of the matched points of the first point cloud are different (for example, some are 135 and some are 60). This means that the points of the matched first point cloud are not on the same fitting line. The robot is located in a place with many characteristic line segments (such as corners, corridor entrances and exits, etc.). Therefore, it can be determined that point B where the robot is located is not in a straight line area (such as a corridor or near the wall).
[0066] The above embodiment describes a situation where the robot is determined to be in a straight line area by determining whether the codes of the points in the first matching point cloud are the same. It should be understood that this method is more suitable for static environments. In actual applications, the robot's working environment is complex and often has a certain degree of dynamic changes, such as pedestrians walking and the repositioning of tables and chairs, which will interfere with the robot's judgment. At this time, determining whether the robot is in a straight line area based solely on whether the codes of the points in the first matching point cloud are the same has certain limitations, and the judgment result has a large error. Therefore, in order to more accurately determine whether the robot is in a straight line area, the differences between the codes of the points in the first matching point cloud can be statistically calculated to obtain a more accurate judgment result, which is described in detail below.
[0067] According to a preferred embodiment of the present invention, the variance between the codes of all points in the matched first point cloud can be statistically calculated. The smaller the variance, the more likely it is that the robot is located in a straight line area. Specifically, for example, when the variance is less than a first threshold (e.g., 0.5), it is determined that the robot is located in a straight line area; conversely, when the variance is not less than the first threshold (e.g., 0.5), it is determined that the robot is not in a straight line area. The variance can be calculated using the following formula (1-1):
[0068]
[0069] where s 2 Represents the variance, n represents the number of all points in the first point cloud that matches, xi represents the encoding of each point in the first point cloud that matches, and x represents the average value of the encoding of all points in the first point cloud that matches.
[0070] According to another preferred embodiment of the present invention, the average difference between the codes of all points in the matched first point cloud can also be statistically calculated. The smaller the average difference, the more likely it is that the robot is located in the straight line area. Specifically, for example, when the average difference is less than a second threshold (e.g., 5), it is determined that the robot is in the straight line area; conversely, when the average difference is not less than the second threshold (e.g., 5), it is determined that the robot is not in the straight line area. The average difference can be calculated using the following formula (1-2):
[0071]
[0072] Where n represents the number of all points in the first matched point cloud, and x represents the code of each point in the first matched point cloud. Represents the average of the encodings of all points in the first matched point cloud.
[0073] According to yet another preferred embodiment of the present invention, the range of the codes of all points in the matched first point cloud can be statistically calculated. That is, the difference between the maximum and minimum codes of all points in the matched first point cloud is calculated. When the range is less than a third threshold (e.g., 10), the robot is determined to be in the straight line area. Conversely, when the range is not less than the third threshold (e.g., 10), the robot is determined to be not in the straight line area. The range can be calculated using the following formula (1-3):
[0074] x=xmax-xmin……(1-3)
[0075] Wherein, x represents the range, xmax represents the maximum value of the encoding of all points of the first point cloud that matches, and xmin represents the minimum value of the encoding of all points of the first point cloud that matches.
[0076] The above embodiment describes determining whether the robot is located in a straight line region by statistically calculating the differences between the codes of all points in the matched first point cloud. This determination method can more accurately determine whether the robot is located in a straight line region. It should be noted that the first threshold, the second threshold, and the third threshold do not necessarily have a corresponding relationship in magnitude. In other words, the first threshold, the second threshold, and the third threshold can be equal or unequal, depending on the actual situation.
[0077] It should be noted that the linear region actually refers to the underconstrained region (underconstrained translational direction) within the robot's working environment. When the robot is determined to be within the linear region, the robot cannot accurately locate itself using LiDAR due to the uniformity of the entire linear region. This results in the robot being unaware of its exact position, adversely affecting its normal operation. Therefore, when the robot identifies itself within the linear region, it should update its current position to determine its current position. This is described in detail below.
[0078] According to a preferred embodiment of the present invention, when it is determined that the robot is located in a straight line area, the robot's position at the previous moment can be determined by the odometer installed on the robot, the robot's position at the current moment is predicted based on the position at the previous moment, and the robot's position at the current moment is updated based on the prediction result. Figure 8 , Figure 8A schematic diagram of updating a robot's position according to a preferred embodiment of the present invention is shown. Circle A represents the robot's position at the previous moment (abbreviated as Position A), and circle B represents the position at the next moment (or the current moment) predicted based on the previous moment's position (abbreviated as Position B or predicted position). For example, the prediction is made based on Position A, the time from Position A to Position B, and the odometer measurement value during that time. When the robot is determined to be in a straight line area using the above-mentioned method 100 of the present invention, the robot cannot determine its current position. In this case, the robot's current position can be updated to the predicted position (i.e., Position B). In other words, when the robot is determined to be in a straight line area, the robot's current position = the predicted position (i.e., Position B).
[0079] It should be understood that due to various factors, there will actually be a certain error between the predicted position (i.e., position B) and the robot's current position. If the straight area (such as a corridor or the base of a wall) where the robot is located is within a certain range (for example, no more than 10 meters), this error is small and can be ignored. When the robot walks out of the straight area (the distance the robot walks out of the straight area from its current position can be measured by an odometer), this error can be compensated to correct and update the robot's current position to a verified or more reliable position (referred to as the corrected position or position C, such as Figure 8 The robot's current position = corrected position = predicted position + error.
[0080] It should be noted that the above method 100 can be applied to any robot, wherein each step can be performed sequentially in the order shown in the flowchart, or multiple steps can be performed simultaneously according to actual conditions, which is not limited here.
[0081] The present invention also relates to a robot 200, Figure 9 A schematic diagram of a robot 200 according to an embodiment of the present invention is shown. Figure 9 As shown, the robot 200 includes:
[0082] Housing 20;
[0083] A mobile chassis 10 having a mobile unit;
[0084] a laser radar 30 configured to detect the robot's surrounding environment to obtain a point cloud;
[0085] an odometry device configured to determine the position of the robot; and
[0086] A controller is coupled to the mobile unit, the laser radar, and the odometer, and is configured to execute the method 100 described above.
[0087] According to a preferred embodiment of the present invention, the controller includes a function controller for providing user operations, a bottom-level controller for map generation and path planning, and a component controller for controlling the mobile unit and the environment detection unit.
[0088] According to a preferred embodiment of the present invention, at least one turn signal unit 110 is provided at the bottom of the mobile chassis 10, and each turn signal unit 110 includes at least one turn signal 111; the mobile unit is provided with at least two sets of drive wheels 120, and each set of drive wheels 120 is located on one side of the chassis 10; the element controller controls the travel speed of the drive wheels 120; and controls the turn signal 111 in the turn signal unit 110 to light up in a preset manner when the robot turns, so as to alert pedestrians.
[0089] According to a preferred embodiment of the present invention, among the drive wheels 120 provided on the mobile unit, at least one set of drive wheels 120 is used as a left drive wheel, and at the same time, at least one set of drive wheels 120 is used as a right drive wheel, and the left drive wheel and the right drive wheel are located on opposite sides of the chassis 10. Optionally, the mobile unit may further include at least two sets of driven wheels, one set of drive wheels corresponding to one set of driven wheels, wherein at least one set of driven wheels is used as a left driven wheel, and at the same time, at least one set of driven wheels is used as a right driven wheel, and the left driven wheels and the right driven wheels are used to assist the left drive wheels and the right drive wheels in driving the robot housing 20 and the chassis 10 to move, thereby reducing the load pressure on the drive wheels 120.
[0090] According to a preferred embodiment of the present invention, the laser radar can be set at the slit of the robot shell, so that it is easy to emit laser signals to detect surrounding objects. The above-mentioned laser radar includes a photoelectric receiving array and a laser emitting unit array, so that when the laser radar rotates along the set plane, the photoelectric receiving array can form a scanning cylinder, thereby increasing the scanning area, making it easier to obtain the details of the object shape and avoid the robot device from colliding with obstacles. If the laser radar only includes a single photoelectric receiving unit and a single laser emitting unit, the laser radar can only measure the object shape of a circle after rotating along the set plane, and cannot obtain the shape of complex objects in time, which is easy to cause collisions and endanger personal and property safety. Optionally, the above-mentioned set plane can be a horizontal plane, which is convenient for the robot device to detect objects during movement. In addition, other set planes, such as vertical planes, can be selected according to user needs. This embodiment does not limit this.
[0091] According to a preferred embodiment of the present invention, the robot 200 further includes a voice module, which is electrically connected to the component controller; the component controller controls the voice module to issue a voice prompt message when the robot turns.
[0092] The present invention further relates to a computer-readable storage medium, comprising computer-executable instructions stored thereon, wherein the computer-executable instructions implement the method 100 described above when executed by a processor.
[0093] The computer-readable storage medium can be a tangible device that can keep and store the instructions used by the instruction execution device. The computer-readable storage medium can be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device or any suitable combination thereof. The more specific example (non-exhaustive list) of the computer-readable storage medium includes: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, for example, a punch card or a convex structure in a groove having instructions stored thereon, and any suitable combination thereof. The computer-readable storage medium used here is not interpreted as a transient signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated by a waveguide or other transmission medium (for example, a light pulse by an optical fiber cable), or an electrical signal transmitted by a wire.
[0094] It should be noted that the computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, optical fiber transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in the computer-readable storage medium in each computing / processing device.
[0095] The computer program instructions for performing the operation of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, Python, and conventional procedural programming languages such as "C" language or similar programming languages. The computer readable program instructions can be executed entirely on the user's computer, partially on the user's computer, as an independent software package, partially on the user's computer, partially on a remote computer, or completely on a remote computer or server. In the case of a remote computer, the remote computer can be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (e.g., using an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), is personalized by utilizing the state information of the computer readable program instructions, and the electronic circuit can execute the computer readable program instructions, thereby realizing various aspects of the present invention.
[0096] In summary, the method of the present invention encodes points in the environmental map. When the lidar point cloud matches the environmental map point cloud, the robot can simply query the code of the matching environmental map point and, based on the code differences, determine whether the robot is located in linear areas such as corridors and wall bases. Furthermore, the odometry can be used to update the robot's position, making positioning more accurate, computationally efficient, and fast. This helps improve the robot's autonomy, robustness, and efficiency, thereby enhancing the customer experience.
[0097] Finally, it should be noted that the above descriptions are merely preferred embodiments of the present invention and are not intended to limit the present invention. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art will be able to modify the technical solutions described in the aforementioned embodiments or substitute equivalents for some of the technical features. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of the present invention shall be included within the scope of protection of the present invention.
Claims
1. A method for a robot to identify a route, the robot comprising a laser radar, the method comprising: Perform straight line fitting on the first point cloud to obtain multiple fitting straight lines; Performing angle encoding on the points on the plurality of fitted straight lines, comprising: determining angles between the plurality of fitted straight lines and a horizontal direction or a vertical direction, and encoding the points on the plurality of fitted straight lines as values of the angles between the fitted straight lines on which the points lie and the horizontal direction or the vertical direction, wherein the angles range from 0 degrees to 180 degrees; Acquire a second point cloud by using the laser radar; Matching the second point cloud with the first point cloud, and determining angle codes of the matched points of the first point cloud; Determining a difference between angle codes of points of the matched first point cloud, and determining whether the robot is located in a straight line area based on the difference, comprising: When the angle codes of the points of the matched first point cloud are the same, it is determined that the robot is located in a straight line area; the straight line area includes a corridor and a wall base; The robot also includes an odometer, and the method also includes: when it is determined that the robot is located in a straight line area, updating the position of the robot at the current moment, including: determining the position of the robot at the previous moment through the odometer, predicting the position of the robot at the current moment based on the position at the previous moment, and updating the position of the robot at the current moment based on the prediction result.
2. The method according to claim 1, wherein the step of matching the second point cloud with the first point cloud comprises: The second point cloud is matched with the first point cloud by using an ICP algorithm, wherein the first point cloud is a point cloud of an environment map.
3. The method according to claim 1, wherein the step of determining the difference between the angle codes of the points of the matched first point cloud further comprises: If it is detected that the angle codes of the points of the matched first point cloud are different, it is determined that the points of the matched first point cloud are not on the same fitted straight line, and it is determined that the robot is not in the straight line area.
4. The method according to claim 1, wherein the step of determining the difference between the angle codes of the points of the matched first point cloud further comprises: Determining the variance between the angle encodings of the points of the matched first point cloud; When the variance is less than a first threshold, determining that the robot is located in a straight line area; and / or Determine an average value of differences between angle codes of points of the matched first point cloud; and when the average value of the differences is less than a second threshold, determine that the robot is located in a straight line area.
5. The method according to claim 1, wherein the step of determining the difference between the angle codes of the points of the matched first point cloud further comprises: Determining the range of angle encoding of the points of the first matched point cloud; The step of determining whether the robot is located in the straight line area according to the difference includes: when the range is less than a third threshold, determining that the robot is located in the straight line area.
6. The method according to any one of claims 1 to 5, wherein updating the robot's current position according to the prediction result comprises: When the robot is located in a straight line area, the current position is updated to a predicted position.
7. The method according to any one of claims 1 to 5, wherein updating the robot's current position according to the prediction result comprises: When the robot moves out of the straight area, the current position is updated to the corrected position.
8. A robot comprising: case; Mobile unit; LiDAR, configured to detect the robot's surrounding environment to obtain a point cloud; an odometry device configured to determine a position of the robot; and A controller is coupled to the housing, the mobile unit, the laser radar, and the odometer, and is configured to execute the method according to any one of claims 1-7.
9. A computer-readable storage medium comprising computer-executable instructions stored thereon, wherein the computer-executable instructions implement the method according to any one of claims 1 to 7 when executed by a processor.
Citation Information
Patent Citations
Laser radar map construction method and robot autonomous navigation method
CN113534095A
Mobile body, location estimation device, and computer program
US20200233431A1