ubuntu20.04 ros-neotic 安装cartographer

前提:首先完成ubuntu20.04 ros-neotic的安装

参考官方安装过程

安装步骤

1、ROS Noetic版本使用如下命令安装

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

2、创建工作空间catkin_ws

mkdir catkin_ws
cd catkin_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src

此步骤中也可以收到github下载对应功能包,放到catkin_ws/src下
ceres-solver
cartographer
cartographer_ros

3、安装cartographer_ros 依赖

sudo rosdep init  //已经完成ros安装并执行过改行可以不执行该行
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y

问题一:

sudo rosdep init出现当前错误时

ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

以下方法摘自Ubuntu20.04-ROS-Noetic安装教程及python兼容性解决办法

3.1 方案1(自测可以解决)

a. 安装python依赖

sudo apt-get install python3-rosdep
sudo apt-get install python3-rosinstall

b. 下载依赖包

cd ~
git clone https://github.com/ros/rosdistro.git

c.修改20-default.list(xxx改为自己的用户名)

sudo gedit /home/xxx/rosdistro/rosdep/sources.list.d/20-default.list

替换为:

# os-specific listings first
yaml file:///home/xxx/rosdistro/rosdep/osx-homebrew.yaml osx

# generic
yaml file:///home/xxx/rosdistro/rosdep/base.yaml
yaml file:///home/xxx/rosdistro/rosdep/python.yaml
yaml file:///home/xxx/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/xxx/rosdistro/releases/fuerte.yaml fuerte

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

d.修改sources_list.py文件

sudo gedit /usr/lib/python3/dist-packages/rosdep2/sources_list.py

将DEFAULT_SOURCES_LIST_URL = ‘https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list’
修改为:

DEFAULT_SOURCES_LIST_URL = 'file:///home/xxx/rosdistro/rosdep/sources.list.d/20-default.list'

e. 修改__init__.py文件

sudo gedit /usr/lib/python3/dist-packages/rosdistro/__init__.py

将DEFAULT_INDEX_URL = ‘https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml’
修改为:

DEFAULT_INDEX_URL = 'file:///home/xxx/rosdistro/index-v4.yaml'

f. 修改rep3.py 文件

sudo gedit /usr/lib/python3/dist-packages/rosdep2/rep3.py

将REP3_TARGETS_URL = ‘https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml’
修改为:

REP3_TARGETS_URL = 'file:///home/xxx/rosdistro/releases/targets.yaml'

g. 完成依赖安装

sudo rosdep init
rosdep update

3.2 方案2(未测试)

a.安装rosdepc

sudo apt-get install python3-pip
pip install rosdepc

b. pip加速

cd ~
mkdir .pip
sudo vim ~/.pip/pip.conf

粘贴以下内容:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/ 
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn
重启电脑sudo reboot,重启才能加载刚刚的rosdepc
使用rosdepc代替rosdep完成依赖安装,以后每次使用rosdep都替换
sudo rosdepc init
rosdepc update

问题二:

使用`rosdep install --from-paths src --ignore-src --rosdistro=noetic -y
出现如下错误提示:

ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
cartographer: [libabsl-dev] defined as "not available" for OS version [focal]

解决方案摘自ROS(Noetic) Cartographer 安装一遍过参考
分析:Ubuntu 20.04 系统不支持包 libabsl-dev
修正:在文件 ws_carto/src/cartographer/package.xml 下修改,注释掉 libabsl-dev 并重新执行指令。

  <depend>libboost-iostreams-dev</depend>
  <depend>eigen</depend>
  <!-- <depend>libabsl-dev</depend> -->
  <depend>libcairo2-dev</depend>
  <depend>libceres-dev</depend>
  <depend>libgflags-dev</depend>
  <depend>libgoogle-glog-dev</depend>
  <depend>lua5.2-dev</depend>
  <depend>protobuf-dev</depend>

4、安装abseil-cpp 和protoc库

src/cartographer/scripts/install_abseil.sh
src/cartographer/scripts/install_proto3.sh

5、 编译安装

catkin_make_isolated --install --use-ninja

编译过程遇到问题可以查看cartographer问题处理

6、配置环境变量

cd catkin_ws
source install_isolated/setup.bash 
  • 33
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值