在jetson xavier nx上配置orbslam3,带稠密重建

主要记录一下踩过的各种坑,包括从配置开发板系统到配置orbslam3一条龙服务,带cuda加速的opencv3.4.5

开发板:jetson xavier nx(8+128g)
系统环境:jetpack4.6.2、cuda10.2、cudnn8.2

上图!!!在这里插入图片描述

开发板刷系统

这里要在ubuntu主机(电脑)上安装sdkmanager软件来给开发板刷机,这里本人用的虚拟机:

  1. 开发板断电,usb连接ubuntu虚拟机;
  2. 短接开发板的GND和FC/REC进入recovery模式(注意刷系统过程中要保持短接);
  3. 开发板上电,正常情况下上电会开机,而进入recovery模式则不会开机;
  4. 选择相应的刷机包,这里我使用的是4.6.2;
    注意:刷系统镜像完成后,开发板会重启,此时需要开机解锁后才能继续安装cuda,opencv包
    上图!!!
    在这里插入图片描述

将系统移植到M.2硬盘上

开发板出厂带16g内存,但是不够用,可以将系统移植到固态硬盘上。
1.打开开发板自带的disks软件
在这里插入图片描述
2.格式化硬盘(右上角 format disk)
在这里插入图片描述
3.以下盗图
在这里插入图片描述
4.命名随意
在这里插入图片描述
5.完成后点击(类似播放的按钮),将其挂载
在这里插入图片描述
6.正儿八经的重点来了(打开终端先冲3行指令)
git clone https://github.com/jetsonhacks/rootOnNVMe.git
cd rootOnNVMe
./copy-rootfs-ssd.sh
#然后再执行
./setup-service.sh
#最后重启完事
reboot

Sdkmanager安装cuda、cudnn和opencv(自带的opencv是不支持粗大加速的哟)

在这里插入图片描述
安装要很久。。。。。。(最好把开发板的锁屏和睡眠关掉,不然锁了就会失败,很惨!)
在这里插入图片描述

下载nomachine软件,方便远程控制(因为我只有一套鼠键,x来x去很麻烦(狗头))

等安装好上面的,再在nomachine官网下载armv8版本的,https://www.nomachine.com/
指令安装(这里***表示下载的deb全名):sudo dpkg -i ***

你还可以设置开机不输入密码就进入系统,以后就不用重启后还要插上鼠键输密码
在这里插入图片描述
在这里插入图片描述
你还可以设置固定ip,详情百度。

安装jetson风扇控制软件

sudo apt-get install python3-pip
sudo pip3 install jetson-stats
#打开软件:
sudo jtop

在6info中,通过键盘的p和m键调节风扇大小

安装ros

自己没安装成功过,还好有大佬一键安装。
终端执行:
wget http://fishros.com/install -O fishros && . fishros
参考:一键安装(又省了30块钱)

安装带cuda加速的opencv3.4.5

1、卸载系统自带的opencv
sudo apt-get purge libopencv*
sudo apt-get purge python-numpy
sudo apt-get update
sudo apt-get dist-upgrade
2、将gcc、g++更新到最新版本
sudo apt-get install --only-upgrade g+±5 cpp-5 gcc-5
3、安装Jetson Xavier NX 中opencv依赖项
sudo apt-get install build-essential make cmake cmake-curses-gui g++ libavformat-dev libavutil-dev libswscale-dev libv4l-dev libeigen3-dev libglew-dev libgtk2.0-dev
sudo apt-get install libdc1394-22-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt-get install libjpeg8-dev libjpeg-turbo8-dev libtiff5-dev libjasper-dev libpng12-dev libavcodec-dev
sudo apt-get install libxvidcore-dev libx264-dev libgtk-3-dev libatlas-base-dev gfortran
sudo apt-get install libopenblas-dev liblapack-dev liblapacke-dev
sudo apt-get install qt5-default
注意:哪个无法定位就百度搜索安装方式
4、安装python3的依赖项
sudo apt-get install python3-dev python3-pip python3-tk
sudo pip3 install numpy
sudo pip3 install matplotlib
sudo apt-get install python3-numpy
sudo apt-get install python3-matplotlib
5、安装python2的依赖项
sudo apt-get install python-dev python-pip python-tk
sudo pip2 install numpy
sudo pip2 install matplotlib
6、cuda部分源码的修改
sudo gedit /usr/local/cuda/include/cuda_gl_interop.h
在这里插入图片描述
7、编译:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local
-D WITH_CUDA=ON -D CUDA_ARCH_BIN=“7.2” -D CUDA_ARCH_PTX=“”
-D WITH_CUBLAS=ON -D ENABLE_FAST_MATH=ON -D CUDA_FAST_MATH=ON
-D ENABLE_NEON=ON -D WITH_LIBV4L=ON -D BUILD_TESTS=OFF
-D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF
-D WITH_QT=ON -D WITH_OPENGL=ON …
这个时候出现错误:
*** No rule to make target ‘/文件路径/文件名’,needed by ‘/文件路径/文件名’. Stop
报错信息提示在路径/usr/lib/aarch64-linux-gnu/下面找不到libGL.so文件。解决方案如下:

在终端中打开/usr/lib/aarch64-linux-gnu/路径,查找libGL 相关文件。如果文件夹中本身已经有libGL.so文件的话,就cd进入到/usr/lib/x86_64-linux-gnu路径下执行以下指令,删除该文件。
执行指令:locate libGL.so
若报错:-bash: locate: command not found
执行指令:sudo apt-get install mlocate
若报错:locate: can not stat () `/var/lib/mlocate/mlocate.db’: No such file or directory
执行指令:locate libGL.so

执行:
sudo rm libGL.so
sudo ln -s /usr/lib/aarch64-linux-gnu/libGL.so.1 /usr/lib/aarch64-linux-gnu/libGL.so
重新编译安装:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local
-D WITH_CUDA=ON -D CUDA_ARCH_BIN=“7.2” -D CUDA_ARCH_PTX=“”
-D WITH_CUBLAS=ON -D ENABLE_FAST_MATH=ON -D CUDA_FAST_MATH=ON
-D ENABLE_NEON=ON -D WITH_LIBV4L=ON -D BUILD_TESTS=OFF
-D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF
-D WITH_QT=ON -D WITH_OPENGL=ON …
make
sudo make install
参考1
参考2
参考3

用opencv3.4.5编译cv_bridge

1、卸载ros带的cv_bridge
sudo apt remove ros-melodic-cv-bridge
2、编译cv_bridge
mkdir catkin_workspace
cd catkin_workspace
catkin init
catkin config -DPYTHON_EXECUTABLE=/usr/bin/python3 -DPYTHON_INCLUDE_DIR=/usr/include/python3.6m -DPYTHON_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.6m.so
catkin config --install
git clone https://github.com/ros-perception/vision_opencv.git src/vision_opencv
apt-cache show ros-kinetic-cv-bridge | grep Version
#Version: 1.12.8-0xenial-20180416-143935-0800
cd src/vision_opencv/
git checkout 1.12.8
cd …/…/
catkin build cv_bridge
source install/setup.bash --extend
#链接自己编译的cv_bridge位置:
vim ~/.bashrc
source /home/nvidia/catkin_workspace/install/setup.bash --extend

测试:
pkg-config --modversion cv_bridge
显示安装的1.12.8表示成功

安装realsense sdk和realsenseros

realsense sdk参考:https://github.com/IntelRealSense/librealsense/blob/master/doc/installation_jetson.md
RealsenseRose参考:(先安装:sudo apt-get install ros-melodic-ddynamic-reconfigure)
https://github.com/IntelRealSense/realsense-ros/tree/ros1-legacy

十、安装pangolin0.5 eigen3.3.7 pcl1.8.1

pangolin0.5和 eigen3.3.7一样
先解压进入执行以下指令:
mkdir build
cd build
cmake …
Sudo make install

安装Pcl:
依赖库:
sudo apt-get update
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common
sudo apt-get install libflann1.8 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete
sudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre
########这是有cuda的安装流程##########
参考:https://blog.csdn.net/qq_41323996/article/details/109622369
cd pcl
mkdir release
cd release
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_GPU=ON-DBUILD_apps=ON -DBUILD_examples=ON \ -DCMAKE_INSTALL_PREFIX=/usr …
make -j$(nproc)
sudo make install

编译orbslam3

编译时内存不够,所以首先要扩展内存(扩10g吧,参考是1g的):https://blog.csdn.net/qq_42281215/article/details/108600517
改成:sudo dd if=/dev/zero of=/swapfile bs=64M count=160

编译时出现cv_bridge错误,执行指令:sudo apt install ros-melodic-cv-bridge就好了,明明自己编译了cv_bridge,然后编译又识别不出来,还得安装ros下的cv_bridge,最后编译orbslam还能用,搞不清楚具体原因,反正能用。

补充:第二次弄的时候还是这个问题,后来通过在manifest.xml中去掉cv_bridge引用,然后在cmakelist里加入找cv_bridge的库就解决了
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

其他的都是可以搜到的流程了。
实际跑延迟有点高,不知道咋回事,有大佬可以解答一下
在这里插入图片描述

提取开发板镜像备份

因为编译刷机加上opencv和pcl太费时间了,所以干脆备份系统镜像,下次直接烧
参考:https://blog.csdn.net/qq_41994173/article/details/127586490

效果图:
在这里插入图片描述

在这里插入图片描述

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值