机器人操作系统ROS(21) jetson nano安装torch tensorflow

安装torch、tensorflow其实跟普通在Linux系统安装没有区别,但是Linux是arch64位的,而jetson是aarch64位的,所以还是不太一样。
另外一个坑是:购买的创乐博的机器人,已经安装ros,但是安装torh的时候需要apt -get update导致,后续无法正常(大概率是这个原因,所以不建议使用这个命令!具体可以问客服)


参考操作参考文章 :【Jetson-Nano】jetson_nano安装环境配置及tensorflow和pytorch的安装_牛andmore牛的博客
文章里面已经讲述了如果烧录系统,设置交换空间,ssh远程连接nano并设置最大功率等等,前期没实验的可以看,这里省略。


关于风扇

我觉得风扇太吵,偶然发现,其实烧好的镜像里已经默认自启动风扇的最大挡位,太吵了就找了几个命令,具体参考:jetson nano 散热风扇控制 里面大佬讲原理挺好的

#控制风扇开关:
#ON :
sudo sh -c ‘echo 255 > /sys/devices/pwm-fan/target_pwm’
# 这个数值就是控制,别太小就行, 毕竟散热重要!

#OFF :
sudo sh -c ‘echo 0 > /sys/devices/pwm-fan/target_pwm’
#(slowly turned off)
# 注意是英文的单引号,复制过去容易出错

烧好的镜像写死了,可以去修改文件/etc/rc.local 下次启动就会生效

配置cuda

其实因为jetson自带gpu,百度可查;所以配置下环境变量就好

先配置cuda的环境变量, 填加PATH到.bashrc,具体路径.
1 首先,查看cuda的bin目录下是否有nvcc:
ls /usr/local/cuda/bin
如果存在,

sudo vim ~/.bashrc进入配置文件; 在最后面添加以下两行:

注意:在vim中通过Esc退回命令模式,通过I切换到输入模块,在输入模式下才可以输入文本

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

保存退出。
然后需要source下生效下。source ~/.bashrc
此时再执行nvcc -V执行结果如下 nvcc -V
在这里插入图片描述

检查其他环境

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

pkg-config opencv4 --modversion

如果OpenCv安装就绪,会显示版本号,我的版本是4.4.1

image.png
2检查cuDNN
Jetson-nano中已经安装好了cuDNN,并有例子可供运行,我们运行一下例子,也正好验证上面的CUDA
cd /usr/src/cudnn_samples_v8/mnistCUDNN/
sudo make #编译一下例子
./mnistCUDNN
如果以上无法运行可以添加权限如下方法:
sudo chmod a+x mnistCUDNN # 为可执行文件添加执行权限

如果成功,如下所示
nano@nano-desktop:/usr/src/cudnn_samples_v8/mnistCUDNN$

更新PIP

sudo apt-get install -y python3-dev python3-testresources python3-setuptools 
wget https://bootstrap.pypa.io/get-pip.py
# 这句话我是没有执行成功,报警告,可以看看警告里有个新的地址,换一下就行;没有请忽略
sudo python3 get-pip.py
rm get-pip.py
pip -V # 查看版本没问题即可

下文中将使用pip来安装python的一些包,对于一些网络不好的情况,建议先改变pip的安装源到国内:

#如清华的源
https://pypi.tuna.tsinghua.edu.cn/simple
#豆瓣源
https://pypi.doubanio.com/simple
#临时改源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
#持久的设为默认源
pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
#如果您到 pip 默认源的网络连接较差,临时使用镜像站来升级 pip
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U

虚拟环境配置

因为这里的SD卡是32G的,第一次用虚拟环境装发实际大概用了5-6G(可能protubf很占地方,安装了两个虚拟环境)所以第二次装的时候我是直接在默认的python3.6装的,相当于把torch和tenfsorflow装在一个环境中,实用的话不建议这样操作)
下面的操作是直接在系统环境python3.6的过程,建议使用虚拟环境,注意在虚拟环境还是在系统环境

我们将使用python的虚拟环境,来保证你使用的环境互相独立。
使用virtualenv和virtualenvwrapper,(之前尝试过anaconda,由于各种包编译的问题 ,安装过程不是很顺利,为了快速使用,没有去做过深研究),当然完全可以直接使用系统的python环境,这样更简单,按需进行吧。
安装命令:

sudo pip install virtualenv virtualenvwrapper

安装完之后,需要更新.bashrc vim ~/.bashrc
在文件底部输入

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs #指定所有的需拟环境的安装位置
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 #指定解释器
source /usr/local/bin/virtualenvwrapper.sh#进行激活生效

保存并退出,使用source 重新载入 source ~/.bashrc

接着创建python的虚拟环境,

mkvirtualenv nano -p python3 #-p 是指定解释器是python3

在这里插入图片描述
创建后直接进入了。
我的名字是nano,你可以自己定义。
一些virtualenvwrapper的常用命令:

#创建一个环境
mkvirtualenv name #在~/.virtualenvs下安装name的需拟环境
#激活工作环境
workon name
#workon后不加任何东西可以列出所有虚拟环境
#退出当前虚拟环境
deactivate
#删除虚拟环境,需先退出
rmvirtualenv name
#列出所有虚拟环境
lsvirtualenv

安装jtop

Jetson Nano中有个工具jtop, 可以同时查看CPU和GPU资源以及温度,另外就是可以把你当前的library show出来

sudo pip install --upgrade pip
sudo -H pip install jetson-stats
sudo jtop

在这里插入图片描述
选1ALL的内容
在这里插入图片描述
2GPU的内容
在这里插入图片描述
3CTRL的内容
在这里插入图片描述
4INFO的内容
在这里插入图片描述
按q退出。
下图为低功耗下的图:
在这里插入图片描述

安装torch

因为实验的时候没有安装jetson-inference ,所以不方便快速安装;想要安装的可以去原文链接中查看::【Jetson-Nano】jetson_nano安装环境配置及tensorflow和pytorch的安装_牛andmore牛的博客


这个aarch64位的也很少有编译好的torch,好像国外都是自己下载torch的源码然后自己编译,为了省时间, 目前有一个外网论坛公布了编译好的针对该系统的(如下图),如果网不好,可以使用下面的百度网盘。
建议自己下载然后在使用,下载地址:

下载完后,本地安装 (安装过程中一般都会自动下载依赖项,目前没什么问题)

pip install ...wen jian ming ..whl

以下是说明文档中的内容,我们照着实现。
在这里插入图片描述

快速办法的来源:安装toch

验证
在这里插入图片描述
在这里插入图片描述
大概十几分钟安装完成

安装 torchvision

反正挺麻烦,对网络的要求比较多。。。。原文链接中好像是去下载源码然后自己编译,我试过一次,失败了。。

之前的百度网盘已经提供了版本,可以直接找到该文件然后本地安装即可。

验证pytorch 和torchvision

import torch
print(torch.__version__)
print(touch.cuda.is_available())
import torchvision
print(torchvision.__version__)

在这里插入图片描述


如果出现:“Illegal instruction(core dumped)”

外国的解决办法:python - Illegal instruction(core dumped) error on Jetson Nano - Stack Overflow
Ubuntu/Jetson Nano问题解决“Illegal instruction(core dumped)”
为避免麻烦每次都输入,直接写入环境

sudo vi ~/.bashrc最后添加
export OPENBLAS_CORETYPE=ARMV8
生效source ~/.bashrc

安装tensorflow

来源:【Jetson-Nano】2.Tensorflow和Pytorch的安装

在系统环境中安装一些包:依次执行就好
sudo apt-get install python3-numpy
sudo apt-get install python3-scipy
sudo apt-get install python3-pandas
sudo apt-get install python3-matplotlib
sudo apt-get install python3-sklearn

创建虚拟环境并激活:

mkvirtualenv nano
workon nano

1 Protobuf 安装
退出虚拟环境,在系统中安装Protobuf。

首先配置protobuf,这样可以使tensorflow运行更快。如果protobuf和libprotobuf没有安装,Tensorflow的性能会被大打折扣。当然,使用pip来安装tensorflow 的时候,会自动安装一个protobuf的版本,但是可能不是很合适。关于这部分性能的影响参见Nvidia的论坛
安装步骤如下:

wget https://raw.githubusercontent.com/jkjung-avt/jetson_nano/master/install_protobuf-3.8.0.sh #需要科学上网,否则可以直接在浏览器中打开这个网址(https://github.com/jkjung-avt/jetson_nano/blob/master/install_protobuf-3.8.0.sh)
#把文件中的这一行注释掉sudo apt-get install -y python3-pip
sudo chmod +x install_protobuf-3.8.0.sh
./install_protobuf-3.8.0.sh

protobuf安装其实就是一个命令脚本sh,然后执行再链接到虚拟环境,但是这个脚本试过一次,中间遇到很多问题突然中断,建议依次执行这个脚本里的每一句回到用户家目录,依次执行

#!/bin/bash

set -e

folder=${HOME}/src
mkdir -p $folder

echo "** Install requirements"
sudo apt-get install -y autoconf libtool

echo "** Download protobuf-3.8.0 sources"
cd $folder
if [ ! -f protobuf-python-3.8.0.zip ]; then
  wget https://github.com/protocolbuffers/protobuf/releases/download/v3.8.0/protobuf-python-3.8.0.zip
fi
if [ ! -f protoc-3.8.0-linux-aarch_64.zip ]; then
  wget https://github.com/protocolbuffers/protobuf/releases/download/v3.8.0/protoc-3.8.0-linux-aarch_64.zip
fi

echo "** Install protoc"
unzip protobuf-python-3.8.0.zip
unzip protoc-3.8.0-linux-aarch_64.zip -d protoc-3.8.0
sudo cp protoc-3.8.0/bin/protoc /usr/local/bin/protoc

echo "** Build and install protobuf-3.8.0 libraries"
export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp
cd protobuf-3.8.0/
./autogen.sh
./configure --prefix=/usr/local
make -j$(nproc)
make check
sudo make install
sudo ldconfig

echo "** Update python3 protobuf module"
# remove previous installation of python3 protobuf module
sudo pip uninstall -y protobuf
sudo pip install Cython
cd python/
python3 setup.py build --cpp_implementation
sudo python3 setup.py install --cpp_implementation

echo "** Build protobuf-3.8.0 successfully"

然后激活虚拟环境,装protobuf装到虚拟环境中:

workon nano
cd ~
cp -r ~/src/protobuf-3.8.0/python/ .
cd python
python setup.py install --cpp_implementation

2 安装依赖包及tensorflow1.15
安装好protobuf以后,在虚拟环境中安装numpy和cython:

pip install cython
pip install numpy==1.16.1
# 还有其他依赖
pip install -U testresources setuptools
pip install -U future mock h5py keras_preprocessing keras_applications gast futures pybind11
# 这几个包,其实没有安装太成功,但是好像也没有关系,可以一个个安装,如果还不可以,本地安装tf时也会自动下载

安装过程中好像h5py安装很慢,最后还报错了,可以先跳过最后再安装,

我的tensorflow安装的是1.15版本的,再百度网盘提供了连接:
直接本地安装就好。有些依赖会自动下载

pip install ...wen jian ming ..whl

安装其它常用库(自选)

pip3 install scipy
pip3 install keras==2.3.0
pip3 install pillow
pip3 install matplotlib
pip3 install scikit-learn
pip3 install scikit-image
pip3 install jupyter 

测试python包是否安装成功

python -c 'import numpy; print(numpy.__version__)'
python -c 'import jupyter; print(jupyter.__version__)'
python -c 'import PIL; print(PIL.__version__)'
python -c 'import matplotlib; print(matplotlib.__version__)'
python -c 'import tensorflow; print(tensorflow.__version__)'
python -c 'import keras; print(keras.__version__)'
python -c 'import scipy; print(scipy.__version__)'

验证一下tensorflow是否支持GPU
机器人操作系统ROS(21) jetson nano安装torch tensorflow_第1张图片

问题

机器人操作系统ROS(21) jetson nano安装torch tensorflow_第2张图片

这里的警告可以不用在意,如果可以建议还是用虚拟环境

时间同步的问题

参考:jetson nano设置时间同步

nano时间不准确,在网上试了多种方式,但是一关机之后,再次开启时,时间又恢复默认啦!!!

小伙伴们可以尝试以下方式:

首先安装时间同步协议ntp:sudo apt-get install ntpdate
然后设置中国时间ntp服务器时间: sudo ntpdate cn.pool.ntp.org
最后设置硬件时钟同步:sudo hwclock --systohc
在这里插入图片描述

设置root(不推荐)

1.设置root用户和密码
首先用快捷键crtl+alt+T 打开终端,显示的是用户名@电脑名:~ , 符 号 ,符号 就表示现在处于普通用户权限。
然后输入:sudo passwd root
输入两次密码,回车,成功

参考

【Jetson-Nano】2.Tensorflow和Pytorch的安装
查看Jetson系列产品JetPack的版本信息
NVIDIA Jetson xavier NX上安装pytorch_前面一二三四是失败的方法,可以直接按照步骤五进行安装…
【Jetson-Nano】jetson_nano安装环境配置及tensorflow和pytorch的安装

你可能感兴趣的:(机器人ROS,机器人)