大学生智能汽车竞赛系列教程 第二章 建图功能包创建教程



一、建图指导


请按照先前教程完成ros的安装、工作空间(gazebo_test_ws)的创建和仿真环境的搭建。

1.1 在gazebo_test_ws/src下创建建图功能包gazebo_map

  • 打开终端依次输入如下指令:
cd gazebo_test_ws/src

catkin_create_pkg gazebo_map      //功能包创建完毕

cd ..

catkin_make                                      //编译功能包

完成编译后,确认是否将该路径添加到source中

  • 打开终端输入如下指令:
sudo gedit ~/.bashrc          //若没有安装gedit,则使用install指令安装

下拉文件至末查看是否有如下路径

source ~/gazebo_test_ws/devel/setup.bash
  • 若不存在,输入如下指令:
echo "source ~/gazebo_test_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc               //使配置的环境变量生效

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目录下,完成建图操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值