cartographer环境最新配置(2021.11.11)

举报
Hermit_Rabbit 发表于 2022/10/21 22:15:43 2022/10/21
【摘要】 0. 前言最近群里有些老哥在问cartographer配置的相关问题,将我以前自己记录的文件测试后发现竟然已经失效,其原因在于cartographer官网对程序又进行了一次升级,以前的部分操作已经无法适用,这里在此记录一下。 1. 环境配置(melodic) 安装依赖包sudo apt-get updatesudo apt-get install -y google-mock libboo...

0. 前言

最近群里有些老哥在问cartographer配置的相关问题,将我以前自己记录的文件测试后发现竟然已经失效,其原因在于cartographer官网对程序又进行了一次升级,以前的部分操作已经无法适用,这里在此记录一下。

1. 环境配置(melodic)

安装依赖包

sudo apt-get update

sudo apt-get install -y google-mock libboost-all-dev  libeigen3-dev libgflags-dev libgoogle-glog-dev liblua5.2-dev libprotobuf-dev  libsuitesparse-dev libwebp-dev ninja-build protobuf-compiler python-sphinx  ros-melodic-tf2-eigen libatlas-base-dev libsuitesparse-dev liblapack-dev libpcl-dev pcl-tools automake

首先安装ceres solver

cd ~/Download
git clone https://github.com/Tengyun-Mo/ceres-solver.git
cd ceres-solver
mkdir build
cd build
cmake ..
make -j4
sudo make install

(默认路径为:usr/local/include

安装protobuf 3.0

git clone https://github.com/google/protobuf.git

cd protobuf

git checkout v3.6.1

mkdir build

./autogen.sh

./configure

make -j2

sudo make install

sudo ldconfig

下面是作者在安装protobuf中遇到的一个问题
在这里插入图片描述

安装 cartographer

git clone https://github.com/googlecartographer/cartographer.git

cd cartographer

mkdir build

cd build

cmake ..

make -j4

sudo make install

如果出现absl找不到的情况:

git clone https://github.com/abseil/abseil-cppmkdir .git

打开abseil-cpp包里的cmakelists添加c++11支持

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -std=c++11")

build && cd build
cmake .. -DBUILD_SHARED_LIBS=ON
make
sudo make install

更改cartographer的CMakeList.txt文件(2处)和cartographer-config.cmake.in文件(1处)

CMakeList.txt 第1处:
find_package(Abseil REQUIRED) --> find_package(absl REQUIRED)
CMakeList.txt 第2处:#默认的库文件是 standalone_absl
target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY}
absl::base
absl::synchronization
absl::strings
absl::flat_hash_map
absl::numeric
absl::flags)
然后重新编译即可
cartographer-config.cmake.in 1处:
find_package(Abseil ${QUIET_OR_REQUIRED_OPTION}) Abseil 改为 absl

安装cartographer_ros

mkdir -p ~/catkin_ws/src

cd ~/catkin_ws/src

git clone https://github.com/googlecartographer/cartographer_ros.git

cartographer_ros的CMakeList.txt,2处

cartographer_ros 和 cartographer_rviz的改法均一致:
find_package(Abseil REQUIRED) --> find_package(absl REQUIRED)
然后重新编译即可。

catkin_make

如果出现未定义应用,请注意Ceres和prtobuf 版本,并在Cmakelists里面修改

测试

下载数据包 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

在这里插入图片描述

…详情请参照古月居

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。