ROS智能车定位导航仿真(原赛道自主导航,构建地图再导航)
文章目录
- 0.视频演示
- 1.智能车环境,空间,资源准备
- a.初始化
- b.克隆 racecar 源代码包,并编译
- (1)遇到问题:Could NOT find driver_base_DIR
- (2)遇到问题:Could NOT find OpenCV (missing: OpenCV_DIR)
- (3)随带把环境变量添加了
- 2.gazebo查看原环境
- a.看一看小车
- b.看一看地图
- 3.手动导航,开启rviz画图
- a.遇到问题:ImportError: No module named msg
- b.将鼠标焦点放在tk弹窗上,可以进行移动操作
- c.翻车,重启绘图
- d.保存地图
- 4.原赛道的小车自主导航
- a.启动导航
- b.遇到问题:Failed to create the teb_local_planner....
- c.启动rviz
- d.点击 2D Nav Goal,设置目标位置
- e.新建终端,开启自动导航
- 5.构建自己的环境模型
- a.gazebo构建自己的模型
- b.运行小车模型
- c.加入自己的模型,设置一些障碍物
- d.新建myWorld.launch
- 6.自己绘制赛道的小车自主导航
- a.制图
- b.保存地图
- c.自主导航
- (1)创建autocar.launch文件
- (2)两个终端分别运行
- (3)2D Nav Goal设置目标
- (4)运行运动脚本
- d.运行过程
- 7.总结
0.视频演示
地址链接
智能车自主导航
1.智能车环境,空间,资源准备
a.初始化
mkdir -p ~/ qianRuShi/racecar_ws/src
cd qianRuShi/racecar_ws/src
catkin_init_workspace
b.克隆 racecar 源代码包,并编译
git clone https://github.com/xmy0916/racecar.git
cd ..
catkin_make
(1)遇到问题:Could NOT find driver_base_DIR
解决方案:更新apt-get,下载它
sudo apt-get update
sudo apt-get install ros-melodic-driver-base
- 这里需要注意,如果更新慢的话,请更换国内源参考链接
- 我的是Ubuntu18.04,所以是melodic,ros-你的版本-driver-base
- 缺少其它包的话,相同道理,自行下载。
(2)遇到问题:Could NOT find OpenCV (missing: OpenCV_DIR)
解决方案:
查看你的opencv路径
locate OpenCVConfig.cmake
更改 racecar_gazebo/CMakeLists.txt如下:(截图的最后一行)
set(OpenCV_DIR /home/wangyang/opencv-3.4.1/build)
(3)随带把环境变量添加了
gedit ~/.bashrc
根据自己的路径,在末尾添加工作空间的环境变量,并保存:
source ~/qianRuShi/racecar_ws/devel/setup.bash
再次运行
source ~/.bashrc
2.gazebo查看原环境
a.看一看小车
roslaunch racecar_gazebo racecar.launch
关闭后
b.看一看地图
roslaunch racecar_gazebo racecar_runway.launch
效果如下:
3.手动导航,开启rviz画图
新建终端
roslaunch racecar_gazebo slam_gmapping.launch
a.遇到问题:ImportError: No module named msg
解决方案:镜像下载就行
pip install msg -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/
好吧,后来发现不是在python安装,如下安装:
sudo apt-get install ros-melodic-ackermann-msgs
b.将鼠标焦点放在tk弹窗上,可以进行移动操作
在racecar_ws/src/racecar/racecar_gazebo/scripts的keyboard_teleop.py可以看见
这里还容易翻车,大家注意了,开慢点,翻车了就重新来过
c.翻车,重启绘图
roslaunch racecar_gazebo racecar_runway.launch
roslaunch racecar_gazebo slam_gmapping.launch
好吧,我翻车两次了,大致样子是这样的:
地图:
小车:
d.保存地图
你要是顺利完成地图,可以保存起来,后面自主导航用自己的(我尝试过用他的地图,但是莫名其妙的,图出来不了):
保存到racecar_gazebo/map吧,就不用了在移动了
cd racecar/racecar_gazebo/map
rosrun map_server map_saver -f map_racecar
4.原赛道的小车自主导航
可关闭上面的rviz进程了,然后
修改racecar_runway_navigation.launch文件,更改地图:
a.启动导航
roslaunch racecar_gazebo racecar_runway_navigation.launch
b.遇到问题:Failed to create the teb_local_planner…
解决方案:
sudo apt-get install ros-melodic-teb-local-planner
c.启动rviz
roslaunch racecar_gazebo racecar_rviz.launch
d.点击 2D Nav Goal,设置目标位置
e.新建终端,开启自动导航
rosrun racecar_gazebo path_pursuit.py
过程图:
终端的显示:
5.构建自己的环境模型
a.gazebo构建自己的模型
我原本准备使用的我以前构建的模型,如何创建,请自行百度------gazebo构建模型
发现被我删了,于是自己又搞了一个。
之前的终端都可以ctrl+c了。
b.运行小车模型
roslaunch racecar_gazebo racecar.launch
c.加入自己的模型,设置一些障碍物
然后点击左侧的insert,将自己的模型拖进
再加入一些障碍物 Construction Cone(这里以前导入的模型库,没有自行百度,或者不要障碍物就是)
选择File->Save World As,保存到racecar/racecar_gazebo/worlds下:
d.新建myWorld.launch
cd racecar/racecar_gazebo/launch
sudo gedit myWorld.launch
添加下列代码
<?xml version="1.0"?>
<launch><!-- Launch the racecar --><include file="$(find racecar_gazebo)/launch/racecar.launch"><arg name="world_name" value="myWorld"/></include>
</launch>
6.自己绘制赛道的小车自主导航
a.制图
重复上面的步骤,终端运行
roslaunch racecar_gazebo myWorld.launch
新建终端运行
roslaunch racecar_gazebo slam_gmapping.launch
同上,移动小车,绘制地图得到:
b.保存地图
cd racecar_ws/src/racecar/racecar_gazebo/map
rosrun map_server map_saver -f mycar_map
c.自主导航
(1)创建autocar.launch文件
在racecar/racecar_gazebo/launch/下
gedit autocar.launch
添加:
<?xml version="1.0"?>
<launch><!-- Launch the racecar --><include file="$(find racecar_gazebo)/launch/racecar.launch"><arg name="world_name" value="myworld2"/></include><!-- Launch the built-map --><node name="map_server" pkg="map_server" type="map_server" args="$(find racecar_gazebo)/map/mycar_map.yaml" /><!--Launch the move base with time elastic band--><param name="/use_sim_time" value="true"/><node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen"><rosparam file="$(find racecar_gazebo)/config/costmap_common_params.yaml" command="load" ns="global_costmap" /><rosparam file="$(find racecar_gazebo)/config/costmap_common_params.yaml" command="load" ns="local_costmap" /><rosparam file="$(find racecar_gazebo)/config/local_costmap_params.yaml" command="load" /><rosparam file="$(find racecar_gazebo)/config/global_costmap_params.yaml" command="load" /><rosparam file="$(find racecar_gazebo)/config/teb_local_planner_params.yaml" command="load" /><param name="base_global_planner" value="global_planner/GlobalPlanner" /><param name="planner_frequency" value="0.01" /><param name="planner_patience" value="5.0" /><!--param name="use_dijkstra" value="false" /--><param name="base_local_planner" value="teb_local_planner/TebLocalPlannerROS" /><param name="controller_frequency" value="5.0" /><param name="controller_patience" value="15.0" /><param name="clearing_rotation_allowed" value="false" /></node></launch>
前面的终端可以关了
(2)两个终端分别运行
roslaunch racecar_gazebo autocar.launch
roslaunch racecar_gazebo racecar_rviz.launch
(3)2D Nav Goal设置目标
(4)运行运动脚本
rosrun racecar_gazebo path_pursuit.py
d.运行过程
至此包括一些扩展所有都已经全部完成,
7.总结
过程中,遇到了不少问题,但是好在github的源码地址有解决方案,在过程中,可能会有许多网络问题,如github资源下载慢,请参考我的另外一篇文章三步解决github下载慢的问题,另外,apt-get下载慢的话,也自己更换源,阿里,清华的都可以,参考这里。运行中途,小车容易翻车,开车慢点所以,不然要搞很久。更换地图,更换launch文件,一定记得修改相关的文件设置。
ROS智能车定位导航仿真(原赛道自主导航,构建地图再导航)相关推荐
- ROS智能车定位导航仿真(Gazebo搭建赛道)
ROS智能车定位导航仿真(Gazebo搭建赛道) 前言 一.ROS仿真功能包下载 二.安装运行所需的插件 三.racecar功能包编译 四.测试程序运行 五.运行功能包赛道 六.注意事项 前言 Ubu ...
- 第十六届智能车竞赛线上比赛赛道审核 - 东北赛区第二批次
简 介: 参加第十六届全国大学生智能车线上全国总决赛赛道设计与审核内容. 关键词: 智能车竞赛,线上比赛,赛道审核 §01 赛道审核 一.北华大学-更新全向组 1.基础四轮 赛道情况: ⑴赛道长度:4 ...
- 第十六届全国大学生智能车竞赛线上赛点赛道审核 - 华南赛区
简 介: 参加第十六届全国大学生智能车线上全国总决赛赛道设计与审核内容. 关键词: 智能车竞赛,线上比赛,赛道审核 §01 赛道审核 一.广西科技大学 ▲ 图1.1.1 赛道设计与铺设图 ▲ 图1.1 ...
- 第十六届全国大学生智能车竞赛线上赛点赛道审核 - 西部赛区
简 介: 参加第十六届全国大学生智能车线上全国总决赛赛道设计与审核内容. 关键词: 智能车竞赛,线上比赛,赛道审核 §01 赛道审核 一.阿坝师范学院 ▲ 图1.1.1 赛道设计与铺设图 ▲ 图1.1 ...
- 第十六届全国大学生智能车竞赛线上赛点赛道审核 - 山东赛区
简 介: 参加第十六届全国大学生智能车线上全国总决赛赛道设计与审核内容. 关键词: 智能车竞赛,线上比赛,赛道审核 §01 赛道审核 一.哈尔滨工业大学(威海) 审查结论 :缺少赛道文档. 二.海军航 ...
- 第十六届全国大学生智能车竞赛线上赛点赛道审核 - 广东赛区
简 介: 参加第十六届全国大学生智能车线上全国总决赛赛道设计与审核内容. 关键词: 智能车竞赛,线上比赛,赛道审核 §01 赛道审核 一.东莞理工学院 1.全向行进 ▲ 图1.1.1 赛道设计与铺设 ...
- 第十六届全国大学生智能车竞赛线上赛点赛道审核 - 浙江赛区
简 介: 参加第十六届全国大学生智能车线上全国总决赛赛道设计与审核内容. 关键词: 智能车竞赛,线上比赛,赛道审核 §01 赛道审核 一.杭州电子科技大学 1.基础四轮 ▲ 图1.1.2.1 赛道设计 ...
- 第十七届全国大学生智能车竞赛线上比赛赛道设计
简 介: 本文给出了第十七届全国大学生智能车竞赛线上比赛赛道部署草案.正式文档将会在竞赛网站进行公布. 关键词: 线上比赛,赛道设计,第十七届 #mermaid-svg-O2kO7tZ5dSyEz65 ...
- 第十六届全国大学生智能车竞赛线上赛点赛道审核 -华北赛区
简 介: 参加第十六届全国大学生智能车线上全国总决赛赛道设计与审核内容. 关键词: 智能车竞赛,线上比赛,赛道审核 §01 赛道审核 一.北京交通大学 ▲ 图1.1.1 赛道设计与铺设图 ▲ 图1.1 ...
- 第十六届全国大学生智能车竞赛线上赛点赛道审核 - 华东赛区
简 介: 参加第十六届全国大学生智能车线上全国总决赛赛道设计与审核内容. 关键词: 智能车竞赛,线上比赛,赛道审核 §01 赛道审核 一.常熟理工学院 1.单车拉力 ▲ 图1.1.1 赛道设计与铺设图 ...
最新文章
- 深入剖析微软ASP.NET Ajax中的数据绑定构架下篇之二
- Linux汇编语法开发
- 一行Python代码
- 安卓APP_ 控件(3)—— EditText
- 51nod1244 欧拉函数之和 杜教筛
- 第六章至第九章的单元测试
- 从java到C++入门
- 最可怕的八种黑客手段,网络攻击真是无孔不入!【转载】
- Delphi 的运算符列表
- java并发编程(13)-- 线程 死锁和定位
- Ubuntu 8.04和Windows Server 2008 双体系的安置与卸载记
- 华为终端云服务赋能“智能座舱”,打造出行场景的“超级终端”
- windows安装docker环境并配置镜像
- 虚拟机网络连接失败解决方案
- 微信小程序打印实时日志
- matlab数据处理的优缺点,数字滤波的优缺点分析
- 谷歌AdMob广告学习
- Altium Designer 网表导入常见问题 网表导入教程 同步原理图与PCB
- ST-Link SWD接口接线
- android button 属性,两行显示数字,前面各有图像,Android_2_常用控件及常用属性