Ros基于RRT算法的路径仿真
最近,在做毕业设计,有关Ros这方面的。于是,利用空余时间,简单的探索了一下。
环境Ubuntu 16.04 LTS + ROS kinetic
首先为catkin创建一个工作空间
如果已装好了catkin,并且初始化好了变量环境,且创建好了工作空间,则该步骤可以跳过。
若没有,则可以按照下面步骤进行。
创建一个catkin工作空间
1 | $ mkdir -p ~/catkin_ws/src |
进入工作空间,通过catkin_make进行编译
1 | $ cd ~/catkin_ws/ |
工作空间建立好后,文件夹中会看见 src文件夹,然后 将path_planning 放入src中
1 | 打开终端 |
修改path_planning 包的scr中的obstacles.cpp 代码 可以 向地图中添加 障碍物
基于官方的rrt_exploration的探索
起初,使用的是环境Ubuntu 16.04 LTS + ROS lunar 但由于该版本太新 官方没有提供相应的ros-kinetic-kobuki ros-kinetic-kobuki-core ros-kinetic-kobuki-gazebo 包 只好回到环境Ubuntu 16.04 LTS + ROS kinetic。
rrt_exploration教程
首先,在安装好Ros 并创建好工作环境下,安装需要的依赖环境。
1 | sudo apt-get install ros-kinetic-gmapping ros-kinetic-navigation ros-kinetic-kobuki ros-kinetic-kobuki-core ros-kinetic-kobuki-gazebo |
然后,将官方的rrt_exploration包从git中clone到本地的 工作环境目录中的 src,并对其进行编译。
在编译过程中 遇到了“make -j2 -l2” 报错 ,发现双核2G,程序无法编译完成,由于是在虚拟机中运行,将虚拟机中的配置 改为4核4G 才能 编译完成。
1 | cd ~/catkin_ws/src/ |
第1,2行 在每次编译新包后,一定要运行,将新编译的文件添加到ros依赖中,否则roslaunch,rosrun 等命令无法识别新产生的文件。 若,依然无法识别,将工作环境目录下的build中,相应的包删除,重新编译,反复执行第1,2行 。(有的时候,能识别;有时候,不能。具体,为什么,我也不清楚)
1 | cd ~/catkin_ws/ |
运行后,将会自动启动Rviz和Gazebo模拟器。若启动后,发现 一直停在 Gazebo启动 页面 则代表Gazebo真正下载模型,下载完毕即可。
在执行下面命令 启动机器人节点
1 | roslaunch rrt_exploration single.launch |
并在 rviz中 如图操作,让机器人节点,自动搜寻 整个房间。
与此同时,机器人节点,根据Gazebo中的房间 模型, 在Rviz中实时 绘出地图,并根据该 绘出的图形,机器人耿局rrt算法进行 下一步搜索