平台
Ubuntu 16.04
ROS kinect
Cartographer
Cartographer的安装
安装依赖库protobuf3
注:这里需要安装3.6
以上的版本。1
2
3
4
5
6
7
8
9
10
11sudo apt-get install autoconf autogen
git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf
git submodule update --init --recursive
./autogen.sh
./configure
make
# 这一步可能会报错,无视就好
make check
sudo make install
sudo ldconfig
注:需要分开依次执行,下同。
检查安装的版本号:1
protoc --version
安装Cartographer
安装wstool,rosdep,ninja
工具:1
2sudo apt-get update
sudo apt-get install python-wstool python-rosdep ninja-build
创建工作空间carto_ws
(可以是其他名字),并初始化。1
2
3mkdir carto_ws
cd carto_ws
wstool init src
1 | wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall |
如果报错或长时间未安装,则更改下载地址:cd src/
,gedit .rosinstall
。
将最后一个git
来源网址由https://ceres-solver.googlesource.com/ceres-solver.git
改为https://github.com/ceres-solver/ceres-solver.git
。
回到工作空间,重新执行:1
wstool update -t src
1 | sudo rosdep init # 报错可忽视 |
注:如果报错,未设置环境变量,则执行以下命令:1
2echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
重新执行:1
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
最终出现:#All required rosdeps installed successfully
。
编译
1 | catkin_make_isolated --install --use-ninja |
注:如果这里报错,检查一下protoc
的版本,至少是3.6
的,如果不是,按照上文重新安装protoc
依赖库。
测试
1 | # Download the 2D backpack example bag. |
测试前,需打开roscore
节点管理器,如果报错,检查下是否刷新了环境变量(source ~/carto_ws/install_isolated/setup.bash
)。