# Efficient Path Planning Based on Dynamic Bridging Rapidly Exploring Random Tree
## 5 Simulation and Experimental Results  
### General Framework of ROS  
The system framework of ROS is divided into three main parts: the file system level, the computational graph level, and the open-source community level, with each part representing a hierarchical concept.  
1. File system level: Different components in the ROS program are to be placed in different folders, and each folder also has its corresponding function. Usually we name the workspace catkin_ws, which is a folder containing function packages, compiled packages, and compiled executables. A function package is a combination of a specific file structure and a folder containing running nodes, configuration files, etc. We use the command catkin_make to compile the workspace. A function package mainly contains the files shown on the rightmost side of Figure 7, in which the src is the place where we store the source files, the build folder includes the project cache information, configurations and other intermediate files, and the devel folder is used to save the compiled program.
2. Computational graph level: The ROS creates a network to connect all of the nodes, through which any node can interact with other nodes, obtain information published by other nodes, and send its own data to the network. The basic concepts at this level include nodes, node managers, parameter servers, messages, services, topics, and message logs.
3. Open-source community level: The open-source community level of the ROS shares software and knowledge mainly through independent online communities, including ROS distributions, software repositories, ROS wiki, ROS Answer, blogs, and so on.  
In Figure 8, The core of our navigation architecture is the move_base node, which fully integrates global path planning, local path planning, global cost maps, and local cost map features. These different functions are jointly implemented by subscribing to /tf/odom, /map topics and publishing the /cmd_vel topic for motion control under specific conditions. Figure 8 shows that move_base is the core of robot navigation, providing an interface for the ROS for configuration and the operation of and interaction with navigation. The robot encounters obstacles in the environment and recalculates the path by subscribing to data from LiDAR, map information, and Monte Carlo localization to convert the path into robot velocity information and plan a new path. Figure 8 shows a diagram of the navigation function architecture which can be found on the left side of the tf information through the ROS navigation and localization module. The command amcl releases the robot pose for use with move_base; below it, odom is the robot's odometer information. The upper right corner shows the the map_server which operates through the analysis of the slam built maps released; the mainstream slam algorithms are gmapping, hector, and cartographer. The sensor in the lower right corner plays a role in local path planning. In this framework, the DWA algorithm serves as the tool for local path planning, while the DBR-RRT algorithm is utilized for global path planning.  
Figure 8: Navigation Framework.  
Figure 7: File system-level architecture for ROS.