安装cartographer和hector
时间: 2025-06-12 21:18:37 浏览: 19
### Cartographer 和 Hector 的安装指南
#### 安装 Cartographer
Cartographer 是一款由 Google 开发的开源 SLAM(Simultaneous Localization and Mapping)库,支持 2D 和 3D 地图构建。以下是基于 Ubuntu 18.04 和 ROS Melodic 的安装步骤:
1. **设置环境依赖项**
需要先安装一些必要的工具和依赖包来配置开发环境[^3]。
```bash
sudo apt-get update && sudo apt-get install -y \
curl \
gnupg2
```
2. **安装 Bazel 构建工具**
Cartographer 使用 Bazel 进行构建管理。按照官方说明完成 Bazel 的安装[^1]。
```bash
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
sudo apt-get update && sudo apt-get install bazel
```
3. **克隆并编译 Cartographer**
下载 Cartographer 源码仓库,并切换到目标版本 `0.2.0`。
```bash
git clone https://github.com/cartographer-project/cartographer.git ~/cartographer
cd ~/cartographer
git checkout v0.2.0
./configure.sh
bazel build //...
```
4. **集成至 ROS 环境**
接着需要安装 `cartographer_ros` 并将其与 ROS 整合。
```bash
sudo apt-get install ros-melodic-tf2-sensor-msgs python-catkin-tools
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/cartographer-project/cartographer_ros.git -b melodic-devel .
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build
source devel/setup.bash
roslaunch cartographer_ros demo_backpack_2d.launch
```
---
#### 安装 Hector_SLAM
Hector_SLAM 是一种轻量级的激光雷达 SLAM 方法,适用于无里程计数据的情况。
1. **添加 hector_slam 软件包**
可通过源代码方式获取最新版软件包[^2]。
```bash
cd ~/catkin_ws/src
git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam.git
```
2. **编译工作空间**
编译整个 Catkin 工作区以确保所有依赖关系被满足。
```bash
cd ~/catkin_ws/
catkin_make
source devel/setup.bash
```
3. **运行测试节点**
启动仿真器或连接真实硬件设备后执行以下命令验证功能正常。
```bash
roslaunch hector_mapping mapping_default.launch
```
如果希望保存生成的地图,则可以参照提供的方法操作:
```bash
roscd robot_navigation/maps/
rosrun map_server map_saver -f my_map_name
```
---
### 总结对比
| 特性 | Cartographer | Hector_SLAM |
|---------------------|--------------------------------------|----------------------------------|
| 支持维度 | 2D & 3D | 主要是 2D |
| 数据需求 | 至少需要 IMU 或轮速编码器 | 不需额外传感器输入 |
| 计算复杂度 | 较高 | 较低 |
尽管两者都能实现高质量地图绘制,但在资源受限场景下推荐选用后者;而对于精度要求较高的场合则倾向于前者。
阅读全文
相关推荐



















