Robot path dynamic planning method and device, and robot
By adjusting the robot's motion posture in real time to maintain a predetermined distance from obstacles or historical paths, the problem of low robot stability and efficiency in existing technologies is solved, and efficient coverage path planning in complex environments is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- BEIJING INDEMIND TECH CO LTD
- Filing Date
- 2022-04-11
- Publication Date
- 2026-05-19
AI Technical Summary
In existing technologies, the area coverage planning methods for mobile robots result in low robot stability and low work efficiency, especially in diverse application scenarios where problems such as sharp turns, frequent acceleration and deceleration, and low work efficiency are exhibited.
By combining the robot's real-time position, angle, and distance to obstacles, the robot adjusts its motion posture to maintain a path of predetermined distance. When it detects that an adjacent area has been covered, it searches for a new starting point again, repeating this process until no new starting point can be found.
It improves the stability and efficiency of robots, making them suitable for dynamic obstacle environments in complex scenarios. It reduces sharp turns and frequent acceleration and deceleration, and improves the flexibility and coverage efficiency of path planning.
Smart Images

Figure CN114610042B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of artificial intelligence, and more specifically, to a method, apparatus, and robot for dynamic path planning. Background Technology
[0002] In mobile robot path planning, area coverage path planning is used in a variety of fields, such as: sweeping robots, disinfection robots, mobile security robots, delivery robots, lawn mowing robots, window cleaning robots, mobile business robots, agricultural robots, special operation robots, and military robots.
[0003] Early mobile robots used a relatively simple method for area coverage path planning, typically consisting of two actions: rotational movement and straight-line movement. When the robot encountered an obstacle, it would rotate at a certain angle and continue moving in a straight line until a predetermined time limit was exceeded. This method of area coverage was inefficient and resulted in large missed areas, and was quite common in early robotic vacuum cleaners.
[0004] With the application of inertial navigation technology, mobile robots have acquired positioning capabilities, and area coverage planning has a new direction. It is possible to plan paths that avoid known obstacles, such as the zigzag path planning method.
[0005] However, as the application scenarios of mobile robots become increasingly diversified, including home environments, public office environments, and outdoor environments, the needs they need to address are also becoming more diverse, and the above-mentioned regional coverage planning methods can no longer meet the needs.
[0006] The regional coverage planning methods in related technologies mainly have the following problems:
[0007] 1. The course has many curves, all of which are sharp turns, resulting in high rotational speeds for the robot when turning. This has a significant impact on the robot's SLAM module. When the robot is large and heavy, it generates considerable inertia, causing significant swaying of the load and greatly reducing the robot's stability. Reducing the robot's turning speed could be considered to improve this situation, but this would introduce frequent acceleration and deceleration, thus reducing work efficiency.
[0008] 2. Low work efficiency. The area coverage planning methods in related technologies are usually composed of straight lines, without curves, with short single path lengths and unidirectional extension direction (each time it can only extend in a fixed direction, and after reaching the end, it must stop and re-establish the starting point and direction).
[0009] 3. Limited application platform. The area coverage planning method in related technologies is well adapted to robot chassis with differential speed control models; however, it is constrained by the robot's turning radius on chassis with car control models, resulting in limited cleaning spacing and reduced work efficiency.
[0010] Therefore, there is an urgent need to propose a new dynamic programming path scheme for regional coverage in order to solve the above problems and improve the working efficiency of robots. Summary of the Invention
[0011] The main objective of this invention is to disclose a robot path dynamic planning method, apparatus, and robot, so as to at least solve the problems of low robot stability and low work efficiency caused by using the area coverage planning method in related technologies.
[0012] According to one aspect of the present invention, a method for dynamic planning of robot paths is provided.
[0013] The robot path dynamic planning method according to the present invention includes: determining a first path for the robot's operation within the robot's operating range based on a predetermined route or predetermined location; sending information of the first path to the robot's motion control module so that the motion control module controls the robot to track the first path; adjusting the robot's motion posture by combining the robot's real-time position, real-time angle, predetermined offset angle, and the real-time distance between the robot and the nearest obstacle or the nearest historical path so that the robot travels along a path that maintains a predetermined distance from the nearest historical path or the nearest obstacle; detecting coverage information in real time during the robot's movement; if adjacent areas are all covered areas, re-searching for a starting point and controlling the robot to navigate to the searched starting point; repeating this step until the robot cannot find a new starting point.
[0014] According to another aspect of the present invention, a robot path dynamic planning device is provided.
[0015] The robot path planning device according to the present invention includes: a determining module, configured to determine a first path for the robot's operation within the robot's operating range based on a predetermined route or predetermined location; a sending module, configured to send information of the first path to the robot's motion control module, so that the motion control module controls the robot to track the first path; and a dynamic planning module, configured to combine the robot's real-time position, real-time angle, predetermined offset angle, and the real-time distance between the robot and the nearest obstacle or the nearest historical path, adjust the robot's motion posture so that the robot travels along a path that maintains a predetermined distance from the nearest historical path or the nearest obstacle, and detect coverage information in real time during the robot's movement. If adjacent areas are all covered areas, a new starting point is searched, and the robot is controlled to navigate to the searched starting point. This step is repeated until the robot cannot find a new starting point.
[0016] According to another aspect of the present invention, a robot is provided.
[0017] The robot according to the present invention includes: a memory and a processor, wherein the memory is used to store computer-executable instructions; and the processor is used to execute the computer-executable instructions stored in the memory, causing the robot to perform the method described in any of the above-described embodiments.
[0018] According to the present invention, a novel dynamic path planning scheme for area coverage is proposed. First, based on a predetermined route or location, a first path for the robot's operation is determined within its working range. Then, combining the robot's real-time position, real-time angle, predetermined offset angle, and the real-time distance between the robot and the nearest obstacle or the nearest historical path, the robot's motion posture is adjusted so that the robot travels along a path maintaining a predetermined distance from the nearest historical path or the nearest obstacle until all detected adjacent areas are covered. At this point, a new starting point is searched, and the robot is guided to navigate to the searched starting point. This process is repeated until the robot can no longer find a new starting point, at which point the operation ends. The path dynamic planning method of this application solves the problems of low robot stability and low work efficiency caused by area coverage planning methods in related technologies, thus improving robot stability and work efficiency. Furthermore, the robot's path dynamic planning can be adjusted according to real-time information, making it suitable for complex scenarios with many dynamic obstacles in the working environment. Attached Figure Description
[0019] Figure 1 This is a flowchart of a robot path planning method according to an embodiment of the present invention;
[0020] Figure 2 This is a schematic diagram of a raster map after multi-data filling according to an embodiment of the present invention;
[0021] Figure 3 This is a structural block diagram of a robot path planning device according to an embodiment of the present invention;
[0022] Figure 4 This is a schematic diagram of the structure of a robot according to an embodiment of the present invention. Detailed Implementation
[0023] The specific implementation of the present invention will now be described in detail with reference to the accompanying drawings.
[0024] Figure 1 This is a flowchart of a robot path planning method according to an embodiment of the present invention. Figure 1 As shown, the robot path planning method includes:
[0025] Step S101: Based on the predetermined route or predetermined location, determine the first path of the robot's operation within the robot's operating range, and send the information of the first path to the robot's motion control module so that the motion control module controls the robot to follow the first path.
[0026] Step S102: Combining the robot's real-time position, real-time angle, predetermined offset angle, and the real-time distance between the robot and the nearest obstacle or the nearest historical path, adjust the robot's motion posture so that the robot travels along a path that maintains a predetermined distance from the nearest historical path or the nearest obstacle. During the robot's movement, detect coverage information in real time. If the adjacent areas are all covered areas, search for a new starting point and control the robot to navigate to the searched starting point. Repeat this step until the robot can no longer find a new starting point.
[0027] use Figure 1 The method presented proposes a novel dynamic path planning scheme for area coverage. First, based on a predetermined route or location, a first path for the robot's operation is determined within its working range. Then, combining the robot's real-time position, real-time angle, predetermined offset angle, and the real-time distance between the robot and the nearest obstacle or historical path, the robot's motion posture is adjusted so that it travels along a path maintaining a predetermined distance from the nearest historical path or obstacle until all detected adjacent areas are covered. At this point, a new starting point is searched, and the robot is guided to navigate to the found starting point. This process is repeated until the robot can no longer find a new starting point, at which point the operation ends. The path planning method of this application solves the problems of low robot stability and low work efficiency caused by area coverage planning methods in related technologies, thus improving robot stability and work efficiency. Furthermore, the path planning can be dynamically adjusted based on real-time information, making it suitable for complex scenarios with many dynamic obstacles in the working environment.
[0028] In the preferred implementation process, the above-mentioned robot has two edge-following capabilities:
[0029] 1. Edge-following capability. Robots need to have sensors to detect the distance to obstacles. For example, the edge-following sensors on a robotic vacuum cleaner can help the robot move along walls.
[0030] 2. Virtual edge-tracing capability. For example, a region is defined on a map, and the robot can move along the boundary of the region in a clockwise or counterclockwise direction.
[0031] Preferably, before determining the first path of the robot's operation within the robot's operating range according to a predetermined route or predetermined location, the following processing may be included: creating a new coverage area map for storing information on the covered area; when the motion control module controls the robot to track the first path, or adjusts the robot's motion posture so that the robot travels along a path that maintains a predetermined distance from the nearest historical path or the nearest obstacle, the process may further include: storing the information on the robot's currently covered area in real time into the coverage area map.
[0032] In the preferred implementation, a new CoverMap (e.g., a raster map) is created to record the areas that have been covered. Specifically, the raster attribute corresponding to the covered areas can be set to "Cover," and the raster attribute of the uncovered areas can be set to "Unknown." All raster attributes of the CoverMap are set to "Unknown" during initialization. Boundary data is then filled into the CoverMap as "Side," and areas outside the boundaries are filled as "Outside."
[0033] During the robot's operation (e.g., when the motion control module controls the robot to follow the first path, or when adjusting the robot's posture to move along the boundaries of a covered area or obstacle), the robot sets the grid attributes within N layers centered on its current position to "Cover". Here, N is half the robot's single-coverage width; for example, if the robot's single-coverage width is 10 grids, then N is 5. When the robot moves along an obstacle, it fills the obstacle information into the CoverMap, sets it to "Obs", and expands it by N layers. The value of N is the robot's safe radius, which needs to be determined based on the robot's attribute information (e.g., shape, structure, etc.).
[0034] Preferably, such as Figure 2As shown, before determining the first path of the robot's operation within its operating range according to a predetermined route or location, the following processes may be included: establishing a world coordinate system based on reference points, and constructing a world map based on the world coordinate system, wherein the reference points include: charging pile location, initialization object location, and robot operation start location; constructing a grid map based on the world coordinate system and the world map, wherein the grid map includes: unknown area information, obstacle area information, obstacle expansion area information, and free area information; and determining the robot's operating range.
[0035] In the process of optimizing the implementation, it is first necessary to determine the reference point. For example, the reference point can be determined in the following ways:
[0036] Method 1: The robot starts from the charging station, using the infrared signal point on the charging station as a reference point. After the robot finishes its work, it returns to the charging station to charge / standby. In practice, no objects that may interfere with the robot's movement should be placed near the charging station.
[0037] Method 2: The robot uses the location of an initialization object (which can be an object containing various feature markers such as natural features and fixed features, for example, a flat marking board. The markers on the initialization object can be Apriltag or other types of markers, such as ARTag, ARToolkit, Aruco, etc.) as its starting point. If the robot cannot find a charging station after completing its task, it can return to the vicinity of the initialization object. During implementation, objects that interfere with the robot's movement should not be placed near the initialization object.
[0038] Method 3: The robot can start its work from any location. Therefore, the robot's starting position can be used as a reference point. If the robot does not find a charging station during its work, it can return to the starting position after completing the task.
[0039] In the preferred implementation process, a raster map can be constructed based on the aforementioned world coordinate system and world map. A raster map is an ordered data array, a collection of pixels composed of many small square pixels, each independent of the others. Raster maps are divided into two-dimensional (2D) raster maps and three-dimensional (3D) raster maps. 3D raster maps store more data and require more storage space than 2D raster maps, resulting in relatively lower data access efficiency. For non-spatial mobile robots, 2D raster maps are generally used. For ground mobile robots, since 2D raster maps already meet the requirements, the following explanation will use 2D raster maps as an example.
[0040] Raster maps can be stored in the following formats, including but not limited to:
[0041] The first type, which saves storage space, includes linked lists, run-length access trees, block trees, and quadtrees. The disadvantage is that random read / write efficiency is relatively low.
[0042] The second type, with relatively high read / write efficiency, includes static graphs. The disadvantage is that they occupy a fixed amount of storage space and consume more storage resources.
[0043] The third approach balances storage and read / write speeds: dynamic maps. The storage space occupied varies depending on the size of the map's effective data, and a small portion of storage resources will still be wasted. However, the read / write speed is equal to that of static maps.
[0044] From a robot's perspective, the spatial attributes of a map can be divided into: Unknown areas (areas the robot has not yet visited), Obstacle areas (obs, impassable areas), ObsExpanded areas (non-obstacle but impassable areas), and Free areas (areas the robot can pass through). Grid values on the map can represent these types of areas, and sometimes other special markers are added. For example, grid value 254 represents an obstacle area, grid value 100 represents an obscured area, and grid value 0 represents a free area.
[0045] In the specific implementation process, the map can be created in the following ways:
[0046] First, obtain reference data for mapping: Robots perceive external information through sensors, which can be multiple sensors, including infrared sensors, ultrasonic sensors, and collision sensors. These sensors can detect obstacles at close range. LiDAR, monocular or binocular cameras, structured light, and Time-of-Flight (TOF) sensors can detect obstacles at long range. LiDAR and cameras have relatively large detection ranges, and robots generally refer to data from these two types of sensors when mapping. Depending on the robot's functional platform, data from other sensors can also be used for mapping. For robots with high safety requirements, multiple sensors can be installed in different parts of the robot to ensure that the sensor detection range covers the robot body. The data from each sensor is then vertically mapped onto a 2D plane to fill the grid map. Alternatively, a 3D grid map can be created based on the robot's height, and then compressed into a 2D grid map during use.
[0047] Secondly, data filling operations are performed, including: firstly, filtering and noise reduction processing of the sensor data; the data obtained from the sensor is all vector data with distance and orientation. After rasterization of the vector data, the raster coordinates of the target point (obstacle) relative to the sensor can be obtained. After translating the raster coordinates of the target point to the raster coordinates of the robot, the raster coordinates of the target point relative to the map origin can be obtained. The raster attribute of the target point in the map is set to the obstacle region, the non-obstacle region around the obstacle is set to the expanded region, and the non-expanded region between the target point and the robot's raster coordinates is set to the empty region. Regarding errors, the errors of the raster map include two types: sensor measurement error and rasterization error itself. The magnitude of the error depends on the accuracy of the sensor and the resolution of the raster map. The higher the sensor measurement accuracy, the higher the map resolution, and the smaller the error in the information fed back by the map, but the larger the map data volume, the longer the time consumed in decision-making. Generally, the accuracy of the sensor is fixed and cannot be changed; the map resolution can be set according to actual needs, but it generally will not exceed the sensor measurement error. A raster map populated with multi-sensor data can be seen in [reference]. Figure 2 The example shown includes: an unknown area 20 (shaded area in the image), an obstacle area 21 (white area in the image), an obstacle expansion area 22 (gray area in the image), and an empty area 23 (black area in the image).
[0048] Typically, different robot platforms have varying map requirements, necessitating map optimization and correction after creation. Optimization methods include, but are not limited to, noise reduction, smoothing, straightening, and map orientation correction.
[0049] Preferably, establishing a world coordinate system based on reference points and constructing a world map based on the aforementioned world coordinate system includes at least one of the following: responding to user-controlled robot movement within a target area until the world map is constructed; mapping while the robot autonomously moves within the target area until the world map is constructed; mapping while the robot tracks preset specific markers or moving objects until the world map is constructed; and mapping while responding to cloud operations when one or more robots move within the target area until the world map is constructed. That is, any one of the above methods, a combination of any two methods, a combination of any two methods, or a combination of all four methods can be used to establish a world coordinate system based on reference points and construct a world map based on the aforementioned world coordinate system.
[0050] In the preferred implementation process, robot mapping operations can be performed using at least one of the following methods:
[0051] 1. Respond to user commands to move the robot within the target area until the world map is constructed; for example, using remote control, handles, or direct push to move the robot within the target area until mapping is completed. Alternatively, the robot can track a designated target (e.g., a user) to complete the scanning and mapping of the work environment, suitable for scenarios involving human-robot hybrid operations and cross-type robot hybrid operations.
[0052] 2. Autonomous mapping method of robot: The robot moves autonomously within the target area until mapping is completed. Specifically, it includes the following processes: (1) The robot starts; (2) The robot scans the surrounding environment; (3) The robot finds a target point near the nearest unknown area; (4) The robot reaches the target point through navigation and then returns to step (2) to continue execution; (5) Mapping is completed until the target point cannot be found in step (3).
[0053] 3. Target object guidance: Place specific directional markers (e.g., QR codes, etc.) in the robot's working environment, or set specific object features for the robot (e.g., flat marking boards, etc.). The robot will track the above markers or features to scan and map the surrounding environment.
[0054] 4. Cloud Control: Mapping is performed as one or more of the aforementioned robots move within the target area, and the robots can be remotely / centrally controlled via the cloud. This enables cluster management of robots and is suitable for scenarios involving multi-robot collaborative mapping in large-scale environments.
[0055] It should be noted that any one of the above methods, any combination of two, any combination of three, or a combination of all four methods can be used to create a map.
[0056] The mapping content mentioned above can include various information that different robots need to scan and record during mapping, based on their specific working environment and purpose, for future use. Examples include: robot trajectory information, scene obstacle information, robot operational information, environmental feature information, semantic recognition information, and fall information.
[0057] Preferably, determining the robot's operating range may include at least one of the following:
[0058] In response to the user's operation to move the robot, the area enclosed by the grid corresponding to the robot's movement trajectory is defined as the working area.
[0059] In response to user settings on the map via the human-computer interaction interface, the area enclosed by the user-defined route is taken as the aforementioned work area.
[0060] After the robot autonomously moves within the target area to complete the construction of the grid map, it searches for empty areas connected to the starting point in the grid map and saves the location information of the empty areas to a first list. It then traverses the first list and expands the positions corresponding to the location information in the first list to non-empty areas by N layers, and determines the grid of the Nth layer as the outermost grid of the robot's working range. It then traverses the grid map and stores the location information of all the outermost grids in a second list, where N is the boundary depth, which is determined by the positioning error, mapping error, and robot association information.
[0061] The robot delineates the work area in the grid map based on predetermined markers or predetermined feature information.
[0062] That is, any one of the above methods, any combination of any two of the above methods, any combination of any three of the above methods, or a combination of all four methods can be used to determine the robot's operating range.
[0063] In the preferred implementation process, when responding to user-defined map settings via the human-computer interaction interface and using the user-defined route as the work area, a map (e.g., a raster map) needs to be acquired first. If no map is already built, the map can be acquired by constructing it using the mapping method described above. Alternatively, if a map already exists, it can be directly imported. This means the robot doesn't need to rebuild the map and can directly use the existing one. For example, if multiple robots are working in a scene, only one robot needs to build the map, and the other robots can share the map data. Or, if the same robot needs to work in multiple scenes, it can store the map after completing its mapping in one scene for future use. Furthermore, when multiple robots work in a cluster, they can share maps with each other; alternatively, each robot's map can be uploaded to the cloud, merged in the cloud backend, and then redistributed to the robot cluster.
[0064] Furthermore, robots typically operate within a limited space, so their working range needs to be defined. Specifically, the robot's working range can be determined using at least one of the following methods:
[0065] Method 1: Responding to user commands to move the robot, the area enclosed by the grid corresponding to the robot's movement trajectory is designated as the work area. For example, the user guides the robot to circle around a designated area, and the area enclosed by the grid corresponding to the robot's trajectory is used as the work area. The robot is not allowed to exceed this movement trajectory during subsequent work. This method of defining the work area has limitations; some areas that the robot cannot access cannot be included in its work area.
[0066] Method 2: Respond to user map settings via the human-computer interaction interface, using the area enclosed by the user-defined route as the aforementioned work area; for example, after the robot autonomously completes mapping within a known closed area, the boundaries can be manually delineated on the map via the human-computer interaction interface. This method allows for flexible boundary delineation.
[0067] Method 3: After autonomously mapping within a known enclosed area, the robot autonomously determines its working range. The mapped range is relatively comprehensive, maximizing the robot's working area. This includes the following steps:
[0068] Step 1: Use the above mapping method to independently build a raster map (hereinafter referred to as WorldMap).
[0069] Step 2: Determine the scope of the operation independently:
[0070] (1) Find the areas that the robot can reach in the WorldMap and store them in ilist.
[0071] (2) Determine the boundary depth N (number of grid cells). Where N1 is the sum of the maximum mapping error and the maximum robot positioning error; N2 is the robot's body radius; and N3 is the robot's control error. The value of N can be determined by converting the sum of N1, N2, and N3 into the number of grid cells and adding 1.
[0072] (3) Traverse ilist1, expand the coordinates in ilist1 to the non-free area (non-free area) by N layers, and mark the grid value of the Nth layer as FlgSide1.
[0073] (4) Traverse the WorldMap and store the grid coordinates of FlgSide1 into tlist1. The data in tlist1 is the data of the boundary mentioned above.
[0074] Method 4: Set special markers in the robot's working environment, or set specific natural features for the robot. The robot delineates the above-mentioned working area in the grid map based on the markers or predetermined feature information.
[0075] It should be noted that any one, any combination of two, any combination of three, or any combination of four of the above methods can be used to determine the robot's operating range. For example, after the robot completes autonomous mapping and determines its boundaries, it can respond to user operations on map settings through the human-computer interaction interface, adjusting boundary information, etc.
[0076] Preferably, after constructing the raster map based on the aforementioned world coordinate system and world map, it may further include at least one of the following:
[0077] In response to the user's action to set restricted areas, restricted areas that prevent the aforementioned robots from entering are set in the grid map mentioned above;
[0078] In response to the user's virtual wall setting operation, a virtual wall is set on the above grid map to prevent robots from passing through;
[0079] In response to the user's core (key) coverage area setting operation, set the area in the above grid map that the robot needs to achieve full or multiple coverage of the operation;
[0080] In response to the user's action of ignoring the coverage area setting, the area that the robot needs to pass through but does not need to be covered is set in the above grid map;
[0081] In response to the user's safe coverage area setting operation, the robot is set in the above grid map to maintain a predetermined safe distance from obstacles when passing through; that is, the robot is not allowed to get too close to obstacles when working in this area, and must maintain the set safe distance.
[0082] In response to user settings for specific areas, the robot sets up those areas in the grid map according to their attribute information. Examples include carpeted areas, depressions, raised areas, height-restricted areas, width-restricted areas, weight-restricted areas, quiet areas, dry areas, waterlogged areas, uneven road surfaces, shaded areas, brightly lit areas, static object areas, and dynamic object areas. When the robot passes through these areas, it adjusts its working methods based on the set area attributes.
[0083] Preferably, determining the first path for the robot's operation within its operating range, based on a predetermined route or location, can include one of the following methods:
[0084] Method 1: The route formed by the outermost grid of the robot's operating range is determined as the first path of the robot's operation.
[0085] In the preferred implementation, the robot moves along the route formed by the outermost grid of the work area in a set direction. When it encounters an obstacle, it turns to move along the obstacle and then returns to the route formed by the outermost grid of the work area. When it turns to move along the boundary again, it continues until it reaches the historical path.
[0086] Method 2: Using the robot's current position as the center and the robot's minimum turning radius as the radius, form a route and use this route as the first path for the robot's operation.
[0087] In the preferred implementation, the first path is a circle formed with the robot's current position as the center and its minimum turning radius as the radius. The robot can initially move forward in the current direction, and upon reaching the edge of the circle, adjust its direction to be tangent to the circle, and then continue moving forward. If the robot encounters an obstacle during its journey, it will switch to moving along the boundary of the obstacle until it reaches the previous path.
[0088] Method 3: Using the robot's current position as the starting point and the robot's minimum turning radius as the radius, a route is formed, and this route is used as the first path for the robot's operation.
[0089] In the preferred implementation process, the robot's current position is taken as the starting point, and the circle formed by the robot's minimum turning radius is taken as the first path. When the robot encounters an obstacle during its movement, it switches to moving along the boundary of the obstacle.
[0090] Method 4: Starting from the boundary point of the nearest obstacle to the robot, the route taken along the boundary of the obstacle is the first path for the robot's operation.
[0091] In the preferred implementation process, the robot starts from the boundary point of the nearest obstacle and begins to move along the obstacle. First, it finds the obstacle closest to the robot, then navigates to the boundary of the obstacle, and moves along the boundary of the obstacle.
[0092] Method 5: Determine the boundary of the obstacle or area that the robot will reach along the current direction, and take the route along the boundary of the obstacle or area as the first path for the robot's operation.
[0093] In the preferred implementation process, the robot travels in the current direction until it reaches the boundary of the obstacle or the work area, and then begins to travel along the boundary of the obstacle or the work area.
[0094] Preferably, in step S102 above, adjusting the robot's motion posture by combining the robot's real-time position, real-time angle, predetermined offset angle, and the real-time distance between the robot and the nearest obstacle or the nearest historical path so that the robot travels along a path that maintains a predetermined distance from the nearest historical path or the nearest obstacle can further include the following processing: determining the predetermined offset angle of the robot based on the robot's attribute parameters; determining a reference direction based on the sum of the real-time angle and the predetermined offset angle; determining the real-time distance of the robot to the nearest obstacle or the nearest historical path along the reference direction, using the robot's real-time position as a reference point; and adjusting the robot's motion posture by combining the robot's real-time pose information, the reference direction, and the real-time distance so that the robot travels along a path that maintains a predetermined distance from the nearest historical path or the nearest obstacle.
[0095] In the preferred implementation, the robot's current real-time position is (x, y), and its current real-time angle is yaw. An offset angle dlt that meets the requirements is determined (this value can be determined based on the robot's attribute information (e.g., robot shape, structure, etc.)). Using the robot's current real-time position (x, y) as the reference point and yaw + dlt as the reference direction dir, the boundary of the nearest covered area or obstacle to the robot's current position is found. The nearest point on this boundary is determined, and the distance L from the robot's current real-time position to this point is calculated. Combined with the robot's current real-time pose (position and orientation information), the reference direction dir, and the distance L, the robot's motion posture is adjusted so that the robot maintains a path with a predetermined distance from the nearest obstacle. The robot moves clockwise or counterclockwise along a path with a predetermined distance from the nearest historical path or obstacle. While the robot is moving, coverage information needs to be detected in real-time, and the covered area is recorded on the CoverMap until all adjacent areas are covered.
[0096] Preferably, in step S102 above, the re-search starting point may further include: searching for the outermost layer of the covered area or obstacle closest to the robot's current position, and determining the location point on the outermost layer that is closest to the robot's current position; calculating the length of the outermost layer of the uncovered area connected to the location point, and the area of the uncovered area; when the length of the outermost layer of the uncovered area is greater than or equal to a predetermined first threshold, and / or the area of the uncovered area is greater than or equal to a predetermined second threshold, then the location point is determined as the starting point.
[0097] In the preferred implementation process, coverage information is monitored in real time during the robot's movement. If all adjacent areas are covered, it indicates that the current area is fully covered, and it is necessary to search for other uncovered areas for operation. Specifically, the boundary of the nearest covered area or obstacle to the robot's current position can be searched, and the nearest point on the searched boundary to the robot's current position can be determined. The boundary length and area of the uncovered area connected to this point are calculated. If the boundary length of the uncovered area is greater than or equal to a predetermined first threshold, and / or the area of the uncovered area is greater than or equal to a predetermined second threshold, then the point is determined as the starting point. That is, when the boundary length of the uncovered area is greater than or equal to the predetermined first threshold, the point is determined as the starting point; or, when the area of the uncovered area is greater than or equal to the predetermined second threshold, the point is determined as the starting point; or, when the boundary length of the uncovered area is greater than or equal to the predetermined first threshold, and the area of the uncovered area is greater than or equal to the predetermined second threshold, the point is determined as the starting point.
[0098] If the length of the boundary of an uncovered area is less than a predetermined first threshold and the area of the uncovered area is less than a predetermined second threshold, a new starting point needs to be found. After excluding the uncovered areas and obstacles mentioned above, the search continues to look for the boundary of another covered area or the boundary of another obstacle closest to the robot's current position. The nearest point on the searched boundary to the robot's current position is determined, and the boundary length and area of the uncovered area connected to that point are calculated. If the boundary length of the uncovered area is greater than or equal to the predetermined first threshold, and / or the area of the uncovered area is greater than or equal to the predetermined second threshold, then that point is designated as the starting point. If, after multiple searches, a suitable starting point cannot be found, the robot's operation process ends.
[0099] Preferably, the robot operation process may further include at least one of the following processes:
[0100] During the robot's operation, when the spatial information of the same area changes at different times, the motion control module controls the robot to make an escape decision. If the robot is unable to escape, it will perform an anomaly reporting process.
[0101] During the robot's operation, when spatial information changes at the same point in time in different areas, the robot performs corresponding decision-making based on historical data and current sensor observation data.
[0102] In the optimal implementation process, perception is a prerequisite for robot decision-making and planning; only with perception can a robot respond. The level of robot intelligence depends on its perception capabilities. Sensor detection, IoT data sharing, machine learning, and state prediction are all aspects of a robot's perception capabilities, but not all robot platforms possess these capabilities. When a robot encounters situations beyond its perception capabilities, it struggles to make a reasonable and effective response.
[0103] Changes in spatial information at different times within the same location can disrupt a robot's normal workflow, making it impossible to make reasonable decision-making. For example, a robot enters a room, the door closes, and the robot wants to leave, but it cannot know when the door will reopen. The door's open / closed state may differ at different times; the robot can detect when the door is open or closed, but it cannot know the door's state at the next point in time. If the robot is required to wait for the door to open, new problems arise: Where should the robot wait in the room? Will the robot interfere with the normal operation of other objects (e.g., other robots) while waiting? Will the robot be perceived as an obstacle by other objects (e.g., other robots)? Should the robot change position while waiting? Can the robot detect when the door opens in time? How does the robot know the waiting time? What if the robot's battery runs low during the waiting period? Without a reasonable way to escape the predicament, the robot can issue an alarm and wait for human intervention, thus avoiding making decision-making based solely on time considerations.
[0104] At any given moment, changes in spatial information limit a robot's decision-making and planning capabilities. Due to the limitations of sensor detection range, a robot's perception of its spatial environment is restricted; it can only detect changes in a localized area. For environmental changes beyond its perception range, the robot must rely on historical information to make decisions and plans. However, when executing a decision-making task, a robot can adjust its plans in real time based on current sensory information. For example, if a new obstacle is detected on the planned path, the robot can attempt to avoid it; if it finds that avoidance is impossible, it will replan the path.
[0105] Preferably, the above method further includes: after the robot completes all tasks (for example, the coverage path can no longer be generated, and the missing path can no longer be generated, so it can be considered that all tasks have been completed), the robot's task coverage area is statistically analyzed to obtain the area of the robot's actual task coverage area, and the robot's task coverage rate is calculated based on the area of the actual task coverage area and the area of the robot's predetermined task range.
[0106] Preferably, the above method further includes: at the position where the robot completes all tasks, performing a path planning operation to plan a path for the robot to return to the charging pile position, the initialization object position, or the robot operation start position; the robot returns to the charging pile position, the initialization object position, or the robot operation start position according to the planned path, and sends the currently saved map information, the area information of the actual operation coverage area, and the robot operation association information (e.g., robot operation status information, operation duration information, consumable information, etc.) to local or cloud backup.
[0107] According to an embodiment of the present invention, a robot path planning device is also provided.
[0108] Figure 3 This is a structural block diagram of a robot path dynamic planning device according to an embodiment of the present invention. Figure 3 As shown, the robot path planning device includes: a determination module 30, used to determine the first path of the robot's operation within the robot's operating range according to a predetermined route or predetermined location; a sending module 32, used to send the information of the first path to the robot's motion control module, so that the motion control module controls the robot to track the first path; and a dynamic planning module 34, used to combine the robot's real-time position, real-time angle, predetermined offset angle, and the real-time distance between the robot and the nearest obstacle or the nearest historical path, to adjust the robot's motion posture so that the robot travels along a path that maintains a predetermined distance from the nearest historical path or the nearest obstacle. During the robot's movement, the module detects coverage information in real time. If the adjacent areas are all covered areas, the module searches for a new starting point and controls the robot to navigate to the searched starting point. This process is repeated until the robot cannot find a new starting point.
[0109] use Figure 3The device shown proposes a novel dynamic path planning scheme for area coverage. The determining module 30 first determines the first path for the robot's operation within its working range based on a predetermined route or location. The dynamic planning module 34, combining the robot's real-time position, real-time angle, predetermined offset angle, and the real-time distance between the robot and the nearest obstacle or historical path, adjusts the robot's motion posture so that the robot travels along a path maintaining a predetermined distance from the nearest historical path or obstacle until all detected adjacent areas are covered. Then, a new starting point is searched, and the robot is guided to navigate to the searched starting point. This process is repeated until the robot cannot find a new starting point, at which point the operation ends. The path planning method of this application solves the problems of low robot stability and low work efficiency caused by area coverage planning methods in related technologies, thus improving robot stability and work efficiency. Furthermore, the path planning can be dynamically adjusted based on real-time information, making it suitable for complex scenarios with many dynamic obstacles in the working environment.
[0110] It should be noted that the preferred embodiments of each module and unit in the above-mentioned device can be referred to Figures 1 to 2 The description will not be repeated here.
[0111] According to an embodiment of the present invention, a robot is also provided.
[0112] Figure 4 This is a structural block diagram of a robot according to an embodiment of the present invention. Figure 4 As shown, the robot according to the present invention includes: a memory 40 and a processor 42. The memory 40 is used to store computer execution instructions; the processor 42 is used to execute the computer execution instructions stored in the memory, causing the robot to perform the path dynamic planning method of the robot provided in the above embodiments.
[0113] Processor 42 can be a central processing unit (CPU). Processor 52 can also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, or combinations of the above types of chips.
[0114] The memory 40, as a non-transitory computer-readable storage medium, can be used to store non-transitory software programs, non-transitory computer-executable programs, and modules, such as the program instructions / modules corresponding to the robot relocation method in this embodiment of the invention. The processor executes various functional applications and data processing by running the non-transitory software programs, instructions, and modules stored in the memory.
[0115] The memory 40 may include a program storage area and a data storage area. The program storage area may store the operating system and applications required for at least one function; the data storage area may store data created by the processor, etc. Furthermore, the memory may include high-speed random access memory and non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some embodiments, the memory 40 may optionally include memory remotely located relative to the processor, which can be connected to the processor via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.
[0116] One or more of the above modules are stored in the memory 40, and when executed by the processor 42, they perform the following: Figures 1 to 2 The robot path dynamic planning method in the illustrated embodiment.
[0117] For specific details about the aforementioned robots, please refer to the relevant documentation. Figures 1 to 2 The relevant descriptions and effects in the illustrated embodiments are for understanding purposes only and will not be repeated here.
[0118] In summary, using the embodiments provided by this invention, a novel dynamic planning path scheme for area coverage is proposed. First, based on a predetermined route or location, a first path for the robot's operation is determined within its working range. Combining the robot's real-time position, real-time angle, predetermined offset angle, and the real-time distance between the robot and the nearest obstacle or historical path, the robot's motion posture is adjusted so that it travels along a path maintaining a predetermined distance from the nearest historical path or obstacle until all detected adjacent areas are covered. Then, a new starting point is searched, and the robot is controlled to navigate to the searched starting point. This process is repeated until the robot cannot find a new starting point, at which point the operation ends. The route planned by the scheme provided by this invention has good smoothness and high operational coverage efficiency, solving the problems of low robot stability and low work efficiency caused by related area coverage planning methods, thus improving robot stability and work efficiency. This scheme is not constrained by the robot's turning radius and can be applied to various mobile robot platforms. This scheme can dynamically adjust the robot's path planning based on real-time information, therefore it is suitable for complex scenarios with many dynamic obstacles in the working environment.
[0119] The above-disclosed embodiments are merely a few specific examples of the present invention. However, the present invention is not limited thereto, and any variations that can be conceived by those skilled in the art should fall within the protection scope of the present invention.
Claims
1. A dynamic path planning method for robots, characterized in that, include: Based on a predetermined route or location, a first path for the robot's operation is determined within the robot's operating range. Information about the first path is sent to the robot's motion control module so that the motion control module controls the robot to follow the first path. Combining the robot's real-time position, real-time angle, predetermined offset angle, and the real-time distance between the robot and the nearest obstacle or the nearest historical path, the robot's motion posture is adjusted so that the robot travels along a path that maintains a predetermined distance from the nearest historical path or the nearest obstacle. During the robot's movement, coverage information is detected in real time. If adjacent areas are all covered areas, a new starting point is searched, and the robot is controlled to navigate to the searched starting point. This step is repeated until the robot cannot find a new starting point. Here, the robot's current real-time position is (x, y), and the current real-time angle is yaw. A satisfactory offset angle dlt is determined, using the robot's current real-time position (x, y) as the reference point, and yaw + dl as the offset angle. t represents the reference direction dir. The system finds the boundary of the nearest covered area or obstacle to the robot's current position, determines the nearest point on that boundary, and calculates the distance L from the robot's current real-time position to that point. Combining the robot's current real-time position and direction information, the system adjusts the robot's motion posture with the reference direction dir and distance L to ensure that the robot or the nearest obstacle maintains a predetermined distance along the path. The robot moves clockwise or counterclockwise along the path that maintains a predetermined distance from the nearest historical path or the nearest obstacle. While the robot is moving, the system detects coverage information in real time and records the covered area on the map until all adjacent areas are covered.
2. The method according to claim 1, characterized in that, Before determining the first path of the robot's operation within the robot's operating range according to a predetermined route or location, the method further includes: creating a new coverage area map for storing information about the covered areas; When the motion control module controls the robot to track the first path, or adjusts the robot's motion posture so that the robot travels along a path that maintains a predetermined distance from the most recent historical path or the most recent obstacle, the method further includes: storing the information of the area currently covered by the robot's operation into the coverage area map in real time.
3. The method according to claim 1, characterized in that, Before determining the first path for the robot's operation within its operating range based on a predetermined route or location, the process further includes: A world coordinate system is established based on reference points, and a world map is constructed based on the world coordinate system. The reference points include: the location of the charging pile, the location of the initialization object, and the location where the robot operation starts. Based on the world coordinate system and the world map, a raster map is constructed, wherein the raster map includes: unknown area information, obstacle area information, obstacle expansion area information, and free area information; Determine the robot's operating range.
4. The method according to claim 3, characterized in that, Establishing a world coordinate system based on a reference point and constructing a world map based on the world coordinate system includes at least one of the following: Responding to user commands to move the robot within the target area until the world map is constructed; The robot autonomously moves and maps within the target area until the world map is completed; The robot tracks and maps based on preset specific markers or moving objects until the world map is completed. In response to cloud operations, the robot creates a map as it moves within the target area, until the world map is fully constructed.
5. The method according to claim 3, characterized in that, The robot's operating range includes at least one of the following: In response to the user's operation to move the robot, the area enclosed by the grid corresponding to the robot's movement trajectory is taken as the working area; In response to the user's map settings via the human-computer interaction interface, the area enclosed by the route set by the user is taken as the work area; After the robot autonomously moves within the target area to complete the construction of the grid map, it searches for an empty area connected to the starting point in the grid map and saves the location information of the empty area to a first list. Traverse the first list, expand the positions corresponding to the position information in the first list to the non-idle area in N layers, and determine the grid of the Nth layer as the outermost grid of the robot's working range. Traverse the grid map and store the position information of all the outermost grids in the second list, where N is the boundary depth, and N is determined by the positioning error, mapping error, and robot association information. The robot delineates the work area in the grid map based on predetermined markers or predetermined feature information.
6. The method according to claim 3, characterized in that, After constructing the raster map based on the world coordinate system and the world map, it also includes at least one of the following: In response to the user's action to set a restricted area, a restricted area is set in the grid map to prevent the robot from entering; In response to the user's virtual wall setting operation, a virtual wall is set on the grid map to prevent robots from passing through; In response to the user's core coverage area setting operation, the area that the robot needs to achieve full or multiple coverage of the operation is set in the grid map; In response to the user's action of ignoring the coverage area setting, the area that the robot needs to pass through but does not need to be covered is set in the grid map; In response to the user's safe coverage area setting operation, the area in the grid map where the robot needs to maintain a predetermined safe distance from obstacles when passing through is set; In response to the user's setting operation for a specific area, the specific area is set in the grid map according to the area attribute information.
7. The method according to claim 1, characterized in that, Based on a predetermined route or location, the first path for the robot's operation within its working area includes one of the following: The route formed by the outermost grid of the robot's operating range is determined as the first path of the robot's operation; A route is formed with the robot's current position as the center and the robot's minimum turning radius as the radius, and this route is used as the first path for the robot's operation; Starting from the robot's current position, a route is formed with the robot's minimum turning radius as the radius, and this route is used as the first path for the robot's operation. The first path for the robot's operation is the route taken along the boundary of the nearest obstacle, starting from the boundary of the obstacle. Determine the obstacle or the outermost layer of the work area that the robot will reach when it travels in the current direction, and take the route along the outermost layer of the obstacle or work area as the first path of the robot's operation.
8. The method according to claim 1, characterized in that, The re-search starting point includes: Search for the outermost layer of the covered area or obstacle closest to the robot's current position, and determine the location point on the outermost layer that is closest to the robot's current position; Calculate the length of the outermost layer of the uncovered area connected to the location point, and the area of the uncovered area; When the length of the outermost layer of the uncovered area is greater than or equal to a predetermined first threshold, and / or the area of the uncovered area is greater than or equal to a predetermined second threshold, the location point is determined as the starting point.
9. The method according to any one of claims 1 to 8, characterized in that, It also includes at least one of the following: During the robot's operation, when the spatial information of the same area changes at different times, the motion control module controls the robot to perform an escape decision. If the robot is unable to escape, the robot performs an anomaly reporting. During the robot's operation, when spatial information changes at the same point in time in different areas, the robot performs corresponding decision-making based on historical data and current sensor observation data.
10. The method according to any one of claims 1 to 8, characterized in that, Also includes: After the robot completes all tasks by following all planned paths, the robot's operational coverage area is statistically analyzed to obtain the area of the actual operational coverage area. Based on the area of the actual operational coverage area and the area of the predetermined robot operational range, the robot's operational coverage rate is calculated.
11. The method according to any one of claims 1 to 8, characterized in that, Also includes: At the position where the robot has completed all its tasks, a path planning operation is performed to plan the path for the robot to return to the charging pile position, the initialization object position, or the robot's task start position; The robot returns to the charging pile location, the initialization object location, or the robot operation start location according to the planned path, and sends the currently saved map information, the area information of the actual operation coverage area, and the robot operation association information to the local machine or cloud for backup.
12. A robot path dynamic planning device, characterized in that, include: The determination module is used to determine the first path of the robot's operation within the robot's operating range based on a predetermined route or predetermined location; The sending module is used to send the information of the first path to the robot's motion control module, so that the motion control module controls the robot to track the first path; The dynamic programming module combines the robot's real-time position, real-time angle, predetermined offset angle, and the real-time distance between the robot and the nearest obstacle or the nearest historical path to adjust the robot's motion posture so that the robot travels along a path that maintains a predetermined distance from the nearest historical path or the nearest obstacle. During the robot's movement, coverage information is detected in real time. If adjacent areas are all covered areas, a new starting point is searched, and the robot is guided to navigate to the searched starting point. This step is repeated until the robot cannot find a new starting point. The dynamic programming module is further used to determine a required offset angle dlt based on the robot's current real-time position (x, y) and current real-time angle yaw. Using yaw+dlt as the reference point and dir as the reference direction, the robot finds the boundary of the nearest covered area or obstacle to its current position, determines the nearest point on that boundary, and calculates the distance L from the robot's current real-time position to that point. Combining the robot's current real-time position and direction information, the robot's motion posture is adjusted to maintain a path that is a predetermined distance from the nearest obstacle. The robot moves along the path that is a predetermined distance from the nearest historical path or the nearest obstacle in a clockwise or counterclockwise direction. While the robot is moving, coverage information is detected in real time, and the covered area is recorded on the coverage area map until the current adjacent area is a covered area.
13. A robot comprising: Memory and processor, characterized in that, The memory is used to store computer-executed instructions; The processor is configured to execute computer execution instructions stored in the memory, causing the robot to perform the method as described in any one of claims 1 to 11.