建立三维地图¶
简述¶
使用模块采集数据,并录制成ROS包。
在高性能PC上,使用ROS包和nv_base_generate建立地图。
使用地图编辑软件,调整地图,然后另存为PCD格式的地图文件。
使用前,请先阅读 TIPS。
前期准备(PC)¶
注意:以下步骤在PC中执行
在PC中安装
Ubuntu18.04
和ROS Melodic
。参考 Livox-SDK安装说明,安装Livox-SDK。
开启终端,键入下述指令,创建新的工作空间,并克隆ROS包。
mkdir -p ~/nv_ws/src cd ~/nv_ws/src git clone https://github.com/I-Quotient-Robotics/nv_base_generate.git
使用如下指令,安装其余依赖包。
sudo apt install python-wstool cd ~/nv_ws/src wstool init . nv_base_generate/rosinstall/rosinstall.txt wstool update
使用如下指令,编译ROS包,并将当前工作空间添加到环境变量中。
cd ~/nv_ws # 如果此步骤出错,请按照错误提示,安装缺失的ROS包。 catkin_make source ~/nv_ws/devel/setup.bash
数据录制¶
在模块中启动ROS程序。
roslaunch nv_base_bringup bringup.launch
将设备放置在要采集数据的环境中,然后开启新的终端,运行如下指令进行数据录制。
# <数据包名称>替换为自己命名的名称,例如indoor_data,不设定时,默认为nv_sample # 数据包存储在nv_base_bringup的rosbag目录下 # 室内环境请使用 roslaunch nv_base_bringup record_indoor.launch name:=<数据包名称> # 室外环境请使用 roslaunch nv_base_bringup record_outdoor.launch name:=<数据包名称>
使用模块,平稳慢速的扫描目标区域,然后使用
CTRL-C
关闭录制程序。将录制的数据包从
nv_base_bringup/rosbag
中拷贝出来,例如nv_base_bringup/rosbag/nv_sample.bag
。
地图建立¶
将数据包拷贝到PC当中
在终端中先开启地图建立程序
# 室内环境包请使用 roslaunch nv_base_generate indoor.launch # 室外环境包请使用 roslaunch nv_base_generate outdoor.launch
新开启一个终端,然后输入如下指令,播放之前录制的数据
rosbag play --clock <数据包>
此时会在Rviz界面中看到播放的数据,以及实时生成的地图
等待数据包播放完成后,在新终端中输入如下指令,保存生成的地图
# 将/home/iqr/nv_sample替换成目标目录 rosservice call /hdl_graph_slam/dump "'destination:/home/iqr/nv_sample'"
此时会发现在目标目录多出一个文件夹,切包含若干子文件,地图导出完成
关闭上文中开启的ROS程序,然后在终端中输入如下指令,进入地图编辑程序
roslaunch nv_base_generate interactive_slam.launch
参考 Interactive SLAM教程,载入地图,编辑和修改,然后另存为PCD文件。