jeston xavier nx跑通vins-fusion GPU定位的ego_planner

1.ROS安装

鱼香ROS一键安装

wget http://fishros.com/install -O fishros && . fishros

安装ROS和Linux下的QQ

问题

1.QQ使用遇到后台没有图标找不到的问题
快捷键

Ctrl +Alt+x

切出后台
2. jeston xavier nx下输入法安装(谷歌输入法)
参考链接(包括一些系统设置)

2.realsense驱动安装

按照高飞课程的readme.pdf里执行的

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
sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils
sudo apt-get install librealsense2-dev
sudo apt-get install librealsense2-dbg

问题

1.执行完

sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u

在这里插入图片描述

第一个链接忽略了
2.无法定位软件包 librealsense2-dkms ,但是测试没有问题

sudo apt-get install librealsense2-dkms

出现 E: 无法定位软件包 librealsense2-dkms 的问题 ,但是我插上双目可以有深度和RGB图像

测试

测试: realsense-viewer
在这里插入图片描述

3.安装mavros

sudo apt-get install ros-melodic-mavros
cd /opt/ros/melodic/lib/mavros
sudo ./install_geographiclib_datasets.sh

4.Cuda 10.2的安装

参考

sudo apt-get update
sudo apt-get install cuda-toolkit-10-2

安装好之后,在 .bashrc中配置环境变量。 source ~/.bashrc //使环境变量立即生效之后,nvcc -- version 即可查看cuda版本。

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

在这里插入图片描述

5.Eigen安装

卸载掉ROS自带的Eigen,安装3.3.7版本

# Remove pre-built Eigen
 sudo apt-get remove libeigen3-dev 
cd ~/Downloads/
wget -O eigen.zip https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.zip #check version
unzip eigen.zip
mkdir eigen-build && cd eigen-build
cmake ../eigen-3.3.7/ && sudo make install
pkg-config --modversion eigen3 # Check Eigen Version

6.安装ceres与glog与ddyanmic-reconfigure

解压 3rd_party.zip 压缩包,这个压缩包在fast-drone-250
1.安装glog
进入glog文件夹打开终端

./autogen.sh && ./configure && make && sudo make install
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev

glog安装遇到bash: ./autogen.sh: 权限不够
输入

chmod +777 autogen.sh

2.安装ddyanmic-reconfigure

sudo apt-get install ros-noetic-ddynamic-reconfigure

2.安装求解器ceres
进入ceres文件夹打开终端

mkdir  build
cd build
cmake ..//以上一级的目录的cmaelist为编译的主文件
make -j$(nproc)//读取到可以用的核心数进行编译
sudo make install

问题

(1) 可能是nvidia的本身硬件设置造成的(解决)
解决方法:sudo gedit /etc/security/limits.conf 在末尾加入
nvidia hard stack 8192
nvidia soft stack 8192
ubuntu hard stack 8192
ubuntu soft stack 8192
root hard stack 8192
root soft stack 8192
nvidia hard nofile 65535
nvidia soft nofile 65535
root hard nofile 65535
root soft nofile 65535
ubuntu hard nofile 65535
ubuntu soft nofile      

然后重启
make 成功

其中nofile这个命令并没有起作用 ,使用参看命令

ulimit -a 

在这里插入图片描述
其中的openfile还是1024,stack size变成了8192

使用

sudo -s //进入root权限
ulimit -n 65535//更改open file 的值

再次查看
在这里插入图片描述
open file值已经更改

(2) 可能是内存不足造成的(未解决)

方法一:

sudo dd if=/dev/zero of=/swapfile bs=64M count=32
#count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count=2048MB
sudo mkswap /swapfile
#把刚才空间格式化成swap格式
sudo chmod 0600 /swapfile  
sudo swapon /swapfile
#使用刚才创建的swap空间
swapoff -a//工作做完可以把临时空间关闭
(3) 可能是nvidia的模式低功耗造成的(未解决)

参考链接

(4) 可能是nvidia的版本不对造成的(未解决)

在这里插入图片描述
github地址
尝试编译了几个不同的版本,都是一个错误

(5)增加虚拟内存(未解决)

virt是虚拟内存,res是物理内存,shr是共享内存
在这里插入图片描述
增加虚拟内存:
查看交换分区:

free -m

创建交换分区(这里创建4G swap分区):

sudo fallocate -l 4G /swapfile
ls -h /swapfile

启用分区:

sudo chmod 600 /swapfile

标记文件为swap空间:

sudo mkswap /swapfile

启用swap文件:

sudo swapon /swapfile

查看交换空间是否可用:

sudo swapon --show

参考链接

7.安装opencv

关于Opencv 的安装需要特别谨慎,不建议频繁删除以前的库,因为多个项目使用的版本可能不同,所以可以将常用的版本安装在/usr/local下,将其余版本安装在自己Download或者home下。
(1)安装依赖

sudo apt-get install -y cmake libavcodec-dev libavformat-dev libavutil-dev \
    libglew-dev libgtk2.0-dev libgtk-3-dev libjpeg-dev libpng-dev libpostproc-dev \
    libswscale-dev libtbb-dev libtiff5-dev libv4l-dev libxvidcore-dev \
    libx264-dev qt5-default zlib1g-dev libgl1 libglvnd-dev pkg-config \
    libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev mesa-utils  

(2)下载opencv源码

wget -O opencv.zip https://github.com/opencv/opencv/archive/3.4.1.zip # check version
unzip opencv.zip

(3)编译GPU版本的opencv

我编译的路径为:/home/nvidia/opencv-3.4.1,我的安装路径为/home/nvidia/opencv_3.4,也就是说上一步解压的源码文件路径在/home/nvidia/opencv-3.4.1,安装路径/home/nvidia/opencv_3.4

cd opencv-3.4.1/ && mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
        -D CMAKE_INSTALL_PREFIX=/home/nvidia/opencv_3.4\ #设置安装路径
        -D WITH_CUDA=ON \
        -D CUDA_ARCH_BIN=7.2 \ #对于NX和AGX,选7.2,Nano,TX2选6.2 
        -D CUDA_ARCH_PTX="" \
        -D ENABLE_FAST_MATH=ON \
        -D CUDA_FAST_MATH=ON \
        -D WITH_CUBLAS=ON \
        -D WITH_LIBV4L=ON \
        -D WITH_GSTREAMER=ON \
        -D WITH_GSTREAMER_0_10=OFF \
        -D WITH_QT=ON \
        -D WITH_OPENGL=ON \
        -D CUDA_NVCC_FLAGS="--expt-relaxed-constexpr" \
        -D WITH_TBB=ON \
         ../
make -j$(nproc)

建议不要install,避免不同版本的opencv文件覆盖了,以后要使用该cv就设置路径到build文件夹中

sudo make install //安装到/home/nvidia/opencv_3.4

参考

问题

opencv 安装不正确导致的编译问题(解决)

编译问题
当时直接粘贴的如下命令导致安装不正确,需要把斜杠删除整成一行,重新安装,并设置安装路径

		cmake 
		-D CMAKE_BUILD_TYPE=RELEASE \
        -D CMAKE_INSTALL_PREFIX=/home/nvidia/opencv_3.4 \ //在这里重新设置了安装路径
        -D WITH_CUDA=ON \
        -D CUDA_ARCH_BIN=7.2 \  
        -D CUDA_ARCH_PTX="" \
        -D ENABLE_FAST_MATH=ON \
        -D CUDA_FAST_MATH=ON \
        -D WITH_CUBLAS=ON \
        -D WITH_LIBV4L=ON \
        -D WITH_GSTREAMER=ON \
        -D WITH_GSTREAMER_0_10=OFF \
        -D WITH_QT=ON \
        -D WITH_OPENGL=ON \
        -D CUDA_NVCC_FLAGS="--expt-relaxed-constexpr" \
        -D WITH_TBB=ON \
         ../

opencv 环境配置

1 添加 opencv 库:
打开或创建 opencv.conf 文件, 并添加 opencv 安装路径:

sudo gedit /etc/ld.so.conf.d/opencv.conf    //打开或创建opencv.conf文件, 添加以下内容:
/home/nvidia/opencv_3.4/lib    //opencv安装路径

注意: /home/nvidia/opencv_3.4/lib 这个路径,大家要根据自己的实际情况修改。
2 使 opencv 配置文件生效:

sudo ldconfig

3 配置 bash 环境变量:

 sudo gedit ~/.bashrc    //在文件末尾添加如下内容:
export PKG_CONFIG_PATH=/home/nvidia/opencv_3.4/lib/pkgconfig
 source ~/.bashrc       //使环境变量立即生效

4 验证 opencv 环境配置是否成功:

pkg-config --cflags --libs opencv

8.安装对应的CV-Bridge

我们需要自己源码编译一个CV-Bridge,且指定opencv为刚才安装的GPU版本的CV

(1)下载源码

点击进入官网,选择自己ROS的版本下载:

在这里插入图片描述

(2)修改为自己的opencv

gedit vision_opencv/cv_bridge/CMakeLists.txt
#在find_package(OpenCV 3 REQUIRED前面添加自己的cv路径:
set(OpenCV_DIR "/home/nvidia/opencv-3.4/build")

(3)编译源码

cd vision_opencv/cv_bridge
mkdir build
cd build
cmake ..
make
sudo make install

9.编译安装Vin-fusion GPU

(1)下载源码

cd ~/catkin_ws/src 
git clone https://github.com/pjrambo/VINS-Fusion-gpu

(2)修改CMakeLists.txt,指定为GPU版本的CV和CV-Bridge
其实就是以后编译ROS包,只要有包导入了opencv,就自行指定opencv和cv bridge的路径为自己前面安装的路径

gedit VINS-Fusion-gpu/camera_models/CMakeLists.txt
# 在最前面添加
set(OpenCV_DIR "/home/nvidia/opencv/opencv-3.4/build")

gedit VINS-Fusion-gpu/loop_fusion/CMakeLists.txt
# 在最前面添加
set(OpenCV_DIR "/home/nvidia/opencv/opencv-3.4/build")
set(cv_bridge_DIR /usr/local/share/cv_bridge/cmake)  

gedit VINS-Fusion-gpu/vins_estimator/CMakeLists.txt
# 在最前面添加
set(OpenCV_DIR "/home/nvidia/opencv/opencv-3.4/build")
set(cv_bridge_DIR /usr/local/share/cv_bridge/cmake) 

(3)编译源码
先在单独的工作空间测试以下,没有错误再导入到fast-drone-250

cd ~/catkin_ws
# 由于其他库会依赖camera_models,所以用catkin build编译得先单独编译该模块
catkin build camera_models
catkin build

1.遇到错误
在这里插入图片描述
解决办法:出现上面的错误是由于你的编译环境没有找到ros,catkin config --extend 就是指定ros环境路径.

catkin config --extend /opt/ros/melodic

2.遇到错误/opencv.hpp,fatal error: opencv2/cudaoptflow.hpp: No such file or directory
解决办法:在opencv编译的路径(/home/nvidia/opencv/opencv-3.4/build)里的这个文件复制到user/include/opencv4/opencv2里面

10.配置 D435相机文件

1.在vins-fusion-gpu中新建文件夹realsense_d435i, 并创建如下文件
在这里插入图片描述
其中 left.yaml 和right.yaml 文件配置相对于 VINS-Fuison 未做修改
在realsense_stereo_imu_config.yaml 文件中添加
在这里插入图片描述

use_gpu: 1
use_gpu_acc_flow: 1

从而调用 GPU 加速算法运行
2.添加launch文件
对比vins-fusion和vins-fusion-gpu将fast_drone_250.launch粘贴到
/home/nvidia/catkin_ws/src/VINS-Fusion-gpu/vins_estimator/launch
在这里插入图片描述
并更改这里面的路径为vins-fusion-gpu中新建文件夹realsense_d435i

<launch>
	<node name="vins_fusion" pkg="vins"  type="vins_node" output="screen" args="$(find vins)/../config/realsense_d435i/realsense_stereo_imu_config.yaml"/>

	<!-- <node name="loop_fusion" pkg="loop_fusion"  type="loop_fusion_node" args="$(find vins)/../config/realsense_d435i/realsense_stereo_imu_config.yaml" output="screen"/> -->

</launch>

3.更改使用的imu话题为/mavros/imu/data_raw

在这里插入图片描述
4.更改ego中所有用到cvbridge的Cmakelists文件
加入

 set(OpenCV_DIR "/home/nvidia/opencv-3.4/build")
set(cv_bridge_DIR /usr/local/share/cv_bridge/cmake)

编译 ego_planner

在这里插入图片描述

解决办法:

sudo apt-get install libvtk6-jni
sudo apt-get install libvtk6-java
sudo apt-get install libvtk6-dev
sudo apt-get install libvtk6-qt-dev
sudo apt-get install libpcl-dev
sudo apt-get install ros-melodic-pcl-conversions
sudo apt-get install ros-melodic-pcl-ros
sudo apt-get install ros-melodic-navigation
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值