最新cartographer安装:使用ubuntu20.04 + ROS Noetic

本文使用ubuntu20.04版本操作系统

一、安装ROS Noetic

参考官方链接:

http://wiki.ros.org/cn/noetic/Installation/Ubuntu

参考链接

https://blog.csdn.net/Leslie___Cheung/article/details/109591426

https://blog.csdn.net/weixin_42525601/article/details/112198438

1.更新软件源

打开一个终端(快捷键  ctrl+Alt+t)

输入:

sudo gedit /etc/apt/sources.list

对于官网的源,不可以删掉,在下面添加这些源:

# 阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
#清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
#中科大源
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

添加完后,保存并关闭该文档。

在终端输入:

sudo apt update
sudo apt upgrade

2.安装ROS

使用清华的镜像源:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

设置密钥:

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

更新安装:

sudo apt update
sudo apt install ros-noetic-desktop-full

设置环境变量:

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

 安装完成!!!!

3.测试ROS是否安装成功

下面测试一下ROS是否安装成功:

参考:

https://www.cnblogs.com/linuxAndMcu/p/10564875.html

https://blog.csdn.net/shanpenghui/article/details/89041359

在终端输入:

roscore

要新开启一个终端,运行turtlesim功能包,输入:

rosrun turtlesim turtlesim_node

再新开启一个终端,运行键盘控制,输入:

rosrun turtlesim turtle_teleop_key

如果这些步骤能正常启动和小乌龟可以由键盘正常控制行走,就安装成功了,如下图:

二、安装Cartographer

官方链接:https://google-cartographer-ros.readthedocs.io/en/latest/

参考链接:cartographer安装教程及踩坑实录

1.先安装一些工具:wstool,rosdep和Ninja:

在终端输入:

sudo apt-get update
sudo apt-get install -y python3-wstool python3-rosdep ninja-build stow

2. 加入谷歌服务器域名

由于从google直接下载代码包可能会访问失败,所以需要做如下修改:

sudo gedit /etc/resolv.conf

将原有的nameserver这一行注释,并添加以下两行:

nameserver 8.8.8.8 
nameserver 8.8.4.4 

然后保存并关闭文件。(更改后,浏览器可能无法正常访问网页)

3.下载三个代码包

 创建一个cartographer_ros  的工作空间,名字叫作 ‘catkin_ws‘:

mkdir catkin_ws
cd catkin_ws
wstool init src

由于我按照官方教程在使用wstool工具下载安装包时,使用命令

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

会报错(访问被拒绝)。于是选择分别从git地址clone三个代码包:

  cd src
  git clone https://github.com/googlecartographer/cartographer_ros.git
  git clone https://github.com/googlecartographer/cartographer.git
  git clone https://github.com/ceres-solver/ceres-solver.git

使用以上方法可以下载成功

在src文件夹下面可以看到三个代码包

4.安装依赖项:

sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y

执行完可能会报错,但是这个错误可以忽略不管。

安装abseil-cpp

继续输入以下命令:

src/cartographer/scripts/install_abseil.sh
sudo apt-get remove ros-${ROS_DISTRO}-abseil-cpp

5.编译链接

catkin_make_isolated --install --use-ninja

链接成功后,即可下载cartographer 例子数据包进行测试

6.下载cartographer 例子数据包

2D数据包下载的命令如下:

wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/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

7. launch数据包

直接执行launch语句来run数据包,可能会报错,所以通常加一句:

source install_isolated/setup.bash

launch 2D:

roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag

launch 3D:

roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag

执行成功后,3D效果如下:

8.将服务器域名恢复原状

输入命令:

sudo gedit /etc/resolv.conf

将原来注释掉的nameserver这一行,把注释去掉

将后来加入的

nameserver 8.8.8.8
nameserver 8.8.4.4

注释起来。

这样,浏览器又可以正常访问网页了。


版权声明:本文为yqziqian2原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。