* 基于 RRT * 的路径规划与导航

实现功能：替换 Nav2 规划器为RRT-Star自定义插件，实现渐近最优路径规划，支持从 RViz2 设置目标点完成自主导航。RRT* 被用于导航与路径规划，它具有渐近最优性， 即随着采样点数量增加，解会收敛到最优路径，同时能高效探索高维空间。

## 1. 环境要求
- Ubuntu 22.04
- ROS2 Humble
- Gazebo Sim Harmonic
---

### 编译

```bash
cd /workspace
colcon build --symlink-install
source /opt/ros/humble/setup.bash
source install/setup.bash
```

### 注意事项

为了方便，写入 `~/.bashrc`：

```bash
echo 'source /opt/ros/humble/setup.bash' >> ~/.bashrc
echo 'source /workspace/install/setup.bash' >> ~/.bashrc
echo 'export TURTLEBOT3_MODEL=burger' >> ~/.bashrc
echo 'export NAV2_MAP_PATH=/workspace/src/turtlebot3_simulations/turtlebot3_gazebo/map/office_map.yaml' >> ~/.bashrc
source ~/.bashrc
```

## 2. 启动仿真
```bash
./gzsim_run.sh
```

## 3. 启动 AMCL节点（负责 “map_server + amcl”）

```bash
ros2 launch nav2_rrtstar_planner bringup_localization_with_initial_pose.launch.py \
    use_sim_time:=true \
    map:=$NAV2_MAP_PATH \
    params_file:=/workspace/src/TurtleBot-RRT-Star/nav2_params.yaml
```

## 4. 启动 Nav2导航栈（负责 “RRT* 规划器 + controller + bt_navigator）

```bash
ros2 launch nav2_bringup navigation_launch.py \
    use_sim_time:=True \
    params_file:=/workspace/src/TurtleBot-RRT-Star/nav2_params.yaml
```

 ## 5. 打开rviz

```bash
ros2 run rviz2 rviz2 -d /opt/ros/humble/share/nav2_bringup/rviz/nav2_default_view.rviz --ros-args -p use_sim_time:=true
```

点击 RViz2 中Nav2 Goal，在地图上选择目标位置，调整箭头设置机器人到达后的朝向，确认后机器人将通过 RRT * 算法生成最优路径并自主导航RViz2 中将实时显示 RRT * 规划的全局路径。
![图6](assets/picture06.png)


