Robot positioning method, robot, and storage medium
By moving the robot during the localization process and acquiring environmental information for comparison, the problem of inaccurate robot localization in similar environments is solved, achieving more efficient and accurate pose determination.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ECOVACS ROBOTICS CO LTD
- Filing Date
- 2018-06-15
- Publication Date
- 2026-06-05
Smart Images

Figure CN116578068B_ABST
Abstract
Description
[0001] This case is a divisional application of the patent application with application number 2018106240539, application date June 15, 2018, and patent title "Robot Positioning Method, Robot and Storage Medium". Technical Field
[0002] This application relates to the field of artificial intelligence technology, and in particular to a robot localization method, a robot, and a storage medium. Background Technology
[0003] With the development of artificial intelligence technology, robots are gradually entering people's daily lives, bringing great convenience. Regardless of the type of robot, as long as it moves autonomously, it needs to navigate and locate itself in its environment.
[0004] In existing technologies, robots can achieve autonomous localization and navigation using Simultaneous Localization and Mapping (SLAM) technology. However, during SLAM, robots may sometimes be hijacked, such as being moved, suspended in mid-air, or dragged over a large area. When the robot returns to the ground, uncontrollable drift errors occur in the localization, requiring the robot to reposition itself.
[0005] Current localization technologies typically construct a temporary map based on information collected by the robot about its surrounding environment. This temporary map is then compared with an existing environmental map to determine the robot's pose within the existing map. However, in some situations, existing localization technologies cannot accurately determine the robot's pose. Summary of the Invention
[0006] This application provides a robot localization method, a robot, and a storage medium to achieve accurate positioning of the robot's pose and improve positioning accuracy.
[0007] This application provides a robot localization method, including:
[0008] During the localization process, the robot moves from its current position to a second position;
[0009] Obtain environmental information during the movement process;
[0010] The environmental information during the movement is compared with the environmental map stored in the robot's memory to determine the robot's pose within the stored environmental map.
[0011] This application embodiment also provides a robot, including: a mechanical body, wherein the mechanical body is provided with one or more sensors, one or more processors, and one or more memories storing computer instructions;
[0012] The one or more memories are used to store computer programs and environmental maps;
[0013] The one or more processors are configured to execute the computer instructions for:
[0014] During the positioning process, the robot is controlled to move from its current position to a second position;
[0015] Environmental information during the movement is acquired through one or more sensors;
[0016] The environmental information during the movement process is compared with the environmental maps stored in the one or more memories to determine the robot's pose in the stored environmental maps.
[0017] This application also provides a computer-readable storage medium storing computer instructions, which, when executed by one or more processors, cause the one or more processors to perform the following actions:
[0018] During the localization process, the robot is controlled to move from its current position to a second position;
[0019] Obtain environmental information during the movement process;
[0020] The environmental information during the movement process is compared with the stored environmental map to determine the robot's pose in the stored environmental map.
[0021] In this embodiment, during the localization process, the robot can move from its current location to a new location. During this movement, it can acquire more environmental information, which is then compared with the robot's stored environmental map. This facilitates the successful localization of the robot's pose within the stored map. Furthermore, since environmental information generally differs at different robot locations, this helps distinguish similar environmental areas and overcomes the problem of an inaccurate pose acquisition when the robot remains stationary due to the presence of multiple similar environmental areas. Attached Figure Description
[0022] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments and are used to explain this application, but do not constitute an undue limitation of this application. In the drawings:
[0023] Figure 1aA hardware structure block diagram of a robot provided for an exemplary embodiment of this application;
[0024] Figure 1b A line drawing of a humanoid robot provided for an exemplary embodiment of this application;
[0025] Figure 1c A line drawing of a non-humanoid robot provided as an exemplary embodiment of this application;
[0026] Figure 1d A schematic diagram of an environmental map provided for an exemplary embodiment of this application;
[0027] Figure 1e for Figure 1d The environmental map provided in the image is a schematic diagram showing the boundaries.
[0028] Figure 1f To Figure 1e The diagram provided shows the passable boundary obtained after boundary optimization processing.
[0029] Figure 1g From Figure 1f The diagram provided shows the optimized target boundary selection and the planned navigation path.
[0030] Figure 2 This is a flowchart illustrating a robot localization method provided in one embodiment of this application. Detailed Implementation
[0031] To make the objectives, technical solutions, and advantages of this application clearer, the technical solutions of this application will be clearly and completely described below in conjunction with specific embodiments and corresponding drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of them. Based on the embodiments in this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0032] To address the low accuracy of existing robot localization techniques, this application provides a solution. The basic idea is that during the localization process, the robot can move from its current location to a new location, acquiring more environmental information during this movement. This acquired environmental information is then compared with a stored environmental map, facilitating the successful determination of the robot's pose within the stored map. Furthermore, since environmental information generally differs at different robot locations, this movement helps distinguish similar environmental areas, overcoming the problem of inaccurate pose determination when the robot remains stationary due to the presence of multiple similar environmental areas.
[0033] The technical solutions provided by the various embodiments of this application are described in detail below with reference to the accompanying drawings.
[0034] Figure 1a This is a hardware structure block diagram of a robot provided for an exemplary embodiment of this application. (See diagram below.) Figure 1a As shown, the robot 100 includes: a mechanical body 101; the mechanical body 101 is provided with one or more processors 102 and one or more memories 103 for storing computer instructions. In addition, the mechanical body 101 is also provided with one or more sensors 104.
[0035] It is worth noting that one or more processors 102, one or more memories 103, and one or more sensors 104 may be disposed inside the mechanical body 101 or on the surface of the mechanical body 101.
[0036] The mechanical body 101 is the actuator of the robot 100, capable of performing operations specified by the processor 102 within a defined environment. The mechanical body 101, to a certain extent, reflects the physical form of the robot 100. However, in this embodiment, the physical form of the robot 100 is not limited. For example, the robot 100 could be... Figure 1b The humanoid robot shown may have a mechanical body 101, including but not limited to: a head, hands, wrists, arms, waist, and base. Additionally, the robot 100 may also be... Figure 1c For non-humanoid robots with relatively simple forms, the mechanical body 101 mainly refers to the body of the robot 100.
[0037] It is worth noting that the mechanical body 101 also includes some basic components of the robot 100, such as a drive component, an odometer, a power supply component, an audio component, etc. Optionally, the drive component may include drive wheels, drive motors, casters, etc. The basic components and their configurations may vary between different robots 100; the embodiments listed in this application are only some examples.
[0038] One or more memories 103 are primarily used to store one or more computer instructions that can be executed by one or more processors 102, causing the one or more processors 102 to control the robot 100 to perform corresponding functions, actions, or tasks. In addition to storing computer instructions, the one or more memories 103 may also be configured to store various other data to support operations on the robot 100. Examples of this data include instructions for any application or method used to operate on the robot 100, and an environmental map corresponding to the environment in which the robot 100 is located. The environmental map may be one or more pre-stored maps corresponding to the entire environment, or it may be a partial map that is being constructed previously.
[0039] One or more memories 103 may be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk or optical disk.
[0040] One or more processors 102 can be considered as the control system of the robot 100. They can be used to execute computer instructions stored in one or more memories 103 to control the robot 100 to perform corresponding functions, actions, or tasks. It is worth noting that the functions, actions, or tasks that the robot 100 needs to perform will be different when it is in different scenarios; correspondingly, the computer instructions stored in one or more memories 103 will also be different, and one or more processors 102 can execute different computer instructions to control the robot 100 to perform different functions, actions, or tasks.
[0041] In this embodiment, the robot 100 can move autonomously and complete certain tasks based on autonomous movement. For example, in shopping scenarios such as supermarkets and shopping malls, shopping cart robots need to follow customers to accommodate the goods they select. Another example is in warehouse sorting scenarios in some companies, where sorting robots need to follow sorting personnel to the shelf picking area and then begin sorting orders. Yet another example is in home cleaning scenarios, where a sweeping robot needs to clean areas such as the living room, bedroom, and kitchen. In these application scenarios, the robot 100 needs to move. For a robot 100 that needs to move and is capable of movement, navigation and positioning within its environment is a basic function. Therefore, in autonomous robot movement scenarios, when computer instructions stored in one or more memories 103 are executed by one or more processors 102, the processors 102 can control the robot 100 to perform functions related to autonomous movement, such as navigation and repositioning.
[0042] In this embodiment, one or more sensors 104 on the robot 100 can assist in navigation, localization, and relocation of the robot 100. These sensors 104 may include, but are not limited to, vision sensors, laser sensors, contact sensors, reflective optical couplers, and inertial sensors.
[0043] The vision sensor can be considered the "eyes" of the robot 100, mainly used to collect images of the environment surrounding the robot 100; these images can be called environmental images. The vision sensor can be implemented using any device with image acquisition capabilities, such as a camera or a video camera.
[0044] The laser sensor is a radar system that collects environmental information around the robot 100 by emitting a laser beam. The environmental data collected by the laser sensor may include, but is not limited to, the distance and angle of objects around the robot 100. The laser sensor can be implemented using any device capable of emitting a laser beam, such as a lidar system.
[0045] Under normal circumstances, robot 100 can navigate and locate itself based on environmental information collected by laser sensors or vision sensors and existing environmental maps stored in one or more memories 103. However, in practical applications, robot 100 may be hijacked, such as being moved, suspended in the air, or dragged over a large area. In these situations, robot 100 may lack or lose its previous position information, thus requiring re-determining the robot's current pose, i.e., relocalization.
[0046] Contact sensors, reflective optical couplers, and inertial sensors can be used to detect whether the robot 100 has been hijacked during use. For example, contact sensors can be installed on the bottom of the robot 100's base or on its wheels. These sensors, under the control of one or more processors 102, can detect whether the robot 100 has been moved or suspended, and can also determine whether the robot 100 has returned to the ground. Alternatively, a reflective optical coupler can be installed on the bottom of the robot 100. This coupler emits a beam of light that can be reflected back from the ground. This beam can be used to detect whether the robot 100 has been moved or suspended, and subsequently placed back on the ground. When the contact sensor or reflective optical coupler detects that the robot 100 has been placed back on the ground, it triggers one or more processors 102 to initiate a repositioning function. Another example is the installation of inertial sensors, such as accelerometers, on the mechanical body 101 of the robot 100. These sensors can detect whether the robot 100 has been dragged extensively, and when the dragging of the robot 100 stops, it triggers one or more processors 102 to initiate a repositioning function.
[0047] In this embodiment, the robot 100 stores an environmental map corresponding to its current environment. During the localization process, the robot 100 moves from its current position to a second position, acquiring environmental information during the movement through one or more sensors 104. This environmental information is then compared with the stored environmental map to determine the robot 100's pose within the stored map. The pose here includes the robot 100's position and orientation.
[0048] Optionally, the environment map may include at least one of a visual map and a grid map. The visual map is pre-constructed based on environmental images acquired by a visual sensor. This visual map can describe the environment in which the robot 100 is located to a certain extent, mainly storing information about several environmental images related to the robot 100's environment, such as the robot's pose corresponding to the environmental images, feature points contained in the environmental images, and descriptors of the feature points. The grid map is pre-constructed based on environmental data acquired by a laser sensor. This grid map is a product of digitally rasterizing the environment in which the robot 100 is located. Each grid in the grid map corresponds to a small area in the environment in which the robot 100 is located. Each grid contains two basic types of information: coordinates and whether it is occupied by an obstacle. The probability value of a grid being occupied represents the environmental information of the corresponding area. The more grids in the grid map, the more detailed the description of the environment in which the robot 100 is located, and correspondingly, the higher the positioning accuracy based on the grid map.
[0049] If one or more of the aforementioned sensors 104 include a vision sensor, the vision sensor can acquire environmental images during the process of the robot 100 moving to the second position. Correspondingly, if the environmental map stored in one or more memories 103 includes a visual map, the robot 100 can be positioned based on the environmental images and visual map acquired by the vision sensor during the process of the robot 100 moving to the second position.
[0050] If one or more of the aforementioned sensors 104 include a laser sensor, the laser sensor can collect environmental data during the process of the robot 100 moving to the second position. Correspondingly, if the environmental map stored in one or more memories 103 includes a grid map, the robot 100 can be located based on the environmental data collected by the laser sensor during the process of the robot 100 moving to the second position and the grid map.
[0051] If one or more of the aforementioned sensors 104 include a vision sensor and a laser sensor, the vision sensor can acquire environmental images during the process of the robot 100 moving to the second position, and the laser sensor can acquire environmental data during the process of the robot 100 moving to the second position. Correspondingly, the environmental map stored in one or more memories 103 includes a regional visual map and a regional grid map. The robot 100 can be located by combining the environmental images and visual maps acquired by the vision sensor during the process of the robot 100 moving to the second position, the environmental data acquired by the laser sensor during the process of the robot 100 moving to the second position, and the grid map.
[0052] For ease of description, in the following embodiments, the environmental images collected by the vision sensor during the process of the robot 100 moving to the second position and the environmental data collected by the laser sensor during the process of the robot 100 moving to the second position are collectively referred to as environmental information during the movement process.
[0053] In this embodiment, during the localization process, the robot can move from its current position to a new position, acquiring more environmental information during this movement. This acquired environmental information is then compared with the robot's stored environmental map, facilitating the successful determination of the robot's pose within the stored map. Furthermore, since environmental information generally differs at different robot locations, this movement helps distinguish similar environmental areas, overcoming the problem of an inaccurate pose determination when the robot remains stationary due to the presence of multiple similar environmental areas.
[0054] In some optional embodiments, when positioning is required, the robot 100 can first collect environmental information of its current location using one or more sensors 104. Then, it compares this environmental information with a stored environmental map to determine the robot 100's pose within the stored map. If the comparison result does not meet the set comparison requirements, one or more processors 102 can select a different location as a second location based on the robot's current environmental information and perform subsequent operations to continue positioning the robot while moving to the second location. Conversely, if the comparison result meets the set comparison requirements, no further positioning operations are required.
[0055] Optionally, comparison requirements can be preset. For example, a matching rate threshold between the collected environmental information at the current location and the stored environmental map can be preset. If the matching rate reaches the preset matching rate threshold, the comparison result is considered to meet the preset comparison requirements. If the matching rate is less than the preset matching rate threshold, the comparison result is considered to not meet the preset comparison requirements.
[0056] In this optional embodiment, firstly, the robot 100 stays in place to perform localization. If the pose of the robot 100 is determined, no further localization operation is required. Otherwise, the robot 100 can move to a second position and continue localization based on environmental information during the movement. This not only improves the efficiency of robot 100 localization, but also ensures successful and accurate localization of the robot 100's pose when the robot 100 cannot determine its pose by staying in place, moving to a second position and continuing localization based on environmental information during the movement.
[0057] In another optional embodiment, when positioning is required, the robot 100 can directly collect environmental information of its current position through one or more sensors 104. Then, based on the collected environmental information, it selects a location different from its current position as a second position and moves to the second position, acquiring environmental information during the movement. This environmental information is then compared with environmental maps stored in one or more memories 103 to determine the robot 100's pose within the stored environmental maps. In this approach, the process of the robot 100 staying in place for positioning is skipped; the robot 100 moves directly to the second position and positions itself based on the environmental information during the movement. This method is suitable for scenarios where positioning is difficult for the robot 100 at its initial position.
[0058] In this embodiment, a different location from the current location can be randomly selected as the second location. Alternatively, one or more processors 102 can select a different location from the current location as the second location in other ways. For example, based on the environmental information of the robot 100's current location, at least one passable boundary around the current location can be determined; a target boundary can be selected from the at least one passable boundary, and the second location can be determined based on the target boundary.
[0059] The following will combine Figure 1d The grid map of the environment shown illustrates an embodiment in which one or more processors 102 select a second position different from the current position of robot 100.
[0060] First of all, Figure 1d The raster map A shown is used for illustration. For example... Figure 1d As shown, grid map A consists of two parts: local grid map B corresponding to the local area where robot 100 is currently located, and local grid map C corresponding to the unknown area. Additionally, as... Figure 1d As shown, based on whether there are obstacles obstructing the boundary between the local area where robot 100 is currently located and the unknown area, the boundary is divided into an obstructed boundary and an unobstructed boundary. For ease of description, the obstructed boundary is simply referred to as the obstacle boundary D, and the unobstructed boundary is simply referred to as the passable boundary E. For example, if the grid map A is an environmental map of a hotel, and the current environmental area of robot 100 is a room in the hotel, then the unknown area could be the hotel lobby or corridor, the obstacle boundary D is the wall of the room where robot 100 is located, and the passable boundary E is the door of the room where robot 100 is located.
[0061] based on Figure 1dAs shown in the grid map A, one or more processors 102 can determine the approximate range of the robot 100 in the grid map A, i.e., a local grid map B, based on the environmental information of the robot 100's current position. Based on the local grid map B, at least one passable boundary E is determined around the robot 100's current position, such as... Figure 1e As shown; select the target boundary E1 from at least one passable boundary E, and then determine the second position based on the target boundary E1.
[0062] Optionally, when determining the second position based on the target boundary E1, one or more processors 102 may randomly select any position on the target boundary E1 as the second position; or they may randomly select any position in the environmental region outside the target boundary E1 as the second position. The environmental region outside the target boundary E1 may be the entire region of the unknown region C or a portion of the unknown region C. The size of the environmental region outside the target boundary E1 can be determined according to the actual application scenario and is not limited here.
[0063] Optionally, when selecting a target boundary E1, one or more processors 102 may randomly select one from at least one passable boundary E as the target boundary E1; or, according to a certain algorithm or strategy, they may select one passable boundary from at least one passable boundary E as the target boundary E1.
[0064] The following describes some alternative implementations of one or more processors 102 selecting a target boundary E1 from at least one accessible boundary E.
[0065] In an optional embodiment, when selecting a target boundary E1, one or more processors 102 may perform boundary optimization processing on at least one passable boundary E to obtain at least one optimized passable boundary. like Figure 1f As shown; then, based on each optimized passable boundary... The dimensions and each optimized passable boundary The distance between the robot 100 and its current position P, from at least one optimized passable boundary Select the target boundary E1, as shown below. Figure 1g As shown. Optionally, for each optimized passable boundary... Based on this optimized boundary, The endpoints determine the optimized boundary. The dimensions are calculated, and the optimized boundary is determined. The distance to the current location P of robot 100.
[0066] Optionally, the above-mentioned boundary optimization processing for at least one boundary E can be performed using at least one of the following methods:
[0067] Method 1: Boundary optimization is performed on at least one passable boundary E using boundary filtering. Optionally, the boundary filtering method can be mean filtering, Gaussian filtering, median filtering, bilateral filtering, etc., but is not limited to these. These filtering methods are well known in the art and will not be described in detail here.
[0068] Method 2: At least one passable boundary E is optimized using an expansion / contraction method. The expansion algorithm merges background points that contact the passable boundary E into the passable boundary E, causing it to expand outwards and fill voids within the boundary. The contraction algorithm, also known as the erosion algorithm, eliminates relatively discrete boundary points on the passable boundary E, causing it to shrink inwards and eliminating small and meaningless boundary points.
[0069] By employing the aforementioned boundary filtering method, or the expansion / contraction method, or a combination of both, boundary optimization processing can be performed on at least one passable boundary E. This process can smooth at least one passable boundary E, eliminating noise on the passable boundary E, and simultaneously filtering out small and meaningless boundaries within the passable boundary E. The optimized passable boundary... The number of accessible boundaries E may be reduced compared to the number before optimization, which can reduce the subsequent determination of the optimal accessible boundaries. Size and computationally optimized boundary The computational cost of determining the distance to the current location of robot 100 helps to shorten the time required to determine the target boundary E1, thereby improving positioning efficiency.
[0070] Furthermore, a length threshold can be preset, based on which the optimized passable boundary can be used. Boundaries with dimensions greater than the length threshold are selected. For ease of description, these boundaries with dimensions greater than the length threshold are defined as the first passable boundaries. Based on the first passable boundaries, the above selection of the target boundary E1 from the optimized passable boundaries can be implemented in the following way:
[0071] Implementation method 1: When the number of first passable boundaries is 1, the first passable boundary is determined as the target boundary E1.
[0072] Implementation method 2: When the number of first passable boundaries is greater than 2, and the distance between the first passable boundary and the current position P of robot 100 is not exactly equal, the boundary closest to the current position P of robot 100 among the first passable boundaries is determined as target boundary E1.
[0073] Implementation method 3: When the number of first passable boundaries is greater than 2, and the distance between the first passable boundaries and the current position P of robot 100 is equal, the boundary with the largest size among the first passable boundaries is determined as the target boundary E1.
[0074] It should be noted that the above length threshold can be flexibly set according to the application scenario of robot 100. For example, if robot 100 is a household robotic vacuum cleaner, the length threshold can be the width of a door; or if robot 100 is a shopping cart robot used in a supermarket, the length threshold can be the width between adjacent shelves, etc.
[0075] Furthermore, during the movement of robot 100 from its current location P to the second location, there are generally some obstacles, such as tables, chairs, and household appliances in a room. Based on this, when controlling robot 100 to move from its current environmental area to the target environmental area, at least one or more processors 102 can plan a navigation path based on the relative positional relationship between robot 100 and the second location and environmental information, such as... Figure 1g As shown; then, control robot 100 along Figure 1g The planned navigation path shown moves the robot 100 from its current position P to the second position. This allows the robot to avoid obstacles along its path to the second position, facilitating a smooth transition.
[0076] In another alternative embodiment, when selecting a target boundary E1, one or more processors 102 may perform boundary optimization processing on at least one passable boundary E to obtain at least one optimized passable boundary. like Figure 1f As shown; based on the relative positional relationship between the robot and at least one optimized passable boundary and environmental information, a navigation path to at least one optimized passable boundary is planned; based on the navigation path to at least one optimized passable boundary, the target boundary is selected from at least one optimized passable boundary.
[0077] Combining Embodiments 2 and 3 above, when the number of first passable boundaries is greater than 2, a navigation path can be planned for the robot 100 to move from its current position P to each first passable boundary based on the relative positional relationship between the robot 100 and each first passable boundary and the environmental information. Then, based on the navigation path to each first passable boundary, a target boundary E1 can be selected from the first passable boundaries. Preferably, the first passable boundary corresponding to the shortest navigation path can be selected as the target boundary E1. However, when the lengths of all navigation paths are the same, the boundary with the largest size among the first passable boundaries is selected as the target boundary E1.
[0078] In some application scenarios, new boundaries may appear as robot 100 moves from its current position P to a second position along the navigation path. For example, in some companies' warehouse sorting scenarios, as the sorting robot moves to the second position through the passage between two adjacent shelves (i.e., the target boundary E1), the two adjacent shelves may be moved, and a new boundary will appear at this time.
[0079] Based on the above application scenario, during the process of robot 100 moving from its current position to a second position along the navigation path, one or more processors 102 can, in conjunction with one or more sensors 104, monitor whether new passable boundaries appear around the current position of robot 100. When a new passable boundary is detected, and the new passable boundary can serve as a new target boundary, the second position is redefined based on the new target boundary. Afterwards, a new navigation path can be replanned for robot 100 to move from its current position to the new second position; and robot 100 can be controlled to move along the new navigation path from its current position to the new second position. The implementation method for redefineding the second position based on the new target boundary can be found in the relevant description of determining the second position in the above embodiments, and will not be repeated here.
[0080] Optionally, one or more processors 102 can determine whether a new passable boundary can serve as a new target boundary based on the size of the new passable boundary and the distance between the new passable boundary and the current position of the robot 100. If the size of the new passable boundary is larger than the target boundary E1, and the distance between the new passable boundary and the current position of the robot 100 is closer than the target boundary E1, then the new passable boundary is determined to be a new target boundary. Otherwise, the new passable boundary is determined not to serve as a new target boundary, and the robot 100 is controlled to continue moving along the original navigation path to the original second position.
[0081] Furthermore, it should be noted that when determining the new target boundary, the new passable boundary can be optimized. The optimization process can be found in the descriptions of methods 1 and 2 in the above embodiments, and will not be repeated here.
[0082] In other application scenarios, the target boundary E1 may disappear as the robot 100 moves along the navigation path from its current position P to the second position. For example, in some companies' warehouse sorting scenarios, the sorting robot may be temporarily blocked while moving to the second position through the passage between two adjacent shelves (i.e., the target boundary E1), meaning that the target boundary E1 disappears.
[0083] Based on the above application scenario, during the process of robot 100 moving from its current position to a second position along the navigation path, one or more processors 102 can monitor the existence status of the target boundary E1 in conjunction with one or more sensors 104. When the target boundary E1 is detected to disappear, a new target boundary is selected from the accessible boundaries around the current position based on the environmental information of the robot 100's current position, and the second position is redefined based on the new target boundary. Then, a new navigation path for robot 100 to move from the current position to the new second position is replanned, and robot 100 is controlled to move from the current position to the new second position along the new navigation path. The implementation methods for determining the new target boundary and redefining the second position based on the new target boundary can be found in the relevant description of determining the second position in the above embodiments, and will not be repeated here.
[0084] In the above or following embodiments, one or more processors 102 can plan a navigation path to the second position based on the environmental information of the robot's current position; and then control the robot to move to the second position along the navigation path. The path planning algorithms used include, but are not limited to, D* algorithm, A* algorithm, etc., all of which are well-known technologies in the art and will not be described further here.
[0085] During the robot's movement along the navigation path to the second position, environmental information can be acquired during the movement, and this acquired environmental information can be compared with a stored environmental map to determine the robot's pose within the stored environmental map. Optionally, during the robot's movement along the navigation path to the second position, the acquired environmental information can be compared with the stored environmental map at least once to determine the robot's pose within the stored environmental map.
[0086] For example, after the robot reaches the second position, the environmental information acquired during the movement process can be compared with the stored environmental map to determine the robot's pose in the stored environmental map.
[0087] For example, a positioning cycle can be preset, and a timer or counter can be started to count down this cycle. In this way, as the robot moves along the navigation path to the second position, the environmental information acquired during the movement can be compared with the stored environmental map at the end of each positioning cycle to determine the robot's pose within the stored map. This method of positioning while moving not only improves positioning accuracy but also allows for real-time positioning, thus increasing positioning efficiency.
[0088] In this embodiment, regardless of the implementation method used to determine the second position, it is necessary to compare the acquired environmental information during the movement process with the stored environmental map. One comparison method is to construct a temporary map based on the acquired environmental information during the movement process; and compare the constructed temporary map with the stored environmental map to determine the robot's pose in the stored environmental map.
[0089] Furthermore, one possible implementation for comparing the constructed temporary map with the stored environment map to determine the robot's pose in the stored environment map is as follows: Based on a matching algorithm, the constructed temporary map is traversed across each pose on the stored environment map. For example, with a grid size of 5cm, a step size of 5cm can be selected. The temporary map covers all possible poses in the stored environment map, and the angle step size is set to 5 degrees, including the orientation parameters of all poses. When a grid representing an obstacle on the temporary map matches a grid representing an obstacle on the stored environment map, a score is awarded, and the pose with the highest score is determined as the globally optimal pose. Then, the matching rate of the globally optimal pose is calculated, and when the matching rate of the globally optimal pose is greater than a preset matching rate threshold, the globally optimal pose is determined as the robot's pose.
[0090] Optionally, when the acquired environmental information during the movement exceeds a set environmental information threshold, the constructed temporary map can be a multi-layer composite resolution map; the stored environmental map is then processed into a composite resolution map of the corresponding number of layers; subsequently, the constructed multi-layer composite resolution map is matched layer by layer with the composite resolution map corresponding to the stored environmental map. Conversely, when the acquired environmental information during the movement is less than the set environmental information threshold, the constructed temporary map can be a single-layer resolution map, thus improving the matching efficiency.
[0091] Optionally, when matching the lowest resolution map in the constructed multi-layer composite resolution map with the lowest resolution map in the composite resolution map corresponding to the stored environment map, the ICP algorithm can be used for matching. This reduces the computational load of map matching and improves the efficiency of matching.
[0092] Optionally, a distance threshold and a time threshold can be preset. When the robot 100 is moving, the distance and time of the robot 100's movement can be recorded. When the movement time of the robot 100 is greater than the time threshold and the movement distance is greater than the distance threshold, it is determined that the robot 100 is not in the stored environment map.
[0093] In the above embodiments of this application, the process of robot 100 localization was described. Depending on the diversity of application scenarios, there may be various situations requiring robot 100 localization. Examples are given below:
[0094] In application scenario 1, the robot in each embodiment of this application is specifically a robotic vacuum cleaner. The user uses the robotic vacuum cleaner to perform cleaning tasks. The area to be cleaned for each task is random, such as the living room, kitchen, or bedroom. Furthermore, to conserve the robot's power, it can automatically shut down after each cleaning task. Thus, each time the robot needs to perform a cleaning task, the user can move it to the area to be cleaned and restart it via touch, sound, or a physical button. At this time, due to the restart, the robot's previous location information is lost, and it needs to reposition itself to determine its position in the current area to be cleaned in order to successfully perform the cleaning task.
[0095] However, sometimes the environmental information of the area to be cleaned is not self-evident; that is, the room layouts may be exactly the same, for example, the size, decoration, and furnishings of each bedroom in a hotel are almost identical. When a robot vacuum cleaner uses the information of a particular room for relocation, it cannot distinguish which room it is in, thus failing to accurately determine its current pose. Therefore, during the localization process, the robot vacuum cleaner selects a second location different from its current position. This target environment area can be any location within the current room or any location in the hotel corridor, lobby, etc., and moves from its current position to the second location. It acquires environmental information during this movement and compares this information with a stored hotel environment map to determine the robot's pose within the hotel environment map.
[0096] In application scenario 2, the robots in the various embodiments of this application are specifically used in shopping malls, supermarkets, and other shopping venues as shopping guide robots or shopping cart robots. The shopping guide robot follows customers in the mall or supermarket, introducing products to them. If the shopping guide robot's sensors suddenly malfunction, or if the robot moves too fast, causing it to lose its previous location information, the robot needs to initiate relocation to ensure it can continue serving customers correctly.
[0097] However, the layout of the shopping guide robot's current environment may change compared to the existing environmental map. For example, the shopping mall or supermarket may have undergone renovations or changes in shelf arrangement. In such cases, the shopping guide robot cannot accurately determine its current position. Therefore, during the localization process, the shopping guide robot selects a second location different from its current location, such as any location in the lobby of the shopping mall, and moves from its current location to the second location. It acquires environmental information during the movement and compares this information with the stored shopping mall environmental map to determine the shopping guide robot's position within the shopping mall environmental map.
[0098] In application scenario 3, regardless of the type of robot, autonomous movement is required to complete the corresponding task, which necessitates navigation and localization. During robot navigation, a certain level of accuracy is required. If the accuracy cannot meet the navigation needs, relocation must be triggered so that navigation can continue after relocation.
[0099] In application scenario 3, during autonomous movement, the robot can acquire environmental information and compare the previously acquired environmental information with the stored environmental map at the beginning of each positioning cycle to determine the robot's pose in the stored environmental map.
[0100] It is worth noting that the robot provided in this application embodiment can also establish communication connections with other robots according to communication needs. The connection between the two robots can be wireless or wired. For example, the robot can be equipped with wireless communication modules such as WiFi, Bluetooth, and infrared, allowing the two robots to establish a communication connection using these methods. In addition, the robot can be equipped with a SIM card, enabling the two robots to establish a communication connection via a mobile network. This mobile network can be any of the following: 2G (GSM), 2.5G (GPRS), 3G (WCDMA, TD-SCDMA, CDMA2000, UTMS), 4G (LTE), 4G+ (LTE+), WiMax, etc. Of course, the two robots can also establish a remote communication connection with a server.
[0101] Based on the above, when it is necessary to replace a new robot, add a new robot to the current environment, or relocate a robot working in another environment to this environment area according to requirements, in order to facilitate the new robot to quickly start working in the current environment, the original robot can establish a communication connection with the new robot and send the stored environment map to the new robot through the communication connection. Of course, it can also send the environmental information acquired during the movement process to the new robot, so as to achieve the transfer of environment maps and environmental information between different robots and realize information sharing. In this way, the new robot does not need to recreate the environment map and can directly perform automatic positioning and navigation based on the received environment map, so that the new robot can quickly locate its position in the environment map and quickly enter the working state.
[0102] The new robot can receive environmental maps sent by the original robot and store them in its own memory. Alternatively, it can receive environmental information acquired during the original robot's movement and store it in its own memory. Then, when localization is needed, it can move from its current position to a second position, acquiring environmental information during the movement. This acquired environmental information is compared with the stored environmental map to determine its pose within the stored map.
[0103] Furthermore, before moving from its current position to the second position, the new robot can also acquire environmental information at its current location and compare it with a stored environmental map to determine its pose within the stored map. If the comparison result meets the set requirements, other operations are performed based on the positioning result. If the comparison result does not meet the set requirements, the robot can move from its current position to the second position, acquiring environmental information during the movement and comparing it with a stored environmental map to determine its pose within the stored map. This process can continue until the robot's pose within the stored map is determined. The localization process of the new robot can be found in the descriptions of the foregoing or following embodiments, and will not be detailed here.
[0104] It's worth noting that, in addition to sending the stored environmental map and acquired environmental information to the new robot, the original robot can also send other accumulated data. This allows the new robot to directly begin working based on the experience data accumulated by the original robot. For example, the new robot can obtain cleaning information from the original robot's environmental map—that is, information on cleaned and uncleaned areas—and begin cleaning in the uncleaned areas based on this information. The new and original robots quickly enter a collaborative working state, avoiding the new robot cleaning areas already cleaned by the original robot, thus improving cleaning efficiency. It's also worth noting that the original robot can be referred to as the first robot, and the new robot as the second robot.
[0105] In addition to the robots described above, some exemplary embodiments of this application also provide robot relocation methods. These methods will be described in detail below with reference to the accompanying drawings.
[0106] Figure 2 This is a flowchart illustrating a robot localization method provided as an exemplary embodiment of this application. Figure 2 As shown, the method includes:
[0107] 201. During the localization process, the robot moves from its current position to a second position.
[0108] 202. Obtain environmental information during the movement process.
[0109] 203. Compare the environmental information during the movement with the environmental map stored by the robot to determine the robot's pose in the stored environmental map.
[0110] The method provided in this embodiment can be applied to autonomously moving robots, primarily for robot localization, i.e., determining the robot's initial position on an environmental map. This embodiment does not limit the robot's shape; for example, it can be circular, elliptical, triangular, convex polygonal, humanoid, etc. The robot can implement the logic of the robot localization method provided in this embodiment by installing software, an app, or writing program code into relevant devices.
[0111] In this embodiment, the robot can move autonomously, but navigation and positioning are required during movement. In practical applications, the robot may be hijacked, such as being moved, suspended in the air, or dragged over a large area. In these situations, the robot may lack or lose its previous position information, thus requiring a re-determination of the robot's current pose.
[0112] In this embodiment, the robot stores an environmental map corresponding to its current environment. During the localization process, the robot moves from its current position to a second position and acquires environmental information during the movement. This environmental information is then compared with the stored environmental map to determine the robot's pose within the stored map. The pose here includes the robot's position and orientation.
[0113] Optionally, the environment map may include at least one of a visual map and a grid map. The visual map is pre-constructed based on environmental images acquired by a visual sensor. This visual map can describe the robot's environment to a certain extent and mainly stores information about several environmental images related to the robot's environment, such as the robot's pose corresponding to the environmental images, feature points contained in the environmental images, and descriptors of the feature points. The grid map is pre-constructed based on environmental data acquired by a laser sensor. This grid map is a digitally rasterized product of the environment where the robot is located. Each grid in the grid map corresponds to a small area in the robot's environment. Each grid contains two basic types of information: coordinates and whether it is occupied by an obstacle. The probability value of a grid being occupied represents the environmental information of the corresponding area. The more grids in the grid map, the more detailed the description of the robot's environment, and correspondingly, the higher the positioning accuracy based on the grid map.
[0114] If the sensors on the robot include a vision sensor, the vision sensor can acquire environmental images during the robot's movement to the second position. Correspondingly, the environmental map stored by the robot includes a visual map. Therefore, the robot can be located based on the environmental images and visual map acquired by the vision sensor during the robot's movement to the second position.
[0115] If the sensors on the robot include laser sensors, the laser sensors can collect environmental data as the robot moves to the second position. Correspondingly, the environmental map stored by the robot includes a grid map, so the robot can be located based on the environmental data collected by the laser sensors during the robot's movement to the second position and the grid map.
[0116] If the sensors on the robot include a vision sensor and a laser sensor, the vision sensor can collect environmental images during the robot's movement to the second position, and the laser sensor can collect environmental data during the robot's movement to the second position. Accordingly, the environmental map stored by the robot includes a regional visual map and a regional grid map. The robot can be located by combining the environmental images and visual map collected by the vision sensor during the robot's movement to the second position, the environmental data collected by the laser sensor during the robot's movement to the second position, and the grid map.
[0117] For ease of description, in the following embodiments, the environmental images collected by the vision sensor during the robot's movement to the second position and the environmental data collected by the laser sensor during the robot's movement to the second position are collectively referred to as environmental information during the movement process.
[0118] In this embodiment, during the localization process, the robot can move from its current position to a new position, acquiring more environmental information during this movement. This acquired environmental information is then compared with the robot's stored environmental map, facilitating the successful determination of the robot's pose within the stored map. Furthermore, since environmental information generally differs at different robot locations, this movement helps distinguish similar environmental areas, overcoming the problem of an inaccurate pose determination when the robot remains stationary due to the presence of multiple similar environmental areas.
[0119] In some optional embodiments, before step 201, when determining that localization is required, the robot can first collect environmental information of its current location, and then compare the environmental information of its current location with a stored environmental map to determine its pose in the stored environmental map. If the comparison result does not meet the set comparison requirements, the robot can select a different location as a second location based on the environmental information of its current location and perform subsequent operations to continue localization while moving to the second location. Conversely, if the comparison result meets the set comparison requirements, no further localization operations are required.
[0120] Optionally, comparison requirements can be preset. For example, a matching rate threshold between the collected environmental information at the current location and the stored environmental map can be preset. If the matching rate reaches the preset matching rate threshold, the comparison result is considered to meet the preset comparison requirements. If the matching rate is less than the preset matching rate threshold, the comparison result is considered to not meet the preset comparison requirements.
[0121] In this optional embodiment, firstly, the robot stays in place to perform localization. If the robot's pose is determined, no further localization operation is required. Otherwise, if the robot can move to a second position and continue localization based on environmental information during the movement, this not only improves the efficiency of robot localization, but also ensures successful and accurate localization of the robot's pose when the robot cannot determine its pose by staying in place, moving to a second position and continuing localization based on environmental information during the movement.
[0122] In another optional embodiment, when localization is required, the robot can directly collect environmental information of its current location, then select a location different from its current location as a second location based on the collected environmental information, and move to the second location. During this movement, it acquires environmental information and compares it with a stored environmental map to determine the robot's pose within the stored map. This method skips the process of the robot staying in place for localization; the robot moves directly to the second location and performs localization based on environmental information during the movement. This approach is suitable for scenarios where localization is difficult when the robot is initially in a fixed position.
[0123] In this embodiment, a different location from the current location can be randomly selected as the second location. Alternatively, other methods can be used to select a different location as the second location. For example, based on the environmental information of the robot's current location, at least one passable boundary around the current location can be determined; a target boundary can be selected from the at least one passable boundary, and the second location can be determined based on the target boundary.
[0124] The following will combine Figure 1dThe grid map of the environment shown is used as an example to illustrate one implementation of selecting a second position different from the robot's current position before step 201.
[0125] First of all, Figure 1d The raster map A shown is used for illustration. For example... Figure 1d As shown, grid map A consists of two parts: local grid map B corresponding to the local area where the robot's current position is located, and local grid map C corresponding to the unknown area. Additionally, as... Figure 1d As shown, based on whether there are obstacles obstructing the boundary between the local area where the robot is currently located and the unknown area, the boundary is divided into an obstructed boundary and an unobstructed boundary. For ease of description, the obstructed boundary is simply referred to as the obstacle boundary D, and the unobstructed boundary is simply referred to as the passable boundary E. For example, if the grid map A is an environmental map of a hotel, and the robot's current environmental area is a room in the hotel, then the unknown area could be the hotel lobby or corridor, the obstacle boundary D is the wall of the room where the robot is located, and the passable boundary E is the door of the room where the robot is located.
[0126] based on Figure 1d The grid map A shown can determine the approximate range of the robot within grid map A, i.e., the local grid map B, based on the environmental information of the robot's current position. Based on the local grid map B, at least one passable boundary E can be determined around the robot's current position, such as... Figure 1e As shown; select the target boundary E1 from at least one passable boundary E, and then determine the second position based on the target boundary E1.
[0127] Optionally, when determining the second location based on the target boundary E1, any location on the target boundary E1 can be randomly selected as the second location; alternatively, any location in the environmental region outside the target boundary E1 can be randomly selected as the second location. The environmental region outside the target boundary E1 can be the entire region of the unknown region C, or a portion of the unknown region C. The size of the environmental region outside the target boundary E1 can be determined according to the actual application scenario and is not limited here.
[0128] Optionally, when selecting the target boundary E1, it can be randomly selected from at least one passable boundary E as the target boundary E1; or, it can be selected from at least one passable boundary E as the target boundary E1 according to a certain algorithm or strategy.
[0129] The following provides exemplary descriptions of some alternative implementations for selecting a target boundary E1 from at least one accessible boundary E.
[0130] In an optional embodiment, when selecting the target boundary E1, boundary optimization processing can be performed on at least one passable boundary E to obtain at least one optimized passable boundary. like Figure 1f As shown; then, based on each optimized passable boundary... The dimensions and each optimized passable boundary The distance between the robot's current position P and the boundary obtained from at least one optimized boundary is... Select the target boundary E1, as shown below. Figure 1g As shown. Optionally, for each optimized passable boundary... Based on this optimized boundary, The endpoints determine the optimized boundary. The dimensions are calculated, and the optimized boundary can be accessed. The distance to the robot's current position P.
[0131] Optionally, for a detailed description of at least one method for boundary optimization processing via boundary E and its technical effects, please refer to the relevant descriptions of method 1 and method 2 in the above robot embodiments, which will not be repeated here.
[0132] Furthermore, a length threshold can be preset, based on which the optimized passable boundary can be used. Boundaries with dimensions greater than the length threshold are selected. For ease of description, these boundaries with dimensions greater than the length threshold are defined as first passable boundaries. For a specific implementation method of selecting the target boundary E1 from the optimized passable boundaries based on the first passable boundaries, please refer to the relevant descriptions of implementation methods 1-3 in the above robot embodiments, which will not be repeated here.
[0133] Furthermore, during the robot's movement from its current location P to the second location, there are typically obstacles, such as tables, chairs, and household appliances in a room. Based on this, when the robot moves from its current environment to the target environment, it can plan a navigation path based on its relative position to the second location and environmental information, such as... Figure 1g As shown; afterwards, the robot followed... Figure 1g The planned navigation path shown moves the robot from its current position P to the second position. This allows the robot to avoid obstacles along the way, facilitating a smooth transition to the second position.
[0134] In another alternative embodiment, when selecting the target boundary E1, boundary optimization processing can be performed on at least one passable boundary E to obtain at least one optimized passable boundary. like Figure 1fAs shown; based on the relative positional relationship between the robot and at least one optimized passable boundary and the environmental map, a navigation path to at least one optimized passable boundary is planned; based on the navigation path to at least one optimized passable boundary, the target boundary is selected from at least one optimized passable boundary.
[0135] Combining embodiments 2 and 3 above, when the number of first passable boundaries is greater than 2, a navigation path can be planned for the robot to move from its current position P to each first passable boundary based on the relative positional relationship between the robot and each first passable boundary and environmental information. Then, based on the navigation path to each first passable boundary, a target boundary E1 can be selected from the first passable boundaries. Preferably, the first passable boundary corresponding to the shortest navigation path can be selected as the target boundary E1. However, when the lengths of all navigation paths are the same, the boundary with the largest size among the first passable boundaries is selected as the target boundary E1.
[0136] In some application scenarios, new boundaries may appear as the robot moves along the navigation path from its current position P to a second position. For example, in some company warehouse sorting scenarios, as the sorting robot moves to the second position through the passage between two adjacent shelves (i.e., the target boundary E1), the two adjacent shelves may be moved, and a new boundary will appear at this time.
[0137] Based on the above application scenario, as the robot moves along the navigation path from its current position to the second position, it can monitor whether new passable boundaries appear around its current position. When a new passable boundary is detected, and this new passable boundary can serve as a new target boundary, the second position is redefined based on the new target boundary. Then, a new navigation path can be replanned for the robot to travel from its current position to the new second position, and the robot moves along this new navigation path from its current position to the new second position. The implementation method for redefineding the second position based on the new target boundary can be found in the relevant description of determining the second position in the above embodiments, and will not be repeated here.
[0138] Optionally, the new traversable boundary can be used as a new target boundary based on its size and the distance between it and the robot's current position. If the new traversable boundary is larger than the target boundary E1 and closer to the robot's current position than the target boundary E1, then the new traversable boundary is determined to be a new target boundary. Otherwise, the new traversable boundary cannot be used as a new target boundary, and the robot continues to move towards its original second position along the original navigation path.
[0139] Furthermore, it should be noted that when determining the new target boundary, the new passable boundary can be optimized. The optimization process can be found in the descriptions of methods 1 and 2 in the above embodiments, and will not be repeated here.
[0140] In other application scenarios, the target boundary E1 may disappear as the robot moves along the navigation path from its current position P to the second position. For example, in some companies' warehouse sorting scenarios, the sorting robot may be temporarily blocked while moving to the second position through the passage between two adjacent shelves (i.e., the target boundary E1), meaning that the target boundary E1 disappears.
[0141] Based on the above application scenario, during the robot's movement from its current position to the second position along the navigation path, the existence status of the target boundary E1 can be monitored. When the target boundary E1 is detected to disappear, a new target boundary is selected from the accessible boundaries around the current position based on the environmental information of the robot's current position, and the second position is redefined based on the new target boundary. Then, a new navigation path is replanned for the robot to move from the current position to the new second position, and the robot moves from the current position to the new second position along the new navigation path. The implementation methods for determining the new target boundary and redefining the second position based on the new target boundary can be found in the relevant description of determining the second position in the above embodiments, and will not be repeated here.
[0142] In the above or following embodiments, in step 201, a navigation path to the second position can be planned based on the environmental information of the robot's current position; then the robot moves to the second position along the navigation path to the second position. The path planning algorithm used includes, but is not limited to, the D* algorithm, the A* algorithm, etc., all of which are well-known technologies in the art and will not be described further here.
[0143] During the robot's movement along the navigation path to the second position, environmental information can be acquired during the movement, and this acquired environmental information can be compared with a stored environmental map to determine the robot's pose within the stored environmental map. Optionally, during the robot's movement along the navigation path to the second position, the acquired environmental information can be compared with the stored environmental map at least once to determine the robot's pose within the stored environmental map.
[0144] For example, after the robot reaches the second position, the environmental information acquired during the movement process can be compared with the stored environmental map to determine the robot's pose in the stored environmental map.
[0145] For example, a positioning cycle can be preset, and a timer or counter can be started to count down this cycle. In this way, as the robot moves along the navigation path to the second position, the environmental information acquired during the movement can be compared with the stored environmental map at the end of each positioning cycle to determine the robot's pose within the stored map. This method of positioning while moving not only improves positioning accuracy but also allows for real-time positioning, thus increasing positioning efficiency.
[0146] In this embodiment, regardless of the implementation method used to determine the second position, in step 203, it is necessary to compare the acquired environmental information during the movement process with the stored environmental map. One comparison method is to construct a temporary map based on the acquired environmental information during the movement process; and compare the constructed temporary map with the stored environmental map to determine the robot's pose in the stored environmental map. The process of comparing the temporary map with the stored environmental map can be found in the foregoing embodiments and will not be repeated here.
[0147] It should be noted that the execution subject of each step of the method provided in the above embodiments can be the same device, or the method can be executed by different devices. For example, the execution subject of steps 201 and 202 can be device A; or the execution subject of step 201 can be device A, and the execution subject of step 202 can be device B; and so on.
[0148] Furthermore, in some of the processes described in the above embodiments and accompanying drawings, multiple operations appear in a specific order. However, it should be clearly understood that these operations may not be executed in the order they appear herein, or they may be executed in parallel. The operation numbers, such as 201, 202, etc., are merely used to distinguish different operations and do not represent any execution order. Additionally, these processes may include more or fewer operations, and these operations may be executed sequentially or in parallel. It should be noted that the descriptions such as "first" and "second" in this document are used to distinguish different messages, devices, modules, etc., and do not represent a sequential order, nor do they limit "first" and "second" to different types.
[0149] Accordingly, embodiments of this application also provide a computer-readable storage medium storing computer instructions, which, when executed by one or more processors, cause the one or more processors to perform actions including the following:
[0150] During the localization process, the robot is controlled to move from its current position to a second position; environmental information during the movement is acquired; and the environmental information during the movement is compared with the environmental map stored in the robot's memory to determine the robot's pose in the stored environmental map.
[0151] In one alternative implementation, the actions performed by one or more processors further include: acquiring environmental information of the robot's current position; and selecting a second position different from the current position based on the environmental information of the current position.
[0152] In one optional implementation, the actions performed by one or more processors further include: comparing the environmental information of the robot's current position with the environmental map stored by the robot to determine the robot's pose in the stored environmental map; if the comparison result does not meet the set comparison requirements, selecting a second position different from the current position and performing subsequent operations.
[0153] In one optional embodiment, the action of controlling the robot to move to the second position includes: planning a navigation path to the second position based on the environmental information of the robot's current position; and controlling the robot to move to the second position along the navigation path. Correspondingly, the action of locating the robot's pose in the stored environmental map includes: during the process of controlling the robot to move to the second position along the navigation path, performing at least one comparison between the environmental information during the movement and the robot's stored environmental map to locate the robot's pose in the stored environmental map.
[0154] In an optional implementation, the action of selecting the second position further includes: determining at least one passable boundary around the current position based on environmental information of the robot's current position; selecting a target boundary from the at least one passable boundary; and determining the second position based on the target boundary.
[0155] In one optional implementation, the action of selecting a target boundary includes: performing boundary optimization processing on at least one passable boundary to obtain at least one optimized passable boundary; planning a navigation path for the robot to the at least one optimized passable boundary based on the relative positional relationship between the robot and the at least one optimized passable boundary and the environmental map; and selecting a target boundary from the at least one optimized passable boundary based on the navigation path to the at least one optimized passable boundary.
[0156] In an alternative implementation, the action of one or more processors selecting a target boundary further includes: performing boundary optimization processing on at least one passable boundary to obtain at least one optimized passable boundary; and selecting a target boundary from the at least one optimized passable boundary based on the size of each optimized passable boundary and the distance between each optimized passable boundary and the robot's current position.
[0157] In one optional implementation, the action of determining the second position further includes: selecting a position from the target boundary as the second position; or selecting a position from the environmental area outside the target boundary as the second position.
[0158] In an optional implementation, the actions performed by one or more processors further include: monitoring whether new passable boundaries appear around the current position during the process of controlling the robot to move to the second position; when a new passable boundary appears and the new passable boundary meets the target boundary conditions, taking the new passable boundary as the new target boundary, and redetermining the second position based on the new target boundary.
[0159] In one alternative implementation, the actions performed by one or more processors further include: monitoring the existence status of the target boundary during the process of controlling the robot to move to the second position; when the target boundary disappears, selecting a new target boundary from the available accessible boundaries around the current position, and redetermining the second position based on the new target boundary.
[0160] Those skilled in the art will understand that embodiments of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present invention can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0161] This invention is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in one or more blocks of the flowchart illustrations and / or one or more blocks of the block diagrams.
[0162] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means that implement the functions specified in one or more flowcharts and / or one or more block diagrams.
[0163] These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process, such that the instructions, which execute on the computer or other programmable apparatus, provide steps for implementing the functions specified in one or more flowcharts and / or one or more block diagrams.
[0164] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0165] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.
[0166] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.
[0167] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0168] The above description is merely an embodiment of this application and is not intended to limit the scope of this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of the claims of this application.
Claims
1. A robot localization method, characterized in that, include: The robot acquires environmental information about its current location; Based on the environmental information of its current location, the robot determines at least one passable boundary around its current location; the passable boundary is the boundary without obstructions between the intersection of the local area to which the robot's current location belongs and the unknown area; the local area to which the robot's current location belongs refers to the environmental area where the robot is currently located; the unknown area is the other area in the environmental area corresponding to the environmental map stored by the robot, excluding the local area to which the robot's current location belongs. The robot compares the environmental information of the current location with the stored environmental map. If the comparison result does not meet the set comparison requirements, the robot moves from the current location toward a direction that is closer to at least one of the said passable boundaries during the localization process. The robot acquires environmental information during the movement process and locates its pose in the environmental map based on the environmental information during the movement process.
2. The method according to claim 1, characterized in that, Moving the robot from its current position toward a direction close to at least one of the said accessible boundaries includes: moving the robot from its current position toward a direction close to at least one of the said accessible boundaries to reach or pass through the said accessible boundaries.
3. The method according to claim 1, characterized in that, The robot moves from its current position toward a direction approaching at least one of the said accessible boundaries, including: The robot moves from its current position toward a direction closer to a target boundary, which is one of at least one of the passable boundaries.
4. The method according to claim 3, characterized in that, The robot moves from its current position toward a direction closer to the target boundary, including: The robot moves from its current position to a second position, which is a position close to the target boundary or an area of the environment outside the target boundary.
5. The method according to claim 4, characterized in that, The second location is a location within the environmental area of the target boundary; or, the second location is a location on the target boundary; or, the second location is a location within the environmental area outside the target boundary. The environmental area outside the target boundary can be either the entire unknown area or a portion of the unknown area.
6. The method according to claim 4, characterized in that, Before the robot moves from its current position to the second position, it also includes: The robot compares the environmental information of its current location with the environmental map stored in the robot's memory; If the comparison result does not meet the set comparison requirements, the robot performs an operation to move from the current position to the second position.
7. The method according to claim 3, characterized in that, The target boundary is either the shortest navigation path from at least one of the passable boundaries to the robot's current position, or the shortest distance from at least one of the passable boundaries to the robot's current position, or the largest passable boundary in terms of size among at least one of the passable boundaries.
8. The method according to any one of claims 3-7, characterized in that, Also includes: As the robot moves from its current position toward a direction closer to the target boundary, it monitors whether any new boundaries can be accessed around its current position. When a new passable boundary appears and meets the target boundary conditions, the new passable boundary is taken as the new target boundary, and the movement proceeds in a direction closer to the new target boundary.
9. The method according to any one of claims 3-7, characterized in that, Also includes: The robot monitors the existence status of the target boundary as it moves from its current position toward a direction closer to the target boundary. When the target boundary disappears, a new target boundary is selected from the available accessible boundaries around the current position, and the device moves toward the new target boundary.
10. A robot, characterized in that, include: The mechanical body is provided with one or more sensors, one or more processors, and one or more memories for storing computer instructions; The one or more memories are used to store computer instructions and environmental maps; The one or more processors are configured to execute the computer instructions to implement the steps of the method according to any one of claims 1-9.
11. A computer-readable storage medium storing computer instructions, characterized in that, When the computer instructions are executed by one or more processors, the one or more processors cause the processors to perform the steps of the method according to any one of claims 1-9.