# wmr_plan **Repository Path**: juangeng/wmr_plan ## Basic Information - **Project Name**: wmr_plan - **Description**: No description available - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2021-01-10 - **Last Updated**: 2023-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # wmr_plan ### 1 介绍 该package在ubuntu + ROS 环境下运行;功能:在特定环境下进行路径搜索+轨迹规划,并计算运动速度作为指令控制机器人运动 工作原理: 1. 全局初始轨迹使用fast marching(路径)+bezier 凸优化(轨迹)算法(全局初始规划); > Gao F , Wu W , Lin Y , et al. Online Safe Trajectory Generation for Quadrotors Using Fast Marching Method and Bernstein Basis Polynomial[C]// 2018:344-351. 2. 检测到当前轨迹将发生碰撞后,使用prm(路径:概率路图)+bespline 非线性优化(轨迹)算法,得到重新规划的局部轨迹(局部重规划); > Zhou B , Gao F, Pan J, et al. Robust Real-time UAV Replanning Using Guided Gradient-based Optimization and Topological Paths[C]// 2020 3. 使用轨迹跟踪算法VSTTM 控制机器人跟踪局部轨迹。 > 张启彬. 基于速度空间的移动机器人同时避障和轨迹跟踪方法[J]// 2018 ### 2 编译准备 在编译该package之前,首先需要安装三方库: 在wmr_plan/third_party文件下有四个三方库:qpOASES、sdf_tools、fast_method、nlopt;其中需要安装的库为qpOASES和nlopt(sdf_tools可在catkin_make中生成ros库,fast_methos则需要在代码中直接链接,都不需要手动安装) qpOASES的安装:在文件夹qpOASES目录下打开终端,输入命令: ``` mkdir build cd build cmake .. make sudo make install ``` 完成安装(nlopt相同) ### 3 编译 在你的工作空间目录下(一般为`~/catkin_ws` ),在终端中输入 ``` catkin_make ``` ### 4 运行 导航程序通过launch文件启动。对应luanch文件在```wmr_plan/wmr_plan_manage/launch```文件夹中: simulation.launch打开仿真程序; navigation.launch打开真实环境的导航程序; rvizUP.launch打开rviz界面。 #### 4.1 仿真程序 ##### 4.1.1 启动仿真程序 在终端中输入指令 ``` roslaunch wmr_plan_manage simulation.launch ``` 即可启动仿真软件gazebo与自动控制程序: 下图为自主导航仿真效果图 ![狭窄通道场景](https://images.gitee.com/uploads/images/2021/0128/112947_7c5cccbc_5041526.gif "simulation_nav_01_1.gif") ![躲避未知障碍物](https://images.gitee.com/uploads/images/2021/0128/113457_02428f00_5041526.gif "simulation_nav_02.gif") ##### 4.1.2 注意 仿真程序依赖turtlebot3_burger的仿真模型和gazebo、rviz仿真软件(路径```wmr_plan/turtlebot_simulation```储存所需仿真模型); turtlebot3仿真模型包的安装可参考:https://blog.csdn.net/u010853356/article/details/79226764 启动仿真模型,只需在终端输入 `roslaunch wmr_plan_manage simulation.launch` 即打开gazebo与rviz仿真界面。在rviz中选定目标点可控制机器人进行运动规划。 如提示gazebo相关的报错,则考虑将`wmr_plan\turtlebot_simulation`文件中的`words/willowgarage.world`文件复制到gazebo自带仿真文件中,并修改`wmr_plan/wmr_plan_manage/launch/simulation.launch`中启动仿真设置部分。 如输入命令后能够打开gazebo与rviz仿真界面,但gazebo界面一片空白,则有可能是模型没顺利导入导致。此时需要在gazebo界面菜单栏单击:`edit->model edit`,并在左侧`insert/Model Database`栏中寻找willow Garage模型。后无需保存,直接退出即可。 Willow Garage模型一般在目录`/home/username/.gazebo/models`中 #### 4.2 现场测试 ##### 4.2.1 运行 由于机器人自主导航依赖定位与环境信息,因此在导航开始前务必保证定位与雷达的正常启动。 ###### 1)硬件准备 先接上12VDC和20VDC电源; 打开机器人底盘开关;打开insprobe(主)、insprobe(从,用于时间同步)、NovAtel接收机。 ###### 2)远程连接上位机 路由器IP:192.168.8.101; WIFI:RobNav; 密码:robnav991314 上位机开机后,在笔记本上打开```Remmina Romote```远程连接软件(ubuntu自带) 新建连接,```协议:RDP; Server:192.168.8.101``` ```User name:nvidia``` ```Password:nvidia``` ```色深:增强16位``` 远程连接上位机 ###### 3)启动insprobe定位模块 1. 首先打开接收机开关,拨动开关后接收机先红灯长亮,过段时间接收到GNSS卫星信号后,绿灯长亮,可进行下一步操作; 2. 在```Data```中打开rtk程序```bnc```(一般不需要更改配置,现已固定端口ttyUSB5为接收机端口),点击窗口下方```start```按钮,观察到文件大小逐渐变大,表明rtk正常启动并写入文件,可进行下一步; `第一次打开程序,可能存在串口被上一次数据堵塞的情况,一般等待能够解决;也可以通过人为手段解决:在上方菜单栏中选择串口调试工具CubeCom,打开ttyUSB5输出之前堵塞的数据` 3. 终端输入```dmesg|grep ttyUSB```查看机器人底盘、insprobe端口 5. 终端输入 ``` roslaunch insrpobe_driver driver_0.launch ``` 开始提供定位数据。 ###### 4)启动雷达模块 1. 必要硬件:insprobe(从,负责时间同步)、16线雷达电源(和上位机一个盒子内)、单线雷达电源(从底盘接出) 2. 雷达启动后(手轻放雷达上能感受到震动),进入`Detection`目录下进行`source`配置; 在终端输入 ``` roslaunch object_avoid avoid.launch ``` 无红色报错,即正常 ###### 5)启动机器人底盘与android平板通讯程序 1. 在终端输入 ``` roslaunch rl_c1_driver driver.launch ``` 可启动(如出现```open output file error !```报错字样,表明为存储文件(存储中间数据)路径出错,请于driver.launch文件中写入正确的文件路径。) 3. 成功启动```rl_c1_driver```后,可于android平板上与上位机连接,并使用平板控制机器人运动。如机器人无反应,很有可能底盘串口错误。 ###### 6)启动机器人自主导航程序 1. 在终端输入 ``` roslaunch wmr_plan_manage navigation.launch ``` 启动自动控制程序,于平板上选择目标点。 (如出现```open output file error !```报错字样,表明为存储文件(存储中间数据)路径出错,请于navigation.launch文件中写入正确的文件路径。)