文章目录
- 一、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相关的技术栈来实现。机器人技术是未来科技的高峰,等待着热爱机器人技术的小伙伴去征服。