大学生智能汽车竞赛系列教程 第零章 准备工作



零、声明

本系列教程转自2021年大学生智能汽车竞赛,笔者不打算从此获利,如有官方人员对此教程有意见,请联系笔者。学习自动驾驶所需要完整的代码包和有关程序说明在此教程尽量提供。

一、环境和文件


本系列程序运行在Melodic上,且官方称在虚拟机运行有可能出现奇怪的BUG,推荐物理机(如双系统);笔者确实遇到了奇怪的BUG,导致无法编译,无奈转战 melodic 双系统。

1.1 下载需要文件

老规矩,粉丝免费下载:
赛道与智能小车模型.zip

1.2 在gazebo_map文件夹下创建cfg,launch,map三个文件夹

  • 打开终端输入如下指令:
cd gazebo_test_ws/src/gazebo_map
mkdir cfg launch map

cfg文件夹用于存储配置文件,launch文件夹用于存储节点启动文件,map用于存储建图完成后的图片和配置文件(yaml)

1.3 安装建图功能包

  • 使用git工具下载cartographer_ros包, 打开终端输入如下指令:
git clone https://github.com/ros2/cartographer_ros
  • 如果github存在网络问题可以使用apt命令安装 cartographer_ros包, 打开终端输入如下指令:
sudo apt-get install ros-melodic-cartographer-ros

复制carto包中的demo_revo_lds.launch文件至gazebo_map/launch目录下

复制carto包中的revo_lds.lua文件至gazebo_map/cfg目录下

cp cartographer_ros/cartographer_ros/launch/demo_revo_lds.launch gazebo_test_ws/src/gazebo_map/launch
cp cartographer_ros/cartographer_ros/configuration_files/revo_lds.lua gazebo_test_ws/src/gazebo_map/cfg

1.4 修改相应文件

1.4.1 在gazebo_map/launch目录下打开demo_devo_lds.launch文件

  • 打开终端输入如下指令:
sudo  gedit gazebo_test_ws/src/gazebo_map/launch/demo_revo_lds.launch

修改

-configuration_directory $(find cartographer_ros)/configuration_files
修改为
-configuration_directory $(find gazebo_map)/cfg
————————————————————————————————
<remap from="scan" to="horizontal_laser_2d" />
修改为
<remap from="scan" to="scan" />
————————————————————————————————
<node name="rviz" pkg="rviz" type="rviz" required="true"
      args="-d $(find cartographer_ros)/configuration_files/demo_2d.rviz" />
修改为
<node name="rviz" pkg="rviz" type="rviz" required="true"
      args="-d $(find gazebo_map)/cfg/demo.rviz" />
————————————————————————————————
删除
<node name="playbag" pkg="rosbag" type="play"
      args="--clock $(arg bag_filename)" />

将ucar_plane文件夹中的end_plane和start_plane复制到.gazebo/models下(.gazebo为隐藏文件,如果没有models请自行创建此文件夹)

1.4.2 在gazebo_map/cfg目录下打开revo_lds.lua文件

  • 打开终端输入如下指令:
sudo gedit gazebo_test_ws/gazebo_map/cfg/revo_lds.lua

修改

tracking_frame = "horizontal_laser_link",
  published_frame = "horizontal_laser_link",
修改为
tracking_frame = "base_link",
  published_frame = "base_link",

1.5 启动小车建图

  • 打开终端输入如下指令:
roslaunch gazebo_pkg race.launch

roslaunch gazebo_map demo_revo_lds.launch

执行第二条代码时若遇到cartographer包没有安装现象,执行命令

sudo apt-get install ros-melodic-cartographer*

等待安装完毕(若其中还遇到其他功能包缺失现象按照error提示安装即可),重新执行三条指令。


1.5.1 保存Rviz配置

rviz启动后点击左下角add,在topic中选择laserscan,map,在display中选择robotmodel。添加完毕后,点击左上角file—>save config as 文件命名为demo.rviz存储在gazebo_map/cfg目录下

关闭所有终端,重新执行

roslaunch gazebo_pkg race.launch

roslaunch gazebo_map demo_revo_lds.launch

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

1.5.2 保存地图

观察rviz中显示的图像,完成建图后保存地图

rosrun map_server map_saver -f mapname

若所建地图不够好,请自行调整阈值参数。–occ为无法通行的阈值,–free为可通行的阈值。

若–occ过高,则可能出现墙体边缘出现灰色未探索地块;若–occ过低,则无墙体部分可能会被凭空建墙。

若–free过高,则可能出现墙体被认为是自由区域;若–free过低,则自由区域可能出现灰色未探索地块。

以上情况皆可能影响定位效果,请选手们核对所建地图中墙体(黑)、自由区域(白)、未探索区域(灰)是否正确,若不正确,请自行调整阈值重新建图。

具体可见官方wikihttp://wiki.ros.org/map_server

例如

rosrun map_server map_saver --occ 70 --free 30 -f mapname

若无法执行则是map_server没有安装,执行

  • 打开终端输入如下指令:
sudo apt-get install ros-melodic-map-server
source ~/.bashrc

重启终端,执行保存建图指令完成建图,保存的地图(xxx.pgm与xxx.yaml文件)一般是保存在根目录下,手动移动至gazebo_map/map目录下,完成建图操作。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值