开源项目 sampling-based-planners
使用教程
1. 项目的目录结构及介绍
sampling-based-planners/
├── docs/
│ ├── README.md
│ └── CONTRIBUTING.md
├── src/
│ ├── planners/
│ │ ├── prm.py
│ │ ├── rrt.py
│ │ └── utils.py
│ └── main.py
├── config/
│ ├── default_config.yaml
│ └── custom_config.yaml
├── tests/
│ ├── test_prm.py
│ └── test_rrt.py
├── .gitignore
├── LICENSE
└── requirements.txt
docs/
: 包含项目的文档文件,如README.md
和CONTRIBUTING.md
。src/
: 项目的源代码目录,包含各种规划算法的实现。planners/
: 具体的规划算法实现,如prm.py
和rrt.py
。main.py
: 项目的启动文件。
config/
: 配置文件目录,包含默认配置和自定义配置。tests/
: 测试文件目录,包含各种规划算法的测试脚本。.gitignore
: Git 忽略文件。LICENSE
: 项目许可证。requirements.txt
: 项目依赖文件。
2. 项目的启动文件介绍
src/main.py
是项目的启动文件,负责初始化配置、加载规划算法并执行规划任务。以下是 main.py
的主要功能:
import argparse
from config.config_loader import load_config
from src.planners.prm import PRM
from src.planners.rrt import RRT
def main():
parser = argparse.ArgumentParser(description="Sampling-Based Planners")
parser.add_argument("--config", type=str, default="config/default_config.yaml", help="Path to the configuration file")
args = parser.parse_args()
config = load_config(args.config)
if config['planner_type'] == 'PRM':
planner = PRM(config)
elif config['planner_type'] == 'RRT':
planner = RRT(config)
else:
raise ValueError("Unknown planner type")
planner.plan()
if __name__ == "__main__":
main()
- 解析命令行参数,加载配置文件。
- 根据配置文件中的
planner_type
选择相应的规划算法。 - 初始化规划算法并执行规划任务。
3. 项目的配置文件介绍
config/default_config.yaml
是项目的默认配置文件,包含规划算法的基本参数设置。以下是配置文件的一个示例:
planner_type: PRM
environment:
width: 100
height: 100
obstacles:
- x: 20
y: 20
width: 10
height: 10
start:
x: 5
y: 5
goal:
x: 95
y: 95
sampling_rate: 1000
connection_radius: 10
planner_type
: 指定使用的规划算法类型,如PRM
或RRT
。environment
: 定义规划环境的基本参数,如宽度、高度和障碍物位置。start
和goal
: 定义规划任务的起始点和目标点。sampling_rate
: 采样率,控制规划算法中随机采样的数量。connection_radius
: 连接半径,控制规划算法中节点之间的连接距离。
通过修改配置文件,可以灵活调整规划算法的参数,以适应不同的规划任务需求。