Linux 35.5 + JetPack v5.1.3@ros-noetic安装

Linux 35.5 + JetPack v5.1.3@ros-noetic安装

  • 1. 源由
  • 2. 调研
  • 3. 安装
    • Step 1:安装Linux 35.5.0
    • Step 2:设置安装源
    • Step 3:添加秘钥
    • Step 4:Linux系统更新
    • Step 5:ros-noetic安装
    • Step 6:环境设置
  • 4. 组件安装
    • 4.1 组件搜索
    • 4.2 组件安装
  • 5. 总结

1. 源由

因为目前香港HKUST Aerial Robotics Group开发了一系列基础技术,使空中无人机能够在复杂环境中自主运行。研究涵盖了空中自主导航建模比较完整技术栈,重点在于状态估计、地图绘制、轨迹规划、多机协调以及使用低成本传感和计算组件进行测试平台开发,其代码也被开源在Github - HKUST-Aerial-Robotics。

若能很好的借鉴并应用上述技术,在实际领域进行应用拓展,将会对无人机的应用得到显著提升,进而突破闭源商业系统的垄断地位。

问题是,目前该代码基于ROS系统,ROS2上不支持,当然据悉后续会进行移植和兼容性拓展。

因此,目前比较现实的问题就是在我们Jetson Orin Nao上进行ROS系统的安装,以支持上述技术栈代码的测试、应用、以及二次开发。

2. 调研

  1. ROS Noetic NinjemysMay, 2025 Focal(ubuntu 20.04) EOL
  2. Jetson Orin 系列对于ROS原生态的安装到Linux 36.2/36.3 Jammy(ubuntu 22.04)开始就不再支持。
  3. Jetson Orin 系列对于ROS在Jammy上有容器支持的尝试,目前尚未过编译。
  • How to install ROS Noetic (Ubuntu 20.04) or ROS Melodic (Ubuntu 18.04) on Jetson Orin JetPack v6.0?
  • ROS Noetic docker container on Jetpack 6.0
  1. 在Jetson Archived Documentation中,我们可以找到最近的Linux 35.5.0,该版本是基于Focal的版本,因此直接支持ROS。

3. 安装

Step 1:安装Linux 35.5.0

略,参考《Linux 36.3@Jetson Orin Nano之系统安装》

注:请注意章节5.4中所述问题,每个版本之间安装命令差异会导致安装失败,切记!

Step 2:设置安装源

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

Step 3:添加秘钥

sudo apt install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

或者

$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc -o ros.asc
$ sudo apt-key add ros.asc

若发现仍然无法下载,可能是“墙”有关系,可以采用curl代理方式。其中192.168.1.10:808是各位自己的代理服务器,请根据实际情况设置。

$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc -o ros.asc  -x http://192.168.1.10:808
$ sudo apt-key add ros.asc

Step 4:Linux系统更新

$ sudo apt update

Step 5:ros-noetic安装

  • 全部安装
$ sudo apt install ros-noetic-desktop-full
  • 高完整度安装
$ sudo apt install ros-noetic-desktop
  • 基础安装 //这个是作为开发者比较推荐的,这样可以很好的知道依赖关系,以及软件包开发脚本的不完整性。
$ sudo apt install ros-noetic-ros-base

Step 6:环境设置

$ source /opt/ros/noetic/setup.bash
  • bash自动脚本
$ echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
  • zsh 自动脚本
$ echo "source /opt/ros/noetic/setup.zsh" >> ~/.zshrc
$ source ~/.zshrc

4. 组件安装

4.1 组件搜索

$ apt search ros-noetic-PACKAGE

4.2 组件安装

$ sudo apt install ros-noetic-PACKAGE

例如:

$ sudo apt install ros-noetic-slam-gmapping

5. 总结

综合上面所有的信息,我们采用最为方便直接的方法,另外,也考虑了后备方案。

  • 采用Jetson Orin Nano Linux 35.5.0版本进行前期验证;
  • 若后续(Plan A):Jetson Orin Nano上容器版本能够支持ROS系列,那么可以更新系统功能;
  • 若后续(Plan B):HKUST-Aerial-Robotics能够支持ROS2系统,那么可以直接更新到最新的Jammy系统
  • 若后续A/B方案都未实现,那么我们可以采用Plan C(暂时保密,呵呵)//我们始终有备用方案可用

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

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

相关文章

算法金 | 再见,PCA 主成分分析!

​大侠幸会,在下全网同名[算法金] 0 基础转 AI 上岸,多个算法赛 Top [日更万日,让更多人享受智能乐趣] 1. 概念:数据降维的数学方法 定义 主成分分析(PCA)是一种统计方法,通过正交变换将一组可…

RTOS笔记--任务状态与调度

任务状态 freertos中的任务分为四个状态:就绪状态(ready)、运行状态(running)、阻塞状态(blocked)、暂停状态(suspended) 完整的任务状态转换图: 在使用vTas…

24V转3V的高效解决方案-AH8610.sot23-6

24V转3V的高效解决方案-AH8610.sot23-6 ### 引言 随着电子设备向小型化、高性能和高效率发展,对电源管理芯片的要求也越来越高。AH8610.sot23-6是一款专为小型化电源转换设计的同步降压开关芯片,它能够将24V的输入电压转换为3V输出,适用于US…

风管静压箱的作用及选型

1.压力的种类 动压—由风速而产生的压力;空调厂家设计时均已经考虑,无需计算。静压—垂直作用于风管壁面的压力,用于克服风管阻力;所以,对于风管机组有零静压和带静压之分,零静压指静压为0Pa,不…

[大师C语言(第二十篇)]C语言跨平台编程技术详解

引言 C语言作为一门历史悠久的编程语言,在性能、可移植性等方面具有显著优势。然而,随着软件工程的不断发展,C语言在安全性、代码可维护性等方面面临挑战。特别是在跨平台编程方面,如何确保代码在不同平台上的兼容性和一致性&…

thinkpad T440p ubuntu-slam软件安装记录

安装问题 1.ubuntu20.04安装后提示"x86/cpu:VMX(outside TXT) disabled by BIOS" 这是虚拟化被禁止了,到BIOS里去把Virtualization选项打开即可。 2.ACPI Error:Needed type[Reference],found [Integer] 等错误 link这篇博客中提到该问题,…

数学建模笔记

数学建模 定义角度 数学模型是针对参照某种事物系统的特征或数量依存关系,采用数学语言,概括地或近似地表述出的一种数学结构,这种数学结构是借助于数学符号刻画出来的某种系统的纯关系结构。从广义理解,数学模型包括数学中的各…

spring-boot 2.7.18整合sharding-jdbc-spring-boot-starter 4.1.1

sharding-jdbc 基本概念 逻辑表 水平拆分的数据表的总称。例:订单数据表根据主键尾数拆分为10张表,分别是 t_order_0 、 t_order_1 到 t_order_9 ,他们的逻辑表名为 t_order 。 真实表 在分片的数据库中真实存在的物理表。即上个示例中的…

数据库开发-Mysql03

目录 1. 多表查询 1.1 概述 1.1.1 数据准备 1.1.2 介绍 1.1.3 分类 1.2 内连接 1.3 外连接 1.4 子查询 1.4.1 介绍 1.4.2 标量子查询 1.4.3 列子查询 1.4.4 行子查询 1.4.5 表子查询 1.5 案例 2. 事务 2.1 介绍 2.2 操作 2.3 四大特性 3. 索引 3.1 介绍 3…

Android基础-flutter

Flutter的功能和作用 一、引言 Flutter,作为Google开源的移动UI框架,自其诞生以来,便以其独特的魅力和强大的功能吸引了全球众多开发者的目光。Flutter不仅为开发者提供了构建高性能、高质量跨平台应用的能力,而且极大地简化了开…

实验室类管理平台LIMS系统的ui设计实例

实验室类管理平台LIMS系统的ui设计实例

leetcode64-Minimum Path Sum

题目 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入:grid [[1,3,1],[1,5,1],[4,2,1]] 输出&#xf…

项目管理工具的选择

1、为什么要用到项目管理工具 一个项目在启动后,需要做需求管理、计划排期,工作分解,开发、测试、验收,假设我们用excel来处理的话,会出现以下情况 (1)需求跟踪,如果用在线excel文…

第九十七节 Java面向对象设计 - Java Object.Finalize方法

Java面向对象设计 - Java Object.Finalize方法 Java提供了一种在对象即将被销毁时执行资源释放的方法。 在Java中,我们创建对象,但是我们不能销毁对象。 JVM运行一个称为垃圾收集器的低优先级特殊任务来销毁不再引用的所有对象。 垃圾回收器给我们一个…

weak的底层原理

weak 引用在 iOS 中通过维护一个全局的弱引用表来实现。当弱引用的对象被释放时,所有指向它的弱引用会被自动置为 nil,从而防止悬挂指针。 弱引用表(Weak Table)的键和值 理解弱引用表的键和值对于理解 weak 引用的底层机制非常重…

【加密与解密】【02】加密算法类型

加密算法类别 单向加密算法(MD5,SHA,校验数据完整性) 对称加密算法(DES,数据存储加密) 非对称加密算法(RSA算法,数据传输加密) 非对称加密和对称加密对比…

高通Android 12/13添加/移除不被清理后台应用

/*** 添加不被清理的后台应用** param packageName*/public void addBackgroundAliveApp(String packageName) {List<String> list getBackgroundAliveAppList();if (list ! null && packageName ! null && packageName.length() > 0) {if (!list.co…

牛客ds题1002践踏

分析每个操作 操作一&#xff0c;加入一条线段[l,r],感觉可以直接懒标记&#xff0c;[l,r] tag1&#xff0c;也可以差分操作 操作二&#xff0c;删除一条线段[l,r],[l,r]tag-1 操作三&#xff0c;xkty,问y可以在几条线段内&#xff0c;t取整数&#xff0c;一开始想暴力,r<…

容器运行nslookup提示bash: nslookup: command not found【笔记】

在容器中提示bash: nslookup: command not found&#xff0c;表示容器中没有安装nslookup命令。 可以通过以下命令安装nslookup&#xff1a; 对于基于Debian/Ubuntu的容器&#xff0c;使用以下命令&#xff1a; apt-get update apt-get install -y dnsutils对于基于CentOS/R…

AI网络爬虫:用GraphQL查询爬取动态网页数据

任务&#xff1a;爬取网站www.skillshare.com搜索结果页面数据&#xff1a; 查看网站的请求信息&#xff1a; 请求网址: https://www.skillshare.com/api/graphql 请求方法: POST 状态代码: 200 OK 远程地址: 127.0.0.1:10809 引荐来源网址政策: strict-origin-when-…