ROS noetic 安装编译Cartographer踩坑记录

简介: ROS noetic 安装编译Cartographer踩坑记录

ROS noetic 安装编译Cartographer踩坑记录

安装编译工具

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

首先来说,python-rosdep已经被废弃了

2018122814580746.png

sudo apt-get install python3-rosdep

不过注意,noetic和python3-rosdep有冲突,所以,你在安装中有可能碰到把ros部分组建给卸掉的情况,这时你只能重装(挺快的)

sudo apt install ros-noetic-desktop-full

创建工作空间

mkdir -p ~/ROS_WS/cartographer
cd ~/ROS_WS/cartographer

用wstool拉源码

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

编辑src目录下的.rosinstall

#鉴于github源码在国内访问较慢,可以使用国内码云仓库,在我的仓库中已经设置为公有
vim ./src/.rosinstall

将文件修改为如下内容:

- git:
    local-name: cartographer
    uri: https://gitee.com/moresweet/cartographer.git
    version: master
- git:
    local-name: cartographer_ros
    uri: https://gitee.com/moresweet/cartographer_ros.git
    version: master
- git:
    local-name: ceress-solver
    uri: https://gitee.com/moresweet/ceres-solver.git

2018122814580746.png

成功后会拉下来三套源码

2018122814580746.png

编译安装

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

可能会出现问题

若rosdep update很慢报错,请参照

https://blog.csdn.net/leida_wt/article/details/115120940?spm=1001.2014.3001.5506

第二条可能会报错

ERROR: Rosdep cannot find all required resources to answer your query
Missing resource ——from-paths
ROS path [0]=/opt/ros/noetic/share/ros
ROS path [1]=/opt/ros/noetic/share

这明显是–from-path参数不认识,猜测是python3-rosdep2有了变动,操作不一样了,并且报错是环境变量中的路径找不到,那么直接catkin_make(不需要编译成功,目的是出现devel目录,将此目录环境导入PATH中,当然也可以选择直接更改环境变量的方式)

catkin_make #不管成功与否,只是为了生成devel目录
source devel/setup.bash #这样本功能包的目录就在终端环境中了

此时再执行rosdep install ——from-paths src ——ignore-src ——rosdistro=${ROS_DISTRO} -y会发现

ERROR: Rosdep cannot find all required resources to answer your query
Missing resource ——from-paths
ROS path [0]=/opt/ros/noetic/share/ros
ROS path [1]=/home/moresweet/ROS_WS/cartograher/src
ROS path [2]=/opt/ros/noetic/share

多了一行

2018122814580746.png

我们直接用rosdep在src中安装就可以了

cd src
rosdep install cartographer

一步一步的按y点回车就好了

安装cartographer的依赖(记住这个地方,后面编译出错,可以会来看看是不是确实的东西,这里有,有就装上)

cd cartographer/scripts/
vim install_proto3.sh  
#修改github项目地址为https://gitee.com/shenyinsong_admin/protobuf.git
vim install_abseil.sh
#修改github项目地址为https://gitee.com/moresweet/abseil-cpp.git
./install_proto3.sh
./install_abseil.sh

然后回到工作空间,用ninja编译

cd ~/ROS_WS/cartographer
catkin_make_isolated ——install ——use-ninja

如果报错

- Found GMock: gmock_main;-lpthread
CMake Error at CMakeLists.txt:32 (find_package):
By not providing "Findabsl.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "absl", but
CMake did not find one.
Could not find a package configuration file provided by "absl" with any of
the following names:
abslConfig.cmake
absl-config.cmake
Add the installation prefix of "absl" to CMAKE_PREFIX_PATH or set
"absl_DIR" to a directory containing one of the above files. If "absl"
provides a separate development package or SDK, be sure it has been
installed.

请确定安装cartographer的依赖那一步install_abseil.sh是否成功安装。

测试运行

下载测试数据集

cd ~
wget 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}/cartographer_paper_deutsches_museum.bag

2018122814580746.png

至此,安装成功

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
ROS入门实践
本课程将基于基础设施即代码 IaC 的理念,介绍阿里云自动化编排服务ROS的概念、功能和使用方式,并通过实际应用场景介绍如何借助ROS实现云资源的自动化部署,使得云上资源部署和运维工作更为高效。
相关文章
|
Ubuntu Java Python
ROS2通讯中间件安装与使用
本文记录主要ROS2的安装、如何JAVA和PYTHON对ROS2消息的订阅和发布。
|
6月前
|
Ubuntu 机器人 Shell
在Jetson TX2的Ubuntu18.04系统中安装ROS的教程
所有这些步骤并不复杂,但确实需要仔细一点。如果遇到问题,不要灰心,问题是解决问题的开始。保持耐心,细心阅读错误信息,通常情况下,问题的答案就藏在其中。祝ROS旅程顺利!
210 18
|
Linux 编译器 开发工具
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
662 2
|
Linux 编译器 C语言
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
【Linux快速入门(一)】Linux与ROS学习之编译基础(gcc编译)
271 2
|
存储 Ubuntu 安全
ROS2教程02 ROS2的安装、配置和测试
本文是关于ROS2(机器人操作系统2)的安装、配置和测试的教程。内容包括使用一键安装脚本快速安装ROS2 Humble版,手动安装步骤,设置语言环境、添加软件源、更新软件包、安装ROS2桌面版和开发工具,配置ROS2环境,创建工作空间,配置ROS2领域以避免网络冲突,以及如何删除ROS2。此外,还包括了测试ROS2是否安装成功的两个案例:基本的Topic通信测试和使用Turtlesim演示程序。适用于Ubuntu 22.04操作系统。
2603 1
ROS2教程02 ROS2的安装、配置和测试
|
传感器 存储 Ubuntu
Azure Kinect DK + ROS1 Noetic使用教程
本文是Azure Kinect DK在Ubuntu20.04下配合ROS1 Noetic使用的教程,内容包括一键安装脚本、硬件介绍、安装SDK相关软件包、设置Udev规则、SDK基本测试、DK ROS基本测试,以及存在的一些重要缺陷和相关参考文献。教程详细指导了如何配置和使用Azure Kinect DK,提供了安装步骤和解决常见问题的方法。
1078 1
Azure Kinect DK + ROS1 Noetic使用教程
|
Linux 开发工具
【Linux快速入门(二)】Linux与ROS学习之编译基础(make编译)
【Linux快速入门(二)】Linux与ROS学习之编译基础(make编译)
383 0
|
Ubuntu Shell C++
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
993 1
|
机器人 Shell 开发者
ROS2教程08 ROS2的功能包、依赖管理、工作空间配置与编译
这篇文章是关于ROS2(Robot Operating System 2)中功能包、依赖管理、工作空间配置和编译的教程,涵盖了ROS2工作空间的概念、如何获取和安装功能包的依赖、构建工作空间的步骤,以及如何创建和管理ROS2功能包,包括使用命令行工具对功能包进行操作的方法。
2247 0
ROS2教程08 ROS2的功能包、依赖管理、工作空间配置与编译
|
Ubuntu Apache
Ubuntu20.04下一键安装ROS1 Noetic
本文提供了一个简化在Ubuntu 20.04系统上安装ROS1 Noetic过程的一键安装脚本工具,该脚本通过优化配置和使用清华大学镜像源,加速了国内用户的下载速度,并自动完成环境设置和依赖安装,同时提供了详细的使用说明和源码。
1019 0
Ubuntu20.04下一键安装ROS1 Noetic

推荐镜像

更多
  • ros