ubuntu20.04 配置 SUMA++ 全流程

本文详细描述了在Ubuntu20.04环境下安装rangenet_libforTensorRT8.x并解决编译时错误的过程,包括找到缺失文件、添加包含目录以及SUMA++的安装与运行问题的解决方法。
部署运行你感兴趣的模型镜像

ubuntu20.04 配置 SUMA++ 全流程

前言

最近在阅读语义SLAM的相关文献,其中就有suma++,但大家复现的往往都是18.04版本,所以只能自己开一个了。

安装rangenet_lib

由于suma++中,TensorRT版本较老在我的电脑上没发用,因此只能寻找新方案。首先找到了TensorRT8的相关库。参考1
感谢大佬!!!!
首先根据rangnet_lib安装对应依赖,然后在gitclone步骤按这个来

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/ros/catkin.git 
git clone https://github.com/vincenzo0603/rangenet_lib_forTensorRT8XX.git
cd .. && catkin init
catkin build rangenet_lib

error1:


Errors     << rangenet_lib:make /home/beabbit/study_space/SuMa++/logs/rangenet_lib/build.make.000.log
In file included from /home/beabbit/study_space/SuMa++/src/rangenet_lib_forTensorRT8XX/src/netTensorRT.cpp:7:
/home/beabbit/study_space/SuMa++/src/rangenet_lib_forTensorRT8XX/include/netTensorRT.hpp:9:10: fatal error: NvInfer.h: 没有那个文件或目录
    9 | #include <NvInfer.h>
      |          ^~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/rangenet_lib.dir/build.make:89:CMakeFiles/rangenet_lib.dir/src/netTensorRT.cpp.o] 错误 1
make[2]: *** 正在等待未完成的任务....
In file included from /home/beabbit/study_space/SuMa++/src/rangenet_lib_forTensorRT8XX/include/selector.hpp:16,
                 from /home/beabbit/study_space/SuMa++/src/rangenet_lib_forTensorRT8XX/src/selector.cpp:8:
/home/beabbit/study_space/SuMa++/src/rangenet_lib_forTensorRT8XX/include/netTensorRT.hpp:9:10: fatal error: NvInfer.h: 没有那个文件或目录
    9 | #include <NvInfer.h>
      |          ^~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/rangenet_lib.dir/build.make:76:CMakeFiles/rangenet_lib.dir/src/selector.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:305:CMakeFiles/rangenet_lib.dir/all] 错误 2
make: *** [Makefile:141:all] 错误 2
cd /home/beabbit/study_space/SuMa++/build/rangenet_lib; catkin build --get-env rangenet_lib | catkin env -si  /usr/bin/make --jobserver-auth=3,4; cd -

解决方案:
1.在终端定位缺少文件的位置(以我上面的问题距离)

sudo locate NvInfer.h

得到

/home/beabbit/study_space/package/TensorRT-8.2.1.8/include/NvInfer.h

2.在Cmakelist.txt文件中加入:

include_directories(/home/beabbit/study_space/package/TensorRT-8.2.1.8/include)

再次编译,问题解决。

Suma++安装

首先在src文件夹中打开终端gitclone,注意和rangnet_lib为同一个文件夹。

git clone https://github.com/PRBonn/semantic_suma.git

然后查看opengl版本。

glxinfo | grep "version"

得到

server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
OpenGL core profile version string: 4.6.0 NVIDIA 525.147.05
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL version string: 4.6.0 NVIDIA 525.147.05
OpenGL shading language version string: 4.60 NVIDIA
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 525.147.05
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
    GL_EXT_shader_group_vote, GL_EXT_shader_implicit_conversions, 

可知版本为4.6.0,以此在终端

cd .. && catkin build --save-config -i --cmake-args -DCMAKE_BUILD_TYPE=Release -DOPENGL_VERSION=460 -DENABLE_NVIDIA_EXT=YES

Error1:

[semantic_suma:cmake] CMake Error at /home/beabbit/study_space/SuMa++/src/semantic_suma/CMakeLists.txt:61 (COMPILE_SHADERS):
[semantic_suma:cmake]   Unknown CMake command "COMPILE_SHADERS".

我怀疑所以我我一直使用sudo的问题,后续把整个工程清零,重新来一般这无这个问题。

Error2:

RT8XX/include/netTensorRT.hpp:9:10: fatal error: NvInfer.h: 没有那个文件或目录
[semantic_suma:make]     9 | #include <NvInfer.h>

解决方法和之前一样
终于编译成功,按照要求下载model并且在suma中的config文件设置好路径后就可以了

运行suma++

一开始就遇到一个错误

(dxtorch) beabbit@beabbit-Lenovo-Legion-Y7000-2020:~/study_space/SuMa++$ ./src/semantic_suma/bin/visualizer 
OpenGL Context Version 4.6 core profile
GLEW initialized.
OpenGL context version: 4.6
OpenGL vendor string  : NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce GTX 1650/PCIe/SSE2
terminate called after throwing an instance of 'rv::XmlError'
  what():  Error while parsing in line 1
已放弃 (核心已转储)

后发现只要在bin文件夹中打开终端就不会了,第一次运行有点久后面就可以拉,完美结束!

您可能感兴趣的与本文相关的镜像

TensorRT-v8.6

TensorRT-v8.6

TensorRT

TensorRT 是NVIDIA 推出的用于深度学习推理加速的高性能推理引擎。它可以将深度学习模型优化并部署到NVIDIA GPU 上,实现低延迟、高吞吐量的推理过程。

SUMA R6240H0 服务器上配置 RAID 设置,主要涉及以下几个关键步骤: 1. **进入 BIOS 配置 RAID 入口** 在服务器启动时,按 F1 键进入 BIOS Setup 界面。随后,进入 **"Boot Manager"** 菜单,选择 **"Adapters and UEFI Drivers"** 选项。如果该页面为空白,需返回 **"Boot Manager"** 页面,将 **"Boot mode"** 从 **Legacy Only** 更改为 **Auto**,并在 **"Miscellaneous Boot Settings"** 中进行相应设置,以确保 UEFI 模式下能够显示 RAID 配置入口。重启服务器后,再次进入 **"Adapters and UEFI Drivers"** 菜单,此时应能看到 RAID 配置入口[^2]。 2. **确认硬盘状态并配置 RAID** 进入 RAID 配置页面后,选择 **"Configuration Managerment"**,查看 **Virtual Drivers** 中的硬盘状态。如果硬盘状态为 **Foreign** 或 **Bad**,则需要先确保硬盘处于 **Unconfigured Good** 状态。进入 **"Drive Management"** 菜单,确认所有硬盘状态为 **Unconfigured Good**,只有处于该状态的硬盘才能用于配置 RAID。[^2] 3. **配置 RAID 模式** 根据需求,可以选择不同的 RAID 模式。例如,在中科可控 R6240H0 服务器上,系统盘通常配置为 **RAID 1**,而其他硬盘则配置为 **JBOD** 模式。RAID 1 提供镜像功能,增强数据冗余性;而 JBOD 模式则允许硬盘以独立方式工作,适用于需要更高灵活性的场景。[^3] 4. **设置启动模式为 UEFI** 在 BIOS 设置中,确保 **Boot mode** 设置为 **UEFI**,否则可能导致 RAID 配置失败或无法识别 U 盘启动盘。[^3] 5. **完成 RAID 配置** 在确认所有硬盘状态正常后,根据 RAID 控制器的提示,选择相应的硬盘并创建 RAID 阵列。例如,若选择 RAID 1,需选择两个硬盘,并指定它们作为镜像对。完成配置后,保存设置并退出。 6. **安装操作系统** RAID 配置完成后,可以开始安装麒麟操作系统(Kylin V10 SP3)。在安装过程中,确保操作系统能够正确识别 RAID 阵列。若遇到无法识别硬盘的问题,可检查 RAID 配置是否正确,或尝试重新制作 U 盘启动盘。[^1] ### 示例代码:RAID 配置命令(假设使用 MegaCLI 工具) ```bash # 查看当前 RAID 控制器信息 MegaCli64 -AdpAllInfo -aAll # 查看硬盘状态 MegaCli64 -PDList -aAll # 创建 RAID 1 阵列 MegaCli64 -CfgLdAdd -r1 [E:S] WB Direct -aAll ``` 其中,`E:S` 表示硬盘的槽位号,`WB` 表示写入缓存模式,`Direct` 表示直接访问模式。 ###
评论 27
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值