ROS智能车自主导航仿真(melodic)

ROS智能车自主导航仿真

一、准备工作

新建一个工作空间:
在这里插入图片描述
此时工作空间是空的,但是可以进行编译:
ROS智能车自主导航仿真(melodic)_第1张图片
编译后的工作空间:
ROS智能车自主导航仿真(melodic)_第2张图片

注册:
在这里插入图片描述
下载源码包:

cd ~/car_ws/src
git clone https://github.com/xmy0916/racecar.git

ROS智能车自主导航仿真(melodic)_第3张图片
下载成功:
ROS智能车自主导航仿真(melodic)_第4张图片
下载相应的插件:

sudo apt-get install ros-melodic-driver-base
sudo apt-get install ros-melodic-gazebo-ros-control
sudo apt-get install ros-melodic-effort-controllers
sudo apt-get install ros-melodic-joint-state-controller
sudo apt-get install ros-melodic-ackermann-msgs
sudo apt-get install ros-melodic-global-planner
sudo apt-get install ros-melodic-teb-local-planner

ROS智能车自主导航仿真(melodic)_第5张图片ROS智能车自主导航仿真(melodic)_第6张图片ROS智能车自主导航仿真(melodic)_第7张图片
ROS智能车自主导航仿真(melodic)_第8张图片

ROS智能车自主导航仿真(melodic)_第9张图片
ROS智能车自主导航仿真(melodic)_第10张图片
ROS智能车自主导航仿真(melodic)_第11张图片

二、编译运行

编译:
ROS智能车自主导航仿真(melodic)_第12张图片
出现了一下错误:
ROS智能车自主导航仿真(melodic)_第13张图片
是因为OpenCV的路径问题,要把OpenCV路径换成自己的,打开~/car_ws/src/racecar/racecar_gazebo/CMakeLists.txt,这是代码自带的路径:
ROS智能车自主导航仿真(melodic)_第14张图片
自己的OpenCV路径可以使用locate命令查看,然后修改就可以了:
ROS智能车自主导航仿真(melodic)_第15张图片ROS智能车自主导航仿真(melodic)_第16张图片
再次编译就编译成功:
ROS智能车自主导航仿真(melodic)_第17张图片

编译之后就添加环境变量,用这种方法在打开新的终端窗口就可以不用重新注册工作空间了,如果用上面的创建工作空间的时候那种方法每次打开一个新的终端就需要注册一次很麻烦:
在这里插入图片描述
运行小车模型:

roslaunch racecar_gazebo racecar.launch 

ROS智能车自主导航仿真(melodic)_第18张图片
刚打开的时候可能看不见小车,是因为小车有一个初始位置,偏离了坐标原点,需要用鼠标移动一下Gazebo的视角就可以看见了:
ROS智能车自主导航仿真(melodic)_第19张图片
如果你想可以修改这个值,就可以改变小车的起始位置,如下:
ROS智能车自主导航仿真(melodic)_第20张图片

启动地图运行轨道(源代码包自带的):

roslaunch racecar_gazebo racecar_runway.launch

ROS智能车自主导航仿真(melodic)_第21张图片
如果电脑性能不太好,这里加载需要一段时间,耐心等待:
ROS智能车自主导航仿真(melodic)_第22张图片
加载完成:
ROS智能车自主导航仿真(melodic)_第23张图片

启动Rviz进行建图:

roslaunch racecar_gazebo slam_gmapping.launch

ROS智能车自主导航仿真(melodic)_第24张图片
在左下角窗口还可以看见小车的视角,可以看见障碍物:
ROS智能车自主导航仿真(melodic)_第25张图片

控制小车移动:
ROS智能车自主导航仿真(melodic)_第26张图片ROS智能车自主导航仿真(melodic)_第27张图片
这个过程要有耐心,建图完成:
ROS智能车自主导航仿真(melodic)_第28张图片
保存地图:

rosrun map_server map_saver -f test_map

默认是保存在主目录下(home)的,把它复制到我们工作空间的map文件夹下面(~/car_ws/src/racecar/racecar_gazebo/map)。

自主导航:
修改下面文件的内容,改成自己刚刚保存的地图的路径:
ROS智能车自主导航仿真(melodic)_第29张图片ROS智能车自主导航仿真(melodic)_第30张图片

启动导航和环境地图:

roslaunch racecar_gazebo racecar_runway_navigation.launch

ROS智能车自主导航仿真(melodic)_第31张图片
ROS智能车自主导航仿真(melodic)_第32张图片启动rviz:

roslaunch racecar_gazebo racecar_rviz.launch

ROS智能车自主导航仿真(melodic)_第33张图片
ROS智能车自主导航仿真(melodic)_第34张图片

用2D Nav Goal设计小车运动轨迹:
ROS智能车自主导航仿真(melodic)_第35张图片
启动导航脚本:

rosrun racecar_gazebo path_pursuit.py

在这里插入图片描述
小车开始运动,中间的红色就是小车走过的轨迹:
ROS智能车自主导航仿真(melodic)_第36张图片

三、搭建新模型并进行自主导航

由于我的虚拟机已经不堪重负,很卡,前面的部分都是花了很久才完成的,这一部分就只讲一些关键步骤了。

打开gazebo:

在这里插入图片描述
ROS智能车自主导航仿真(melodic)_第37张图片
ROS智能车自主导航仿真(melodic)_第38张图片
然后就可以设计自己想要的地图模型:
ROS智能车自主导航仿真(melodic)_第39张图片
设计好之后保存:
ROS智能车自主导航仿真(melodic)_第40张图片
ROS智能车自主导航仿真(melodic)_第41张图片
ROS智能车自主导航仿真(melodic)_第42张图片
修改小车起始位置:
ROS智能车自主导航仿真(melodic)_第43张图片把图中坐标改成原点:
ROS智能车自主导航仿真(melodic)_第44张图片
运行小车模型:
ROS智能车自主导航仿真(melodic)_第45张图片ROS智能车自主导航仿真(melodic)_第46张图片
拖入刚刚创建的模型:
ROS智能车自主导航仿真(melodic)_第47张图片ROS智能车自主导航仿真(melodic)_第48张图片

按照自己的喜好加入障碍物:
ROS智能车自主导航仿真(melodic)_第49张图片保存:
ROS智能车自主导航仿真(melodic)_第50张图片
保存到这个目录下:
ROS智能车自主导航仿真(melodic)_第51张图片ROS智能车自主导航仿真(melodic)_第52张图片
新建一个launch文件,红框部分改为自己的模型名字:
在这里插入图片描述ROS智能车自主导航仿真(melodic)_第53张图片
然后运行:
ROS智能车自主导航仿真(melodic)_第54张图片
ROS智能车自主导航仿真(melodic)_第55张图片
然后后面进行建图、自主导航的步骤跟前面一样的,我的电脑太卡了运行不下去了,这里就不继续贴图了。

roslaunch racecar_gazebo slam_gmapping.launch

控制小车跑完整个地图。然后保存地图:

rosrun map_server map_saver -f test_map

后面的自主导航跟着前面的做就可以了。

四、无人车自动避障

下载功能包:

sudo apt-get install ros-melodic-navigation

ROS智能车自主导航仿真(melodic)_第56张图片
下载源代码包:
链接:https://pan.baidu.com/s/1xMoJ8LBSIga6wRP535bt9Q
提取码:5ket

下载好后面解压。
编译:
ROS智能车自主导航仿真(melodic)_第57张图片ROS智能车自主导航仿真(melodic)_第58张图片
注册程序:
在这里插入图片描述

运行,一开始显示权限不够是因为没有把该文件设为可执行程序,把apm_navigation.sh文件设为可执行程序文件就可以了:
ROS智能车自主导航仿真(melodic)_第59张图片
ROS智能车自主导航仿真(melodic)_第60张图片
在Rviz中用2D Nav Goal为小车设定目标,小车就会开始运动了:
ROS智能车自主导航仿真(melodic)_第61张图片再次为小车设定目标:
ROS智能车自主导航仿真(melodic)_第62张图片
在小车运动过程可以在Gazebo里给它添加障碍物:
ROS智能车自主导航仿真(melodic)_第63张图片
然后小车检测到障碍物之后就会自动更改到达目的地的路线:
ROS智能车自主导航仿真(melodic)_第64张图片

最后小车成功越过障碍物:
ROS智能车自主导航仿真(melodic)_第65张图片

你可能感兴趣的:(linux,ubuntu)