Jetson nano B01学习笔记 -- 系统环境配置以及ROS安装

news2024/11/15 12:06:49

文章目录

  • 一、Jetson nano 简介
  • 二、 系统环境配置
    • 1、系统镜像烧录
    • 2、CUDA环境配置
  • 三、 ROS安装和环境配置
  • 总结


一、Jetson nano 简介

在这里插入图片描述
Jetson Nano是一款体积小巧、功能强大的人工智能嵌入式开发板,于2019年3月由英伟达推出。它预装Ubuntu 18.04LTS系统,搭载英伟达研发的128核Maxwell GPU,可以快速将AI技术落地并应用于各种智能设备。相比于Jetson之前的几款产品(Jetson TK1、Jetson TX1、Jetson TX2、Jetson Xavier),Jetson Nano大幅减少了人工智能终端的研发成本。因此,一经推出,便受到了广泛的关注。

Jetson nano 的几点优势

(1) 体型小巧,性能强大,价格实惠,整体采用类似树莓派的硬件设计,支持一系列流行的AI框架,并且英伟达投入了大量的研发精力为其打造了与之配套的Jetpack SDK开发包,通过该开发包可以使学习和开发AI产品变得更加简单和便捷。

(2) 专为AI而设计,性能相比树莓派更强大,搭载四核Cortex-A57处理器,128核Maxwell GPU及4GB LPDDR内存,可为机器人终端、工业视觉终端带来足够的AI算力。

(3) 可提供472 GFLOP算力,支持高分辨率传感器,可以并行处理多个传感器,并可在每个传感器流上运行多个现代神经网络。

(4) 支持英伟达的NVIDIA JetPack组件包,其中包括用于深度学习、计算机视觉、GPU计算、多媒体处理等的板级支持包,CUDA,cuDNN和TensorRT软件库。

(5) 支持一系列流行的AI框架和算法,比如TensorFlow,PyTorch,Caffe / Caffe2,Keras,MXNet等,使得开发人员能够简单快速的将AI模型和框架集成到产品中,轻松实现图像识别,目标检测,姿势估计,语义分割,视频增强和智能分析等强大功能。

二、 系统环境配置

1、系统镜像烧录

首先先点击链接下载适配 Jetson nano 的官方镜像文件

https://developer.nvidia.com/jetson-nano-sd-card-image-r3221

准备好SD卡和读卡器来烧录系统镜像,使用SD卡格式化工具对SD进行格式化情况, 注意如果是国产版的Jetson nano开发套件要先给emmc系统刷固件,才能将为SD卡作为系统启动盘,固件记得问卖家要

SD Card Formatter工具下载

在这里插入图片描述

打开SD Card Formatter软件,选择对应的SD卡盘符,选择Quick format 模式直接格式化SD卡,格式化好后下载balenaEtcher烧录工具准备烧录系统镜像

balenaEtcher烧录工具下载

在这里插入图片描述

选择对应的系统镜像文件,选择对应的SD卡盘符,然后点击flash进行烧录。烧录完后弹出读卡器和SD卡,将SD卡插入Jetson nano的卡槽,给Jetson nano上电,最好用5V4A的电源适配器给Jetson nano供电

2、CUDA环境配置

Nvidia官方的系统镜像提供的Ubuntu18.04LTS,成功烧录系统镜像并启动成功会进入下面界面,这是在外接显示屏的情况下

在这里插入图片描述
首先按照惯例更新一下软件源并升级,这里不建议换源后更新,因为国内几个镜像源适配都没有官方源好,可能会报一些奇奇怪怪的错

sudo apt-get update
sudo apt-get upgrade

安装一些常用的工具

sudo apt install curl
sudo apt install nano

安装 jtop 来查看系统的运行信息,在终端输入 jtop 命令即可查看系统信息

sudo pip3 install jetson-stats
jtop

Jetson-nano 中已经安装了 CUDA10.2 版本

nvcc -V 

此时如果运行不会成功的话,需要你把 CUDA 的路径写入环境变量中,/.bashrc是用于配置Ubuntu系统环境变量的脚本

ls /usr/local/cuda/bin
sudo vim ~/.bashrc 

我们通过Ubuntu自带的文本编辑器 vim 来编写,将下面两行添加到最后

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_

通过 Esc 退出到命令模式后,通过按下:开始输入命令,wq 为保存并退出,q 为退出,q!为强制退出,然后需要 source 一下脚本使环境变量生效

Jetson-nano 中已经安装了 OpenCV4.1.1 版本,使用命令检查 OpenCV 是否安装就绪

pkg-config opencv4 --modversion

Jetson-nano 中已经安装好了 cuDNN,并有例子可供运行,我们运行一下例子,也正好验证上面的 CUDA。首先进入到/usr/src/cudnn_samples_v8/mnistCUDNN路径下的例子目录,然后编译一下

cd /usr/src/cudnn_samples_v8/mnistCUDNN
sudo chmod +777 mnistCUDNN
sudo make

三、 ROS安装和环境配置

ROS是适用于机器人的开源元操作系统,ROS集成了大量的工具,库,协议,提供类似OS所提供的功能,简化对机器人的控制,还提供了用于在多台计算机上获取,构建,编写和运行代码的工具和库,ROS在某些方面类似于“机器人框架”,ROS设计者将ROS表述为“ROS = Plumbing + Tools + Capabilities + Ecosystem”,即ROS是通讯机制、工具软件包、机器人高层技能以及机器人生态系统的集合体

在这里插入图片描述
首先备份软件源的list文件,然后更换成清华源。这部分主要加快软件包的下载更新速度,实测不会出现问题,当然你害怕出错也可以直接用官方源

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

将软件源配置文件内容删除,将下面的内容复制到文件中

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe

换源后再更新一下软件包

sudo apt-get update

添加ROS软件源并添加密钥

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

换源后又更新一下软件包

sudo apt-get update

安装ROS,我们这里安装的是ROS的melodic版本,官方推荐的ROS版本有:noetic 、melodic 、 kinetic

sudo apt install ros-melodic-desktop-full

首先安装构建ROS依赖的相关工具,这些python工具包会用于后续系统框架的搭建

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

ROS中使用许多工具前,要求先要安装rosdep软件包

sudo apt install python3-rosdep

然后初始化rosdep

sudo rosdep init
rosdep update

这里如果不科学上网的话可能会报错,如果没有科学上网工具的小伙伴可以参考下面这篇文章的修改方法

rosdep init 和 rosdep update 失败的解决方法

安装一下ROS对应版本的软件工具包

sudo apt-get install ros-melodic-turtlesim

配置好ROS的环境变量,以后可以让Ubuntu系统找到它,比如说你需要用ROS的命令时

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

分别打开三个终端,一个运行ROS的核心master,一个运行ROS的节点Turtlesim,一个打开ROS小乌龟的键盘控制页面

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

如果小乌龟成功跑起来说明基本上安装成功
在这里插入图片描述


总结

以上就是Jetson nano安装Ubuntu系统并配置环境,同时安装ROS的学习笔记。博主在暑假就试过在虚拟机Ubuntu上安装ROS2的humble版本,相对来说ROS的安装比较轻松。因为项目开发的需求,博主近期都在学习嵌入式AI技术的部署和ROS实现机器人小车的导航和建图,需要学习Slam相关的技术栈来实现。机器人技术是未来科技的高峰,等待着热爱机器人技术的小伙伴去征服。

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

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

相关文章

有什么好用的远程工具吗

沟通在任何类型的工作中都扮演着重要的角色。但当谈到远程工作时,这一点就更为重要。因此,您的组织必须找到可以让您的团队保持一致的工具。 在某些方面,项目管理扮演着类似的角色。 您会注意到,下面的大多数工具都会直接影响您的…

Android进阶宝典—Koin使用和原理分析

一、理解设计模式 控制反转 是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。 实现控制反转最常见的方式叫做依赖注入(Dependency Injection,简称DI),依赖注入(Dependency Injection)和控制反…

提高硬件设计能力的学习路线

不懂硬件的人,会觉得硬件高深莫测,“为什么他改几个电阻、电容就调出来,我弄个半天没搞定?”,“噢,靠的是经验”,但是经验又是什么呢?不能形容,反正就是不明觉厉。 就是…

Git(版本控制:前端git使用全流程)

1.版本控制(简单理解:就是软件对每次操作之后提交的记录) 文件版本 版本控制软件 版本控制的好处 版本控制的分类 本地版本控制系统 集中化版本控制系统 分布式版本控制系统 2. Git基础概念与工作流程 什么是Git? 开源的…

单片机编程中的裸机编程和多任务系统FreeRTOS系统详解,以及怎么学习FreeRTOS,看哪家的教程?(合集)

单片机编程中的裸机系统和多任务系统 学习了那么久的stm32还停留在裸机??? 单片机编程中的裸机系统和多任务系统.1 裸机系统1.1轮询系统1.2 前后台系统 2 多任务操作系统3 为什么要学习多任务操作系统??4 怎么学习Free…

诊断CAPL自动化(6) —— 诊断自动化测试,实战演示

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe,博客目录大全,点击跳转👉 下图是UDS协议测试的部分测试用例,该表格在文章末尾网盘自己获取经过前面几…

Cesium实践(4)——空间数据加载

文章目录 前言几何形体点线面体 标签文字图标 几何文件GeoJsonKMLCZML 三维模型总结 前言 本文介绍Cesium如何加载空间数据,空间数据即明确定义在三维空间中的数据,空间数据包括以下几类:1、几何形体(点、线、面、体)…

“支付+SaaS”赋能传统产业数字化转型

易观:传统支付业务利润空间在政策监管和市场竞争下不断被压缩,多家上市支付机构逐步将业务经营重点转移切入到企业交易环节,为企业提供包括SaaS服务、行业解决方案、营销服务及金融科技服务等在内的企业服务收入成为新的增长点。 伴随着“十四…

OSCP-AuthBy(Server 2008提权)

目录 扫描 FTP WEB 提权 扫描 nmap -sV -sC -p- 192.168.73.46 FTP 检查端口21上的匿名登录 导航到accounts目录,可以观察ftp服务上的帐户 Offsec, anonymous, admin

Java8函数式编程(Lambda表达式,Stream流,Optional)

一.函数式编程思想 面向对象思想主要是关注对象能完成什么事情,函数式编程思想就像函数式,主要是针对数据操作;代码简洁容易理解,方便于并发编程,不需要过分关注线程安全问题 二.lambda表达式 1.概念 lambda表达式…

提升金融写作效率:金融校对软件的优势与应用

金融行业的写作任务繁重且要求高度专业,涉及财务报告、研究报告、合同、政策文件等各类文档。金融校对软件应运而生,为金融专业人士提供有效的支持,帮助他们提高写作效率和质量。本文将探讨金融校对软件的优势与应用。 一、金融校对软件的优势…

【NFS共享存储服务】

目录 一、NFS (Network File System)网络文件系统1.1、NFS工作原理1.2、举例1.2.1、共享文件总结 一、NFS (Network File System)网络文件系统 依赖于RPC (远端过程调用) 需安装nfs-utils、rpcbind软件包 系统服务: nfs、rpcbind 共享配置文件: /etc/ex…

跳表的实现

目录 简介跳表的实现 简介 skiplist本质也是一种查找结构,和搜索树、哈希表一样可以作为key或者key/value模型的查找结构,从命名可以看出它也是一个链表结构,链表的查找效率是O(n),作为在链表基础上优化的一种查找结构,跳表的查找…

app拉新充场代理

我认为您可能是想了解APP充值拉新软件的功能吧。通常,APP充值拉新软件会具有以下功能: 充值服务:提供多种支付方式,让用户方便快捷地进行充值操作。 活动推广:通过不同的方式,如折扣、优惠码等&…

Tomcat的部署和优化

Tomcat的组件构成 (1)Web 容器:完成 Web 服务器的功能。 (2)Servlet 容器:名字为 catalina,用于处理 Servlet 代码。 (3)JSP 容器:用于将 JSP 动态网页翻译成…

centos系统安装mysql8.0

centos系统安装mysql8.0 环境说明开始1、查看centos7中是否有MariaDB,MariaDB与MySQL关系请自行查阅2、如果有MariaDB,需要将 步骤1 中查询到的mairadb全部卸载,否则MySQL安装会出现问题3、查看本机是否已经安装过MySQL4、如果安装过MySQL&am…

9.java程序员必知必会类库之加密库

前言 密码学在计算机领域源远流长,应用广泛。当前每时每刻,每一个连接到互联网的终端,手机,电脑,iPad都会和互联网有无数次的数据交互,如果这些数据都是明文传输那将是难以想象的。为了保护用户隐私&#…

算法--前缀和技巧 (蓝桥杯123-灵能传输)

文章目录 什么是前缀和用途什么时候用例题[蓝桥杯 2021 国 ABC] 123题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示 思路代码 灵能传输(蓝桥杯96%,洛谷ac)[蓝桥杯 2019 省 B] 灵能传输题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1…

知识图谱实战开篇-讲述知识图谱是什么,要学哪些知识,一文讲通

大家好,我是微学AI,今天给大家带来知识图谱重要讲述,讲明白什么是知识图谱,知识图谱可以做什么,需要学哪些知识,与自然语言处理的关系。很多人认为知识图谱是关系图谱,可能涉及人工智能的东西不…

【LeetCode】650. 只有两个键的键盘

650. 只有两个键的键盘(中等) 思路 不同于以往通过加减实现的动态规划,这里需要乘除法计算位置。因为粘贴操作是倍数增加,使一个一维数组 dp,其中位置 i 表示延展到长度 i 的最少操作次数。对于每个位置 j &#xff0c…