ROS下搭建仿真模拟环境,编程控制小车,按照给定赛道完成比赛

文章目录

  • 一、下载包以及编译
    • 1、下载源码包
    • 2、编译
    • 3、错误解决
      • (1)、controllers相关
      • (2)、driver_base相关
      • (3)、ackermann_msgs相关
      • (4)、Could not find a package configuration file provided by "OpenCV"
      • (5)、findLine.cpp找不到头文件
  • 二、启动仿真
    • 1、运行小车模型
    • 2、运行赛道
  • 三、自己建立赛道
    • 1、建立与保存地图
    • 2、修改文件
  • 四、通过自己建立的赛道进行gmapping建图
    • 1、gmapping建图
    • 2、保存地图
  • 五、小车进行导航运动
    • 1、通过WASD控制小车运动
    • 2、小车导航运动

一、下载包以及编译

1、下载源码包

我是使用的别人github上开源出来的代码
进入到你的ros工作空间下的src文件下,打开终端,下载源码包

git clone https://github.com/xmy0916/racecar.git

在这里插入图片描述

2、编译

进入到工作空间下

cd catkin_ws/
catkin_make

3、错误解决

这时候编译会遇到许多错误,依次解决吧
主要安装的版本需要与你自己的ubuntu版本相对应,我的ubuntu版本是18,下面装的都是melodic,16的话改成kinetic即可

(1)、controllers相关

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

(2)、driver_base相关

sudo apt-get install ros-melodic-driver-base

(3)、ackermann_msgs相关

sudo apt-get install ros-melodic-ackermann-msgs

(4)、Could not find a package configuration file provided by “OpenCV”

通过执行下面代码得到opencv的路径

locate OpenCVConfig.cmake

应该会得到多条路径,选择结尾为OpenCVConfig.cmake的

执行

gedit ~/catkin_ws/src/racecar-master/racecar_gazebo/CMakeLists.txt

修改第七行为你的opencv路径
在这里插入图片描述

(5)、findLine.cpp找不到头文件

在这里插入图片描述
打开这个cpp文件,修改头文件

#include 
#include 
#include 

替换成

#include 
#include 

二、启动仿真

1、运行小车模型

roslaunch racecar_gazebo racecar.launch 

这时回启动gazebo,在里面可以看到一个小车的模型
在这里插入图片描述

2、运行赛道

运行出来的地图是作者已经做好的,我们后续可以自己创建地图

roslaunch racecar_gazebo racecar_runway.launch

在这里插入图片描述

三、自己建立赛道

1、建立与保存地图

运行

gazebo

在这里插入图片描述
将建立好的地图保存
在这里插入图片描述
关闭gazebo,随后在重新启动一次,选择前面保存好的模型
在这里插入图片描述
注意坐标点落在模型中的位置
在这里插入图片描述
在地图中加入障碍物
在这里插入图片描述
保存地图在这里插入图片描述

2、修改文件

将地图名字改为你保存好的地图名
在这里插入图片描述
再次运行赛道,就可以看到已经是你自己建立的赛道了
在这里插入图片描述

四、通过自己建立的赛道进行gmapping建图

1、gmapping建图

运行

roslaunch racecar_gazebo slam_gmapping.launch
roslaunch racecar_gazebo racecar_runway_navigation.launch

在这里插入图片描述
通过WASD控制小车运动,来建图,不过小车运行比较慢,完整建立花费时间比较长
在这里插入图片描述
在这里插入图片描述

2、保存地图

rosrun map_server map_saver -f test_map

这两个文件会保存在你的主目录下,如/home/xx/下,需要将这两个文件文件复制到map文件下
在这里插入图片描述

五、小车进行导航运动

1、通过WASD控制小车运动

修改文件
在这里插入图片描述
启动导航和环境地图,启动rviz

roslaunch racecar_gazebo racecar_rviz.launch
roslaunch racecar_gazebo racecar_runway_navigation.launch

在这里插入图片描述
在这里插入图片描述
控制小车运行过后
在这里插入图片描述

2、小车导航运动

安装

sudo apt-get install ros-melodic-teb-local-planner

启动导航和环境地图,启动rviz

roslaunch racecar_gazebo racecar_rviz.launch
roslaunch racecar_gazebo racecar_runway_navigation.launch

在启动py文件

rosrun racecar_gazebo path_pursuit.py

接着在rviz中选择2D Nav Goal给小车发布运动位置小车即可运动(但是运动速度堪忧!!慢的不行。再想想怎么提速吧!!)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

到达目的后终端会显示信息
在这里插入图片描述
参考链接

个人博客链接

你可能感兴趣的:(ROS下搭建仿真模拟环境,编程控制小车,按照给定赛道完成比赛)