烧录系统和 SDK
1. 打开 NVIDIA 的 jetpack 下载网址:
SDK Manager | NVIDIA Developerhttps://developer.nvidia.com/sdk-manager
用虚拟机 Ubuntu18.04 系统,点击下载 SDK Manager,使用前请先注册/登录 NVIDIA 账号。
2. 安装 SDK Manager。
先进入刚刚下载的.deb 文件的路径,例如这里下载到 Downloads 目录。
cd Downloads/
ls
在终端输入以下命令安装 SDK Manager。
sudo dpkg -i sdkmanager*
我用的是jetson xavier nx 和tx2 nx 对应的版本都为jetpack 4.6.4(Ubuntu18.04)agx xavier还在配置中。
3.烧录
从“步骤 01 开发环境”窗口中,选择以下选项:(当板卡连接上虚拟机后这些都自动选好了,host machine可以不选)
-
从“产品类别”面板中,选择“Jetson”。
-
从“系统配置”面板中,选择主机和目标硬件。
-
在“SDK 版本”面板中,选择操作系统和 JetPack 版本。
-
如果相关,请选择要安装的任何其他 SDK。其他 SDK 可能包括:DeepStream。(我个人推荐下一个deepstream,后续的学习中可以用到)
步骤 2:查看组件并接受许可证
-
从步骤 02 详细信息和许可证中,您可以展开主机组件和目标组件面板,以查看将安装在系统上的组件。
-
启用该复选框以接受许可协议的条款和条件。
-
SDK Manager 将所有安装文件下载到默认路径以外的位置,请转到屏幕底部的“下载和安装选项”,然后选择要使用的路径。
-
选择“继续”继续执行下一步。
第 3 步:安装
-
在安装开始之前,SDK 管理器会提示您输入密码。
-
显示屏显示软件的下载和安装进度。
-
在顶部,您可以在“详细信息”和“终端”选项卡之间切换。“终端”选项卡显示有关下载和安装的详细信息,并突出显示所有错误。
-
在“终端”选项卡上,可以使用“筛选器”文本字段筛选和搜索特定信息。
-
SDK 管理器在准备好刷写目标设备时会打开一个对话框。提示提供了有关准备设备以使其准备好闪烁的说明。
-
SDK Manager 完成刷机过程后,连接到 Jetson 系统的显示器将显示初始设置提示。
-
作为初始设置过程的一部分,为 Jetson 系统选择用户名和密码。
-
初始设置过程完成后,Jetson 系统将引导至 Linux 桌面。
-
在 SDK Manager 的闪存后安装对话框中输入您的用户名和密码。
-
SDK 管理器现在将完成软件库的安装。跳过此步骤不会在目标硬件上安装任何 SDK 组件,并且会在设备上保持干净的操作系统。
M.2挂载和rootOnNVMe
如果板卡上的emmc比较小的话推荐外接一个SSD,部分板卡没有emmc用的是SD卡,如果SD卡够用就不需要使用SSD
1.M.2挂载
df -h
sudo fdisk -l
2.rootOnNVMe
git clone https://github.com/jetsonhacks/rootOnNVMe.git
cd rootOnNVMe/
./copy-rootfs-ssd.sh
./setup-service.sh
sudo reboot
df -h
fishros
感谢鱼哥提供的一键ros
wget http://fishros.com/install -O fishros && . fishros
pip
python3 --version
sudo apt install python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools
pip3 --version
sudo pip3 install --upgrade pip
sudo pip3 install pip==21.3.1
一般的话python是2.7,python3是3.6,pip是9.0.1,pip可以更新到21.3.1
jtop
jtop是Jetson系列设备最佳设备状态监控软件,可以实时查看CPU,GPU,内存等硬件设备使用情况,开发环境配置情况,同时方可以直接在图形化界面是设置运行功率和风扇转速。
sudo apt install python3-pip
sudo -H pip3 install -U jetson-stats
reboot
jtop
输入法
sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4
im-config -s ibus
sudo apt-get install ibus-pinyin
ibus-setup
摄像头
sudo apt install v4l-utils
v4l2-ctl --list-devices
v4l2-ctl --device=/dev/video0 --list-formats-ext
T265和D435i
官网链接:
Intel® RealSense™ SDK 2.0 (v2.54.1) 在该版本中移除了对T265相机的支持,以后的版本也不会支持了。为了继续使用 T265 相机,我们要下载Intel® RealSense™ SDK 2.0 (v2.53.1),此处提供两种安装方法。
注意:安装时,不要将相机连在设备上。
一、ubuntu 18.04(arm 架构)
如果之前安装不成功,或者安装了其他版本的 SDK ,最好先全部卸载,然后再依次执行下述命令。使用以下命令删除所有与 RealSense™ SDK 相关的包。
dpkg -l | grep "realsense" | cut -d " " -f 3 | xargs sudo dpkg --purge
(1)注册服务器的公钥
sudo mkdir -p /etc/apt/keyrings
curl -sSf https://librealsense.intel.com/Debian/librealsense.pgp | sudo tee /etc/apt/keyrings/librealsense.pgp > /dev/null
(2) 确保安装了 apt HTTPS 支持
sudo apt-get install apt-transport-https
(3)将服务器添加到存储库列表中
注意:下面1、2行是一整条命令,需要一起复制粘贴。可以看到第1行最后是一个管道符号 |。
echo "deb [signed-by=/etc/apt/keyrings/librealsense.pgp] https://librealsense.intel.com/Debian/apt-repo `lsb_release -cs` main" | \sudo tee /etc/apt/sources.list.d/librealsense.list
sudo apt-get update
正常来说,到这一步公钥和软件源的服务器已经被导入了。如果后续安装的时候提示没有公钥之类的问题,可以再重新执行下述命令试下(下面两条命令和前面的(1)-(3)作用相同)。
%========导入公钥========
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
%========添加服务器========
sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
(4)安装相关库(关键部分)
sudo apt-get install librealsense2-udev-rules:arm64=2.53.1-0~realsense0.703
sudo apt-get install librealsense2=2.53.1-0~realsense0.703
sudo apt-get install librealsense2-gl=2.53.1-0~realsense0.703
sudo apt-get install librealsense2-utils=2.53.1-0~realsense0.703
sudo apt-get install librealsense2-dev=2.53.1-0~realsense0.703
%============================下面这个可以不装============================%
sudo apt-get install librealsense2-dbg=2.53.1-0~realsense0.703
(5)重新连接英特尔实感深度摄像头并运行: realsense-viewer 以验证安装。
realsense-viewer
二、其他版本
1.下载SDK
git clone -b v2.53.1 https://github.com/IntelRealSense/librealsense.git
2.安装依赖包
sudo apt-get install libudev-dev pkg-config libgtk-3-dev
sudo apt-get install libusb-1.0-0-dev pkg-config
sudo apt-get install libglfw3-dev
sudo apt-get install libssl-dev
3.安装权限脚本
cd librealsense
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
4.编译
mkdir build
cd build
cmake ../ -DBUILD_EXAMPLES=true
make -j4
sudo make install
5.使用
realsense-viewer
三、Jetson 方法安装 librealsense
git clone https://github.com/jetsonhacks/installRealSenseSDK.git
cd ./installRealSenseSDK
./installLibrealsense.sh
realsense-viewer
installLibrealsense.sh( v2.49.0)
此脚本将从英特尔 Librealsense Debian 存储库安装 librealsense。
./installLibrealsense.sh
buildLibrealsense.sh
此脚本将从源代码构建 librealsense 并将其安装在系统上。注意:建议从 Debian 存储库安装,如上所述。但是,如果您需要从源代码编译,您会发现此脚本很有用。
./buildLibrealsense.sh [ -v | --version <version> ] [ -j | -jobs <number of jobs> ] [ -n | --no_cuda ]
<version>
= Librealsense 版本。例如 v2.49.0<number of jobs>
= # 个在构建时并发运行的作业。如果 Jetson 有 <= 4GB 内存,则默认为 1<no_cuda>
= 在没有 CUDA 支持的情况下编译(默认情况下,CUDA 处于打开状态)
realsense-ros
注意:如果您使用 realsense-ros,请确保将 librealsense 版本与 realsense-ros 版本要求相匹配。
1.安装
mkdir -p realsense_ws/src
cd realsense_ws/src
git clone -b ros1-legacy https://github.com/IntelRealSense/realsense-ros.git
git clone https://github.com/pal-robotics/ddynamic_reconfigure.git
cd .. && catkin_make
2.添加环境依赖
echo "source ~/realsense_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
3.测试安装是否成功
roslaunch realsense2_camera demo_pointcloud.launch
swap
1)扩展内存
2)防止意外崩溃
3)将经常不使用的内存数据转移至Swap分区中
4)Swap分区的大小是与内存大小相关的,通常建议Swap分区的大小为内存的2倍,但也不是绝对的。
1.新增swapfile文件大小自定义(6G)
sudo fallocate -l 6G /var/swapfile
2.配置该文件的权限
sudo chmod 600 /var/swapfile
3.建立交换分区
sudo mkswap /var/swapfile
4.启用交换分区
sudo swapon /var/swapfile
5.自启动启用
sudo bash -c 'echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab'
VNC
1、安装 vino
sudo apt update
sudo apt install vino
2、设 Enable VNC 服务 (此时手动可打开 vnc server)
sudo ln -s ../vino-server.service /usr/lib/systemd/user/graphical-session.target.wants
gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino require-encryption false
sudo vi /usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml
<key name='enabled' type='b'>
<summary>Enable remote access to the desktop</summary>
<description>
If true, allows remote access to the desktop via the RFB
protocol. Users on remote machines may then connect to the
desktop using a VNC viewer.
</description>
<default>false</default>
</key>
sudo glib-compile-schemas /usr/share/glib-2.0/schemas
/usr/lib/vino/vino-server
3、设置 VNC 登陆密码('thepassword' 修改为自己的密码)
%========账号========
gsettings set org.gnome.Vino authentication-methods "['vnc']"
%========密码========
gsettings set org.gnome.Vino vnc-password $(echo -n 'thepassword'|base64)
4、重启机器,验证是否设置 vnc 成功
sudo reboot
5、设置开机自启动 VNC Server
gsettings set org.gnome.Vino enabled true
mkdir -p ~/.config/autostart
vi ~/.config/autostart/vino-server.desktop
[Desktop Entry]
Type=Application
Name=Vino VNC server
Exec=/usr/lib/vino/vino-server
NoDisplay=true
Jupyter-lab
1.安装
sudo apt install nodejs npm
sudo apt install libffi-dev
sudo pip3 install jupyter jupyterlab
2.生成配置文件
jupyter notebook --generate-config
3.修改此配置文件
sudo gedit ~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.ip = '0.0.0.0' // 第296行
c.NotebookApp.open_browser = False // 第400行
c.NotebookApp.port = 8888 // 第424行,开放的端口号
c.NotebookApp.notebook_dir = '/home/' // 第392行,可以访问的目录
4.设置jupyter notebook的访问密码
jupyter notebook password
5.启动jupyter notebook
jupyter notebook
6.开机自启动
jupyter-lab安装位置:
which jupyter-lab
创建jupyter.service文件:
sudo gedit /etc/systemd/system/jupyter.service
在文件中复制如下内容。‘#’后注释内容必须删除,否则运行会报错
[Unit]
Description=Jupyter Notebook
[Service]
Type=simple
User=fs # 需要更换为自己的用户名
ExecStart=/home/fs/.local/bin/jupyter-lab --port 8888 # 更换为自己的路径
WorkingDirectory=/home/ # notebook启动时的目录
[Install]
WantedBy=default.target
启动服务:
sudo systemctl enable jupyter
sudo systemctl start jupyter
查看当前IP:
ifconfig
重启:
sudo reboot
等待重启完成,在同局域网下,通过浏览器访问Ubuntu:ip:端口号/lab
mavros
MAVROS是一层MAVLink与ROS通信的封装,旨在方便无人机与机载电脑通信。
sudo apt-get install ros-melodic-mavros-*
sudo apt-get install ros-melodic-serial
cd /opt/ros/melodic/lib/mavros
sudo ./install_geographiclib_datasets.sh
查看mavros对应的串口号:
ls /dev/tty*
给予相应的权限:
sudo chmod 777 /dev/ttyACM0
修改launch文件,
sudo chmod 777 /opt/ros/melodic/share/mavros/launch/px4.launch
sudo gedit /opt/ros/melodic/share/mavros/launch/px4.launch
将其中的
<arg name="fcu_url" default="/dev/ttyACM0:57600" />
修改为自己的端口及波特率
<arg name="fcu_url" default="/dev/ttyACM0:921600" />
启动Mavros
roslaunch mavros px4.launch
报错一:
roslaunch realsense2_camera rs_rgbd.launch
解决:
sudo apt-get install ros-melodic-rgbd-launch
报错二:
解决:
sudo apt-get install ros-melodic-realsense2-camera
清华源
Simple Indexhttps://pypi.tuna.tsinghua.edu.cn/simple
https://pypi.tuna.tsinghua.edu.cn/simple
#pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
pytorch
PyTorch for Jetson - Announcements - NVIDIA Developer Forums
JetPack4 1.8.0(我用的是4.6.4)
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
pip3 install Cython
pip3 install numpy==1.19.3
pip3 install protobuf==3.3.0
pip install testresources
pip install launchpadlib
pip3 install torch-1.8.0-cp36-cp36m-linux_aarch64.whl
torchvison(v0.9.0)
sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
python3 -m pip install --upgrade pillow
git clone --branch v0.9.0 https://github.com/pytorch/vision torchvision
torchvision
cd torchvision
export BUILD_VERSION=0.9.0
python3 setup.py install --user
torch和torchvision
对应的版本和支持的 Python 版本。
yolov5-6.2
目前yolov5-7.0也可以在jetson进行配置,其在运行中会提示要求python3.7及以上,但是在实际运行中没有出现问题。
git clone -b v6.2 https://github.com/ultralytics/yolov5.git
pip install -r requirements.txt
https://elinux.org/Jetson_Zoo#ONNX_Runtimehttps://elinux.org/Jetson_Zoo#ONNX_Runtime
自yolov5-6.0开始推出了yolov5n.pt,yolov5n在jetson nano 4GB上 640x640x3的输入能达到30fps+。如果想降低运存占用可以考虑使用。
YOLOv5n 'Nano' 型号 ⭐ NEW:YOLOv5s (7.5M 参数) 以下的新更小的 YOLOv5n (1.9M 参数) 型号,导出为 2.1 MB INT8 大小,是超轻量级移动解决方案的理想选择。
tensorrtx(yolov5-v6.2)GitHub - wang-xinyu/tensorrtx: Implementation of popular deep learning networks with TensorRT network definition APIImplementation of popular deep learning networks with TensorRT network definition API - wang-xinyu/tensorrtx
https://github.com/wang-xinyu/tensorrtx.git
git clone -b yolov5-v6.2 https://github.com/wang-xinyu/tensorrtx.git
cd tensorrtx
mkdir build
cd build
cmake ..
make
#修改yololar.h中的class_num
deepstream6.0.1(我目前使用的是这个版本)
#gen_wts_yolov5.py
NVIDIA DeepStream SDK API 参考:_NvDsFrameMeta 结构体参考
TensorFlow
1.安装tensorflow
Python 3.6.9+JetPack4.6.4
sudo apt-get update
sudo apt-get install -y python3-pip pkg-config
sudo apt-get install python3-sklearn
sudo apt-get install -y libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
sudo ln -s /usr/include/locale.h /usr/include/xlocale.h
sudo pip3 install --verbose 'protobuf<4' 'Cython<3'
sudo wget --no-check-certificate https://developer.download.nvidia.com/compute/redist/jp/v461/tensorflow/tensorflow-2.7.0+nv22.1-cp36-cp36m-linux_aarch64.whl
sudo pip3 install --verbose tensorflow-2.7.0+nv22.1-cp36-cp36m-linux_aarch64.whl
2.TensorRT环境搭建及实时图像识别
导入jetson-inference包
git clone https://github.com/dusty-nv/jetson-inference.git
cd jetson-inference
git submodule update --init
mkdir bulid
cd build
cmake../
jetson-inference包:https://pan.baidu.com/s/13XhMHrqXRDrbp2OnAL3tCA?pwd=akp3https://pan.baidu.com/s/13XhMHrqXRDrbp2OnAL3tCA?pwd=akp3
将jetson-inference包导入jetson-inference/data/networks
cd data/networks
for tar in *.tar.gz; do tar xvf $tar; done
cd ..
cd ..
cd build
make -j4
sudo make install
测试
cd jetson-inference/build/aarch64/bin
./imagenet-console ./images/bird_0.jpg output.jpg
报错
下载Googlenet.tar.gz,可能会出现如下问题。
- 首先断开jetson tx2 nx的网络连接,将不再执行下载命令;
- 然后在networks文件夹中新建Googlenet文件夹,将networks文件夹中的bvlc_googlenet.caffemodel、googlenet.prototxt和googlenet_noprob.prototxt剪切到新建的Googlenet文件夹;
- 最后在Googlenet文件夹新建networks文件夹,将ilsvrc12_synset_words.txt剪切到新建networks文件夹
- 使用板载摄像头进行实时图像识别,依次执行命令
cd jetson-inference/build/aarch64/bin ./imagenet-console ./images/bird_0.jpg output.jpg
安装Archiconda3
./Archiconda3-0.2.3-Linux-aarch64.sh