ROS智能车定位导航仿真

准备工作(安装配置)

下载源码包

先进入ros的工作区域

cd ~/racecar_ws/src

下载:

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

在这里插入图片描述
解决办法:
可以直接进入https://github.com/xmy0916/racecar.git进行下载
在这里插入图片描述
在这里插入图片描述

安装相应插件

1.driver_base

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

在这里插入图片描述
2.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

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

3.ackermann_msgs

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

在这里插入图片描述
4.planner

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

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

编译

cd ~/racecar_ws
catkin_make

![在这里插入图片描述](https://img-blog.csdnimg.cn/2020063015222840.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x4enlzeA==,size_16,color_FFFFFF,t_70出现的问题:
在这里插入图片描述
解决办法:
打开

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

在这里插入图片描述
修改成自己的OpenCV的位置
在这里插入图片描述
这个位置的确定可以采用locate OpenCVConfig.cmake查询,第一个即是
在这里插入图片描述
然后再编译,就成功了!
在这里插入图片描述这里的问题可以详细参考https://github.com/xmy0916/racecar往下拉,就可以看见可能出现的问题解决(BUG汇总)

开始仿真

环境变量添加

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

在这里插入图片描述

运行小车模型

roslaunch racecar_gazebo racecar.launch 

在这里插入图片描述
小车可以通过WASD来进行移动,在想移动的时候要点击这个tk窗口,才能进行移动操作
在这里插入图片描述
可以看到小车的位置,离坐标原点的位置,可以修改这个值,就可以改变小车的起始位置,如下:
(不过在这个地方不需要改变,因为源码包里面已经设计好了

但是自己在搭建模型运行的时候要注意这个问题,可以修改小车的位置也可以修改放置模型的位置,让小车在模型轨道内)
在这里插入图片描述

启动地图

这里采用的是源码包里面已经建立好的地图模型(我们也可以自己来创建地图模型,可以设计自己想要的样子,最后会介绍怎么建立地图模型)

roslaunch racecar_gazebo racecar_runway.launch

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

建图

roslaunch racecar_gazebo slam_gmapping.launch

在这里插入图片描述进行绘图,绘图过程要注意小车的移动,小车不是很稳,小心翻车
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

建图完成
在这里插入图片描述

保存地图

rosrun map_server map_saver -f test_map

在这里插入图片描述
保存在主目录里面(红色框)
在这里插入图片描述
然后将这两个文件复制到map文件下
在这里插入图片描述

导航

由于前面保存的地图名字为test_map,所以这里要修改文件里面的内容
在这里插入图片描述
修改为保存的地图的名字

在这里插入图片描述
然后,启动导航和环境地图:

roslaunch racecar_gazebo racecar_runway_navigation.launch

在这里插入图片描述启动rviz

roslaunch racecar_gazebo racecar_rviz.launch

在这里插入图片描述就打开了保存的地图,可以进行导航了
在这里插入图片描述用2D Nav Goal发布目标:设计小车行车轨迹
在这里插入图片描述
启动导航脚本

rosrun racecar_gazebo path_pursuit.py

在这里插入图片描述
开始自主导航(红线部分就是小车导航走过的路)
在这里插入图片描述在这里插入图片描述在这里插入图片描述

注意

在用2D Nav Goal发布目标的时候,要把导航路线设置好,拐角的地方要注意,不然就会出现下面的情况,就会卡在这里不动
在这里插入图片描述

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

搭建新模型

打开gazebo

gazebo

在这里插入图片描述选择
在这里插入图片描述
设计一个自己想要的模型

在这里插入图片描述

然后保存

在这里插入图片描述

取一个名字,保存

在这里插入图片描述看见已经存在了
在这里插入图片描述
重新打开gazebo
这里有两种方法,一种是根据这个位置,估计小车的起始位置从而来放置模型,让小车在模型内
在这里插入图片描述
在这里插入图片描述

一种是修改参数,如下:也就是小车的起始位置在坐标原点(我这里采用这种方式)
在这里插入图片描述
放置模型就像这样
在这里插入图片描述

插入障碍物(我操作这个图不是很顺畅,不过大概就是这样画)
选择这个锥桶模型
在这里插入图片描述
放入

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

在这里插入图片描述
然后保存在这个路径下面
在这里插入图片描述
然后可以新建一个launch文件,跟上面racecar_runway.launch文件一样,只是修改一下,修改成保存的test_run.world的名字
在这里插入图片描述

导航

然后就可以跟上面一样,进行导航了

roslaunch racecar_gazebo test_run.launch
roslaunch racecar_gazebo slam_gmapping.launch

其余步骤与上述一样
在这里插入图片描述
在gazebo里面我的图不太清楚,这个时候摄像头就起到了很好的作用,可以进行路况的检测,看前面是否有障碍物
在这里插入图片描述
建图完成,然后就是保存
在这里插入图片描述
保存地图

rosrun map_server map_saver -f test_run_map

在这里插入图片描述
然后移入map文件夹下
在这里插入图片描述在这里插入图片描述
修改地图参数,以及修改模型
在这里插入图片描述
在这里插入图片描述就完成了自主导航(红线部分就是小车导航走过的路)

注意的是,轨道模型创建的起始位置最好区别开,像我最后自己设置的模型,是个环道,起始位置没有用墙隔开,就导致在2D Nav Goal规划路线的时候,小车后面半段路程就不好画,就会有点问题存在,所以可以避免这个问题。
在这里插入图片描述

参考文献

1.https://blog.csdn.net/lxzysx/article/details/105346419
2.https://www.guyuehome.com/6463
3.https://github.com/xmy0916/racecar.git

  • 11
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值