1. Cartographer环境搭建与初步建图
任务目标
在Ubuntu 20.04系统上从源码安装Cartographer及其依赖,运行官方2D激光SLAM demo(backpack_2d),通过生成的轨迹与栅格地图验证环境配置正确。
环境与依赖
- Ubuntu 20.04 + ROS Noetic(若使用其他版本,请对应调整ROS发行版名称)
- 已安装ROS基础环境(
ros-noetic-desktop-full) - 依赖包:
ninja-build、stow、git、python3-wstool、python3-rosdep、python3-catkin-pkg-modules、python3-rosinstall-generator
安装步骤
以下命令按顺序在终端执行,完成Cartographer及其依赖的安装。
1. 安装系统依赖
sudo apt-get update
sudo apt-get install -y ninja-build stow git python3-wstool python3-rosdep python3-catkin-pkg-modules python3-rosinstall-generator
2. 创建工作空间并下载源码
mkdir -p ~/cartographer_ws/src
cd ~/cartographer_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src
3. 安装proto3与依赖
src/cartographer/scripts/install_proto3.sh
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=noetic -y
4. 编译与配置环境
catkin_make_isolated --install --use-ninja
source install_isolated/setup.bash
运行官方Demo验证
安装完成后,运行Cartographer官方提供的2D背包数据集demo。该demo会下载测试数据并启动建图节点,最终在Rviz中显示建图过程。
roslaunch cartographer_ros demo_backpack_2d.launch
验证方法与判定标准
执行上述launch后,按以下步骤确认环境配置正确:
- Rviz窗口正常打开:出现可视化界面,左侧面板显示
Map、Trajectory、Laser Scan等话题。 - 数据播放:终端持续输出处理日志,Rviz中激光点云随数据包播放而移动。
- 地图构建:等待约30秒后,Rviz中
Map图层开始显示逐渐累积的栅格地图(黑色障碍物轮廓)。 - 轨迹闭合:demo数据播放结束后(约1分钟),地图中显示一条完整的行走轨迹,起点与终点区域重合,无明显漂移断裂。
若以上现象均出现,说明Cartographer安装成功且2D建图功能正常。若launch启动报错,请检查rosdep install是否完整、install_isolated/setup.bash是否已source。
常见问题
- proto3编译失败:确认
install_proto3.sh执行完成,且/usr/local/bin/protoc存在并版本为3.x。 - rosdep找不到依赖:先执行
sudo rosdep init,若提示已存在则跳过,再执行rosdep update。 - catkin_make_isolated内存不足:可降低并行编译数,例如
catkin_make_isolated --install --use-ninja -j2。