news 2026/5/14 20:04:28

Ubuntu 20.04下Cartographer ROS避坑安装与初体验

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu 20.04下Cartographer ROS避坑安装与初体验

1. 环境准备与依赖安装

在Ubuntu 20.04上安装Cartographer ROS之前,我们需要先准备好基础环境。我建议使用全新的ROS Noetic环境,避免与其他ROS版本产生冲突。实测发现,很多安装失败案例都是由于环境不干净导致的。

首先更新软件源并安装基础工具链:

sudo apt-get update sudo apt-get install -y python3-wstool python3-rosdep ninja-build stow

这里有个小技巧:如果你之前安装过ROS但不确定环境是否干净,可以新建一个用户专门用于Cartographer开发。我就曾经因为残留的旧版ROS依赖浪费了半天时间排查问题。

接下来创建工作空间时,建议直接在主目录下创建,避免路径中包含中文或空格:

mkdir -p ~/cartographer_ws/src cd ~/cartographer_ws

2. 解决网络访问问题

官方文档中建议使用wstool直接获取源码,但在实际操作中我发现这个方法经常因为网络问题失败。经过多次尝试,总结出两种可靠的替代方案:

2.1 手动创建.rosinstall文件

首先在src目录下创建隐藏文件.rosinstall(按Ctrl+H可显示隐藏文件),内容如下:

- git: local-name: cartographer uri: 'https://github.com/cartographer-project/cartographer.git' version: 'master' - git: local-name: cartographer_ros uri: 'https://github.com/cartographer-project/cartographer_ros.git' version: 'master' - git: local-name: ceres-solver uri: 'https://github.com/ceres-solver/ceres-solver.git' version: 'master'

2.2 使用国内镜像源

如果你觉得手动操作麻烦,可以尝试修改hosts文件或者使用国内镜像源。我在测试中发现清华镜像源速度不错,只需修改git配置:

git config --global url."https://mirrors.tuna.tsinghua.edu.cn/git/".insteadOf https://github.com/

3. 处理依赖问题

执行rosdep install时最常见的错误就是libabsl-dev缺失。这个问题其实是因为Ubuntu 20.04的官方源中没有这个包。经过多次测试,我发现有两种解决方案:

3.1 修改package.xml

进入cartographer源码目录:

cd ~/cartographer_ws/src/cartographer

用文本编辑器打开package.xml,找到第46行左右的libabsl-dev依赖项,直接删除或注释掉这行。保存后重新执行:

rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y

3.2 手动安装abseil库

如果你希望保持完整性,可以手动安装abseil:

sudo apt-get install -y libabsl-dev=20200923.3-1

如果提示找不到包,需要先添加PPA源:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update

4. 编译与安装

解决所有依赖问题后,就可以开始编译了。这里推荐使用ninja构建工具,速度比make快很多:

catkin_make_isolated --install --use-ninja

编译过程中可能会遇到几个常见问题:

  1. 内存不足:建议至少4GB内存,如果不够可以添加swap分区
  2. 编译器版本问题:确保使用gcc-9和g++-9
  3. 权限问题:不要在root用户下编译

编译完成后,目录结构应该是这样的:

cartographer_ws/ ├── build_isolated/ ├── devel_isolated/ ├── install_isolated/ │ ├── setup.bash │ ├── share/ │ └── ... └── src/

5. 测试与验证

安装完成后,我们可以用官方提供的2D背包数据集进行测试。这个数据集大约200MB,建议使用wget断点续传:

wget -c -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag

启动建图节点:

source ~/cartographer_ws/install_isolated/setup.bash roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag

如果一切正常,你应该能在RViz中看到实时建图过程。我建议首次运行时降低播放速度,方便观察:

rosbag play -r 0.5 ${HOME}/Downloads/cartographer_paper_deutsches_museum.bag

6. 常见问题排查

在实际使用中,我遇到过几个典型问题:

  1. RViz不显示地图:检查tf树是否完整,通常是因为时间同步问题
  2. 建图漂移严重:尝试调整configuration_files中的参数
  3. 内存泄漏:长时间运行时建议监控内存使用情况

对于性能调优,我发现修改lua配置文件中的以下参数效果明显:

TRAJECTORY_BUILDER_2D.submaps.num_range_data = 50 -- 默认90 POSE_GRAPH.optimization_problem.huber_scale = 1e2 -- 默认1e1

7. 进阶使用建议

成功运行demo后,你可以尝试用自己的设备采集数据。我用RPLIDAR A1测试时,需要修改以下配置:

  1. 在backpack_2d.lua中添加雷达参数:
TRAJECTORY_BUILDER_2D.min_range = 0.1 TRAJECTORY_BUILDER_2D.max_range = 12.0
  1. 修改launch文件中的话题映射:
<remap from="scan" to="/rplidar_scan" />
  1. 对于室内环境,建议调整子图大小:
TRAJECTORY_BUILDER_2D.submaps.resolution = 0.05

Cartographer的调参是个经验活,我建议每次只修改一个参数,记录下效果。建图质量不仅取决于参数,传感器标定的准确性也很关键。我用了一周时间才调出满意的办公室地图,关键是要有耐心。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 20:02:11

3步解锁Gofile下载神器:告别繁琐点击的智能解决方案

3步解锁Gofile下载神器&#xff1a;告别繁琐点击的智能解决方案 【免费下载链接】gofile-downloader Download files from https://gofile.io 项目地址: https://gitcode.com/gh_mirrors/go/gofile-downloader 还在为Gofile上的文件下载而烦恼吗&#xff1f;每次都要打开…

作者头像 李华
网站建设 2026/5/14 19:58:04

反激式变换器差分功率光伏系统【附电路】

✨ 长期致力于光伏模块、局部阴影、功率失配、双向反激变换器、差分功率处理、最大功率点跟踪、最小功率点跟踪研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&am…

作者头像 李华
网站建设 2026/5/14 19:57:20

在OpenWrt路由器部署私有ChatGPT Web界面:极客的本地AI网关方案

1. 项目概述&#xff1a;在路由器上部署一个私有的ChatGPT Web界面如果你和我一样&#xff0c;是个喜欢折腾OpenWrt软路由的玩家&#xff0c;同时又对ChatGPT这类AI工具充满好奇&#xff0c;那么你肯定想过&#xff1a;能不能把ChatGPT直接“装”进我的路由器里&#xff1f;这样…

作者头像 李华
网站建设 2026/5/14 19:56:19

创业团队如何利用Taotoken控制大模型api试用成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 创业团队如何利用Taotoken控制大模型API试用成本 对于预算敏感的创业团队而言&#xff0c;在产品原型开发与市场验证阶段&#xff…

作者头像 李华