Autonomous operation method for mobile robot
Through a comprehensive navigation strategy that integrates teaching path following, restricted area/virtual wall recognition and full coverage path planning, the problem of path planning and obstacle avoidance in complex environments is solved, efficient and accurate path planning and task execution are achieved, and the robot's autonomous operation efficiency and safety are improved.
Patent Information
- Application Number
- CN202410710404.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-06-03
- Publication Date
- 2025-07-04
- Estimated Expiration
- 2044-06-03
AI Technical Summary
Existing mobile robot path planning technology is difficult to effectively deal with temporary obstacles, restricted areas/virtual walls in complex environments and specific areas that must be covered. The walking along the edge is low and it is impossible to accurately perceive boundaries or dynamically adapt to boundary changes.
A comprehensive navigation strategy of integrating teaching path following, restricted area/virtual wall recognition, full coverage path planning and edge control is adopted. Through a high-performance software and hardware platform, combined with teaching path following and restricted area settings, a sliding window algorithm, a full coverage path planning algorithm and a single-line lidar are used for path adjustment and obstacle avoidance.
It realizes efficient and accurate path planning and obstacle avoidance in complex environments, ensures task completion results, improves the robot's independent operation efficiency and safety, and reduces manual intervention and resource waste.
Smart Images

Figure CN118689218B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of mobile robots, and more particularly, to a method for autonomous operation of a mobile robot. Background Art
[0002] With the increasing maturity and popularity of robot technology, mobile robots are playing an increasingly important role in fields such as manufacturing, warehousing and logistics, public services, and home services. However, in complex and changing environments, how to achieve efficient path planning, safe obstacle avoidance, and precise task execution is the research direction of those skilled in the art.
[0003] Existing mobile robot path planning technologies are often limited to static environments and simple path planning strategies, and it is difficult to cope with uncertain factors in complex environments, such as temporarily appearing obstacles, restricted areas / virtual wall areas that require special handling, and specific areas that must be covered, etc. In addition, when existing mobile robots perform edge-following tasks, the task completion effect is affected because they cannot accurately sense the boundary or dynamically adapt to boundary changes. Summary of the Invention
[0004] The present invention is to solve the technical problems that existing mobile robot path planning and movement are difficult to effectively cope with complex environments such as temporarily appearing obstacles, restricted areas / virtual walls, and specific areas that must be covered, and the low accuracy of edge-following. The present invention provides a method for autonomous operation of a mobile robot that can effectively and safely cope with complex environments such as temporarily appearing obstacles, restricted areas / virtual walls, and specific areas that must be covered.
[0005] The present invention proposes a comprehensive solution that integrates teaching path following, restricted area / virtual wall recognition, full-coverage path planning, and a navigation strategy under edge control to adapt to the diversity and complexity of the environment. This solution makes full use of a high-performance software and hardware platform to design a highly intelligent and automated mobile robot navigation system, aiming to improve the autonomous navigation ability and task execution efficiency of the mobile robot in complex environments, and at the same time ensure its safety during driving in complex environments.
[0006] The present invention provides a method for autonomous operation of a mobile robot, including the following steps:
[0007] Step 1, determine the teaching path;
[0008] Step 2, the controller of the mobile robot calls the pre-stored teaching path and controls the mobile robot to walk along the teaching path;
[0009] Step 3, during the walking process of the mobile robot, obtain the actual position of the robot, compare the actual position with the preset position of the teaching path in real time, and calculate the error signal;
[0010] Step 4, adjust the speed and steering angle of the robot according to the error signal so that the robot accurately follows the taught path;
[0011] Step 5, when the robot encounters an obstacle during the execution of the taught path, implement obstacle avoidance.
[0012] Preferably, after step 1 of the first step determines the taught path, set no-go zones and virtual walls;
[0013] Construct a map, which includes a static layer, an obstacle layer, an inflated layer, and a virtual wall layer. Inflate the static layer and the obstacle layer to obtain the inflated layer. The process of forming the inflated layer is as follows:
[0014] Define the minimum distance D_min required for the safe operation of the robot and the maximum distance threshold D_max; establish a collision index P, P = 255×(1 - (d - D_min) / (D_max - D_min)), where d is the distance between the actual obstacle and the robot. When d = D_min, P is equal to 255. When d = D_max, P is equal to 0. When d < D_min or d > D_max, P is between 0 and 255; calculate the inflation radius R, R = r + k×P, where k is an adjustment coefficient and r is the basic inflation radius; increase the original size of the static layer and the obstacle layer by R;
[0015] Set a new layer, and customize the addition of no-go zone or virtual wall areas in the new layer through service communication;
[0016] In step 2 of the aforementioned first step, when the robot walks along the taught path, it avoids no-go zones or virtual walls, and the sliding window algorithm is adopted. Set the size and step length of the window. At each time point, extract the path segment and no-go zone information within the window or extract the path segment and virtual wall within the window, and calculate the optimal path from the current position to the end of the window within the window through the path planning algorithm.
[0017] Preferably, in step 1 of the first step, under the control of the user, operate the mobile robot to traverse the expected path; the mobile robot collects a series of continuous path point data sets through sensors during the teaching process, and generates a taught path according to the series of continuous path point data sets; perform denoising on the taught path using digital filtering, and then perform smoothing processing; the smoothing process interpolates the path points through a cubic Bezier curve to generate a smooth continuous path. A cubic Bezier curve requires 4 control points, namely P0, P1, P2, P3. The equation of the cubic Bezier curve is defined as follows:
[0018] B(t) = (1 - t) 3 P0 + 3t(1 - t) 2 P1 + 3t2 (1 - t)P2 + t 3 P3, 0 ≤ t ≤ 1
[0019] Preferably, a teaching path is generated by a full - coverage path planning algorithm according to a series of continuous path point data sets. The specific process is as follows:
[0020] First, construct a map, which includes a static layer, an obstacle layer, and an inflation layer. The map has a passable area and obstacles. Next, the entire area covered by the map is divided into several grids by a rasterization method to form a grid map, and each grid is marked as passable, an obstacle, or unknown;
[0021] Second, determine the starting point. Use the Canny edge detection algorithm to identify the edges and corners of the grid map, and screen out the safe edges and corners with enough space to allow the robot to navigate from the identified edges and corners. The specific process is to convert the grid map into an 8 - bit single - channel image, use the Canny edge detection algorithm to identify the edges of the grid map, convert the grid map into a 32 - bit floating - point type image, and then use the Harris corner detection algorithm to identify the corners. After detecting the edges and corners of the grid map, screen out the safe edges and corners with enough space to allow the robot to navigate;
[0022] Then, generate a path through the full - coverage path planning algorithm to cover the passable area. For the case where the grid map belongs to a regular area, the path is zigzag; for the case where the grid map belongs to an irregular area, the path is a figure - of - eight.
[0023] Preferably, in step 5, when the robot encounters an obstacle, after the robot stays at the original position for a period of time Z, if the obstacle disappears, it continues to walk along the preset path; if the obstacle still does not disappear, it continues to walk along the preset path after avoiding the obstacle through point - to - point navigation.
[0024] Preferably, during the process of the robot walking along the teaching path, when the robot is paused, record the current path point. After the robot is pushed away, update all the path points of the teaching path. If the robot is near the path point recorded when it was paused, continue to execute the path point of the teaching path.
[0025] Preferably, when the robot does not move along the teaching path, make the robot move along the wall. The specific process is as follows:
[0026] Set a single - line lidar on the robot, use the single - line lidar to collect data points. The coverage range of the single - line lidar is 220 degrees, and the data output of the single - line lidar is divided into a front area, a left area, and a right area;
[0027] The single - line lidar detects the forward distance Front, the lateral distance Left, and the lateral distance Right;
[0028] During the process of the robot running along the wall, the maximum angular velocity of the robot is w_max, the target value of the lateral distance is Mb, the difference between the lateral distance and the target value Mb is Dd, and Dd ≤ 1. When Dd > 1, it is normalized to 1. The reference distance is set as K1, and the coefficient coff is defined as coff = Front / K1. When the wall is on the right side of the robot, the angular velocity ω = Dd*w_max, and the forward speed V = Vmax. When the wall is on the left side of the robot, the angular velocity ω = -Dd*w_max, and the forward speed V = Vmax. If the forward distance Front is less than the too-close judgment threshold M, then the angular velocity ω = w_max, and the forward speed V = Vmax*coff*0.1. When Dd > 2*Mb, the forward speed V = Vmax. When the wall is on the right side of the robot, the angular velocity ω = Dd*w_max, and when the wall is on the left side of the robot, ω = -Dd*w_max.
[0029] Preferably, the data of the single-line lidar is divided into the front area, the left area, and the right area, and is marked in the visualization tool: (1) The laser scanning point is i, and the distance corresponding to the scanning point i is L i , L i is the distance from the scanning point i to the origin of the robot coordinate system. The scanning angle of the laser scanning point is α, and the laser base offset is p. Calculate the coordinates of the laser scanning point x = L i *cos(α) + p, y = L i *sin(α); (2) Set the front length as f, define half of the robot width as j, define j plus the margin as g, and define the minimum value of L i as e. e is the known nearest front distance. If x > f and |y| < g and (x - f) < e, then set the front point and make the coordinates of the front point be (x, y); (3) When the robot navigation direction is to the right, Ci is the horizontal distance of the scanning point i relative to the robot center, side = Ci + j, and side is the known nearest side distance as side. If x < f and y < -j and (-y - j) < side, then set the side point and make the coordinates of the side point be (x, y); (4) When the robot navigation direction is to the left, if x < f and y > j and (-y - j) < side, then set the side point and make the coordinates of the side point be (x, y).
[0030] Preferably, when the robot is moving straight without moving along the wall, during the process of encountering an obstacle in front, when Front ≥ K1, the robot travels at the maximum speed Vmax; when Front < K1, the forward speed V of the robot = Vmax*coff; when the forward distance Front is less than the too-close judgment threshold M or Dd > 2×Mb, the forward speed V of the robot is Vmax*coff*0.1.
[0031] The beneficial effects of the present invention are as follows: During the path planning and the movement of the robot, it can effectively and safely cope with complex environments such as temporarily emerging obstacles, no-go zones / virtual walls, and specific areas that must be covered. It can perform path planning efficiently and accurately, execute the taught path precisely, and achieve obstacle avoidance safely. It can walk along the edge accurately in terms of time, precisely sense the boundary or dynamically adapt to boundary changes to ensure the task completion effect. It improves the operation efficiency of the robot and realizes the autonomous operation of the mobile robot.
[0032] The present invention proposes an integrated solution that combines taught path following, no-go zone / virtual wall recognition, full-coverage path planning, and a navigation strategy under edge control to adapt to the diversity and complexity of the environment. By combining taught path following and no-go zone settings, it provides a high degree of adaptability to complex environments. The robot can learn and replicate the path set by the operator through teaching, and at the same time can identify and avoid the preset no-go zones. This enables the robot to operate effectively in an environment full of obstacles, avoiding damage or entering sensitive areas, thereby improving its practicality and safety in various industrial and commercial environments. The full-coverage path planning enables the robot to automatically cover every reachable point in the designated area without manual intervention, thus significantly improving the operation efficiency. This is particularly useful in occasions that require frequent or regular cleaning, inspection, or material handling, such as warehouses, factories, or large public areas. The full-coverage path planning ensures the thoroughness of the operation, reducing repetitive work and omissions. The edge control function allows the robot to move precisely along the edge of the area, which is crucial for tasks such as cleaning the edge area, trimming the lawn boundary, or handling crop boundaries in agricultural applications. This function ensures the high precision and consistency of the robot when performing boundary-related tasks, reducing the need for manual adjustment and intervention.
[0033] The path planning and control system provided by the present invention has a high degree of flexibility and customizability and can be adjusted according to specific application requirements. Users can directly set the working path of the robot through the teaching method, or preset no-go zones and boundaries, making the system applicable to various different operating environments and task requirements. This is particularly important for rapidly changing industrial production environments or the service industry.
[0034] By reducing the dependence on manual operations and improving the operation efficiency, the present invention can significantly reduce the long-term operating costs. The efficient and precise automatic operation of the robot reduces resource waste and potential error costs, while improving the utilization rate of assets.
[0035] The further features and aspects of the present invention will be clearly recorded in the following description of the specific embodiments with reference to the accompanying drawings. Description of the Drawings
[0036] Figure 1It is the flowchart of the autonomous operation method of the mobile robot of the present invention;
[0037] Figure 2 It is the flowchart of the teaching path following method provided by the present invention;
[0038] Figure 3 It is the teaching path diagram generated under the control of the user;
[0039] Figure 4 It is to set the robot to start the path following mode and read the pre-stored teaching path diagram;
[0040] Figure 5 It is the decision diagram of the robot when encountering obstacles during the teaching process;
[0041] Figure 6 It is the flowchart of the restricted area planning method for the mobile robot;
[0042] Figure 7 It is the generation process of the restricted area and the bypass diagram of the mobile robot;
[0043] Figure 8 It is the flowchart of the full coverage path planning strategy for the robot;
[0044] Figure 9 It is the zigzag full coverage path diagram generated by the robot in the specified area;
[0045] Figure 10 It is the spiral full coverage path diagram generated by the robot in the specified area;
[0046] Figure 11 It is the spiral full coverage path diagram generated by dividing the specified area into completely separated non-connected areas by the virtual wall;
[0047] Figure 12 It is the flowchart of the edge control / 1D navigation of the mobile robot
[0048] Figure 13 It is the schematic diagram of the sensor sensing area of the mobile robot;
[0049] Figure 14 The distance corresponding to the laser radar scanning point i on the robot is L i , the schematic diagrams of Ci and side;
[0050] Figure 15 It is the flowchart of the robot moving forward to avoid colliding with the obstacle in front;
[0051] Figure 16 It is the flowchart of the turning process when the robot runs along the edge;
[0052] Figure 17 It is the flowchart of the dilation of the static layer and the obstacle layer of the map;
[0053] Figure 18 It is a flowchart in which the data of the lidar is divided into three sensing regions and marked in a visualization tool by auxiliary lines;
[0054] Figure 19 It is a flowchart for identifying the edges and corner points of a grid map and selecting appropriate edges or corner points as starting points.
[0055] Explanation of symbols in the figure:
[0056] 1. Robot, 2. Lidar, 2-1. Scanning area. Specific implementation manners
[0057] The following further describes the present invention in detail with reference to the accompanying drawings and specific embodiments.
[0058] The mobile robot involved in the present invention has a lidar and a camera, or other common sensors.
[0059] Generally, the user manipulates the mobile robot to walk along an expected path through a handheld teach pendant (teaching process). During the walking process, a series of continuous path point data sets (each path point data set contains information such as position, attitude, and environment) are obtained through sensors, and then a teaching path is generated according to the series of continuous path point data sets. The teaching path data is stored in the storage module for convenient call by the controller.
[0060] As Figure 1 shown, the autonomous operation method of the mobile robot mainly includes a teaching path following method, a navigation strategy based on restricted areas and virtual walls, a full-coverage path planning strategy, and edge following control / 1D navigation.
[0061] Referring to Figure 2 , the teaching path following method includes the following steps:
[0062] Step 1, determine the teaching path.
[0063] Under the control of the user, operate the mobile robot to traverse the expected path; during the teaching process, the mobile robot collects continuous position, attitude, and environment information through sensors, records and converts it into a series of continuous path point data sets in real time, generates a teaching path according to the series of continuous path point data sets; perform necessary optimization processing on the teaching path, including denoising and smoothing to better adapt to the kinematic characteristics of the robot, and store the optimized teaching path in the storage module of the mobile robot for convenient subsequent call.
[0064] The denoising process is carried out using digital filtering to eliminate the noise introduced during path recording due to sensor errors, external interference, or unstable operations, effectively smoothing the path data, reducing mutation points, and thus making the path more conform to the actual motion trajectory.
[0065] The smoothing process interpolates the path points through Bezier curves to generate a smooth continuous path, which helps to adjust the shape of the path to better suit the kinematic characteristics of the robot. Using a cubic Bezier curve, 4 control points are required, namely P0 (starting point), P1, P2, and P3 (ending point). The curve is defined by the following parametric equations:
[0066] B(t) = (1 - t) 3 P0 + 3t(1 - t) 2 P1 + 3t 2 (1 - t)P2 + t 3 P3, 0 ≤ t ≤ 1
[0067] In this parametric equation, t is a parameter from 0 to 1. By changing the value of t, any point on the curve can be calculated. By gradually calculating B(t) during the process of t changing from 0 to 1, a series of smooth and continuous path points from the starting point to the ending point can be obtained. The change of the control parameter t can be adjusted according to the requirements of the path. The smaller the step size, the denser the generated path points and the smoother the curve. In practice, multiple segments of Bezier curves need to be connected to approximate the entire path. To ensure continuity, the first derivatives of adjacent two Bezier curves at the connection points can be made the same to ensure smooth transition of the curve at these points. At the same time, the kinematic characteristics of the robot should also be considered. Using the kinematic model of the robot, it is evaluated whether the optimized path meets the motion constraints of the robot. When necessary, by adjusting the spacing and angle between path points, and introducing intermediate points to ensure that the robot can move safely and effectively along the path. The optimized path data is stored in the robot storage module in an efficient and compact format to minimize the occupancy of storage space and speed up the reading speed. Select the binary format to store in a data format suitable for the robot system, and store path information such as position, attitude, and speed in the storage module of the robot.
[0068] Step 2, the controller of the mobile robot calls the pre-stored teaching path and controls the mobile robot to walk according to the teaching path.
[0069] Regardless of the initial position of the robot, it needs to be able to reach the starting point of the teaching path to be executed. This situation is achieved by point-to-point navigation.
[0070] During the process of the robot walking along the taught path, after it pauses and is pushed away, it can return to the pause point and continue to execute the task. When the robot pauses, the current path point is recorded. After the robot is pushed away, all path points of the taught path are updated. If the robot is near the path point recorded when it pauses (the definition of "near" can be set according to the actual situation, taking the position of the robot when it pauses as the center of a circle, and forming a circular area with a tolerance radius), then it can continue to execute the path points of the taught path.
[0071] Step 3: During the process of moving the robot, obtain the actual position of the robot, compare the actual position with the preset position of the taught path in real time, and calculate the error signal.
[0072] Step 4: Adjust the speed and steering angle of the robot according to the error signal so that the robot accurately follows the taught path.
[0073] Step 5: When the robot encounters an obstacle during the execution of the taught path, implement obstacle avoidance. When the robot encounters an obstacle, control the robot to stay at the original position for a period of time Z (such as 5s). After a period of time Z, if the obstacle disappears, continue to walk along the preset path; if the obstacle still does not disappear, implement obstacle avoidance through point-to-point navigation and then continue to walk along the preset path.
[0074] After completing the determination of the taught path in the above-mentioned step 1, no-go zones and virtual walls can be set.
[0075] Construct a map through the rviz platform of the robot control system ROS. This map includes a static layer, an obstacle layer, an inflated layer, and a virtual wall layer. The static layer is the foundation, providing the length and resolution of the entire map. The obstacle layer is the obstacle updated in real time according to the information collected by the sensor.
[0076] Add different cost information (0 - 255) to the static layer and the obstacle layer to "inflate" their original sizes to obtain the inflated layer. The specific process can be:
[0077] Define the distance threshold. The minimum distance required for the safe operation of the robot is D_min, and the maximum distance threshold is D_max.
[0078] Establish a collision index P, P = 255×(1 - (d - D_min) / (D_max - D_min)), where d is the distance between the actual obstacle and the robot. When d = D_min, P is equal to 255; when d = D_max, P is equal to 0; when d < D_min or d > D_max, P is between 0 and 255. The collision index is a linear mapping function.
[0079] Calculate the expansion radius R, where R = r + k×P. Here, k is the adjustment coefficient, and its value is set according to actual needs; r is the basic expansion radius, and its specific value is determined according to the size of the robot.
[0080] Increase the original sizes of the static layer and the obstacle layer by R.
[0081] Generate no-go area information through service communication. This work is carried out on the basis of navigation. Rewrite the boundary update and cost setting of the map and the function logic for clearing and modifying the no-go area. Rewriting the boundary update and cost setting of the map means setting a new map layer according to the incoming information and setting its cost value to the highest. Specifically, set a new layer, and through service communication, customize the srv to add no-go areas or virtual wall areas in the new layer. The no-go area can be of any shape (the shape of the no-go area is determined according to the number of manually input points), and set the geometric shape corresponding to the no-go area to a specific cost value, with the cost value set to a maximum of 255.
[0082] Create a new map layer and set virtual walls in this new map layer.
[0083] After setting the no-go area or virtual wall, in step 2 mentioned above, the robot will avoid the no-go area or virtual wall during the walking process along the taught path. To achieve good real-time performance and speed, the sliding window algorithm is adopted. Set the size and step length of the window. At each time point, extract the path segment and no-go area or virtual wall information within the window, and calculate the optimal path from the current position to the end of the window within the window through the path planning algorithm, while avoiding the no-go area or virtual wall.
[0084] The robot moves along the planned taught path. Whenever the robot moves to a new position, update the sliding window and calculate the optimal path within the window.
[0085] During the process of determining the taught path in step 1 mentioned above, the taught path can be generated through the complete coverage path planning algorithm (CCPP) based on a series of continuous path point data sets. The specific process is as follows:
[0086] First, construct a map through the rviz platform of the robot control system ROS. This map includes a static layer, an obstacle layer, and an expansion layer. The map has passable areas and obstacles. Next, divide the entire area covered by the map into several grids through the rasterization method to form a grid map. Each grid can be marked as "passable", "obstacle", or "unknown" to indicate whether the robot can pass through. This refinement and marking method helps the path planning algorithm to more accurately identify and avoid obstacles, thus achieving a safe and efficient coverage path.
[0087] Secondly, determine the starting point. Selecting a suitable starting point is crucial for improving path efficiency and reducing completion time. The ideal starting point should be located at the edge or corner of the environment, especially in a rectangular or regular-shaped area, which can maximize the distance of straight-line travel and reduce the need for turning and adjusting directions. Use the Canny edge detection algorithm to identify the edges and corners of the grid map, and filter out safe edges or corners with sufficient space to allow the robot to navigate from the identified edges and corners. Refer to Figure 19 , specifically, the grid map is converted into an 8-bit single-channel image to meet the input requirements of the Canny edge detection. The Canny edge detection algorithm is used to identify the edges of the grid map, and the edge image can be displayed using Matplotlib. To detect the corners of the grid map, first convert the grid map into a 32-bit floating-point type image and then use the Harris corner detection algorithm. By setting the corner neighborhood size, aperture coefficient, and the free parameters in the Harris corner detection equation, the corner detection result image is finally returned. Each pixel value represents the corner response value at that position. The corner position is determined by comparing the corner response value with a threshold (1% of the maximum response value). Points with a response value greater than the threshold are marked as corners. Then, the Harris corner detection is applied to the grid map to obtain the corner image, and the corner display result is also shown using Matplotlib. After detecting the edges and corners of the grid map, filter out safe edges and corners with sufficient space to allow the robot to navigate. First, check whether the area around the given position is safe. Calculate the boundaries around the position to ensure that the boundaries do not exceed the map range, and then traverse the area. If any grid value is 1, indicating an obstacle, return False, indicating that the area is unsafe; otherwise, return True, indicating that the area is safe. Then, filter out the safe edges and corners from the edges and corners and store the safe edges and corner points separately. For the edge detection result, if the position is an edge point, i.e., the value is 255 and the area around this position is safe, add it to the list of safe edge points; for the corner detection result, if the position is a corner and the area around this position is safe, add it to the list of safe corner points. Finally, obtain the coordinate positions of the safe edges and corner points.
[0088] Then, one or more paths are generated through the Complete Coverage Path Planning (CCPP) algorithm to cover the traversable area. Assume that the constructed map is a grid map with a 5-cm grid. There are two types of area situations. The first is a relatively regular area, assumed to be rectangular. Assume that a zigzag coverage works better for the regular area. If the vertical direction of the original grid map is searched with a zigzag, the coverage path of such an angular rectangle must be incomplete. So, if it is a zigzag, it is necessary to find the long side of the map for rotation work, and after rotation, a resolution subdivision is performed. Since what is actually covered is not each small grid of the map, but the body model of the robot, for an unmanned aerial vehicle, it is the width of the spray gun used for irrigation, and for a floor cleaning robot, it is the width of the brush. After dividing the rotated area with a larger resolution, a certain planned path is used to connect the points. When encountering an obstacle, the previously traversed grids are recorded and then the non-covered grids are searched for. Then, the previous path is interrupted and a new search starts from a new starting point and continues the search according to the previous zigzag. If an obstacle is encountered again, a search is performed in a similar way, and thus the zigzag path will become several paths. The breakpoints can be traversed by calling the point-to-point navigation method. The rough search path is directly searched based on a large-scale grid, which is not sufficient for control. Next, some fitting can be done based on this rough path to make it into a smoother curve as the control path. Cubic Bezier curves are used for curve smoothing.
[0089] The second is an irregular area, such as a circular area, and a concentric square coverage is more appropriate. For the irregular area, after geometric simplification and reconstruction of the area to convert it into a regular area, the Complete Coverage Path Planning algorithm is then performed. First, accurate regional boundary information needs to be obtained, and then the shape characteristics are analyzed using geometric techniques to identify key geometric features such as corner points and boundary lines. Based on the geometric center of the area, a rotation strategy is adopted to calculate the main direction of the area, and then the entire area is rotated around the center point so that the main axis is perpendicular to the horizontal line. After that, the rotated area is reconstructed into a regular shape, and a uniform grid network covering the entire area is created, with each grid unit representing a regular sub-area.
[0090] The controller calls the taught path obtained through the Complete Coverage Path Planning algorithm stored in advance and controls the mobile robot to walk along the taught path. The taught path consists of several continuous segments, and each segment corresponds to a movement instruction or a series of instructions for the robot. The robot starts executing the path at the planned starting point and gradually moves according to the path planning. The path planning takes into account the need to cover the entire target area. Therefore, during the execution process, the robot will pass through all the areas one by one according to the planned path, ensuring that every traversable point is covered. When the robot has covered all the blocks, according to the path planning, it will reach the end position, and at this time the entire area is completely covered.
[0091] In the process of generating the teaching path through the Complete Coverage Path Planning algorithm (CCPP) as described above, obstacles outside the coverage area are not considered. Due to the existence of obstacles, the connectivity of the grid map is first analyzed using graph algorithms. The entire area is divided into several connected sub-regions according to whether the obstacles penetrate the entire area. Each sub-region is separated by obstacles, forming independent coverage task areas. Two or more paths are planned for each sub-region. If there are obstacles in the complete coverage area, then path planning is independently performed for each connected sub-region. Secondly, according to the shape and position of each sub-region, a zigzag coverage or a back-and-forth coverage is used to generate the complete coverage path. When the robot is executing the teaching path, the robot executes the paths of each sub-region one by one. Then point-to-point navigation is used to connect these sub-regions to ensure that the robot can traverse all connected sub-regions.
[0092] Embodiment 2
[0093] This embodiment discloses a method for edge control planning of a mobile robot, which allows the robot to move directly along the wall or obstacle without relying on a pre-planned teaching path. It mainly includes the following steps:
[0094] A single-line lidar is set on the robot, and the single-line lidar is used for data point collection. The coverage range of the single-line lidar is 220 degrees, and the lidar can provide high-precision distance measurement, covering most of the area in front of and on the sides of the robot. Refer to Figure 13 . The data output of the lidar is divided into three main sensing areas (i.e., the front area, the left area, and the right area). Refer to Figure 13 , and these areas are marked in the visualization tool rvi z by auxiliary lines. These three areas correspond to the front and both sides of the robot respectively, so as to accurately control the position of the robot relative to the wall or obstacle. The specific process of dividing the lidar data into three sensing areas and marking them in the visualization tool by auxiliary lines can be as follows: First, set the timestamp of the lidar mark to ensure synchronization, specify the mark type as a point set and set the action to add points, that is, add these points to the visualization, and then set the size of the points (the size of the points can be 0.2); secondly, process the lidar data. Refer to Figure 14 and 18 , (1) In the process of processing, each scan point is converted to the Cartesian coordinate system according to its distance and the corresponding angle. The laser scan point is i, and the distance corresponding to the scan point i is L i , L i is the distance from the scan point i to the origin of the robot coordinate system. The scan angle of the laser scan point is α, and the laser base offset is p (p is a constant). Calculate the coordinates of the laser scan point x = L i *cos(α) + p, y = Li *sin(α); (2) Set the front length as f (this length is a manually set length used to determine whether the obstacle scanned by the lidar is in front of the robot), define half of the robot's width as j, define j plus a margin as g, the margin is an additional safety distance, g comprehensively considers the robot body and the safety distance to ensure that the considered laser points will not be too close to the side of the robot, and define the minimum value of L i as e, e is the known nearest front distance. If x > f and |y| < g and (x - f) < e, then set the front point and make the coordinates of this front point be (x, y); (3) When the robot's navigation direction is to the right, Ci is the horizontal distance of the scanning point i relative to the robot's center, and the known nearest side distance is side, side = Ci + j. If x < f and y < -j and (-y - j) < side, then set the side point and make the coordinates of this side point be (x, y); (4) When the robot's navigation direction is to the left, if x < f and y > j and (-y - j) < side, then set the side point and make the coordinates of this side point be (x, y).
[0095] The single-line lidar detects the front distance and two side distances. The side distance refers to the lateral distance between the robot and the wall. For example, for the right wall surface, it is calculated based on the lidar data on the right side.
[0096] Based on the front distance (Front) and two side distances (Left, Right) sensed by the single-line lidar, the controller calculates the required longitudinal (forward speed) and lateral (steering angle) control amounts, which can be achieved through conventional control algorithms (the P link in PID control). Adjust the angular velocity according to the side distance deviation, and adjust the forward speed according to the front distance deviation to maintain an appropriate distance from the wall. The robot will adjust its motion strategy according to real-time data. For example, when encountering a corner or approaching a wall, the system needs to increase the side distance or change the forward direction to adapt to environmental changes and avoid collisions. When the robot's side distance (Left or Right) is greater than the target value Mb, the system will adjust its orientation to rotate in the opposite direction of the obstacle to reduce the distance. Conversely, if the side distance (Left or Right) is less than the target value Mb, the system will adjust the robot to rotate in the positive direction of the obstacle to increase the distance. The control algorithm adopts an adaptive steering following strategy: when the front distance of the robot is safe, the system allows the robot to move forward at a higher speed; reference Figure 15, set the reference distance as K1, define the coefficient coff, coff = Front / K1. When Front ≥ K1, the robot moves at the maximum speed Vmax; when Front < K1, the forward speed V of the robot slows down, and the forward speed V = Vmax * coff; when the robot detects that the front distance Front is less than the too-close judgment threshold M, it is considered that the robot is too close to the front wall, then the robot is controlled to decelerate to avoid collision, so that the forward speed V of the robot is Vmax * coff * 0.1. The condition for making the forward speed V be Vmax * coff * 0.1 can also be when Dd > 2 × Mb.
[0097] During the process of the robot running along the wall, the maximum angular velocity of the robot is w_max, the target value of the lateral distance is Mb, the difference between the lateral distance (Left or Right) and the target value Mb is Dd, and the difference Dd is used to judge whether the robot deviates from the expected lateral position. The difference Dd ≤ 1, and when Dd > 1, it is normalized to 1. The difference Dd determines whether the robot needs to adjust its direction to the left or right and the degree of adjustment. Refer to Figure 16 , when the robot runs along the wall (when the wall is on the right side of the robot, the angular velocity ω = Dd * w_max, and the forward speed V = Vmax; when the wall is on the left side of the robot, the angular velocity ω = -Dd * w_max, and the forward speed V = Vmax), when encountering a corner, if the front distance Front to the obstacle is less than the too-close judgment threshold M, it is considered that a turn is encountered here, and the robot will start to turn and ignore the increase in the lateral distance to allow the robot to bypass the obstacle, that is, the angular velocity ω = w_max, and the forward speed V = Vmax * coff * 0.1; when the front distance Front suddenly increases, that is, when Dd > 2 * Mb, it is considered that the turn has ended, and at this time the robot moves at the maximum speed Vmax (V = Vmax), when the wall is on the right side of the robot, the angular velocity ω = Dd * w_max, and when the wall is on the left side of the robot, ω = -Dd * w_max.
[0098] It should be noted that it is also possible to judge that a turn is encountered by the continuous decrease of the front distance Front and the constant lateral distance.
[0099] It can be seen that through the above integrated algorithm, the robot can repeat the taught path, automatically optimize the path and adapt to environmental changes. When encountering a temporarily emerging obstacle, the robot will adjust its execution strategy, wait for the obstacle to disappear or automatically adjust the path to avoid the obstacle.
[0100] By providing a high degree of adaptability to complex environments through the setting of restricted areas, the robot can identify and avoid preset restricted areas. This enables the robot to operate effectively in an environment full of obstacles, avoid damage or entering sensitive areas, thus improving its practicality and safety in various industrial and commercial environments.
[0101] Full-coverage path planning enables the robot to automatically cover every reachable point in the specified area without manual intervention, thus significantly improving the operation efficiency. By optimizing the path planning, the robot can automatically adjust the coverage strategy (zigzag coverage or figure-eight coverage) according to the changes in the actual environment. Through multi-sensor fusion and real-time data processing, the robot can dynamically map and update the environment, and identify and adapt to new obstacles or environmental changes in real time. This is particularly useful in scenarios that require frequent or regular cleaning, inspection, or material handling, such as warehouses, factories, or large public areas. Full-coverage path planning ensures the thoroughness of the operation, reducing repetitive work and omissions.
[0102] The edge-following control function allows the robot to move precisely along the edge of the area, which is crucial for tasks such as cleaning the edge area, trimming the lawn boundary, or handling crop boundaries in agricultural applications. More precise environmental perception and boundary detection can be achieved through the fusion of multi-sensor data. This function ensures the high precision and consistency of the robot when performing edge-related tasks, reducing the need for manual adjustment and intervention.
[0103] The high adaptability to the environment is improved through the integration of teaching path following, setting restricted areas / virtual walls, and full-coverage paths. The robot can copy the path set by teaching and complete the full-coverage path planning in the specified area while being able to identify and avoid the preset restricted areas. This enables the robot to operate effectively and with high execution efficiency in an environment full of obstacles, avoiding damage or entering sensitive areas, thus improving its practicality and safety in various environments.
[0104] The path planning and control system is highly flexible and customizable, and can be adjusted according to specific application requirements. Users can directly set the working path of the robot through the teaching method, or preset restricted areas and boundaries, making the system suitable for various different operating environments and task requirements. This patent not only improves the operation efficiency and safety of the robot in a specific environment, but also provides a cost-effective, easy-to-operate, and highly reliable solution through its high degree of customizability and automation functions.
[0105] The above description is only for the preferred embodiments of the present invention and is not intended to limit the present invention. For those skilled in the art, the present invention can have various changes and modifications.
Claims
1. A method for autonomous operation of a mobile robot, characterized in that, Including the following steps: Step 1, determine the teaching path; under the control of the user, operate the mobile robot to traverse the expected path; During the teaching process, the mobile robot collects a series of continuous path point data sets through sensors; a teaching path is generated through a full-coverage path planning algorithm based on a series of continuous path point data sets. The specific process is as follows: First, construct a map, which includes a static layer, an obstacle layer, and a dilation layer. The map has a passable area and obstacles. Next, the entire area covered by the map is divided into several grids through a rasterization method to form a grid map, and each grid is marked as passable, an obstacle, or unknown; Second, determine the starting point. The Canny edge detection algorithm is used to identify the edges and corners of the grid map, and safe edges and corners with enough space to allow the robot to navigate are selected from the identified edges and corners. The specific process is to convert the grid map into an 8-bit single-channel image, use the Canny edge detection algorithm to identify the edges of the grid map, convert the grid map into a 32-bit floating-point type image, and then use the Harris corner detection algorithm to identify the corners. After detecting the edges and corners of the grid map, safe edges and corners with enough space to allow the robot to navigate are selected; Then, a path is generated through a full-coverage path planning algorithm to cover the passable area. For the case where the grid map belongs to a regular area, the path is zigzag; for the case where the grid map belongs to an irregular area, the path is a loop; Denoise the teaching path using digital filtering, and then perform smoothing processing; the smoothing process interpolates the path points through a cubic Bézier curve to generate a smooth continuous path. Four control points are required for the cubic Bézier curve, namely P0, P1, P2, and P3. The equation of the cubic Bézier curve is defined as follows: B(t) = (1 - t) 3 P0 + 3t(1 - t) 2 P1 + 3t 2 (1 - t)P2 + t 3 P3, 0 ≤ t ≤ 1; Set restricted areas and virtual walls, and construct a map, which includes a static layer, an obstacle layer, a dilation layer, and a virtual wall layer. Dilate the static layer and the obstacle layer to obtain the dilation layer. The process of forming the dilation layer is: Define the minimum distance required for the safe operation of the robot as D_min and the maximum distance threshold as D_max; establish a collision index P, P = 255×(1 - (d - D_min) / (D_max - D_min)), where d is the distance between the actual obstacle and the robot. When d = D_min, P is equal to 255. When d = D_max, P is equal to 0. When d < D_min or d > D_max, P is between 0 and 255; calculate the dilation radius R, R = r + k×P, where k is an adjustment coefficient and r is the basic dilation radius; increase the original size of the static layer and the obstacle layer by R; Set a new layer, and customize the addition of restricted areas or virtual wall areas in the new layer through service communication; Step 2, the controller of the mobile robot calls the pre-stored teaching path and controls the mobile robot to walk along the teaching path; during the process of the robot walking along the teaching path, it avoids restricted areas or virtual walls. The sliding window algorithm is adopted. The size and step length of the window are set. At each time point, the path segment and restricted area information within the window or the path segment and virtual wall within the window are extracted, and the optimal path from the current position to the end of the window is calculated within the window through the path planning algorithm. Step 3, during the process of the mobile robot walking, obtain the actual position of the robot, and compare the actual position with the preset position of the teaching path in real time to calculate the error signal. Step 4, adjust the speed and steering angle of the robot according to the error signal to make the robot accurately follow the teaching path. Step 5, when the robot encounters an obstacle during the execution of the teaching path, implement obstacle avoidance. When the robot does not move along the teaching path, make the robot move along the wall. The specific process is as follows: Set a single-line lidar on the robot, and use the single-line lidar to collect data points. The coverage range of the single-line lidar is 220 degrees, and the data output of the single-line lidar is divided into a front area, a left area, and a right area. The single-line lidar detects the forward distance Front, the lateral distance Left, and the lateral distance Right. During the process of the robot running along the wall, the maximum angular velocity of the robot is w_max, the target value of the lateral distance is Mb, the difference between the lateral distance and the target value Mb is Dd, and Dd ≤ 1. When Dd > 1, normalize it to 1. Set the reference distance as K1 and define the coefficient coff, coff = Front / K1. When the wall is on the right side of the robot, the angular velocity ω = Dd*w_max, and the forward speed V = Vmax; when the wall is on the left side of the robot, the angular velocity ω = -Dd*w_max, and the forward speed V = Vmax; if the forward distance Front is less than the too-close judgment threshold M, then the angular velocity ω = w_max, and the forward speed V = Vmax*coff*0.1; when Dd > 2*Mb, the forward speed V = Vmax, when the wall is on the right side of the robot, the angular velocity ω = Dd*w_max, and when the wall is on the left side of the robot, ω = -Dd*w_max. The data of the single-line lidar is divided into the front area, the left area, and the right area, which are marked in the visualization tool: (1) The laser scanning point is i, and the distance corresponding to the scanning point i is L i , L i is the distance from the scanning point i to the origin of the robot coordinate system. The scanning angle of the laser scanning point is α, and the laser base offset is p. Calculate the coordinates of the laser scanning point x = L i *cos(α) + p, y = L i *sin(α); (2) Set the front length as f, define half of the robot width as j, define j plus the margin as g, and define the minimum value of L i as e. e is the known nearest front distance. If x > f and |y| < g and (x - f) < e, then set the front point and make the coordinates of the front point be (x, y); (3) When the robot navigation direction is to the right, Ci is the horizontal distance of the scanning point i relative to the robot center, side = Ci + j, and side is the known nearest side distance as side. If x < f and y < -j and (-y - j) < side, then set the side point and make the coordinates of the side point be (x, y); (4) When the robot navigation direction is to the left, if x < f and y > j and (-y - j) < side, then set the side point and make the coordinates of the side point be (x, y); When the robot goes straight without moving along the wall and encounters an obstacle ahead, when Front ≥ K1, the robot travels at the maximum speed Vmax; when Front < K1, the forward speed V of the robot = Vmax*coff; when the forward distance Front is less than the too-close judgment threshold M or Dd > 2×Mb, make the forward speed V of the robot be Vmax*coff*0.
1.
2. The autonomous operation method of the mobile robot according to claim 1, characterized in that In the said Step 5, when the robot encounters an obstacle, after the robot stays at the original position for a period of time Z, if the obstacle disappears, it continues to walk along the preset path; if the obstacle still does not disappear, it continues to walk along the preset path after implementing obstacle avoidance through point-to-point navigation.
3. The autonomous operation method of the mobile robot according to claim 2, characterized in that, During the process of the robot walking along the taught path, when the robot is paused, the current path point is recorded. After the robot is pushed away, all the path points of the taught path are updated. If the robot is near the path point recorded when it was paused, the path points of the taught path are continued to be executed.
Citation Information
Patent Citations
Accompanying robot path planning method and system based on obstacle virtual expansion
CN108775902A
Trajectory tracking control method and device and storage medium
CN113805610A