SLAM(二)
这期主要涉及cartographer ros 的安装
cartographer ros 的安装
- 安装前先检查是否安装proto
protoc -version
如果已经安装可能会报错,如果没有安装就继续下一步
我们建议使用wstool和rosdep。
为了加快构建速度,我们还建议使用Ninja
2. 安装wstool和rosdep ninja
sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build
- 创建一个新的工作空间catkin_ws
mkdir catkin_ws
cd catkin_ws
wstool init src
- 合并 cartographer_ros.rosinstall 文件 并且获取依赖包源码.
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src
这一步可能会有问题,往往需要科学上网,这个需要自己去学会解决
5. 安装proto3
src/cartographer/scripts/install_proto3.sh
如果前面已经安装protoc2,需要对protoc3建立软链接
sudo mv /usr/bin/protoc /usr/bin/protoc.bk
sudo ln -s /usr/local/bin/protoc /usr/bin/protoc
- 安装dep依赖
这一步经常出错,可以安装上一篇SLAM(一)的解决方法处理
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
其中前面两句命令如果一直无法通过可以选择不执行,目前测试发现不执行也没遇到什么大问题
- 构建并安装
catkin_make_isolated --install --use-ninja
source install_isolated/setup.bash
这个时候很容易遇到“absl的报错”:
解决方法:
sudo apt-get install stow
sudo chmod +x ~/carto_ws/src/cartographer/scripts/install_abseil.sh
cd ~/carto_ws/src/cartographer/scripts
./install_abseil.sh
注意里面的路径carto_ws更改为自己的工作空间名字
还有可能出现Ceres的问题
然后重新进行构建和安装