第三次配置xavier(成功)

1 刷机

1.1 什么是刷机

由于Xavier是嵌入式平台,使用的是AArch64架构,与我们平时使用的Intel架构电脑不一样,故开发环境搭建方式也不一样。为了简化环境搭建过程,让人们能更快的上手使用,Nvidia提供了一套SDK,叫做JetPack,包含有CUDA、cuDNN、TensorRT等常用深度学习库,只需要刷机即可直接安装到Xavier。所谓刷机就是利用另一台计算机作主机,将 OS 镜像下载好,然后烧录到 xavier 中并安装一些 SDK 组件的过程。

1.2 xavier刷机前要了解的事情

xavier刷机版本

刷机给xavier的jetpack版本有区别,部分jetpack版本可能没有对应的tensorflow,此时需要给xavier刷机成特定的jetpack版本,本文选择的是jetpack 4.5 (而不是天杀的jetpack 4.5.1)

下面网址可以查询能够安装tensorflow的jet pack版本

https://developer.nvidia.com/zh-cn/embedded/downloads

在这里插入图片描述

SDK manager版本

SDK manager是用来给xavier刷机的工具,高版本的SDK manager可以安装多个版本jetpack(包括低版本的jetpack),而低版本的SDK manager(最初与低版本的jetpack对应)直接不能安装任何版本的jetpack了(包括低版本的jetpack)。
参考【NVIDIA Jetson AGX Xavier刷机Jetpack4.3

1.3 刷机

参考【 NVIDIA Jetson AGX Xavier刷机Jetpack4.3

JetPack SDK(下载)Jetson 下载中心

需要注意的是:
【前期探索】

  • 本人遇到了登陆界面卡住的问题,后来通过换浏览器解决了登陆问题
  • xavier需要在开机的状态下与主机连接、以进行识别
  • 若不能自动识别,则同时按住电源键旁边的两个按键、使xavier进入刷机模式

【本次探索】

  • 网络状态良好时,主机能够直接识别xavier,并进行后续的下载和安装

2 基本配置

根据我目前阶段的了解,xavier不需要像pc端ubuntu那样安装显卡驱动

2.1 开机启动风扇

临时设置风扇以应急

sudo gedit /sys/devices/pwm-fan/target_pwm

设置开机启动风扇

首先安装pip

sudo apt install python-pip

其余参考【Xavier(Xavier,NX, Nano, AGX Xavier, TX1, TX2)开机启动风扇

2.2 安装拼音

参考【在Jetson Xavier NX安装中文输入法(googlepinyin中文输入法)

2.3 xavier扩容

参考【Jetson Xavier/NX 采用M.2 Key M SSD为系统盘】

https://www.jianshu.com/p/045df333042e

要注意的是

  • 选择“Ext4”格式前需要点击“+”号
  • 结束后重启一下

3 配置conda虚拟环境、安装ROS

3.1 配置conda虚拟环境

同样是实现anaconda的基本功能,但是与之前方式不同,本文不再使用archiconda,改用miniforge

下载miniforge

https://github.com/conda-forge/miniforge/

本文选择py3.7对应的aarch64版本
在这里插入图片描述

安装miniforge

参考【Xavier(arrch64架构)安装anaconda

创建虚拟环境

conda create -n py27 python=2.7
conda create -n py36 python=3.6
conda create -n py37 python=3.7

无法创建py35环境,会报错
在这里插入图片描述

3.2 安装Tensorflow

参考

参考优快云博客
Xavier(arrch64架构)安装Tensorflow

参考NVIDIA官网

https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform/index.html

安装过程

基于py36虚拟环境

Install system packages required by TensorFlow:

sudo apt-get update
sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran

Install and upgrade pip3.

sudo apt-get install python3-pip
sudo pip3 install -U pip testresources setuptools==49.6.0 

Install the Python package dependencies.

sudo pip3 install -U numpy==1.19.4 future==0.18.2 mock==3.0.5 h5py==2.10.0 keras_preprocessing==1.1.1 keras_applications==1.0.8 gast==0.2.2 futures protobuf pybind11

根据对应版本安装Tensorflow

pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v45 tensorflow-gpu==1.15.5+nv21.2

需要去掉上面的[–gpu]!即:

pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v45 tensorflow==1.15.5+nv21.2

能够启动并进行,但是过程中发生了报错

  ERROR: Failed building wheel for h5py
  Running setup.py clean for h5py

测试

python
import tensorflow as tf
print(tf.__version__)
sess = tf.Session() 
a = tf.constant(1) 
b = tf.constant(2) 
print(sess.run(a+b)) 

同样一套流程,在py37虚拟环境里面无法安装最后一步

3.3 安装ROS

安装ROS

参考【Nvidia Jetson AGX Xavier安装ROS、Anaconda、PyTorch及其它依赖库

source activate py27
git clone https://github.com/jetsonhacks/installROSXavier.git
cd installROSXavier
./installROS.sh -p ros-melodic-desktop-full

安装好后在终端输入roscore检查能否正常启动,如果不能,则打开.bashrc文件

sudo gedit ~/.bashrc 

在后边加入如下两行即可

export LD_LIBRARY_PATH=/opt/ros/melodic/lib
export LC_ALL="C"

测试ROS

装完ROS测试龟龟是必须的仪式感,分别开三个终端输入

source activate py27
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

3.4 配置ros,搭建uuv-simulator

创建工作空间、编译

新开一个终端,输入

source activate py27
mkdir -p ~/auv_ws/src
cd ~/auv_ws/src
catkin_init_workspace
cd ~/auv_ws/
catkin_make
source devel/setup.bash

安装uuv-simulator

往src文件夹中导入uuv_simulator之后:

sudo apt install ros-melodic-uuv-simulator

完成之后进行编译:

cd ~/auv_ws/
catkin_make
source devel/setup.bash

遇到报错

报错1:ModuleNotFoundError: No module named 'em'

解决方法:

pip uninstall em
pip install empy

报错2:
在这里插入图片描述
报错代码

[100%] Building CXX object uuv_simulator/uuv_sensor_plugins/uuv_sensor_ros_plugins/CMakeFiles/uuv_gazebo_ros_gps_plugin.dir/src/ROSBaseSensorPlugin.cc.o
/home/fyo/auv_ws/src/uuv_simulator/uuv_sensor_plugins/uuv_sensor_ros_plugins/src/gazebo_ros_image_sonar.cpp: In member function 'cv::Mat gazebo::GazeboRosImageSonar::ConstructVisualScanImage(cv::Mat&)':
/home/fyo/auv_ws/src/uuv_simulator/uuv_sensor_plugins/uuv_sensor_ros_plugins/src/gazebo_ros_image_sonar.cpp:945:71: error: 'CV_AA' was not declared in this scope
   cv::ellipse(scan, center, axes, -90, -fov/2.-0.5, fov/2., white, 1, CV_AA); //, int lineType=LINE_8, 0);
                                                                       ^~~~~
/home/fyo/auv_ws/src/uuv_simulator/uuv_sensor_plugins/uuv_sensor_ros_plugins/src/gazebo_ros_image_sonar.cpp:945:71: note: suggested alternative: 'CV_AVX'
   cv::ellipse(scan, center, axes, -90, -fov/2.-0.5, fov/2., white, 1, CV_AA); //, int lineType=LINE_8, 0);
                                                                       ^~~~~
                                                                       CV_AVX
uuv_simulator/uuv_sensor_plugins/uuv_sensor_ros_plugins/CMakeFiles/image_sonar_ros_plugin.dir/build.make:62: recipe for target 'uuv_simulator/uuv_sensor_plugins/uuv_sensor_ros_plugins/CMakeFiles/image_sonar_ros_plugin.dir/src/gazebo_ros_image_sonar.cpp.o' failed
make[2]: *** [uuv_simulator/uuv_sensor_plugins/uuv_sensor_ros_plugins/CMakeFiles/image_sonar_ros_plugin.dir/src/gazebo_ros_image_sonar.cpp.o] Error 1
CMakeFiles/Makefile2:12110: recipe for target 'uuv_simulator/uuv_sensor_plugins/uuv_sensor_ros_plugins/CMakeFiles/image_sonar_ros_plugin.dir/all' failed
make[1]: *** [uuv_simulator/uuv_sensor_plugins/uuv_sensor_ros_plugins/CMakeFiles/image_sonar_ros_plugin.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[100%] Linking CXX shared library /home/fyo/auv_ws/devel/lib/libuuv_gazebo_ros_camera_plugin.so
[100%] Built target uuv_gazebo_ros_camera_plugin
[100%] Linking CXX shared library /home/fyo/auv_ws/devel/lib/libuuv_gazebo_ros_gps_plugin.so
[100%] Built target uuv_gazebo_ros_gps_plugin
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed

解决办法:

将对应文本里的全部CV_AA替换成CV_AVX

导入eca之后再次进行编译:

cd ~/auv_ws/
catkin_make
source devel/setup.bash

测试uuv-simulator

在终端1中打开gazebo环境:

source activate py27
cd auv_ws/
source devel/setup.bash
roslaunch uuv_gazebo_worlds ocean_waves.launch

在终端2中打开eca:

source activate py27
cd auv_ws/
source devel/setup.bash
roslaunch eca_a9_gazebo start_demo_teleop.launch joy_id:=0

报错3:substitution args not supported: No module named defusedxml.xmlrpc

解决办法:

pip install defusedxml
pip install numpy 

3.5 安装pycharm

参考Jetson AGX Xavier安装Pycharm

解压后,进入bin文件夹,执行安装命令:

sh ./pycharm.sh

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值