An autonomous mapping method based on spiking neural networks
By introducing an autonomous graphing method based on pulsed neural networks into robot navigation, combining RRT growth tree and gmapping algorithm, the problems of traditional navigation low efficiency and insufficient adaptability are solved, and efficient and smooth navigation and path planning are achieved.
Patent Information
- Application Number
- CN202210877751.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-07-25
- Publication Date
- 2025-05-30
- Estimated Expiration
- 2042-07-25
AI Technical Summary
Traditional robot navigation is inefficient, has low resource utilization, and insufficient adaptability in unknown environments, especially when dealing with complex maps and obstacles, there are problems with low path planning efficiency.
Using the autonomous graphing method based on pulsed neural network, combined with RRT growth tree and gmapping algorithm, the SNN model is used to fusion sensor information to achieve high-adaptive autonomous obstacle avoidance and trajectory tracking, and the path is quickly generated through the Dijkstra algorithm and path segmentation technology.
It improves the navigation efficiency of robots in unknown environments and resource utilization of path planning, enhances adaptability and smoothness of movement, and can better handle complex maps and obstacles.
Smart Images

Figure CN115202357B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of robot navigation and mapping, and in particular to an autonomous mapping method based on a spiking neural network. Background Art
[0002] With the development of SLAM and navigation technologies, related applications such as floor cleaning robots, food delivery robots, reception robots, shopping mall guide robots, and driverless technologies have gradually emerged in people's vision. Among them, for a floor cleaning robot, it does not know the map of the room in advance, and efficient robot navigation requires a pre-determined map. For an unknown environment, the robot often needs to explore autonomously and build a map of the environment during movement to better achieve navigation. There are various autonomous exploration schemes, and the method of detecting boundary points to explore unknown areas is the most widely used. The boundary points mentioned here refer to the points on the boundary line between the known area and the unknown area. To extract the boundary, it is often necessary to process the entire map, and as the map expands, the processing will consume more and more computing resources. To solve this problem, a method for exploring boundary points based on Rapidly-exploring Randomized Trees (RRT) has been proposed, which consumes less computing resources while also taking efficiency into account.
[0003] A spiking neural network (SNN) is an emerging brain-inspired alternative architecture of a deep neural network (DNN). It uses spiking neurons as computing units and can mimic the information encoding and processing process of the human brain. Different from DNN that uses specific values for information transmission, SNN transmits information through the firing time of each spike in the spike train, and can provide sparse but powerful computing capabilities. The spiking neural network accumulates the input to the membrane voltage and emits spikes when a specific threshold is reached, enabling time-driven computing. Due to the sparsity of spike events and the event-driven computing form, SNN can provide good energy utilization efficiency and is the preferred neural network for neuromorphic architectures. The energy-saving characteristics of SNN have attracted the attention of many robot researchers. For a mobile robot, less energy consumption means longer battery life and more powerful computing power for other modules. Therefore, a navigation module based on SNN has emerged as the times require.
[0004] In some previous solutions based on RRT to explore boundary points, there are some deficiencies. For example, the RRT growth tree is too dense, with a large number of invalid tree nodes, which affects the efficiency of exploring boundary points; the calculation of information gain is unreasonable, without considering the problem of obstacle occlusion; the boundary point filtering scheme is unreasonable, and some points very close to obstacles are also regarded as boundary points, resulting in ineffective exploration; the path planning uses the A* algorithm, which often needs to traverse the grids of the entire map in the case of many obstacles, with a high time complexity, and does not reasonably utilize the RRT growth tree to plan the path, resulting in low resource utilization. But the most important problem is that path planning often needs to consider the costmap, and different maps need to set different parameters, otherwise it may be impossible to pass through a relatively narrow intersection or collide with obstacles. However, because the map information is unknown, the parameters of the costmap can only be determined according to experience and cannot achieve autonomous obstacle avoidance based on the information of the lidar.
[0005] In short, the traditional solutions have problems such as low resource utilization, low efficiency, weak adaptability, and insufficient movement smoothness. Therefore, the present invention introduces a car controller based on SNN and some improvement strategies to solve the above problems. Summary of the Invention
[0006] In view of the deficiencies of the prior art, the present invention proposes an autonomous mapping method based on spiking neural networks. In response to the above problems, the present invention conducts the following analysis: The nodes of the RRT generation tree are too dense. The present invention considers adding a judgment that if the area is too dense, the newly generated points will not be added to the RRT generation tree as tree nodes; although the car controller based on SNN can achieve navigation from the starting point to the ending point, because this model does not consider the map information, only laser data, the ending position, and the current position, the navigation effect will not be very good. Therefore, the RRT generation tree can be used to plan a path first and take some points on the path as sub-goals, so that the car moves roughly along the planned path towards the ending point.
[0007] Based on the above analysis, the present invention proposes a novel autonomous mapping method for mapping tasks in unknown environments. This method can better integrate sensor and map information to achieve highly adaptive autonomous obstacle avoidance and trajectory tracking. At the same time, it can quickly generate a path and guide the car based on SNN to move towards the final target point faster and more smoothly.
[0008] The present invention first provides an autonomous mapping method based on a spiking neural network. The method uses a controller based on an SNN model to control the movement of a trolley. During the movement of the trolley, the gmapping algorithm is used to map the surrounding environment and update it on the original map. After the trolley moves to the current target point, it re-explores to find the boundary points of the known map and selects a suitable boundary point based on the current position of the trolley as the next target point for path planning and movement. The method specifically includes the following steps:
[0009] Step 1: First, define two sets. The first set V stores points, which are nodes on the RRT growth tree and are distributed on the explored area map. The second set E stores edges, which connect the nodes in V. V and E form a graph G. Find a suitable point x on the explored area map new , and determine whether this point is a boundary point. If it is, add this point to the initial boundary point set F init . At the same time, screen the points in the initial boundary point set F init . The screened points are used as candidate boundary points and added to the candidate boundary point set F. If the point x new is not a boundary point, then screen suitable points and add them to the graph G;
[0010] Step 2: Obtain the candidate boundary point set F after screening, and select a most worthy point x to explore from it goal , and use this point as the target. According to the current position x of the trolley robot_pose and the target point x goal , find the two points x robot_pose and x goal in V that are the closest to x V_nearest_robot_pose and x V_nearest_goal respectively; Based on the graph G, x V_nearestrobot_pose and x V_nearest_goal , use the Dijkstra algorithm to obtain a suitable path P, and segment this path to obtain a set P of a series of segmented target points split_path ={x sub_goal_i,i =1, 2,..., n}, where n is the number of segmented target points;
[0011] Step 3: After obtaining P split_path , use the controller based on the SNN model to control the trolley to move towards each segmented target point in P split_path in turn; At the beginning stage of moving towards each segmented target point, rotate the direction of the trolley to the segmented target point, and then call the controller based on the SNN model to control the movement of the trolley; If the final target point x goal changes during the movement, terminate Step 3 and return to Step 2 to re-plan the route and move towards the new x goal ;
[0012] Step 4: Use the gmapping algorithm to locate the car and map the surrounding environment while the car is moving.
[0013] As a preferred solution of the present invention, the step 1 described in finding a point x on the explored area map new , specifically: randomly select a point x on the explored area map rand , and find a point x in graph G nearest , so that x nearest Distance x rand Recently; then at x nearest and x rand Find a point x on the line connecting new , so that x new Distance x rand minimum, while ||x new -x nearest ||≤η, and x new With x nearest There are no obstacles on the line connecting , where η is the growth rate of the RRT growth tree. The larger η is, the faster the tree grows but the rougher the exploration is. On the contrary, the smaller η is, the faster the tree grows but the finer the exploration is.
[0014] As a preferred solution of the present invention, in step 1, the point x is determined new Whether it is a boundary point:
[0015] If point x new Just in the unknown area; or point x new If the point x is in the known area and the distance from the unknown area is less than the set value, then the point x new is the boundary point.
[0016] As a preferred solution of the present invention, the initial boundary point set F ini t, specifically: filter out the initial boundary point set F init The inappropriate points in the filter are filtered as follows:
[0017] 1) If the initial boundary points in a certain area are too dense, cluster these points and select their centroids as new points;
[0018] 2) During the movement of the car, after the explored area map is updated, if an initial boundary point is too close to an obstacle or is on an obstacle, remove the point;
[0019] 3) During the movement of the car, after the map of the explored area is updated, if there are too many known areas around a certain initial boundary point, the point is determined to be not worth exploring and is removed.
[0020] As a preferred embodiment of the present invention, the step of screening suitable points to be added to graph G in step 1 is specifically as follows: For points that have not been added to the initial boundary point set F init if the point is in the known area and the distances from the obstacle and the unknown area are both greater than a threshold σ, then add the point to graph G.
[0021] As a preferred embodiment of the present invention, the step of selecting a most promising point x goal in step 2 includes the following steps:
[0022] Step 5.1: First, define three variable values: navigation cost N, information gain I, and boundary point gain R. The boundary point gain R is obtained from the navigation cost N and the information gain I, and select the boundary point with the largest R value as x goal ;
[0023] Step 5.2: The navigation cost N represents the expected distance from the starting point to the boundary point, and take the straight-line distance L between the starting point and the ending point as the value of the navigation cost N; meanwhile, if there is an obstacle between the starting point and the ending point, it will increase the navigation cost N. For each obstacle, the navigation cost N will be increased by ε times of L;
[0024] Step 5.3: The information gain I represents the area of the cells in the unknown area around the boundary point; for the calculation of the information gain I, first define a radius r, and calculate the number of unknown area cells within the circle centered at this boundary point with radius r as the value of the information gain I;
[0025] Step 5.4: The boundary point gain R represents the value of exploring this boundary point. The larger R is, the higher the value. The calculation formula is as follows:
[0026] R(x fp ) = λh(x fp , x r )I(x fp ) - N(x fp ),
[0027]
[0028] where x fp represents the current boundary point; x r represents the current robot position; λ represents the weight, making the information gain I occupy a greater weight compared to the navigation cost N; h(x fp , x r ) is a hysteresis gain. If the robot is not within the circle defined by the information gain I, that is, ||x r - x fp || > h rad , where h rad is the radius of the circle, then assign 1, otherwise assign hgain , h gain functions to make the vehicle more inclined to explore adjacent boundary points; where h gain must be greater than 1, so that the robot is more inclined to explore the surrounding boundary points; the functions I(x fp ) and N(x fp ) are functions for calculating the navigation cost N and the information gain I respectively.
[0029] As a preferred solution of the present invention, the segmentation of the path described in step 2 is specifically: starting from the starting point x V_nearest_robot_pose traverse the path Path, if the distance between the point p i on the path Path and the previous segmentation target point is greater than a threshold β, then add the point pi to the set G split_path ; if the current then compare with the starting point; P split_path ={x sub_goal_i , i = 1, 2,..., n}.
[0030] As a preferred solution of the present invention, the SNN model in the controller based on the SNN model described in step 3 is a pre-trained model, and the input information of this model is the current pose of the vehicle, the current target point, and radar information, and the output is an action command for the vehicle to move towards the target point and avoid obstacles autonomously.
[0031] Furthermore, the SNN-based controller 3.1 requires three pieces of information: the current position of the vehicle, the current segmentation target point, and radar information, and inputs the linear velocities of the left and right wheels of the vehicle, so as to achieve autonomous obstacle avoidance and navigation towards the current segmentation target point. During the training of the model, we also need a deep neural network to assist in training. The SNN network part is called the spiking action network (SAN), and the deep neural network part is called the deep evaluation network (DCN). The former is responsible for giving instructions for the vehicle to move, and the latter evaluates this behavior and gives penalties and rewards. After training, use SAN as the controller.
[0032] Compared with the prior art, the advantages of the present invention are:
[0033] 1) The SNN controller better integrates sensor information to achieve highly adaptive autonomous obstacle avoidance and trajectory tracking.
[0034] 2) The local path planner quickly generates a local path adapted to the SNN controller based on the path node tree, taking into account both rapidity and smoothness.
[0035] 3) The exploration module quickly expands the path node tree that fuses map information by sampling and screens target points based on information gain. BRIEF DESCRIPTION OF THE DRAWINGS
[0036] Figure 1 is the overall framework diagram of the present invention;
[0037] Figure 2 is the calculation demonstration diagram for exploring the degree of the evaluation boundary point value of the present invention;
[0038] Figure 3 is the schematic diagram of the path calculated by Diikstra and the segmented targets;
[0039] Figure 4 is the structural diagram of two networks, SAN and DCN;
[0040] Figure 5 is the comparison diagram of the exploration efficiency between the present invention and the traditional method within the same time;
[0041] Figure 6 is the comparison diagram between the present invention and the traditional method's RRT spanning tree
[0042] Figure 7 is the comparison diagram between the present invention and the traditional method when passing through narrow intersections; Specific Embodiments
[0043] The present invention will be described in detail below with reference to the accompanying drawings of the specification. The technical features of each embodiment of the present invention can be combined correspondingly without conflict.
[0044] The present invention is an autonomous mapping method based on a spiking neural network, which inputs laser data for positioning and mapping, inputs the built map for boundary point detection, and inputs laser data, the position of the vehicle, and the position of the target point for autonomous obstacle avoidance and navigation. The present invention is implemented based on ROS. As Figure 1 shown, it can be simply divided into four modules. The four modules operate independently and communicate through Topics and Services to transfer data. The goal of the first module is exploration, mainly to find the boundary points of the known map, filter out some of the points according to certain conditions, and select appropriate boundary points as target points based on the current position of the vehicle; the goal of the second module is path planning, mainly to provide a relatively reasonable path for the vehicle and segment the path to obtain segmented target points; the goal of the third module is control, using a model based on SNN to control the vehicle to move towards the target point; the goal of the fourth module is mapping, using the gmapping algorithm to map the surrounding environment during the movement of the vehicle and update it on the original map.
[0045] The main steps of the method of the present invention are as follows:
[0046] Step 1: First, define two sets: The first set V stores points, which are nodes on the RRT growth tree and are distributed on the explored area map; the second set E stores edges that connect the nodes in V; V and E form a graph G; find a suitable point x on the explored area map new , determine whether this point is a boundary point. If it is, add this point to the initial boundary point set F init . Meanwhile, screen the points in the initial boundary point set F init . The screened points are used as candidate boundary points and added to the candidate boundary point set F; if the point x new is not a boundary point, then screen suitable points and add them to the graph G;
[0047] Step 2: Obtain the candidate boundary point set F after screening, and select a most worthy point x to explore from it goal . Take this point as the target; according to the current position x of the vehicle robot_pose and the target point x goal , respectively find the two points x robot_pose and x goal in V that are the closest to x V_nearest_robot_pose and x V_nearest_goal ; based on the graph G, x V_nearest_robot_pose and x V_nearest_goal , use the Dijkstra algorithm to obtain a suitable path P, and segment this path to obtain a set P of a series of segmented target points splitpath ={x sub_goal_i , i = 1, 2,..., n}, where n is the number of segmented target points;
[0048] Step 3: After obtaining P split_path , use the controller based on the SNN model to control the vehicle to move towards each segmented target point in P split_path ; at the beginning stage of moving towards each segmented target point, rotate the direction of the vehicle to the segmented target point, and then call the controller based on the SNN model to control the vehicle to move; if the final target point x goal changes during the movement, terminate Step 3 and return to Step 2 to re-plan the route and move towards the new x goal ;
[0049] Step 4: Use the gmapping algorithm to locate the vehicle and map the surrounding environment during the movement of the vehicle.
[0050] As a preferred solution of the present invention, the finding of the point x on the explored area map described in Step 1 new is specifically: randomly take a point x on the explored area map rand , and find a point x in the graph G nearestsuch that x nearest is the closest to x rand ; then find a point x nearest on the line connecting x rand and x new such that x new is the closest to x rand , and at the same time ||x new - x nearest || ≤ η, and there are no obstacles on the line connecting x new and x nearest . Here, η is the growth rate of the RRT growth tree. The larger η is, the faster the tree grows but the more coarsely the area is explored; conversely, the smaller η is, the slower the tree grows and the more finely the area is explored.
[0051] As a preferred solution of the present invention, when determining whether the point x new is a boundary point in step 1:
[0052] If the point x new is just on the unknown area; or the point x new is on the known area and the distance to the unknown area is less than the set value; then it is determined that the point x new is a boundary point.
[0053] As a preferred solution of the present invention, the screening of the points in the initial boundary point set F init in step 1 is specifically as follows: Filter out the inappropriate points in the initial boundary point set F init , and the filtering method is as follows:
[0054] 1) If the initial boundary points in a certain area are too dense; then cluster these points and select their centroid as the new point;
[0055] 2) During the movement of the trolley, after the explored area map is updated, if an initial boundary point is too close to an obstacle or on the obstacle, remove this point;
[0056] 3) During the movement of the trolley, after the explored area map is updated, if there is too much known area around an initial boundary point, it is determined that this point is not worth exploring and remove this point.
[0057] As a preferred solution of the present invention, the screening of the appropriate points and adding them to the graph G in step 1 is specifically as follows: For the points not added to the initial boundary point set F init , if this point is in the known area and the distances from both the obstacle and the unknown area are greater than a threshold σ, then add this point to the graph G.
[0058] As a preferred solution of the present invention, the selection of a most worthy point x goal to be explored in step 2 includes the following steps:
[0059] Step 5.1: First, define three variable values: navigation cost N, information gain I, and boundary point gain R. The boundary point gain R is obtained from the navigation cost N and the information gain I. Select the boundary point with the largest R value as x goal ;
[0060] Step 5.2: The navigation cost N represents the expected distance from the starting point to the boundary point. Take the straight-line distance L between the starting point and the ending point as the value of the navigation cost N. At the same time, if there are obstacles between the starting point and the ending point, it will increase the navigation cost N. For each obstacle, ε times of L will be added to the navigation cost N;
[0061] Step 5.3: The information gain I represents the area of the cells in the unknown area around the boundary point. For the calculation of the information gain I, first define a radius r, and calculate the number of unknown area cells within the circle with this boundary point as the center and r as the radius as the value of the information gain I;
[0062] Step 5.4: The boundary point gain R represents the exploration value of this boundary point. The larger R is, the higher the value. The calculation formula is as follows:
[0063] R(x fp ) = λh(x fp , x r )I(x fp ) - N(x fp ),
[0064]
[0065] where x fp represents the current boundary point; x r represents the current robot position; λ represents the weight, making the information gain I occupy a greater weight compared to the navigation cost N; h(x fp , x r ) is a hysteresis gain. If the robot is not within the circle defined by the information gain I, that is, ||x r - x fp || > h rad , where h rad is the radius of the circle, then assign 1, otherwise assign h gain . The role of h gain is that the trolley will be more inclined to explore the adjacent boundary points; where h gain must be greater than 1, making the robot more inclined to explore the surrounding boundary points; the functions I(x fp ) and N(x fp ) are the functions for calculating the navigation cost N and the information gain I respectively.
[0066] As a preferred embodiment of the present invention, the path segmentation in step 2 is specifically as follows: Starting from the starting point x v_nearest_robot_pose Traverse the path Path. If the distance between the point p i on the path Path and the previous segmentation target point is greater than a threshold β, then add the point pi to the set G split_path If the current then compare with the starting point; P split_path ={x sub_goal_i , i = 1, 2,..., n}.
[0067] As a preferred embodiment of the present invention, the SNN model in the controller based on the SNN model in step 3 is a pre-trained model. The input information of this model is the current pose of the trolley, the current target point, and the radar information, and the output is the action command to make the trolley move towards the target point and avoid obstacles autonomously.
[0068] In a specific implementation of the present invention, the implementation process of step 1 is introduced.
[0069] As a preferred embodiment of the present invention, the finding of the point x new on the explored area map in step 1 is specifically as follows: Randomly select a point x rand on the explored area map, and find a point x nearest in the graph G such that x nearest is the closest to x rand ; Then find a point x nearest on the line connecting x rand and x new such that x new is the closest to x rand , and at the same time ||x new -x nearest ||≤η, and there are no obstacles on the line connecting x new and x nearest , where η is the growth rate of the RRT growth tree. The larger η is, the faster the tree grows but the more rough the exploration is; conversely, the smaller η is, the slower the tree grows and the more refined the exploration is.
[0070] As a preferred embodiment of the present invention, when determining whether the point x new is a boundary point in step 1:
[0071] If the point x new is just on the unknown area; or the point x new is on the known area and the distance to the unknown area is less than the set value; then determine that the point x new is a boundary point.
[0072] As a preferred embodiment of the present invention, the initial boundary point set F in step 1init Filter the points in init as follows: Filter out the inappropriate points in the initial boundary point set F
[0073] 1) If the initial boundary points in a certain area are too dense; then cluster these points and select their centroid as the new points;
[0074] 2) During the movement of the trolley, after the explored area map is updated, if an initial boundary point is too close to an obstacle or on the obstacle, remove the point;
[0075] 3) During the movement of the trolley, after the explored area map is updated, if there are too many known areas around an initial boundary point, determine that the point is not worth exploring and remove the point.
[0076] As a preferred solution of the present invention, the specific operation of screening suitable points and adding them to graph G in step 1 is as follows: For the points that have not been added to the initial boundary point set F init , if the point is in the known area and the distances from the obstacle and the unknown area are both greater than a threshold σ, then add the point to graph G.
[0077] In a specific implementation of the present invention, the implementation process of step 2 is introduced.
[0078] The algorithm for selecting a most worthy exploration point x described in step 2 goal is described as follows.
[0079] Step 2.1.1: First, the present invention defines three variable values: navigation cost N, information gain I, and boundary point gain R. The navigation cost N and information gain I serve the boundary point gain R. The final judgment basis is the size of the boundary point gain R. The present invention selects the boundary point with the largest R value as x goal .
[0080] Step 2.1.2: The navigation cost N, that is, the distance we expect from the starting point to the boundary point. For simplicity, the present invention directly takes the straight-line distance between the starting point and the end point as the value of the navigation cost N, as Figure 2 shown.
[0081] Step 2.1.3: The information gain I, that is, the area of the cells in the unknown area around the boundary point. For the calculation of the information gain I, it is necessary to first define a radius r, and calculate the number of unknown area cells in the circle with the boundary point as the center and r as the radius as the value of the information gain I. It should be noted that if there is an obstacle in the circle, the area of the unknown area behind the obstacle cannot be calculated (here, "behind the obstacle" means starting from the boundary point and emitting a ray, and the area that the ray cannot reach, that is, the ray is blocked by the obstacle). As Figure 2As shown, where the black area is the obstacle, the gray area is the unknown area, and the arrow-marked part within the circular frame in the figure is the calculated information gain I.
[0082] Step 2.1.4: The boundary point gain R, which is the value of exploring this boundary point. The larger R is, the higher the value. The calculation formula is as follows.
[0083] R(x fp ) = λh(x fp , x r )I(x fp ) - N(x fp ),
[0084]
[0085] where x fp represents the current boundary point; x r represents the current robot position; λ represents the weight, making the information gain I take a greater weight compared to the navigation cost N; h(x fp , x r ) is a hysteresis gain. If the robot is not within the circle defined by the information gain I, i.e., ||x r - x fp || > h rad , where h rad is the radius of the circle, then it is assigned 1, otherwise it is assigned h gain , and the role of h gain is that the vehicle will be more inclined to explore adjacent boundary points; where h gain must be greater than 1, making the robot more inclined to explore the surrounding boundary points; the functions I(x fp ) and N(x fp ) are the functions for calculating the navigation cost N and the information gain I respectively.
[0086] The algorithm for segmenting the path described in Step 2 is as follows. Traverse the path Path from the starting point x V_nearest_robot_pose . If the distance between the point p i on the path Path and the previous segmented target point (if then compare with the starting point) is greater than a threshold β, then add the point p i to the set G split_path .
[0087] P split_path = {x sub_goal_i , i = 1, 2,..., n}. As Figure 3 shown, the route composed of dots is the path planned by the Dijkstra algorithm according to the RRT generated tree, and a series of segmented target points are selected from the dots according to the aforementioned rules.
[0088] In a specific implementation of the present invention, the implementation process of step 3 is introduced.
[0089] The SNN model in the controller based on the SNN model described in step 3 is a pre-trained model. The input information of this model is the current pose of the vehicle, the current target point, and radar information, and the output is an action command to move the vehicle towards the target point and avoid obstacles autonomously. The training of this SNN model uses Deep Deterministic Policy Gradient (DDPG). That is, the controller based on SNN requires three pieces of information: the current position of the vehicle, the current segmented target point, and radar information, and inputs the linear velocities of the left and right wheels of the vehicle, so as to achieve autonomous obstacle avoidance and navigation towards the current segmented target point. In the training model stage, we also need a deep neural network to assist in training. The SNN network part is called the Spiking Actor Network (SAN), and the deep neural network part is called the Deep Critic Network (DCN). The former is responsible for giving instructions for the vehicle to move, and the latter evaluates this behavior and gives penalties and rewards. After training is completed, SAN can be used as the controller. The model structure of the network is as Figure 4 shown, where Spiking Actor Network (SAN) is our SNN controller, and Deep Critic Network is the deep neural network used to train SAN.
[0090] Embodiment
[0091] To further demonstrate the implementation effect of the present invention, the present invention is compared with traditional methods in multiple aspects.
[0092] Experiment 1: Comparison of exploration efficiency
[0093] As Figure 5 shown, (a) is the result of the traditional algorithm for autonomous mapping within 5 minutes; (b) is the result of the present invention for autonomous mapping within 5 minutes. It can be clearly seen that the mapping effect of the present invention is better, and it is far superior to the traditional method in terms of exploration efficiency.
[0094] Experiment 2: Comparison of the density of the RRT growth tree
[0095] As Figure 6 shown, (a) is the result of the RRT growth tree of the traditional algorithm; (b) is the result of the RRT growth tree of the present invention. It can be clearly seen that Figure 6 there are a large number of densely distributed leaf nodes in (a), which is not conducive to the tree expanding towards the ungrown area and affects the exploration efficiency; differently, Figure 6 (b) has a more reasonable sparsity degree, which is also conducive to our use of the Dijkstra algorithm to quickly obtain a relatively optimal path.
[0096] Experiment 3: Comparison of the situation when encountering a narrow intersection
[0097] As Figure 7 shown, (a) shows the situation where the traditional algorithm passes through a narrow intersection; (b) shows the situation where the present invention passes through a narrow intersection. As Figure 7 shown in (a), the position of the triangle is the target point of the vehicle. Due to the existence of the costmap, the vehicle cannot reach the target point through the current position and needs to adjust the parameters in the costmap. However, in practice, because the environment is unknown, it is also impossible to select the parameters in the costmap well; As Figure 7 shown in (b), the vehicle controller based on SNN can achieve autonomous obstacle avoidance according to the incoming laser data, so it can reach the narrow intersection well and pass through without manually adjusting some parameters.
[0098] From the comparative experiment, we can draw the following conclusions:
[0099] 1) The present invention can give a more efficient RRT growth tree and improve the utilization rate of resources.
[0100] 2) The present invention has a higher exploration efficiency and can better integrate sensor information, map information and its own pose information, and realize highly adaptive autonomous mapping on the premise of considering the rapidity and smoothness of the vehicle movement.
Claims
1. An autonomous mapping method based on spiking neural networks, characterized in that, the method uses a controller based on the SNN model to control the movement of the vehicle. During the movement of the vehicle, the gmapping algorithm is used to map the surrounding environment and update it on the original map; after the vehicle moves to the current target point, it re-explores to find the boundary points of the known map and selects appropriate boundary points based on the current vehicle position as the next target point for path planning and movement; the method specifically includes the following steps: Step 1: First, define two sets: The first set V stores points, which are nodes on the RRT growth tree and are distributed on the explored area map; the second set E stores edges that connect the nodes in V; V and E form a graph G; find a suitable point x on the explored area map new , determine whether this point is a boundary point. If it is, add this point to the initial boundary point set F init . At the same time, filter the points in the initial boundary point set F init . The filtered points are used as candidate boundary points and added to the candidate boundary point set F; if the point x new is not a boundary point, filter suitable points and add them to the graph G; Step 2: Obtain the set F of candidate boundary points after screening, and select a point x that is most worthy of exploration from it goal , and take this point as the target; according to the current position x of the trolley robot_pose and the target point x goal , find the two points x robot_pose and x goal that are closest to x V_nearest_robot_pose and x V_nearest_goal in V respectively; based on the graph G, x V_nearest_robot_pose and x V_nearest_goal , use the Dijkstra algorithm to obtain a suitable path P, and segment this path to obtain a set P split_path = {x sub_goal_i , i = 1, 2,..., n}, where n is the number of segmented target points; Step 3: Obtain P split_path After that, use the controller based on the SNN model to control the trolley to move towards each segmented target point in P split_path ; At the beginning of moving towards each segmented target point, rotate the direction of the trolley to the segmented target point, and then call the controller based on the SNN model to control the trolley to move; If the final target point x goal has changed during the movement, terminate Step 3 and return to Step 2 to re-plan the route to move towards the new x goal ; Step 4: Use the gmapping algorithm to locate the vehicle and map the surrounding environment during the movement of the vehicle; Find a suitable point x on the explored area map described in Step 1 new , specifically: randomly select a point x on the explored area map rand , and find a point x in graph G nearest such that x nearest is the closest to x rand ; then find a point x nearest on the line connecting x rand and x new such that the distance from x new to x rand is minimized, and at the same time ||x new - x nearest || ≤ η, and there are no obstacles on the line connecting x new and x nearest , where η is the growth rate of the RRT growth tree. The larger η is, the faster the tree grows but the more rough the exploration area is; conversely, the smaller η is, the slower the tree grows and the more refined the exploration area is When determining whether the point x new is a boundary point in Step 1: If the point x new is exactly on the unknown area; or the point x new is on the known area and the distance to the unknown area is less than the set value; then it is determined that the point x new is a boundary point; The screening of the points in the initial boundary point set F described in step 1 init is specifically as follows: Filter out the inappropriate points in the initial boundary point set F init The filtering method is as follows: 1) If the initial boundary points in a certain area are too dense; then cluster these points and select their centroid as a new point; 2) During the movement of the vehicle, after the explored area map is updated, if an initial boundary point is too close to an obstacle or on an obstacle, remove this point; 3) During the movement of the vehicle, after the explored area map is updated, if there are too many known areas around an initial boundary point, it is determined that this point is not worth exploring and remove this point; The specific operation of screening suitable points to be added to graph G in step 1 is as follows: for the points not added to the initial boundary point set F init if the point is in the known area and the distances from the point to the obstacles and the unknown area are both greater than a threshold σ, then add the point to graph G; Selecting a point x that is most worthy of exploration as described in step 2 goal , including the following steps: Step 2.1: First, define three variable values: navigation cost N, information gain I, and boundary point gain R. The boundary point gain R is obtained based on the navigation cost N and the information gain I. Select the boundary point with the largest R value as x goal ; Step 2.2: The navigation cost N represents the expected distance required to reach the boundary point from the starting point. Take the straight-line distance L between the starting point and the ending point as the value of the navigation cost N; at the same time, if there are obstacles between the starting point and the ending point, it will increase the navigation cost N. For each obstacle, ε times of L will be added to the navigation cost N; Step 2.3: The information gain I represents the area of the cells in the unknown area around the boundary point; for the calculation of the information gain I, first define a radius r, and calculate the number of unknown area cells in the circle with this boundary point as the center and r as the radius as the value of the information gain I; Step 2.4: The boundary point gain R represents the value of exploring this boundary point. The larger R is, the higher the value is. The calculation formula is as follows: R(x fp ) = λh(x fp , x r )I(x fp ) - N(x fp ), where x fp represents the current boundary point; x r represents the current robot position; λ represents the weight such that the information gain I has a greater weight than the navigation cost N; h(x fp , x r ) is a hysteresis gain. If the robot is not inside the circle defined by the information gain I, i.e., ||x r - x fp || > h rad , where h rad is the radius of the circle, then assign 1, otherwise assign h gain . The role of h gain is that the vehicle will be more inclined to explore adjacent boundary points; where h gain must be greater than 1 so that the robot will be more inclined to explore the surrounding boundary points; The functions I(x fp ) and N(x fp ) are functions for calculating the navigation cost N and the information gain I respectively.
2. The autonomous mapping method based on spiking neural networks according to claim 1, characterized in that, The segmentation of the path described in step 2 is specifically as follows: starting from the starting point x V_nearest_robot_pose Traverse the path Path. If the distance between the point p i on the path Path and the previous segmentation target point is greater than a threshold β, then add the point p i to the set G split_path . If currently then compare with the starting point; P split_path ={x sub_goal_i , i = 1, 2,..., n}.
3. The autonomous mapping method based on spiking neural networks according to claim 1, characterized in that, the SNN model in the controller based on the SNN model described in step 3 is a pre-trained model. The input information of this model is the current pose of the vehicle, the current target point, and radar information, and the output is an action command to make the vehicle move towards the target point and avoid obstacles autonomously; the training of this SNN model uses deterministic policy gradient.
Citation Information
Patent Citations
Map exploration method for robot to explore unknown area, chip and robot
CN113050632A
Robot autonomous exploration method based on composite boundary detection
CN113110522A