嵌入式实践教程--cartographer2020在 ubuntu18.04编译

简介: 嵌入式实践教程--cartographer2020在 ubuntu18.04编译

步骤一,安装所有的依赖项:



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-kinetic-tf2-eigen libatlas-base-dev libsuitesparse-dev liblapack-dev


二:下载abseil



网址:https://github.com/abseil/abseil-cpp.

安装abseil的静态库:

mkdir build && cd build
cmake ..
make
sudo make install


安装abseil的动态库:可以将之前的build文件删掉,重新建立

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


步骤三,安装ceres-solver-master:



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


步骤四,cartographer(安装在根目录下):



git clone https://github.com/googlecartographer/cartographer.git
cd cartographer
mkdir build
cd build
cmake .. -G Ninja
ninja
ninja test
sudo ninja 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:



#初始化工作空间,我之前有一个工作空间为catkin_ws,我的命名为google_ws
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
#安装cartographer_ros
cd ~/catkin_ws/src
git clone https://github.com/hitcm/cartographer_ros.git
cd ~/catkin_ws
catkin_make


更改cartographer_ros的CMakeList.txt,有2处cartographer_ros 和 cartographer_rviz的改法均一致

find_package(Abseil REQUIRED) --> find_package(absl REQUIRED)


然后重新编译即可。


本实验经过验证,可行通过

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
23小时前
|
Ubuntu C语言
在Ubuntu下使用makefile编译C语言工程
在Ubuntu下使用makefile编译C语言工程
|
23小时前
|
Ubuntu 编译器 C++
Ubuntu系统下编译OpenCV4.8源码
本文档介绍了在Ubuntu系统下编译和安装OpenCV4.8的简单步骤:首先,通过wget命令下载源码包,然后解压;接着,安装必要的编译器和第三方库支持;最后,在源码目录创建build文件夹,执行cmake和make安装。整个过程包括下载、安装依赖和编译安装三个主要步骤。
18 6
|
23小时前
|
Ubuntu Android开发
Android Froyo基于32 bit ubuntu 10.10编译问题
Android Froyo基于32 bit ubuntu 10.10编译问题
|
23小时前
|
Ubuntu 固态存储 算法框架/工具
ubuntu下编译ssd-caffe遇到的问题汇总
ubuntu下编译ssd-caffe遇到的问题汇总
|
23小时前
|
Ubuntu
ubuntu下使用ndk编译libevnet
ubuntu下使用ndk编译libevnet
11 1
|
23小时前
|
Ubuntu
ubuntu编译rk3588异常
ubuntu编译rk3588异常
14 0
|
23小时前
|
Ubuntu 应用服务中间件 nginx
ubuntu编译安装nginx及安装nginx_upstream_check_module模块
以上是编译安装Nginx和安装 `nginx_upstream_check_module`模块的基本步骤。根据你的需求和环境,你可能需要进一步配置Nginx以满足特定的要求。
23 3
|
23小时前
|
并行计算 Ubuntu Linux
Ubuntu 20.04 Anaconda的简单使用以及虚拟环境中编译使用 OpenCV 4.11源码
Ubuntu 20.04 Anaconda的简单使用以及虚拟环境中编译使用 OpenCV 4.11源码
161 0
|
23小时前
|
Ubuntu 计算机视觉 C++
Ubuntu 20.04 编译 Opencv 4.11,详细步骤(带图)及报错解决,我的踩坑之旅~
Ubuntu 20.04 编译 Opencv 4.11,详细步骤(带图)及报错解决,我的踩坑之旅~
731 0
|
23小时前
|
Ubuntu C++
Ubuntu20.04LTS+uhd3.15+gnuradio3.8.1源码编译及安装
Ubuntu20.04LTS+uhd3.15+gnuradio3.8.1源码编译及安装
27 0