TX2安装ROS系统成功记录

2023-05-16

TX2安装ROS系统成功记录

  • 前言
  • 一、确认安装的ROS版本
  • 二、安装步骤
    • 1.设置sources.list
    • 2.设置密钥
    • 3.安装
    • 4.环境配置
    • 4.安装构建功能包的依赖
  • 三、测试
  • 总结


前言

因导师项目,需要将在电脑上开发的算法移植到TX2智盒(选用边一智能的产品,其在TX2基础之上进行了封装,可以应用于条件恶劣的工业环境中),为此我们需要在TX2智盒上安装ROS系统。TX2架构为arm64,ubuntu版本为18.04


一、确认安装的ROS版本

确认与arm架构下相匹配的ROS系统最权威的途径是通过ROS的官网,通过在此处查阅得图片如下
在这里插入图片描述
可以看出ROS kinetic版本对于arm64架构的平台来说,只支持Xenial版本的Ubuntu系统,即Ubuntu16.04。Xenial为ubuntu系统的CodeName,同理,Wily指ubuntu 15.10。我们的系统是18.04,所以kinetic版本ROS不能安装。
还需继续探索,通过此处查阅得图片如下:
在这里插入图片描述
从图中可以看出,Melodic版本的ROS系统支持arm架构的ubuntu18.04系统,其中Bionic为系统ubuntu 18.04的CodeName。所以我们的平台上适合安装ROS Moledic版本。

二、安装步骤

最权威的安装方法还是参考官网给出的安装方法最好。

1.设置sources.list

在终端输入以下命令,设置电脑从packages.ros.org接受软件。

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

2.设置密钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

3.安装

首先执行命令

sudo apt update

首先执行命令确保软件源最新。然后建议安装桌面完整版,执行如下命令

sudo apt install ros-melodic-desktop-full

4.环境配置

执行如下命令,将ROS的环境变量添加到bashrc文件中。

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

4.安装构建功能包的依赖

执行如下命令,安装构建ROS功能包的工具和依赖。

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

执行如下命令,

sudo apt install python-rosdep
sudo rosdep init
rosdep update

初始化rosdep,但是在初始化ROS系统时,发现不能打开github的网站http://raw.githubusercontent.com,造成安装失败,经研究发现是Github的raw文件读取地址遭受GxFxW的DNS污染。解决方法是:

git clone https://github.com/ros/rosdistro

将rosdistro手动下载至文件夹/home/nvidia/rosdistro,创建rosdistro后,备份py:

sudo cp /usr/lib/python2.7/dist-packages/rosdep2/main.py /usr/lib/python2.7/dist-packages/rosdep2/main.py.bak
sudo cp /usr/lib/python2.7/dist-packages/rosdep2/rep3.py /usr/lib/python2.7/dist-packages/rosdep2/rep3.py.bak
sudo cp /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py /usr/lib/python2.7 /dist-packages/rosdep2/sources_list.py.bak
sudo cp /usr/lib/python2.7/dist-packages/rosdistro/__init__.py /usr/lib/python2.7/dist-packages/rosdistro/__init__.py.bak

然后替换这些py中的网络源为本地源:

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/main.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py

其中的网络源https://raw.githubusercontent.com/ros/rosdistro/master 全部替换为 本地源file:///home/nvidia/rosdistro
最后运行

sudo rosdep init
sudo cp /etc/ros/rosdep/sources.list.d/20-default.list /etc/ros/rosdep/sources.list.d/20-default.list.bak
sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list

将其中的网络源 https://raw.githubusercontent.com/ros/rosdistro/master 全部替换为 file:///home/nvidia/rosdistro
最后

rosdep update

三、测试

运行

roscore

如果看到ros系统正常启动,则证明ros系统已安装成功。


总结

至此,我们成功在TX2 ubuntu18.04系统上成功安装了ros Moledic系统。

  • 安装前一定要确认好与自己系统对应的版本,对于不同的硬件还要考虑cpu的架构。
  • 网络上有很多信息和资源,但是不能保证每个人对待技术博客都很严谨,所以最保险最快捷的方法是通过官网去寻找安装方法。
  • 最后,我的三维点云感知算法以及视觉相关算法都是基于ubuntu16.04 ros-kinetic开发的,由于TX2智盒厂家给我刷了ubuntu18.04的系统,并且TX2用于刷机的按钮都被厂家封装起来了,我无法自行刷新系统,程序移植过来是否仍然有效还有待考证,不过按常理,高版本都会兼容低版本的东西。好啦,关于TX2安装ROS就先写到这里,大家有什么其它问题欢迎评论区留言讨论~
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TX2安装ROS系统成功记录 的相关文章

  • Nvidia jetson agx xavier can通讯失败,修改时钟源pllaon

    一 问题详情 在调试Xavier can的过程中 xff0c can通信始终有问题 xff0c 收发都会报错 后来发现时钟源导致波特率不匹配 xff0c 所以不能通信 二 修改时钟源 在虚拟机使用官方sdkmanager xff0c 下载安
  • linux下实现https访问

    http转https 适用于linux服务器 linux下nginx 43 ssl实现https访问 xff08 一 xff09 环境准备 xff08 二 xff09 下载nginx源码 xff0c 编译nginx并添加ssl模块 xff0
  • Nvidia Jetson nano 安装Archiconda、gpu版torch、踩坑记录

    Nvidia Jetson nano 安装Archiconda gpu版torch 踩坑记录 jetson nano 属于aarch64架构 xff0c 不同于一般的x86 64的linux系统架构 xff0c 而torch官网上面 htt
  • linux下的yum,vim,gcc,gdb

    我们在windows系统下我们能够很简单进行粘贴复制下载安装 xff0c 也能通过vs进行我们缩写代码的编译运行 xff0c 但是我们在linux下我们应该怎样去操作我们的这些命令呢 xff0c 这章我们就讲解一下我们linux下常用的一些
  • 【Keil】Keil5添加源程序和头文件

    xxx c就是源程序 xxx h就是头文件 源程序添加方法 双击文件夹 xff0c 例如图片上的Source xff0c 跳出弹窗 xff0c 选择需要添加的源程序即可 添加头文件的方法 1 首先点击图片红框处 xff0c 或是在文件夹te
  • C 标准库 string常用函数 笔记

    文章目录 64 TOC 文章目录 前言字符串长度strlen sizeof 字符串拼接strcat strncat 字符串拷贝strcpy strncpy memcpy 内存填充memset 字符串比较strcmp strncmp 字符串查
  • node.js中的http.request方法使用说明_node.js

    方法说明 xff1a 函数的功能室作为客户端向HTTP服务器发起请求 语法 xff1a 复制代码 代码如下 http get options callback 由于该方法属于http模块 xff0c 使用前需要引入http模块 xff08
  • ARM中SP、LR、PC三个寄存器介绍

    寄存器定义和用途 定义 寄存器是中央处理器内的组成部份 寄存器是有限存贮容量的高速存贮部件 xff0c 它们可用来暂存指令 数据和位址 用途 可将寄存器内的数据执行算术及逻辑运算 xff1b 存于寄存器内的地址可用来指向内存的某个位置 xf
  • Linux buffer/cache介绍

    free 命令 与 buffer cache 在 Linux 系统中 xff0c 我们经常用 free m命令来查看系统内存的使用状态 xff1a m 显示单位为MB free m 各个参数的说明 total 内存总数 used 已经使用的
  • 数字签名算法RSA

    RSA RSA数字签名算法源于RSA公钥密码算法的思想 xff0c 将RSA公钥密码算法按照数字签名的方式运用 RSA数字签名算法是迄今为止应用最为广泛的数字签名算法 RSA数字签名算法的实现如RSA加密算法一致 RSA数字签名算法主要可分
  • AXI接口协议详解-AXI总线、接口、协议

    转自 xff1a https cloud tencent com developer article 1695010 AXI接口协议详解 AXI总线 接口 协议 AXI 总线 上面介绍了AMBA总线中的两种 xff0c 下面看下我们的主角
  • USB主机是如何检测到设备的插入的呢?

    转自 xff1a https www cnblogs com wangh0802PositiveANDupward archive 2013 05 06 3061241 html USB设备的插入检测机制 首先 xff0c 在USB集线器的
  • 电路图中的那些类似于箭头的是什么意思?

    这个双箭头在画图软件中称为 off connect xff0c 作用是连接一个工程中的两张原理图里网络标号相同的网络 即 xff1a 这张原理图中网络标号为 PCIE20 2 REFCLKP 网络 xff0c 与其他原理图中的网络标号为 P
  • linux的socket CAN驱动介绍

    https blog csdn net linyangspring article details 27186911 在linux中 xff0c CAN总线的驱动有两种实现方式 xff1a 字符设备以及socket can驱动 Socket
  • 一文讲透Linux网络设备驱动框架及编写步骤

    https blog 51cto com u 14592069 5785977 本文阐述了网络架构模型 xff0c 特别是Linux系统中网络子设备框架4层结构 xff0c 反别阐述了各层的作用 重点讲解了sk buff及net devic
  • linux下的项目管理工具make和git的使用

    在linux下我们不能向在windows下这样去快速的进行编译 xff0c 在以前我们都是使用一个命令一个命令地去将 c文件生成程序 xff0c 在这里我们介绍项目自动化辅助构建工具make以及项目版本管理工具git make make说白
  • list_for_each_entry()函数分析

    在Linux内核源码中 xff0c 经常要对链表进行操作 xff0c 其中一个很重要的宏是list for each entry xff1a span class token comment list for each entry iter
  • 电力系统谐波分析

    加粗样式 电力系统谐波分析 一 实验目的 1 了解电力系统谐波信号的特点及分析方法 xff1b 2 综合利用数字信号处理技术实现对电力系统谐波信号的分析 xff1b 3 使学生进一步巩固数字滤波器的基本概念 理论 分析方法和实现方法 xff
  • 电力系统谐波分析代码

    程序清单 xff08 1 xff09 模拟谐波的信号的波形及频谱 fs 61 3000 采样频率 N1 61 256 采样点数 N2 61 1024 n1 61 0 N1 1 t 61 n1 fs x1 61 sin 2 pi t 50 4
  • range() 函数用法

    range 函数可创建一个整数列表 xff0c 一般用在 for 循环中 函数语法 xff1a range start stop step 参数说明 xff1a start 计数从 start 开始 默认是从 0 开始 例如range xf

随机推荐

  • set()函数用法

    python内置函数 文章目录 python内置函数描述set 语法返回值 实例 描述 set xff08 xff09 是集合的一种 set 函数创建一个无序不重复元素集 xff0c 可进行关系测试 xff0c 删除重复数据 xff0c 还
  • pop()函数的用法

    pop 函数用于移除列表中的一个元素 xff08 默认最后一个元素 xff09 xff0c 并且返回该元素的值 语法 xff1a list pop obj 61 list 1 默认为 index 61 1 xff0c 删除最后一个列表值 o
  • python assert()函数

    1 断言函数作用 断言函数是对表达式布尔值的判断 xff0c 要求表达式计算值必须为真 可用于自动调试 如果表达式为假 xff0c 触发异常 xff1b 如果表达式为真 xff0c 不会报错 2 使用assert判断数组是否相等 np ar
  • torch.nn 实现上采样——nn.Upsample

    CLASS torch nn Upsample span class token punctuation span size span class token operator 61 span None span class token a
  • ubuntu用命令行清空回收站的方法

    1 打开Trash span class token builtin class name cd span local share Trash 2 查看Trash里的文件 span class token function ls span
  • ubuntu命令行重启

    重启命令 xff1a 法一 xff1a span class token function reboot span 法二 xff1a span class token function shutdown span r now span cl
  • Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp

    今天我们简单的介绍一些linux下面的一些重要文件夹的重用 proc 是个虚拟文件系统 也就是 重新引导后修改会被重新初始化 提供了进程信息 内存资源 硬件设备 内核内存等信息 比如 xff1a 网卡 xff1a proc sys vm i
  • JVM中的堆和栈到底存储了什么?

    以下文章来自 xff1a https www jianshu com p 8a89fb6d839c xff0c 这篇文章涉及多方面知识 xff0c 所以我在有些地方插入了一些更加深入的文章 xff08 方法和函数区别 指针变量 修改引用的值
  • Qt中基于鼠标事件获取界面上坐标—鼠标点击,移动,释放

    Qt中基于鼠标事件获取界面上坐标 鼠标点击 移动 释放 以左上角为坐标原点显示全局像素坐标 以label控件左下角为坐标原点显示鼠标在控件上坐标 加入了像素与经纬度坐标同时显示 程序说明 以左上角为坐标原点显示全局像素坐标 Qt中默认左上角
  • ubuntu下研华工控机CAN卡驱动的安装与测试

    ubuntu下研华工控机CAN卡驱动的安装 0 关于ubuntu系统与内核版本是否需要匹配的问题 1 CAN卡驱动安装 PCI 1680 advSocketCAN V1 0 0 0 2 CAN卡通讯测试 2 1 引脚介绍 2 2 测试程序
  • PCL点云库必备知识点2.1——点云旋转变化pcl::transformPointCloud的使用

    matrix transform02 cpp span class token macro property span class token directive hash span span class token directive k
  • ros必备知识点8:ros之use_sim_time的使用

    这个参数当回放bag数据集是设置为true xff0c 此时说明系统使用的是仿真时间 xff0c 如果设置为false xff0c 则系统使用walltime 此参数可以通过launch文件中设置 xff0c 或者通过节点设置 launch
  • Apollo第二讲—apollo自动驾驶调试及仿真实践

    1 自动驾驶开发流程 1 1 数据分析 使用DreamView调试工具 云实验操作指南 xff08 1 xff09 云实验1 xff1a 使用Dreamview播放离线数据包 Apollo调试工具 1 xff09 内容概述 2 xff09
  • Apollo第五讲——Apollo定位模块

    1 定位的作用 1 xff08 xff09 定位和地图是一对孪生兄弟 获取当前地理位置信息 xff0c 通常在地图中进行记录和表示 提供车辆当前运动状态 xff1a 航向 速度 加速度 角速度等状态信息 xff08 2 xff09 地位的地
  • Apollo专项课——第一讲:交通灯检测

    1 问题引入与本节课重点学习打卡内容 2 Apollo决策功能的设计与实现 交规决策 xff1a 根据路径与红绿灯状态来决定是否生成虚拟墙 路径决策 路径边界 速度决策 planning模块运行流程 场景分类的例子 xff1a 车道跟随 x
  • Apollo最新升级后的感知框架介绍

    Apollo感知框架 1 Apollo视觉感知算法模块流程2 感知框架升级的内容 1 Apollo视觉感知算法模块流程 预处理 神经网络模型的训练 后处理 2 感知框架升级的内容 主要包括三方面 xff0c 如下所示 xff1a xff08
  • 采用u版的pytorchyolo3源码训练自己的数据集

    采用u版的pytorchyolo3源码训练自己的数据集 1 说明 最近一直在研究目标检测这一块的内容 在导师的建议下学习了yolov3目标检测算法 xff0c 想着既然学完了就要跑一边看看是啥样子的说干就干 本文采用的源码为https gi
  • 进程概念初始

    进程初识 进程 xff1a 进程对于用户来说进程就是一个运行中的程序 xff0c 就是一个编译好的二进制文件 站在我们程序员的角度上来看 xff0c 进程就是一些列指令运行的过程 xff0c 站到操作系统上来看 xff0c 就是分配系统资源
  • 常用的linux操作指令

    关机 系统的关机 重启以及登出 shutdown h now 关闭系统 init 0 关闭系统 telinit 0 关闭系统 shutdown h hours minutes amp 按预定时间关闭系统 shutdown c 取消按预定时间
  • TX2安装ROS系统成功记录

    TX2安装ROS系统成功记录 前言一 确认安装的ROS版本二 安装步骤1 设置sources list2 设置密钥3 安装4 环境配置4 安装构建功能包的依赖 三 测试总结 前言 因导师项目 xff0c 需要将在电脑上开发的算法移植到TX2