cartographer-(0)-ubuntu(20.04)-环境安装

1.安装 ROS wiki.ros.org


1.1修改镜像源:





     到网站上找与操作系统相匹配的镜像源
     ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
  

  

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse
#1.root 用户
sudo passwd root
su - root#2.root 用户 修改下载源cd /etc/apt/cp sources.list  sources-ini.listvim /etc/apt/sources.listapt-get  updateapt-get upgradeapt install vim

 
1. 2.安装对应版本的ros




 

 

2.安装 cartographer

2.1先安装FTP服务器

#1.安装ftp服务器apt install vsftpdsystemctl status vsftpdcd /etc/vsftpd.confvim /etc/vsftpd.conflocal_enables=YESwrite_enable=YESanonymous_enable=YESanon_mkdir_write_enable=YES   //允许匿名用户在FTP上创建目录anon_upload_enable=YES  //允许匿名用户在FTP服务器上上传文件anon_other_write_enable=YES  //开启匿名用户的其他写权限

 
  2.2 安装 cartographer依赖库
 

#1.安装ROS
sudo apt install ros-melodic-desktop-full
#2.初始化rosdep
sudo rosdep init
apt install python3-rosdep2
rosdep update
#3.设置环境变量echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrcsource ~/.bashrc
#4.安装rosinstallapt install python3-rosdep2apt install python-rosinstall python-rosinstall-generator python-wstool build-essential复制文件到目录: cartographer_install
chmod +x auto-carto-build.sh
./auto-carto-build.sh 

2.3 安装编写的运行脚本 ceres-solver ,protobuf,cartographer

2.3.1 运行环境
 


/home/tang/cartographer/cartographer_install
安装脚本的编写参考:
Cartographer — Cartographer documentation

#!/bin/bash#1 Install the required libraries that are available as debs.
# sudo apt-get update
sudo apt-get install \clang \cmake \g++ \git \google-mock \libboost-all-dev \libcairo2-dev \libcurl4-openssl-dev \libeigen3-dev \libgflags-dev \libgoogle-glog-dev \liblua5.2-dev \libsuitesparse-dev \lsb-release \ninja-build \stow \python3-wstool \python3-rosdep \python3-sphinx \libatlas-base-dev#2 Build and install abseil-cpp
set -o errexit
set -o verbosecd 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#3 Build and install Ceres.
cd -
cd ../../ceres-solver
mkdir build
cd build
cmake .. -G Ninja -DCXX11=ON
ninja
#CTEST_OUTPUT_ON_FAILURE=1 ninja test
sudo ninja install#4 Build and install proto3.
cd ../../protobuf
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#5 Build and install Cartographer.
cd ../../cartographer
mkdir build
cd build
cmake .. -G Ninja
ninja
#CTEST_OUTPUT_ON_FAILURE=1 ninja test
sudo ninja install

 出现:
   fatal: detected dubious ownership in repository
原因:权限的问题。
解决方法:
git config --global --add safe.directory /home/tang/cartographer/cartographer_install/abseil-cpp
 

2.3.2源码编译 


目录:/home/tang/carto_ws/cartographer_detailed_comments_ws/

下载注释的代码:
https://github.com/xiangli0608/cartographer_detailed_comments_ws
git clone https://github.com/xiangli0608/cartographer_detailed_comments_ws.git

 

#1.编译源码 git 下在
cd /home/tang/
mkdir carto_ws
cd carto_ws
git clone https://github.com/xiangli0608/cartographer_detailed_comments_ws.git#更新git
git pull origin master#2.编译源码
./catkin_make.sh#3.vim ~/.bashrc 
source /home/tang/carto_ws/cartographer_detailed_comments_ws/install_isolated/setup.bash#4. 4个包
/home/tang/carto_ws/cartographer_detailed_comments_ws/src/cartographer
/home/tang/carto_ws/cartographer_detailed_comments_ws/src/cartographer_ros/cartographer_ros
/home/tang/carto_ws/cartographer_detailed_comments_ws/src/cartographer_ros/cartographer_ros_msgs
/home/tang/carto_ws/cartographer_detailed_comments_ws/src/cartographer_ros/cartographer_rviz

 error,当出现找不到rosbag等包时,不要修改cmake文件,安装各种包即可。

sudo apt install ros-noetic-ros-rosbag
sudo apt install ros-noetic-turtle-tf2
sudo apt install ros-noetic-tf2-tools 
sudo apt install ros-noetic-urdf-tutorial

2.到目录下执行脚本编译


到目录下直接执行catkin_make不行,会报错

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/150320.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Echarts 实现X轴多维效果

效果图 代码参考地址 https://download.csdn.net/download/Frazier1995/88403104

Android Studio 是如何和我们的手机共享剪贴板的

背景 近期完成了target33的项目适配升级,随着AGP和gradle的版本升级,万年老版本Android Studio(后文简称AS)也顺便升级到了最新版Android Studio Giraffe | 2022.3.1,除了新UI外,最让我好奇的是这次的Running Devices功能(官方也称为Device mirroring)可以控制真机了. 按照操…

东哥录了一些课程,你能想到应该都有了

哈喽,大家好,我是hahaCoderX。 我在B站录制了《快速入门C语言程序设计》、《Python3网络爬虫开发实战》、《机器学习实战》以及我的个人图书案例讲解指南等系列课程,目前正在陆续上传开放中,欢迎大家看我的视频,一块学…

第十课 贪心

文章目录 第十课 贪心lc 322.零钱兑换--中等题目描述代码展示 lc860.柠檬水找零--简单题目描述代码展示 lc455.分发饼干--简单题目描述代码展示 lc122.买卖股票的最佳时机II--中等题目描述代码展示 lc45.跳跃游戏II--中等题目描述代码展示 lc1665.完成所有任务的最少初始能量--…

基于SSM的商品营销系统计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

ARM汇编学习录 1 -基础概念

指令集概述 现阶段有四个不同的指令集 名称概述ARM3232位指令集Thumb16位指令集,ARM32子集,提供高密度低功耗Thumb232位指令集,ARMv6T2 引入.是thumb超集ARM6464位指令集 note: ARM某一个时刻只能运行单独ARM指令集或者Thumb指令,通过CPSR的T标志位决定. 如何当前…

熔断、限流、降级 —— SpringCloud Alibaba Sentinel

Sentinel 简介 Sentinel 是阿里中间件团队开源的,面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性 Sentinel 提供了两个服务组件…

AAU-net: 用于超声图像中乳腺病变分割的自适应注意力U-Net

AAU-net 期刊分析摘要贡献方法整体框架1.Hybrid Adaptive Attention Module2.Channel Self-Attention Block3.Spatial Self-Attention Block![在这里插入图片描述](https://img-blog.csdnimg.cn/629948402dc647d2b61817db3cd203f1.png) 实验1.消融实验1.1 Architecture Ablatio…

《protobuf》基础语法3

文章目录 默认值更新规则保留字段未知字段 默认值 在反序列化时,若被反序列化的二进制序列中不包含某个字段,则在反序列化时,就会设置对应默认值。不同的类型默认值不同: 类型默认值字符串“”布尔型false数值类型0枚举型0设置了…

基于风驱动优化的BP神经网络(分类应用) - 附代码

基于风驱动优化的BP神经网络(分类应用) - 附代码 文章目录 基于风驱动优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.风驱动优化BP神经网络3.1 BP神经网络参数设置3.2 风驱动算法应用 4.测试结果&#x…

Zookeeper经典应用场景实战(一)

文章目录 1、Zookeeper Java客户端实战1.1、 Zookeeper 原生Java客户端使用1.2、 Curator开源客户端使用 2、 Zookeeper在分布式命名服务中的实战2.1、 分布式API目录2.2、 分布式节点的命名2.3、 分布式的ID生成器 3、Zookeeper实现分布式队列3.1、 设计思路3.2、 使用Apache …

Springboot学生成绩管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 学生成绩管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统 具有完整的源代码和数据库&…

Android:实现手机前后摄像头预览同开

效果展示 一.概述 本博文讲解如何实现手机前后两颗摄像头同时预览并显示 我之前博文《OpenGLES:GLSurfaceView实现Android Camera预览》对单颗摄像头预览做过详细讲解,而前后双摄实现原理其实也并不复杂,粗糙点说就是把单摄像头预览流程写两…

TikTok环保运动:短视频平台上的可持续发展

在当今社交媒体的繁荣时代,TikTok已经成为全球范围内年轻一代最喜爱的短视频分享平台之一。 数以亿计的用户在这里分享他们的创造力、生活片段和喜好。然而,随着全球环保意识的不断增强,TikTok也成为了一个独特的环境,倡导可持续…

Node-RED系列教程-25node-red获取天气

安装节点:node-red-contrib-weather 节点图标如下: 使用说明:node-red-contrib-weather (node) - Node-RED 流程图中填写经度和纬度即可。 演示: json内容: {

【重磅】这就是元宇宙碰撞的后果

筹备了一年多——朋友们,它终于来了! 我们刚刚宣布官方 Aavegotchi x Sandbox 在 X 上共享元宇宙体验。 10 月 25 日在 The Sandbox 上线,有两份可领取的空投。 Gotchi 游戏即将爆发。你们兴奋吗?

氟化钡镜片

氟化钡晶体具有良好的光学透过性能,在0.15μm-14.5μm的光谱范围内,可以用作紫外和红外光学窗口。同时,又具有优良的闪烁性能,成为高能物理与核物理、核医学等领域中重要的晶体材料。 特此记录 anlog 2023年10月7日

Linux 逻辑卷

目录 一、认识 1、概念 2、术语: 1)物理存储设备 2)物理卷 3)卷组 4)PE物理区域 5)逻辑卷 6)LE逻辑区域 7)VGDA卷组描述符区域 二、部署逻辑卷 1、物理卷管理 2、卷组…

防御安全第五次作业

1. 什么是数据认证,有什么作用,有哪些实现的技术手段? 数据认证是指保证数据的真实性、完整性和可信度,以确保数据不被篡改或伪造。其作用包括但不限于: 保护关键数据不被恶意篡改或损坏 提供数据来源的可靠性和安全性…

E: Unable to locate package XXX

问题描述: 当使用 apt-get install XXX 安装包时,出现错误 E: Unable to locate package XXX 解决方法: apt-get update apt-get install XXX