当前位置: 代码迷 >> 综合 >> Ubuntu 16.04 ROS Kinetic 安装 Cartographer
  详细解决方案

Ubuntu 16.04 ROS Kinetic 安装 Cartographer

热度:76   发布时间:2023-12-24 16:30:30.0

Ubuntu 16.04 ROS Kinetic 安装 Cartographer

  • 前期准备
  • 下载 编译安装
    • 下载需要的包
    • 新建一个工作空间
    • 安装依赖的ROS包
    • 安装编译
    • 测试

Ubuntu 16.04 ROS Kinetic 安装 Cartographer
Cartographer可以在ROS和非ROS环境下安装,在ROS下使用比较方便、安装也比较简单,以后也方便与其它模块一起使用,个人推荐在ROS下安装是一个不错的选择。
方法来自于官网,本人实验Ubuntu 16.04 + ROS Kinetic完美运行。 Cartographer官网链接

提示:如果有科学上网的条件请打开科学上网,不然怎么编译不过的都不知道。

前期准备

先安装Ubuntu 16.04 + ROS Kinetic ,如果还没有装ROS Kinetic 就安装一下。ROS Kinetic 安装教程

下载 编译安装

下载需要的包

执行下面命令安装必要的包

sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build

新建一个工作空间

安装完成过后,执行下面的命令为cartographer新建一个工作空间

mkdir cartographer_ws
cd cartographer_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src

安装依赖的ROS包

上面的步骤无误后,接下来安装依赖的ROS包(proto3 )
在执行sudo rosdep init命令的时候之前在安装ROS的时候执行过,这个命令在执行的时候会报错这个不用管。其它命令执行的时候不会报错,如果报错多半是被墙住了,请科学上网。

src/cartographer/scripts/install_proto3.sh
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${
    ROS_DISTRO} -y

安装编译

上面没问题过后开始编译安装。
这个编译命令就是这样,和平时的catkin_make不一样。

catkin_make_isolated --install --use-ninja

接下来等就行了,根据电脑配置的不同时间长短不同。

编译完成过后把环境变量写进.bashrc方便以后运行

echo "source ~/cartographer_ws/devel_isolated/setup.bash" >> ~/.bashrc
source ~/.bashrc

测试

如果上面的步骤的都没有问题那么就安装完成了。接下来测试一下。
下载一个2D演示包测试一下

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${
    HOME}/Downloads/cartographer_paper_deutsches_museum.bag

下载一个3D演示包测试一下

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/with_intensities/b3-2016-04-05-14-14-00.bag
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${
    HOME}/Downloads/b3-2016-04-05-14-14-00.bag

后续再接上实物跑一下。