littlebot
Published on 2025-04-13 / 0 Visits
0

【源码】基于ROS的轮式步行者路径规划系统

项目简介

本项目是基于ROS(Robot Operating System)的轮式步行者路径规划系统,其核心功能是助力轮式步行者在复杂环境里,找到从起始状态到目标状态的最优路径。项目借助SMPL库来实现机器人的感知与规划,并且结合多启发式搜索策略,达成高效的路径搜索。同时具备可视化功能,方便用户理解与调试。

项目的主要特性和功能

  1. 多启发式搜索策略:结合BFS、基于距离和旋转角度的启发式等多种启发式搜索算法,加速搜索进程。
  2. 路径规划:依据机器人模型描述、环境地图和碰撞检测信息,执行路径规划,返回最优路径。
  3. 可视化功能:利用ROS可视化工具,将规划路径进行可视化展示,方便理解和调试。
  4. 路径保存和记录:可将规划路径保存至文件,便于后续分析与比较。
  5. 支持多种操作模式:能生成地图、起始/目标对,支持使用Python脚本生成轨迹,还可创建数据集、训练和测试CVAE模型,支持全流程测试。

安装使用步骤

安装

  1. 复制仓库:在catkin_ws/src中复制本项目的unified_planner分支,同时复制以下仓库:
  2. 单独复制并编译sbplmkdir build mkdir install cd build cmake -DCMAKE_INSTALL_PREFIX=../install .. make install
  3. 修改配置文件:将smpl/smpl/CmakeLists.txtsmpl/smpl/smpl-config.cmake.in中的~/lolocal改为上述sbpl文件夹的安装路径。
  4. 安装依赖: sudo apt-get install ros-kinetic-trac-ik sudo apt-get install libompl-dev sudo apt-get install libgsl-dev
  5. 编译项目: catkin build walker_planner

使用

可视化(Rviz)

  1. 启动RVIZ。
  2. 打开仓库中的proj.rviz配置文件。
  3. 打开后,可可视化地图、生成目标时的目标状态以及生成的规划路径。

生成轨迹(Generating Traj)

  1. 生成地图并复制到指定目录: roslaunch walker_planner generate_map.launch cp ~/.ros/-multi_room_map.env env/proj_env.env
  2. 生成起始/目标对并复制到指定目录: roslaunch walker_planner generate_start_goals.launch cp ~/.ros/goal_* experiments cp ~/.ros/start_states.txt experiments/
  3. 修改config/walker_right_arm.yamlend_planning_episode变量,设置要生成规划路径的起始/目标对数量。
  4. 确保ROS_HOME变量指向~/.ros,在~/.ros中创建paths目录。
  5. 运行规划器并在RVIZ中验证: roslaunch walker_planner mrmhaplanner.launch

生成轨迹(Python)

  1. 在单独的终端中启动URDF包并保持运行: roslaunch walker_planner planning_context_walker.launch
  2. 进入cvae文件夹。
  3. 运行Python脚本: python generate_map_paths.py --env_path_root $PWD/../env --output_path $PWD/test_data --env_list 2 3 4 5 6 7 8 --max_paths 2000

创建数据集

  1. 进入cvae文件夹。
  2. 为指定环境生成干净的训练数据集: source activate.sh python create_data.py --env 1 --env_path_root ../env
  3. 为所有环境生成干净的训练数据集: source activate.sh python create_data.py --env_path_root ../env
  4. 为所有环境生成干净的测试数据集: source activate.sh python create_data.py --test --env_path_root ../env

训练CVAE

进入cvae文件夹,运行以下命令训练基础CVAE: python run.py --train_dataset_root ../data/train_clean --test_dataset_root ../data/test_clean --num_epochs 250 --dataset_type arm --run_id arm_cvae

测试CVAE

进入cvae文件夹,运行以下命令加载保存的解码器模型并测试: - 手臂模型: python run.py --dataset_type arm --test_only --dataset_root ../data/test_clean --decoder_path experiments/cvae/arm_walls_new_test_more_data/decoder-final.pkl --run_id test_arm --output_path arm_output --env_path_root ../env - 基础模型: python run.py --dataset_type base --test_only --dataset_root ../data/test_clean --decoder_path experiments/cvae/base_walls_new_test_more_data/decoder-final.pkl --run_id test_base --output_path base_output

测试全流程

  • 单集测试: python generate_map_paths.py --env_path_root $PWD/../env --env_list 34 --test_only --input_path $PWD/../data/test/ --arm_decoder_path experiments/cvae/arm_multi_env_tables/decoder-final.pkl --base_decoder_path experiments/cvae/base_multi_env_tables/decoder-final.pkl --episode_id 5
  • 批量测试(使用CVAE): python generate_map_paths.py --env_path_root $PWD/../env --env_list 1 --test_only --input_path $PWD/../data/test --arm_decoder_path experiments/cvae/multi_env_tables/arm_multi_env_tables/decoder-final.pkl --base_decoder_path experiments/cvae/multi_env_tables/base_multi_env_tables/decoder-final.pkl --episode_id all --output_path env_1/test/cvae --cvae_planner
  • 批量测试(不使用CVAE): python generate_map_paths.py --env_path_root $PWD/../env --env_list 1 --test_only --input_path $PWD/../data/test --arm_decoder_path experiments/cvae/multi_env_tables/arm_multi_env_tables/decoder-final.pkl --base_decoder_path experiments/cvae/multi_env_tables/base_multi_env_tables/decoder-final.pkl --episode_id all --output_path env_1/test/cvae
  • 演示: python generate_map_paths.py --env_path_root $PWD/../env --env_list 34 --test_only --input_path $PWD/../data/test --arm_decoder_path experiments/cvae/arm_less_start_points/decoder-final.pkl --base_decoder_path experiments/cvae/multi_env_tables/base_multi_env_tables/decoder-final.pkl --episode_id 79 --cvae_planner

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】