Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2

2023-05-16

文章目录

  • 1 前言
  • 2 安装ROS
    • 2.1 准备工作
    • 2.2 ROS Kinetic Kame 的安装和配置
    • 2.3 配置环境
    • 2.4 测试
  • 3 配置ORB-SLAM2运行环境
    • 3.1 创建ROS工作空间
    • 3.2 安装Pangolin
  • 4 安装ORB-SLAM2

1 前言

这几天新开的一个项目,要在TX2上安装ORB-SLAM2,emmmmm之前没接触过啊,怎么办呢……
找了很久的文章,终于在两篇前辈的文章的指导下安装成功了,于是记录一下安装过程中的一些问题和修改方法。让后人踩着我过这个大坑。
前辈的文章:

https://blog.csdn.net/radiantjeral/article/details/82193370 Ubuntu16.04下配置ORB-SLAM2
https://blog.csdn.net/weixin_38593194/article/details/87795893 Jetson TX2 运行ORB-SLAM2 ros Kinect V1

2 安装ROS

2.1 准备工作

(1)安装工具
在tx2上缺少很多工具,后续的安装工作需要这些东西,所以就去乖乖下好,不然到时候还要重新下载。需要下载的有:vim、cmake、git、gcc、g++。

sudo apt-get install vim git cmake -y
sudo apt-get install gcc g++ -y

(2)更新镜像源
由于ARM源下载过慢,等待时间都可以打好多把游戏了,所以可以换做中科大的源或者清华镜像源(清华镜像源在下文给出)。

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list

在最后加上:

deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main restricted universe multiverse 
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse 
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main restricted universe multiverse 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse 
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse

2.2 ROS Kinetic Kame 的安装和配置

(1)设置计算机以接受packages.ros.org中的软件
添加ROS官方软件源:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116

(2)设置密钥

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

获取密钥
(3)安装
先要更新Debian源,当然可能会报错找不到等等,我觉得可以忽视不管(就是没管直接跳过去了)

sudo apt-get update

更新Debian源
安装出错
安装出错](https://img-blog.csdnimg.cn/20190618042044868.png)
ROS官网上提供了四个版本去安装,我们这里直接下载完整版。

sudo apt-get install ros-kinetic-desktop-full

安装ros
其他版本指令为:

#粘贴时请忽略#后面的字,否则会嘿嘿嘿
sudo apt-get install ros-kinetic-desktop  #desktop-桌面版,
sudo apt-get install ros-kinetic-ros-base #base-基础版
sudo apt-get install ros-kinetic-PACKAGE  #PACKAGE-包名,自定义版

之后漫长的等待,而且还要时刻祈祷不要出现ERROR和WARNNING(WARNNING其实还好,ERROR很明显,在前面会出现E:后面会加上错误信息。)

如果没有报错,安装好就可以往下走啦。
安装成功

2.3 配置环境

(1)添加ros功能包:

sudo apt-get install python-rosdep
sudo apt-get install ros-kinetic-slam-gmapping
sudo apt-get install python-rosinstall

(2)初始化ros:

sudo rosdep init
rosdep update

这里要注意(敲黑板!!!)
ROS对Python支持并不是很好。Python飞速发展的今天,他也只能支持Python2.7版本,Python3是不支持的。如果系统默认Python是Python3的话,rosdep init会疯狂报错,报的我是一脸懵逼,两脸对视懵逼。幸亏以前玩树莓派时候安装OpenCV时,知道Python2和Python3的语法不同,看了看错误的意思是没有这个module,大概率怀疑Python版本不对,查看Python版本指令:

Python --version

看了看果然他喵的上一个操作的人安装别的库的时候把默认改成了Python3.5……emmmmmmm查了好多资料原来就是Python版本不对。
那就要给切换回来,这里提供一个简便方法:

sudo update-alternatives --config python

之后弹出界面选择对应Python版本的数字输入回车就好。
这里还有一个坑,那就是没有sudo就会疯狂报错……
切换回Python2后再初始化就会过了。

(3)添加启动项

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc 
source ~/.bashrc

(4)安装其他依赖包

sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

2.4 测试

(1)新开一个终端,输入roscore初始化环境

roscore

运行成功
(2)再打开一个终端,输入指令:

rosrun turtlesim turtlesim_node

会弹出一只可爱的乌龟
(3)再打开一个终端,输入指令:

rosrun turtlesim turtle_teleop_key

之后用上下左右键控制乌龟的方向,如果可以就证明ROS已经安装完成啦!

3 配置ORB-SLAM2运行环境

3.1 创建ROS工作空间

mkdir -p ~/slam/src
cd ~/slam/src
catkin_init_workspace
cd ..
catkin_make
echo "source ~/slam/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

创建工作空间
创建工作空间
创建工作空间

3.2 安装Pangolin

(1)安装依赖库

sudo apt-get install libglew-dev libpython2.7-dev libboost-dev libboost-thread-dev libboost-filesystem-dev -y

这里我好像忘记了有个依赖库不对,之后找了一句自动安装就完成的话……emmmm可能也会成功。

(2)进入~/slam/src
下载Pangolin,编译安装配置环境。

cd ~/slam/src
git clone https://github.com/stevenlovegrove/Pangolin

下载Pangolin

cd Pangolin
mkdir build
cd build
cmake ..
make -j4
sudo make install

安装Pangolin
安装Pangolin
这里的make后面不要用make -j,别问为什么,我的TX2还卡着呢!

(3)安装OpenCV,TX2不需要安装,刷机自带。

(4)安装Eigen3
打开目录~/SLAM/src,下载Eigen3并解压。

wget https://bitbucket.org/eigen/eigen/get/3.2.10.tar.bz2
tar -xjf 3.2.10.tar.bz2

重命名后,编译安装Eigen3.

mv eigen-eigen-b9cd8366d4e8/ eigen-3.2.10

下载Eigen3并重命名

cd eigen-3.2.10/
mkdir build
cd build
cmake ..
make
sudo make install

安装Eigen3
安装Eigen3

4 安装ORB-SLAM2

安装ORB-SLAM2要安装在/slam/src/目录下。

cd slam/src
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
cd ORB_SLAM2

下载ORB-SLAM2
之后用vim修改一下build.sh,将最后一行make -j改为make -j4。

vim build.sh

执行build.sh这个文件。

编译build.sh

./build.sh

等待漫长的编译,如果不报错的话,就可以准备实例跑ORB-SLAM2啦。
编译成功

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2 的相关文章

  • SLAM-hector_slam 简介与使用

    hector slam功能包使用高斯牛顿方法 不需要里程计数据 只根据激光信息便可构建地图 所以他的总体框架如下 hector slam功能包 hector slam的核心节点是hector mapping 它订阅 scan 话题以获取SL
  • Ubuntu镜像下载地址

    镜像地址https launchpad net ubuntu cdmirrors
  • ModuleNotFoundError: No module named ‘rosbag‘

    1 ModuleNotFoundError No module named rosbag File opt ros kinetic lib python2 7 dist packages roslib launcher py line 42
  • Hypervisor介绍及在智能驾驶的应用

    转自Hypervisor 智能座舱和智能驾驶融合的关键技术 腾讯新闻
  • 在Ubuntu 14.04.2 LTS上安装Qt

    Qt是一个跨平台的应用程序框架 广泛用于开发具有GUI界面的应用软件以及命令行工具 几乎所有操作系统都可以使用Qt 如Windows Mac OS X Android等 用于开发Qt应用程序的主要编程语言是C 但是可以使用诸如Python
  • rosprofiler 安装和使用

    rosprofiler wiki 页面 http wiki ros org rosprofiler rosprofiler package 下载rosprofiler和ros statistics msgs 放到工程目录下编译 https
  • Raspberry Pi 上 ROS 服务器/客户端通过GPIO 驱动硬件

    ROS 服务 现在 想象一下你在你的电脑后面 你想从这个服务中获取天气 你 在你身边 被认为是客户端 在线天气服务是服务器 您将能够通过带有 URL 的 HTTP 请求访问服务器 将 HTTP URL 视为 ROS 服务 首先 您的计算机将
  • Ubuntu安装ROS

    原文链接 https blog csdn net qq 44830040 article details 106049992 这也是我在ubuntu里面安装ROS的第N次 以前每次安装过程都忘记总结了 导致每次安装ROS都浪费了很多的时间用
  • ROS1 ROS2学习

    ROS1 ROS2学习 安装 ROS ROS1 ROS2 命令行界面 ROS2 功能包相关指令 ROS 命令行工具 ROS1 CLI工具 ROS2 CLI工具 ROS 通信核心概念 节点 Node 节点相关的CLI 话题 Topic 编写发
  • 进入 docker 容器,exec 丢失 PATH 环境变量

    这是我的 Dockerfile FROM ros kinetic ros core xenial CMD bash 如果我跑docker build t ros docker run it ros 然后从容器内echo PATH 我去拿 o
  • 如何将视频或图像序列转换为包文件?

    我是 ROS 新手 我需要转换预先存在的视频文件 或者large可以连接到视频流中的图像数量 bagROS 中的文件 我在网上找到了这段代码 http answers ros org question 11537 creating a ba
  • 无法加载 LZ4 支持的 Python 扩展。 LZ4 压缩将不可用

    我是 ROS 新手 我刚刚打开终端并输入roscore和另一个终端并键入rostopic node我收到这个错误 上面写着 无法加载 LZ4 支持的 Python 扩展 LZ4 压缩将不可用 我搜索并去了https pypi org pro
  • 什么是 void `std::allocator`?即:`std::allocator`

    自动生成ROS 机器人操作系统 message C 头文件包含如下类型定义 typedef std msgs Header
  • OpenCV 特征匹配多个对象

    如何在一张图像上找到一种类型的多个对象 我使用 ORB 特征查找器和强力匹配器 opencv 3 2 0 我的源代码 import numpy as np import cv2 from matplotlib import pyplot a
  • 将 CUDA 添加到 ROS 包

    我想在 ros 包中使用 cuda 有人给我一个简单的例子吗 我尝试使用 cuda 函数构建一个静态库并将该库添加到我的包中 但总是出现链接错误 未定义的引用 cuda 我已经构建了一个可执行文件而不是库并且它可以工作 请帮忙 我自己找到了
  • 如何从属性文件初始化 ORB?

    我想从属性文件初始化我的 ORB 通常我在运行示例时像这样初始化它 app ORBInitRef NameService corbaloc localhost 2809 NameService 我写了一个简单的代码 private stat
  • 无法在 ROS 中使用本地安装的 Protocol Buffer

    我已经安装了协议缓冲区 https developers google com protocol buffers 本地 ROS包的目录结构如下 CMakeLists txt package xml include addressbook p
  • ROS 从 python 节点发布数组

    我是 ros python 的新手 我正在尝试从 python ros 节点发布一个一维数组 我使用 Int32MultiArray 但我无法理解多数组中布局的概念 谁能给我解释一下吗 或者还有其他方式发布数组吗 Thanks usr bi
  • ROS中spin和rate.sleep的区别

    我是 ROS 新手 正在尝试了解这个强大的工具 我很困惑spin and rate sleep功能 谁能帮助我了解这两个功能之间的区别以及何时使用每个功能 ros spin and ros spinOnce 负责处理通信事件 例如到达的消息
  • OpenCV 3 中的 FLANN 错误

    我运行的是 Ubuntu 14 04 我正在尝试使用 openCV 3 运行 FLANN 但出现错误 下面的所有内容都是通过使用 AKAZE 和 ORB 进行尝试的 但代码来自我尝试使用 ORB 的情况 我使用 ORB 来查找描述符和关键点

随机推荐

  • Centos squid配置

    squid配置 题目 一 关闭Selinux跟防火墙 二 安装squid服务 并启动 三 配置路由转发 提供路由功能 临时开启 永久开启 四 浏览器测试 打开火狐浏览器找到网络设置 提示 有任何问题可以私信我 下班看到第一时间回复 题目 s
  • [系统安全] Windbg Preview调试记录

    本文为笔者从零基础学习系统安全相关内容的笔记 如果您对系统安全 逆向分析等内容感兴趣或者想要了解一些内容 欢迎关注 本系列文章将会随着笔者在未来三年的读研过程中持续更新 前文链接 系统安全 PE文件格式详解1 系统安全 PE文件格式详解2
  • 北斗和GPS的工作频段

    北斗GPS铱星频段 北斗短报文发送L 1615 68 3MHZ 北斗短报文接收S 2491 75 3MHZ B1 xff1a 1559 052MHZ 1591 788MHZ 民用 标称频率1561 098MHZ B2 xff1a 1166
  • ftp虚拟用户服务器,FTP服务器虚拟用户配置

    FTP服务配置问题及解决方案 使用被动模式 xff0c 设置云主机IP为被动模式数据传输地址 xff1a 在配置文件内添加 pasv enable 61 YES pasv promiscuous 61 YES pasv address 61
  • 关于mac 上传、下载linux服务器sftp命令

    二话不说 xff0c 直接贴命令 root 是用户名 xxx xx x xx 是ip地址 sftp root 64 xxx xx x xx ip地址 连接进行输入密码即可执行 xff1a 上传 xff1a Put 本地地址 线上地址 下载
  • 正则表达式中?: ?= ?! ?<= ?<!的用法

    pattern 非获取匹配 xff0c 匹配pattern但不获取匹配结果 xff0c 不进行存储供以后使用 这在使用或字符 来组合一个模式的各个部分是很有用 例如 industr y ies 就是一个比 industry industri
  • python程序猿必备-reStructuredText快速入门

    reStructuredText快速入门 reStructuredText也称为reST xff0c 这是一种被Python程序员广泛使用的纯文本标记语言 xff0c 就像markdown一样 reStructuredText pychar
  • 程序关闭计算机没反应为什么,电脑点击关机没反应怎么办

    我们不用电脑时候都会关机 xff0c 但是有时点击关机没反应或者卡住 xff0c 应该怎么解决呢 xff1f 下面学习啦小编教大家笔记电脑关不了机的解决方法 xff0c 供您参考 笔记本电脑关不了机的解决方法 当电脑无法关机时 xff0c
  • 梯度反转层(Gradient reversal layer, GRL)

    GRL作用 xff1a 将传入到GRL的梯度乘上一个负数 xff0c 使得在GRL前后的网络的训练目标是相反的 在接入GRL以后 xff0c 特征提取器就会有两个目标需要满足 xff0c 第一是特征提取器需要生成能够预测出正确标签的特征 x
  • 远程连接Ubuntu Server安装图形化界面的过程

    远程连接ubuntu server的坑 首先下载xshell xff0c 新建连接后设置主机名字 xff0c 在host里面填上ipv4或ipv6的地址 xff0c 注意端口号要在主机的 etc ssh sshd config这个文件中查看
  • 网络操作系统 第十章 DNS服务器管理与配置

    习题 1 什么是域名系统 xff1f 描述域名解析的过程 1 xff09 域名系统 xff1a Domain Name System缩写DNS xff0c 是因特网的一项核心服务 域名系统作为可以将域名和IP地址相互映射的一个分布式数据库
  • pytorch模型保存与加载:state_dict、load_state_dict

    简而言之 xff0c pytorch保存模型时用的映射关系 pytorch中的state dict是一个简单的python字典对象 xff0c 将每一层与之对应的参数建立映射关系 只有参数可训练的layer才会保存到模型 的state di
  • python中@staticmethod

    64 staticmethod用于修饰类中的方法 xff0c 使其可以再不创建类实例的情况下调用方法 xff0c 这样做的好处是执行效率较高 xff0c 当然也可像一般方法一样用实例调用该方法 该方法一般被成为静态方法 静态方法不可以引用类
  • attention is all you need

    摘要 主流的序列转换模型都是基于复杂的循环或卷积神经网络 xff0c 这个模型包含一个编码器和一个解码器 具有最好性能的模型是通过一个注意力机制 xff0c 将编码和解码连接在一起 我们提出了一个新的简单网络结构 Transformer x
  • 软件测试流程、测试方法、测试软件

    软件测试的流程主要包含单元测试 组装测试 确认测试 系统测试四个阶段 单元测试 xff1a 也叫模块测试 xff0c 单元是指清晰定义了子功能的最小单位 xff0c 如程序的最小编译单位等 xff0c 是测试工作的第一步 单元测试通常要编写
  • 验证平台,SV 和UVM

    验证 是确保设计和预定的设计期望一致的过程 验证平台 xff1a 被用来应用一个或多个测试激励 xff0c 并将激励发送到设计的输入中 xff0c 激励可通过验证平台产生 xff0c 或者通过手动创建 最后 xff0c 输出进行比较 xff
  • 清除docker镜像缓存

    清除docker镜像缓存 为什么就一个命令也要单开一个博客记录 因为坑死我了 xff0c 打了一早上镜像一直有问题 xff0c 搞到最后是缓存的锅 佛了 xff01 命令 docker system prune volumes 该命令清除
  • 解决 ERROR: Command errored out with exit status 128: git clone -q

    在安装 git 43 github 网页时出现此错误 xff0c 全称是 Collecting git 43 https github com pytorch tnt git 64 master Cloning https github c
  • IP能ping通,xshell远程连接失败

    ip能ping通 xff0c Xshell 6 远程连接却失败 xff0c 是什么原因呢 xff1f 挨个排查 xff1a 1 在cmd中这个地址是能ping通的 xff0c 说明这台服务器没有被占用 2 到机房在这台服务器上操作时 xff
  • Jetson TX2(Ubuntu16.04)安装ROS和ORB-SLAM2

    文章目录 1 前言2 安装ROS2 1 准备工作2 2 ROS Kinetic Kame 的安装和配置2 3 配置环境2 4 测试 3 配置ORB SLAM2运行环境3 1 创建ROS工作空间3 2 安装Pangolin 4 安装ORB S