2019年大学生智能车大赛室外光电组+在ROS下搭建仿真模拟环境,编程控制小车完成定位导航仿真

2019年大学生智能车大赛室外光电组+在ROS下搭建仿真模拟环境,编程控制小车完成定位导航仿真

一、前言

操作系统:ubuntu16.04
ROS版本:kinetic
Gazebo版本:7.16.0

二、准备工作

1.创建工作空间

mkdir -p ~/racecar_ws/src

cd ~/racecar_ws/src

catkin_init_workspace

2.下载racecar源代码包,并编译工程

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

cd ..

catkin_make

在这里插入图片描述
创建成功如下:
在这里插入图片描述

三、启动仿真

1.设置环境变量

echo "source ~/racecar_ws/devel/setup.bash" >> ~/.bashrc

source ~/.bashrc

2.启动地图

roslaunch racecar_gazebo racecar_runway.launch

在这里插入图片描述

四、建图

1.启动slam和rviz:

roslaunch racecar_gazebo slam_gmapping.launch

在这里插入图片描述

2.控制车辆(左侧有个控制窗口,图标是问号点开),WASD控制前左后右的运动就可以建图了:

在这里插入图片描述
在这里插入图片描述
完成之后:
在这里插入图片描述
操作小车可能会出现打滑现象,可以多次尝试,跑慢点。

3.保存地图

rosrun map_server map_saver -f ~/racecar_ws/src/racecar_gazebo/map/map_runway

在这里插入图片描述

五、导航

1.启动导航和环境地图:

roslaunch racecar_gazebo racecar_runway_navigation.launch

在这里插入图片描述

2.启动rviz:

roslaunch racecar_gazebo racecar_rviz.launch

在这里插入图片描述

3.利用2D Nav Goal发布目标

在这里插入图片描述

4.启动导航脚本

rosrun racecar_gazebo path_pursuit.py

或者

cd ~/racecar_ws/src/racecar_gazebo/scripts

python path_pursuit.py

开始进行导航
效果图:
在这里插入图片描述
在这里插入图片描述

六、搭建自己的地图进行导航

1.打开新的终端输入命令gazebo,创建新的地图模型

2.点击左上角的Edit选择Building Edit:

在这里插入图片描述

3.点击Create Walls下面的Wall进行绘制地图:

在这里插入图片描述

4.画完后点击左上角的File选择save as:

在这里插入图片描述
保存完成可以看看是否成功

5.重启gazebo,点击左上角的Insert可以看到刚刚建立的模型,点击一下拖到gazebo中:

在这里插入图片描述
这里最好把坐标轴放到我们车的起点,如图画圈处(不改也没关系,可以在启动文件里定义车模的坐标)
在这里插入图片描述
我们可以先把有小车的地图拿出来再放模型:

roslaunch racecar_gazebo racecar.launch 

这样就很简单的将小车放到模型起始位置!

6.插入锥桶,点击Insert选择Construction Cone拖入gazebo

在这里插入图片描述

7.保存世界文件,点击左上角File选择Save World As

在这里插入图片描述

8.创建launch文件,填写赛道配置参数

cd racecar_ws/src/racecar/racecar_gazebo/launch
touch myself.launch
gedit myself.launch

写入下面代码:

<?xml version="1.0"?>
<launch>
  <!-- Launch the racecar -->
  <include file="$(find racecar_gazebo)/launch/racecar.launch">
    <arg name="world_name" value="myself"/>
  </include>
</launch>

在这里插入图片描述

9. 运行跑道模型,进行建图操作

roslaunch racecar_gazebo myself.launch

在这里插入图片描述

10. 启动slam和rviz

roslaunch racecar_gazebo slam_gmapping.launch 

在这里插入图片描述
完成之后:
在这里插入图片描述

11.保存地图

rosrun map_server map_saver -f ~/racecar_ws/src/racecar_gazebo/map/myself

在这里插入图片描述
在这里插入图片描述

七、用自己的地图进行导航

1. 创建myself.launch文件,并按照前面启动文件下入代码

在这里插入图片描述

2. 启动导航和环境地图

roslaunch racecar_gazebo myselfnavigation.launch

在这里插入图片描述

3. 运行RVIZ进行手工导航

roslaunch racecar_gazebo racecar_rviz.launch

在这里插入图片描述

4. 利用2D Nav Goal发布目标

在这里插入图片描述

5. 启动导航脚本

rosrun racecar_gazebo path_pursuit.py

或者

cd ~/racecar_ws/src/racecar_gazebo/scripts

python path_pursuit.py

开始进行导航
效果图:
在这里插入图片描述
在这里插入图片描述

八、问题解决办法

1.报错控制器相关

sudo apt-get install ros-kinetic-gazebo-ros-control
sudo apt-get install ros-kinetic-effort-controllers
sudo apt-get install ros-kinetic-joint-state-controller

2.报错driver_base相关

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

3.报错ackermann_msgs相关

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

4.报错findline.cpp找到opencv头文件

执行:得到locate OpenCVConfig.cmake你的opencv的路径

执行:gedit ~/racecar_ws/src/racecar_gazebo/CMakeLists.txt

修改第7行的路径成你的路径:set(OpenCV_DIR /opt/ros/kinetic/share/OpenCV-3.3.1-dev/)

5.报错无法创建teb_local_planner / TebLocalPlannerROS规划器

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

6.没有laser相关话题,无法建图

/ racecar_ws / src / racecar_description / urdf / racecar.gazebo在这个文件中61行改成false即可,代码已修复,直接下载没有问题的。

  • 8
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值