ROS智能车定位导航仿真+功能包自带的地图实现+自己建立的地图实现 您所在的位置:网站首页 智能导航怎么用 ROS智能车定位导航仿真+功能包自带的地图实现+自己建立的地图实现

ROS智能车定位导航仿真+功能包自带的地图实现+自己建立的地图实现

2024-07-10 20:29| 来源: 网络整理| 查看: 265

ROS智能车定位导航仿真 一、前言二、效果图三、准备工作[1.在Ubuntu上安装ROS Kinetic](https://blog.csdn.net/qq_42585108/article/details/104327661)2.创建ROS工作区间①1创建racecar_ws和src文件夹②初始化工作空间③下载racecar源代码包,并编译工程 四、启动仿真1.设置环境变量2.启动地图 五、建图1.启动slam和rviz2 控制车辆(左侧有个控制窗口),WASD控制前左后右的运动就可以建图了:3.新建终端保存地图 六、自主定位导航1.启动导航和环境地图:2.启动rviz:3.用2D Nav Goal发布目标:4.启动导航脚本 七、用自己所建的地图赛道,来跑小车1.打开gazebo2.点击Edit->Build Editor,进行模型创建3.将创建好的地图模型保存4.运行小车模型,导入刚刚的模型框架,然后保存world文件5.保存world文件到下载功能包中的racecar_gazebo包中的worlds文件夹中6.创建launch文件,填写赛道配置参数7.运行跑道模型,控制小车跑图了8.gmapping建图(上面一步的终端保持开启状态) 八、自主定位导航(自己建的赛道)1.新建终端,创建mycar1.launch文件2.运行跑道3.新建终端,运行RVIZ进行手工导航4.用2D Nav Goal发布目标:5.启动导航脚本 九、总结

一、前言

操作系统:ubuntu16.04

ROS版本:kinetic

Gazebo版本:7.0.0

二、效果图 三、准备工作 1.在Ubuntu上安装ROS Kinetic 2.创建ROS工作区间 ①1创建racecar_ws和src文件夹 mkdir -p ~/racecar_ws/src ②初始化工作空间 cd ~/racecar_ws/src catkin_init_workspace

在这里插入图片描述

③下载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

新建终端

cd racecar_ws/ roslaunch racecar_gazebo slam_gmapping.launch

在这里插入图片描述

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

在这里插入图片描述

原图: 在这里插入图片描述 成果图: 在这里插入图片描述

3.新建终端保存地图

保存地图的路径:/racecar_ws/src/racecar/racecar_gazebo/map

cd ~/racecar_ws/src/racecar/racecar_gazebo/map rosrun map_server map_saver -f map_racecar

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

分析:在控制小车运动时,小车很容易翻车。不过最终能运行完地图。

六、自主定位导航 1.启动导航和环境地图:

新建终端

cd racecar_ws/ roslaunch racecar_gazebo racecar_runway_navigation.launch

在这里插入图片描述

2.启动rviz:

新建终端:

cd racecar_ws/ roslaunch racecar_gazebo racecar_rviz.launch

在这里插入图片描述

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

在这里插入图片描述

4.启动导航脚本

新建终端

cd racecar_ws/ rosrun racecar_gazebo path_pursuit.py

在这里插入图片描述 在这里插入图片描述 上图,对比发现小车确实打导航定位成功。

七、用自己所建的地图赛道,来跑小车 1.打开gazebo gazebo

在这里插入图片描述

2.点击Edit->Build Editor,进行模型创建

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

3.将创建好的地图模型保存

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

4.运行小车模型,导入刚刚的模型框架,然后保存world文件 roslaunch racecar_gazebo racecar.launch

点击insert—>track,即可将跑道模型拖到小车模型中。注意:将小车放到适当的位置。

在这里插入图片描述 为跑道添加障碍物 在这里插入图片描述

5.保存world文件到下载功能包中的racecar_gazebo包中的worlds文件夹中

选择File->Save World As 在这里插入图片描述 在这里插入图片描述

6.创建launch文件,填写赛道配置参数 cd racecar_ws/src/racecar/racecar_gazebo/launch touch mycar.launch gedit mycar.launch

写入如下代码:

在这里插入图片描述

7.运行跑道模型,控制小车跑图了 roslaunch racecar_gazebo mycar.launch

在这里插入图片描述

8.gmapping建图(上面一步的终端保持开启状态) roslaunch racecar_gazebo slam_gmapping.launch

在这里插入图片描述 控制小车跑一圈地图,建好的地图如下: 在这里插入图片描述 新建终端,保存gmapping创建的地图

cd racecar_ws/src/racecar/racecar_gazebo/map rosrun map_server map_saver -f mycar_map

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

八、自主定位导航(自己建的赛道) 1.新建终端,创建mycar1.launch文件 cd racecar_ws/src/racecar/racecar_gazebo/launch/ touch mycar1.launch gedit mycar1.launch

并写入以下代码:

在这里插入图片描述

2.运行跑道 roslaunch racecar_gazebo mycar1.launch

在这里插入图片描述

3.新建终端,运行RVIZ进行手工导航 roslaunch racecar_gazebo racecar_rviz.launch

在这里插入图片描述

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

在这里插入图片描述

5.启动导航脚本 rosrun racecar_gazebo path_pursuit.py

发现现车确实在自己定位 在这里插入图片描述

九、总结

通过这次实验很好的对ROS下智能车的仿真实验的完成,用仿真功能包自带的地图很好的能跑出来,而且能够用2D Nav Goal发布目标来实现智能车的自主定位,但在用自己所建的赛道时,用键盘确实能完成跑道,但在用2D Nav Goal发布目标实现智能车的自主定位,小车容易打滑,而且在遇到障碍物时,有时会发生侧翻现象。可能是相关代码还不够完善吧。不过最终还是跑出来了。注意事项:在构建地图时要注意地图尺寸大小,如果不合适,将会影响下车的导航,就会一直卡在某一个障碍物的前面。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有