Cartographer官方安装流程遇到的坑

现在Cartographer官方安装流程比较简单,本人也是参考官方的流程进行安装

https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html#building-installation 

坑1:

在执行下列命令时出现了如下的问题

wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall

方法a: 这个命令主要是将cartographer_ros.rosinstall下载下来并放到carto_ws/src目录下,由于某些原因,国内可能无法访问,所以最好的办法就是自己创建一个.roinstall文件啦,参考下面的内容

命令:gedit src/.rosinstall, gedit src/cartographter_ros/cartographter_ros.rosinstall
填入下面的内容:
- git: {local-name: cartographer, uri: 'https://github.com/googlecartographer/cartographer.git', version: '1.0.0'}
- git: {local-name: cartographer_ros, uri: 'https://github.com/googlecartographer/cartographer_ros.git', version: '1.0.0'}
- git: {local-name: ceres-solver, uri: 'https://ceres-solver.googlesource.com/ceres-solver.git', version: '1.13.0'}

方法b: 将

输入网址:ipaddress 查询 raw.githubusercontent.com 的IP地址,并修改hosts文件

sudo gedit /etc/hosts
添加下面的内容

199.232.68.133  raw.githubusercontent.com

坑2:

无法下载ceres-solver, 

修改.roinstall里面ceres-solver的源地址为https://github.com/ceres-solver/ceres-solver.git (不要使用该方法!!!见下面的内容)

- git: {local-name: cartographer, uri: 'https://github.com/googlecartographer/cartographer.git', version: '1.0.0'}
- git: {local-name: cartographer_ros, uri: 'https://github.com/googlecartographer/cartographer_ros.git', version: '1.0.0'}
- git: {local-name: ceres-solver, uri: 'https://github.com/ceres-solver/ceres-solver.git', version: '1.13.0'}

坑3:

在执行命令rosdep install --from-paths src --ignore-src -r -y 下载依赖包时遇到了如下的问题:

ERROR: Rosdep experienced an error: rosdep data for [version] must be a dictionary
Please go to the rosdep page [1] and file a bug report with the stack trace below.

处理方法:编辑lookup.py文件屏蔽该语句

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/lookup.py

 

坑4:在编译(catkin_make_isolated --install --use-ninja)的过程中,出现如下的问题 

CMake Error at /home/ros/carto_ws/install_isolated/lib/cmake/Ceres/CeresConfig.cmake:88 (message):
  Failed to find Ceres - Missing requested Ceres components: [SuiteSparse]
  (components requested: [SuiteSparse]).  Detected Ceres version: 1.13.0
  installed in: /home/ros/carto_ws/install_isolated with components: [LAPACK,
  SchurSpecializations, OpenMP].
Call Stack (most recent call first):
  /home/ros/carto_ws/install_isolated/lib/cmake/Ceres/CeresConfig.cmake:392 (ceres_report_not_found)
  CMakeLists.txt:32 (find_package)

 

解决方法:当时我尝试手动编译Ceres没问题,但是使用catkin_make的时候就会失败,而且在catkin_make编译Ceres时没有使用SuiteSparse,当时尝试改过CMAKE文件,依然不行,最后我怀疑是由于ceres源的原因,因为我将官方指定的Ceres源由https://ceres-solver.googlesource.com/ceres-solver.git改为https://github.com/ceres-solver/ceres-solver.git ,所以只能借助代理下载ceres-solver安装包,并手动解压放置在src目录下。目录结构如下:

文件地址我已经上传到了CSDN:https://download.csdn.net/download/tracylining/12496279 

### Cartographer一键安装方法 Cartographer 是由 Google 开源的一款用于机器人定位和建图的 SLAM 系统,支持 2D 和 3D 地图构建。为了简化其部署过程,社区提供了一些自动化脚本或工具来实现快速安装。 #### 自动化安装脚本 一种常见的做法是利用 ROS 社区中的 `rosinstall_generator` 工具配合自定义脚本来完成依赖项和软件包的自动下载与编译[^1]。以下是基于 Ubuntu 的典型安装流程: ```bash #!/bin/bash # 更新系统并安装必要的依赖 sudo apt update && sudo apt upgrade -y sudo apt install -y python-wstool python-rosdep ninja-build # 创建工作空间 mkdir -p ~/cartographer_ws/src cd ~/cartographer_ws/ # 初始化 rosinstall 并获取 cartographer 及其依赖 wstool init src https://raw.githubusercontent.com/ros-infrastructure/ros_concert/master/cartographer.rosinstall # 安装 ROS 依赖 rosdep update rosdep install --from-paths src --ignore-src -r -y # 编译项目 catkin_make_isolated --install --use-ninja # 设置环境变量 echo "source ~/cartographer_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc ``` 上述脚本会执行一系列操作以确保 Cartographer 能够正常运行于目标环境中。需要注意的是,此脚本适用于已经配置好 ROS 的 Linux 发行版,并假设用户具备基本的开发环境设置能力[^2]。 对于更高级的需求或者特定平台上的定制化安装,则可能需要手动调整部分参数或额外增加某些库的支持。 #### Docker 镜像方式 另一种推荐的方法是通过官方维护的 Docker 镜像来进行容器化的安装。这种方式可以极大程度上减少因操作系统差异带来的兼容性问题。具体命令如下所示: ```dockerfile docker pull googlecartographer/cartographer_ros:latest docker run -it --net=host --ipc=host \ -v /dev:/dev \ -v $(pwd):/root/catkin_ws/src/cartographer_ros \ googlecartographer/cartographer_ros:latest bash ``` 这将启动一个包含最新版本 Cartographer_ROS 的交互式 shell,在其中可以直接测试功能而无需担心本地系统的污染风险[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值