目录

1.1 安装必要的依赖包

1.2 protobuf安装

1.3 ceres 1.13.0安装

1.4 abseil 安装

1.5 carographer 安装

特别的错误解决:

1.6 carographer 测试


目前机器人使用中需要进行SLAM建图,因为移动机器人想要实现自主行走,核心在于实现自主定位导航,在自主定位导航技术中会涉及到定位、建图、路径规划等问题,而地图构建的好坏将直接影响机器人的行走路径。机器人想要到达某个目的地,需要和人类绘制地图一样,描述环境、认识环境的过程主要就是依靠地图。

        而目前建图方式有激光雷达、视觉建图、还有深度学习等。今天介绍的cartographer就属于激光slam。主流的激光SLAM算法有hector、gmapping、karto、cartographer等。

        cartographer是google开发的实时室内SLAM项目,cartographer采用基于google自家开发的ceres非线性优化的方法,cartographer的亮点在于代码规范与工程化,非常适合于商业应用和再开发。并且cartographer基于submap子图构建全局地图的思想,能有效的避免建图过程中环境中移动物体的干扰。并且cartographer支持多传感器数据(odometry、IMU、LaserScan等)建图,支持2D_SLAM和3D_SLAM建图。

        cartographer算法并没有给人惊艳的感觉,但该算法的主要目标是实现低计算资源消耗,达到实时SLAM的目的,所以很适合嵌入式端的使用。

这篇文章是介绍cartographer在EHub_tx1_tx2_E100载板,TX1核心模块环境(Ubuntu18.04)下进行源码下载进行demo测试的教程,本文的前提条件是你的TX1里已经安装了ROS版本:Melodic。

将cartographer_ws.tgz 拷贝到系统中,并切解压后,我已经将所有难下载的关联依赖包,全部下载打包到了一起,方便后续安装。

cartographer-ws-机器学习文档类资源-CSDN下载 可以到这个对应位置下载。

将文件拷贝到系统内后,开始安装支持包:

cd /home/nvidia/Workspace/cartographer_ws/src/cartographer/scripts

1.1 安装必要的依赖包

#安装ninja-build
sudo apt-get install -y    ninja-build
​#安装其它
sudo apt-get install -y \cmake \g++ \git \google-mock \libboost-all-dev \libcairo2-dev \libeigen3-dev \libgflags-dev \libgoogle-glog-dev \liblua5.2-dev \libprotobuf-dev \libsuitesparse-dev \libwebp-dev \ninja-build \protobuf-compiler \python-sphinx
​#安装stow
sudo apt-get install -y   stow

1.2 protobuf安装

#进入脚本目录
cd /home/nvidia/Workspace/cartographer_ws/src/cartographer/scripts
#脚本自动安装proto3
./install_proto3.sh
#查看版本验证
protoc --version

install_proto3.sh 内容

set -o errexit
set -o verbose
​
VERSION="v3.4.1"
​
# Build and install proto3.
#git clone https://github.com/google/protobuf.git
#git clone https://gitee.com/nfengjing/protobuf.git
cd protobuf
#cd protobuf-3.4.0
git checkout tags/${VERSION}
mkdir build
cd build
cmake -G Ninja \-DCMAKE_POSITION_INDEPENDENT_CODE=ON \-DCMAKE_BUILD_TYPE=Release \-Dprotobuf_BUILD_TESTS=OFF \../cmake
ninja
sudo ninja install

等待编译安装结束,后验证

1.3 ceres 1.13.0安装

#进入脚本目录
cd  /home/nvidia/Workspace/cartographer_ws/src/cartographer/scripts
#脚本自动化编译安装
./install_ceres.sh

等待编译结束

install_ceres.sh 内容

set -o errexit
set -o verbose
​
VERSION="1.13.0"
​
# Build and install Ceres.
#git clone https://ceres-solver.googlesource.com/ceres-solver
cd ceres-solver-1.13.0
#git checkout tags/${VERSION}
#mkdir build
cd build
cmake .. -G Ninja -DCXX11=ON
ninja
CTEST_OUTPUT_ON_FAILURE=1 ninja test
sudo ninja install

1.4 abseil 安装

​
​
cd  /home/nvidia/Workspace/cartographer_ws/src/cartographer/scripts
#脚本自动化编译安装
./install_abseil.sh

install_abseil.sh 内容

set -o errexit
set -o verbose
​
#git clone https://github.com/abseil/abseil-cpp.git
cd abseil-cpp
#git checkout d902eb869bcfacc1bad14933ed9af4bed006d481
mkdir build
cd build
cmake -G Ninja \-DCMAKE_BUILD_TYPE=Release \-DCMAKE_POSITION_INDEPENDENT_CODE=ON \-DCMAKE_INSTALL_PREFIX=/usr/local/stow/absl \..
ninja
sudo ninja install
cd /usr/local/stow
sudo stow absl

1.5 carographer 安装

#进入工作目录
cd /home/nvidia/Workspace/cartographer_ws
#编译
catkin_make_isolated --install --use-ninja
#source
source install_isolated/setup.bash

编译结束。

特别的错误解决:

c++: internal compiler error: Segmentation fault (program cc1plus)
Please submit a full bug report

有时候系统编译一些程序会报上面的错误,但是未必是内存不足,也可能是系统默认stack 和打开文件句柄个数不足导致的

#查看系统本身设置限制参数
nvidia@nvidia-desktop:~$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 13930
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 1024
cpu time               (seconds, -t) unlimited
max user processes              (-u) 13930
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

修改open files 和stack size

sudo gedit /etc/security/limits.conf
增加
nvidia hard nofile 65535
nvidia soft nofile 65535
root hard nofile 65535
root soft nofile 65535
ubuntu hard nofile 65535
ubuntu soft nofile 65535
修改
ubuntu hard stack 2024
ubuntu soft stack 2024
nvidia hard stack 2024
nvidia soft stack 2024

保存退出,后需要重启系统生效

#重启
sudo reboot
​
#重启后查看配置
ulimit -a
​
nvidia@nvidia-desktop:~$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 13930
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65535
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 2024
cpu time               (seconds, -t) unlimited
max user processes              (-u) 13930
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

1.6 carographer 测试

测试推荐使用nomachine切换有桌面系统去验证。

cd /home/nvidia/Workspace/cartographer_ws
source install_isolated/setup.bash
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=/home/nvidia/Workspace/cartographer_ws/bags/cartographer_paper_deutsches_museum.bag

EHub_tx1_tx2_E100 Cartographer 完美部署安装相关推荐

  1. python3虚拟环境使用教程_python虚拟环境完美部署教程

    一.前言 预处理 建议仔细看完本文章之后在进行操作,避免失误,本环境可以用于生产环境,有利于生产环境python之间的环境隔离,互相不会产生环境冲突:pyenv和pyenv-virtualenv可以完 ...

  2. OpenStack Redhat部署安装详解

    [资料] 社区OpenStack Queens版本部署安装详解 KeyStone配置详细解释 openstack之keystone部署 照着官网来安装openstack pike之创建并启动insta ...

  3. 十四、MDT 2013 Update 1批量部署-微软WDS/PXE部署及其部署安装实战

    十四.MDT 2013 Update 1批量部署-微软WDS/PXE部署及其部署安装实战 微软WDS是服务器操作系统的部署服务,可以利用PXE网络环境实现部署服务,MDT 2013 UPDATE 1可 ...

  4. Vmware Vcenter 5.1 部署安装过程 part 4 vmware vcenter 安装步骤

    Vmware  Vcenter 5.1  部署安装过程 part 4 vmware vcenter  安装步骤 作者:黄鑫      时间:2013-8-14    QQ:153890227(欢迎交流 ...

  5. LVS负载均衡之ipvsadm部署安装(安装篇)

    在上一节我们讲到了关于lvs的工作原理,本节我们将会讲到关于lvs部署安装的相关细节,比如安装前的注意事项等等: Lvs是linux virtual server的缩写.虚拟的服务器.可以在Linux ...

  6. SharePoint Server 2016 部署安装(三)—— 安装SharePoint Server

    上一篇文章我们说到了安装SharePoint Server 2016 之前所需要做的准备工作.那么今天就来直接讲讲SharePoint Server的部署安装了. 由于我们的测试环境是单台的 Sing ...

  7. 如何一键部署php应用,我们怎样来使用宝塔面板一键部署安装博客程序ZBlogPHP

    通常,当我们安装ZBlogPHP时,我们需要提前创建一个数据库,然后下载并上传ZBlogPHP安装包,然后按照步骤逐步安装它.如果您的主机/服务器上安装了Pagoda面板,则可以通过"宝塔一 ...

  8. zabbix_agent自动部署安装

    一.先编译个zabbix_zgent 1.下载安装zabbix wget "http://sourceforge.net/projects/zabbix/files/ZABBIX%20Lat ...

  9. smokeping部署安装

    smokeping部署安装 部署情况: 服务器IP:192.168.10.18 smokeping部署在/var/www/html/smokeping目录 smokeping部分命令: smokepi ...

  10. Exchange Server 2010部署安装

    Exchange Server 2010部署安装之一 最近刚学习了一下Exchange Server 2010感觉特别酷,而且操作很方便,为了巩固知识,准备将各个功能进行测试,并作一个记录! 理论性的 ...

最新文章

  1. 实战 | 哪个瞬间让你突然觉得CV技术真有用?
  2. 西北农林科技大学与陕西师范大学计算机,这所大学有点“惨”,本身是“双一流”高校,却被说成野鸡大学...
  3. BINDER SECCTX PATCH ANALYSIS
  4. 利用鼠标点击绘制出三棱锥
  5. 【Linux】一步一步学Linux——newgrp命令(91)
  6. [CQOI2009]叶子的染色
  7. 行业发展的大势所趋 嵌入式机器视觉系统前景一片大好
  8. 【编译原理】:NFA转变为DFA的子集构造法
  9. 利用display属性写的遮罩层
  10. Linux常用快捷键命令
  11. Arduino驱动315MHZ无线模块
  12. 2020年阴历三月初九投资理财~从牛人那里吸取能量,让自己更加强大
  13. Gallery模块管理系统相册,支持从相册中选择图片或视频文件、保存图片或视频文件到相册等功能。通过plus.gallery获取相册管理对象
  14. 什么是http协议?
  15. 保利威视教程:什么是HLS?
  16. 隧道技术_复杂地质的隧道施工技术(下)
  17. roboone机器人_ROBOONE机器人总部地址在哪里?
  18. java计算机毕业设计员工婚恋交友平台源码+数据库+系统+lw文档+部署
  19. 基本的Dos命令以及Windows常用命令
  20. 麦克风声音太小别人听不到怎么办

热门文章

  1. 用批处理的方式压缩文件
  2. 服务器网页内容修改了不变动,修改服务器网页
  3. [NOI Online 2021 入门组] 切蛋糕
  4. 微信html下拉刷新页面,微信公众号内的页面的下拉刷新,兼容手机端和PC端
  5. Oracle range分区values less than代表的是小于
  6. VirtualBox安装增强工具时:Unable to install guest additions: unknown filesystem type 'iso9660'
  7. 1分钟链圈 | 凤凰网推出区块链产品“凤凰蛋”;阿里否认涉足区块链和发币,称麻吉宝已下线;Google朱会灿,AI回归
  8. SIM900A GPRS GSM 基础知识
  9. 火箭发射:点击率预估界的“神算子”是如何炼成的?...
  10. 王老吉为何败给加多宝?