Jetson Xavier NX上安装ROS、Cartographer、基于D435i的Yolov5+TensorRT7的流程及问题解决

2023-05-16

主要记录下自己在Jetson Xavier NX上运行ROS、Cartographer、基于D435i的Yolov5+TensorRT的系统环境配置流程,经过了无数次在ARM上的安装,这次是最流畅的一次环境配置,很丝滑。感谢各位大佬们的帮助!!!
(采用的是官方的Xavier NX)

*目录

**
**
一、Jetson Xavier NX 用SD卡刷Jetpack4.5.1
二、开机配置
三、ROS环境安装
四、Cartographer环境安装
五、YoloV5+TensorRT7环境安装**
**

**

一、Jetson Xavier NX 用SD卡刷Jetpack4.5.1

**
官方下载:https://developer.nvidia.com/embedded/downloads
下载完后按照官网刷镜像就ok
https://developer.nvidia.com/embedded/learn/get-started-jetson-xavier-nx-devkit#prepare

jetpack4系列默认ubuntu18.04

二、开机配置

试了几次更换国内源,但是出现upgrade后重启进不去系统,Jetpack4.6没问题,因此本文省略换国内源。
1、直接更新:

sudo apt-get update
sudo apt-get upgrade

2、CUDA环境变量配置

sudo vim ~/.bashrc # 使用 Vim 编辑环境变量

在最后添加下面两行

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

wq保存退出

source ~/.bashrc

安装pip3

sudo apt install python3-pip python3-dev
python3 -m pip install --upgrade pip  #升级pip

安装 Jetson-stats 管理工具

sudo -H pip3 install jetson-stats

运行,输入命令,如果出现错误在安装一遍运行

sudo jtop

可通过按数字 1-6 来切换不同功能界面,按 q 离开。后续环境配置需要TensorRT7
在这里插入图片描述
3、ibus输入法安装

sudo apt-get install ibus-pinyin
安完重启,配置
sudo ibus-setup

三、ROS环境安装

1、添加ROS软件源

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

2、添加公钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

3、更新

sudo apt-get update

4、安装ros,推荐桌面完整版

sudo apt install ros-melodic-desktop-full

5、初始化 rosdep

sudo rosdep init
此时会报错误缺少rosdep包,用python安装(不要用python3安装):
sudo apt-get install python-rosdep
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
直接新建文件并添加内容:
sudo su 
sudo mkdir -p /etc/ros/rosdep/sources.list.d
cd /etc/ros/rosdep/sources.list.d
sudo gedit 20-default.list
添加如下内容:
# os-specific listings first rosdep update
yaml https://gitee.com/wybros/rosdistro/raw/master/rosdep/osx-homebrew.yaml osx

# generic
yaml https://gitee.com/wybros/rosdistro/raw/master/rosdep/base.yaml
yaml https://gitee.com/wybros/rosdistro/raw/master/rosdep/python.yaml
yaml https://gitee.com/wybros/rosdistro/raw/master/rosdep/ruby.yaml
gbpdistro https://gitee.com/wybros/rosdistro/raw/master/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

6、update之前进行文件修改

1.默认python2安装,需要到python2.7下更改文件路径
(1)/usr/lib/python2.7/dist-packages/rosdep2/rep3.py
将'https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'改为'https://gitee.com/wybros/rosdistro/raw/master/releases/targets.yaml'
(2)/usr/lib/python2.7/dist-packages/rosdistro/__init__.py
将'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'改为'https://gitee.com/wybros/rosdistro/raw/master/index-v4.yaml'
修改完之后
rosdep update
设置环境变量:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
roscore即可。
安装rosinstall:
sudo apt-get install  python-rosinstall python-rosinstall-generator python-wstool build-essential

四、Cartographer环境安装

参考链接:https://blog.csdn.net/waihekor/article/details/117221931
1、安装依赖库

sudo apt-get update
sudo apt-get install -y \
    clang \
    cmake \
    g++ \
    git \
    google-mock \
    libboost-all-dev \
    libcairo2-dev \
    libcurl4-openssl-dev \
    libeigen3-dev \
    libgflags-dev \
    libgoogle-glog-dev \
    liblua5.2-dev \
    libsuitesparse-dev \
    lsb-release \
    ninja-build \
    stow

2、初始化工作空间

cd catkin_google_ws
wstool init src

3、将链接中的功能包下载,把以下版本的功能包放到src目录里,版本要对应。
在这里插入图片描述
把解压的protobuf放到src同级目录下

4、ceres包下编译

cd ~/catkin_google_ws/src/ceres-solver-1.13.0
mkdir build
cd build
cmake .. -G Ninja -DCXX11=ON
ninja
CTEST_OUTPUT_ON_FAILURE=1 ninja test
sudo ninja install

5、安装protobuf

cd ~/catkin_google_ws/protobuf
mkdir build
cd build
cmake -G Ninja \
  -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
  -DCMAKE_BUILD_TYPE=Release \
  -Dprotobuf_BUILD_TESTS=OFF \
  ../cmake
ninja
sudo ninja install
装arm的:
cd ..
把autogen.sh文件的属性改成可执行文件
./autogen.sh
./configure --host=arm-linux --with-protoc=protoc
make
sudo make install

6、编译cartographer

cd ~/catkin_google_ws$
catkin_make_isolated --install --use-ninja

**
报错1:
**

在这里插入图片描述
解决方法:在下载回来的cartographer上有安装absl的脚本

sudo chmod +x ~/catkin_google_ws/src/cartographer-master/scripts/install_abseil.sh
cd ~/catkin_google_ws/src/cartographer-master/scripts
 ./install_abseil.sh

**
报错2:
**

/usr/local/bin/protoc: error while loading shared libraries: libprotoc.so.14: cannot open shared object file: No such file or directory

解决方法:

vim ~/.bashrc

底行添加:export LD_LIBRARY_PATH=/usr/local/lib

source ~/.bashrc

最后添加环境变量

echo "source ~/catkin_google_ws/install_isolated/setup.bash" >> ~/.bashrc
source ~/.bashrc

建图时发现工作空间路径和系统环境路径有顺序,以下是我的,可以正常建图。
在这里插入图片描述

至此Cartographer的环境完美安装,安装了无数次后,最快完成的一次,感谢各位大佬的帮助。
根据自己需求建图吧,我的实际建图效果:
在这里插入图片描述

五、YoloV5+TensorRT7环境安装

1、YoloV5环境安装
参考链接:https://github.com/killnice/yolov5-D435i(Python版本)
**
报错1:
**

如果直接pip install -r requirements.txt安装 matplotlib会报错
解决办法:

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib==3.2.2

然后删掉txt中的matplotlib.本文采用默认自带的Python3.6.9安装环境

pip3 install -r requirements.txt

**
报错2:
**

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
launchpadlib 1.10.6 requires testresources, which is not installed.

解决办法:

python3.6 -m pip install launchpadlib

2、D435i环境安装
(1)目前还没有arm架构下的pyralsense2的PyPi包,因此在jetson使用pip安装的话,无法找到满足的版本,所以就源码编译安装:
下载zip包:https://github.com/IntelRealSense/librealsense/releases/
安装realsense2.50版本:
https://blog.csdn.net/weixin_62952541/article/details/130001682
安装realsense_ros报错:
在这里插入图片描述

把/usr/include/opencv 改成/usr/include/opencv4
之后ros下如果缺ddynamic_reconfigureConfig:
sudo apt-get install ros-melodic-ddynamic-reconfigure

3、TensorRT加速过程(C++版)
参考链接:https://github.com/RichardoMrMu/yolov5-deepsort-tensorrt
验证了下TensorRT8确实会出现版本问题,TensorRT7没问题。

**本文转载均给出链接,所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系邮箱840487058@qq.com删除。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jetson Xavier NX上安装ROS、Cartographer、基于D435i的Yolov5+TensorRT7的流程及问题解决 的相关文章

  • ros 样例代码和教程

    中国大学MOOC 机器人操作系统入门 课程代码示例 代码 https github com DroidAITech ROS Academy for Beginners 书 https legacy gitbook com book sych
  • 【硬核】 ROS Navigation 局部路径规划常见算法

    简介 最近 作者参加了关于RMUS 高校 SimReal挑战赛 首次接触到了机器人导航领域 这里记录一下这段时间的收货 sim2real的全称是simulation to reality 是强化学习的一个分支 同时也属于transfer l
  • 使用WTGAHRS2(JY-GPSIMU)在ROS中读取数据并发布话题

    目录 IMU简介 驱动程序 IMU串口通信协议 程序 效果 IMU简介 十轴惯性导航传感器WTGAHRS2传感器集成高精度的陀螺仪 加速度计 地磁场传感器 GPS 模块 采用高性能的微处理器和先进的动力学解算与卡尔曼动态滤波算法 能够快速求
  • ROS与navigation教程——ACML参数配置

  • 无人飞行器智能感知竞赛--模拟器安装

    开发环境 win11 wsl2 注意事项 请配合视频使用 如果不看视频会对下面的配置过程迷惑 因为一开始我是想安装在ubuntu18 04的 中途发现ubuntu18 04没有ros noetic 所以转入ubuntu20 04配置 视频链
  • nvidia tx/xavier/orin硬件平台上添加开机启动程

    概述 随着NVIDIA的xavier及orin系列硬件平行推出 自动驾驶车端处理器也逐渐频繁开发及使用 开机脚本使用 etc profile 通常在系统登录时 会执行 多次登录 多次执行 xavier上增加开机启动脚本 不能在 etc pr
  • 关于相机与激光雷达数据采集与标定

    最近在做一个关于车路协同的项目 需要做一个路侧系统 传感器有摄像头和激光雷达 相机和激光雷达联合标定费了老半天劲 在此记录一下 雷达时间戳不对 导致摄像头和雷达的数据无法对齐 解决办法 修改雷达驱动发布点云消息时的时间戳 相机内参标定可以使
  • 1-如何安装ROS

    如何安装ROS 大家好 我是如何 今天尝试在Ubantu下安装ROS Robot Operating System 测试环境 虚拟机VMware Ubantu20 04 准备步骤 添加ROS软件源 sudo sh c echo deb ht
  • ROS turtlebot_follower :让机器人跟随我们移动

    ROS turtlebot follower 学习 首先在catkin ws src目录下载源码 地址 https github com turtlebot turtlebot apps git 了解代码见注释 其中有些地方我也不是很明白
  • 激光雷达LMS111在ROS上的使用

    LMS111 10100 在ROS上的测试与使用 准备工作 设备 硬件 LMS111 101000激光雷达 软件 ubuntu16 04 ROS 开始 设备连接 将激光雷达与处理器 电脑 工控机等 通过以太网连接好 激光雷达默认的IP地址为
  • ROS 笔记(01)— Ubuntu 20.04 ROS 环境搭建

    ROS 官网 https www ros org ROS 中文官网 http wiki ros org cn 1 系统和 ROS 版本 不同的 ROS 版本所需的 ubuntu 版本不同 每一版 ROS 都有其对应版本的 Ubuntu 切记
  • ROS 第四天 ROS中的关键组件

    1 Launch文件 通过XML文件实现多节点的配置和启动 可自动启动ROS Master
  • 最快实现一个自己的扫地机

    作者 良知犹存 转载授权以及围观 欢迎关注微信公众号 羽林君 或者添加作者个人微信 become me 扫地机介绍 扫地机器人行业本质是技术驱动型行业 产品围绕导航系统的升级成为行业发展的主旋律 按功能划分 扫地机器人分为四大系统 即导航系
  • ubuntu18.04命令安装ros2

    ROS2官方文档 本教程为apt get命令安装方式 官网教程有点问题 借鉴一下大佬的安装方式 文章目录 1 安装ROS2 1 1 安装秘钥相关指令 1 2 授权秘钥 1 3 添加ROS2软件源 1 4 安装 2 设置环境 可选但是推荐 2
  • roslaunch error: ERROR: cannot launch node of type

    今天在因为github上有个之前的包更新了 重新git clone后出现了一个问题 ERROR cannot launch node of type crazyflie demo controller py can t locate nod
  • 如何将视频或图像序列转换为包文件?

    我是 ROS 新手 我需要转换预先存在的视频文件 或者large可以连接到视频流中的图像数量 bagROS 中的文件 我在网上找到了这段代码 http answers ros org question 11537 creating a ba
  • catkin_make后找不到ROS包

    我根据 ROS 的 Wiki 页面创建了一个 ROS 工作区 我还使用创建了一个包catkin create pkg在我刚刚创建的工作区下 然后 按照 ROS Wiki 中的步骤使用以下命令构建包catkin make 构建包后 我插入命令
  • 如何访问 Heroku 中的 docker 容器?

    我已按照此处构建图像的说明进行操作 https devcenter heroku com articles container registry and runtime getting started https devcenter her
  • catkin_make 编译报错 Unable to find either executable ‘empy‘ or Python module ‘em‘...

    文章目录 写在前面 一 问题描述 二 解决方法 参考链接 写在前面 自己的测试环境 Ubuntu20 04 一 问题描述 自己安装完 anaconda 后 再次执行 catkin make 遇到如下问题 CMake Error at opt
  • 如何使用 PyQT5 连接和分离外部应用程序或对接外部应用程序?

    我正在使用 ROS 为多机器人系统开发 GUI 但我对界面中最不想做的事情感到困惑 在我的应用程序中嵌入 RVIZ GMAPPING 或其他屏幕 我已经在界面中放置了一个终端 但我无法解决如何向我的应用程序添加外部应用程序窗口的问题 我知道

随机推荐

  • STC51-串口通信

    1 并行与串行基本通信方式 随着单片机系统的广泛应用和计算机网络技术的普及 xff0c 单片机的通信功能愈来愈显得重要 单片机通信是指单片机与计算机或单片机与单片机之间的信息交换 xff0c 通常单片机与计算机之间的通信我们用的较多 通信有
  • qt种实现搜索栏功能

    引言 在搜索栏种输入要搜索的文本 xff0c 就会出现相关联的文本提示 xff0c 这是可以通过鼠标选中要搜索的文本 xff0c 或者通过上下键选中要搜索的文本 效果 效果图如下所示 xff1a 实现 下面是相关的代码实现 xff0c 读者
  • orangePi3 TLS烧录启动、wifi配置和ssh登录、烧录进内置emmc flash

    orangePi3 TLS烧录启动 wifi配置和ssh登录 烧录进内置emmc flash 烧录镜像到TF卡启动 镜像下载 官方镜像地址 xff1a http www orangepi cn html hardWare computerA
  • C/C++——代码的编译和运行

    1 编译过程 每种高级语言都有对应的编译器 xff0c 而且针对不同指令集架构的CPU会提供不同的编译器 本文以C语言为例 xff0c CPU指令集架构不做前提约束 xff0c 实际上同一种语言也只有在狭义的编译阶段有所区别 xff0c 其
  • Arduino UNO GPS 制作 里程表 经纬度

    机缘 上过月买了一个GPS模块 xff0c 然后我用esp32读取GPS数据 xff0c 并使用LVGL显示GPS信息 期间踩了很多坑 xff0c 我用乐鑫的IDF开发 xff0c 自己写了一个GPS信息提取方法 xff0c BUG很多 x
  • socket编程——UDP协议(C语言编程)

    1 收发信息 ssize t sendto int socket void message size t length int flags struct sockaddr dest addr socklen t dest len 返回值 l
  • 【C语言之线性表链式存储结构】

    C语言之线性表链式存储结构 文章目录 C语言之线性表链式存储结构前言一 线性表链式存储结构定义二 相关概念1 结点1 头指针 三 代码描述1 单链表结点定义1 单链表的创建2 单链表的查找3 在单链表中 xff0c 替换某一个位置的数据4
  • unsigned char* (uchar*) 转为QImage

    场景 xff1a 有一副图像 xff0c 事先已经因为各种需要被读取到了内存中 xff0c 且不可再根据路径读取 xff0c 只能读取内存中的数据转为QImage 百度过好久 xff0c 没有一个帖子说的特别详细 xff0c 解释的特别清楚
  • 卷积的含义-详解

    原文链接 xff1a 点击此处看知乎原文 最近需要用到卷积对图像进行处理 xff0c 不明白卷积的含义 xff0c 找资料的时候在知乎找到一个很优秀的评论 xff0c 特此记录一下 以下内容来自于原文复制 xff1a 对卷积的困惑 卷积这个
  • 图像处理-直方图均衡化(C++实现,不依赖opencv)

    近来接触图像处理领域 xff0c opencv入门之后 xff0c 想自己动手实现一些算法 xff0c 先从直方图均衡化开始吧 xff01 我使用的图像文件是只包含数据yuv格式图像 xff0c 以后等需要的时候再处理从普通格式 xff08
  • 图像处理-Sobel边缘检测(C++实现,不依赖opencv)

    边缘检测一直是图像处理中比较热门的一块 xff0c 今天简单实现了下sobel算法 先上图 xff1a 原图 xff1a Sobel处理 彩图 xff1a Sobel处理 灰度图 xff1a 可以看到在不复杂的情况下 xff0c Sobel
  • 图像处理-高斯滤波和升级版Side Window版高斯滤波(C++实现,无需opencv)

    图像处理绕不开的一个环节就是去燥 xff0c 去掉各式各样的噪声来保证图像的质量 今天将高斯滤波实现了下 xff0c 在此稍作记录 以往惯例 xff0c 先上图 xff1a 原图 xff1a 高斯滤波 xff1a Side Window版高
  • Linux下,使用nginx+ffmpeg+video.js实现直播效果(含centos7环境配置步骤)

    前言 近来因为项目需要 xff0c 需要做一个把视频解码然后推流 xff0c 在浏览器播放的功能 然后查资料 找demo xff0c 最终决定使用FFmpeg 43 nginx来完成相应功能 xff0c 过程颇为心酸 xff0c 在此做下笔
  • 使用QMap保存数据时,若出现相同的键,可以在不改变原有的变量存储选型基础上,使用insertMulti函数来解决

    场景 问题发生场景解决办法方案一方案二方案三 xff08 重点 xff09 针对方案三的示例 问题发生场景 本来项目中选型选择的是QMap来存储相应的键值对 xff0c 根据Map中的键的顺序取出对应的值 但是在使用的过程中 xff0c 发
  • C语言,声明和实现放在头文件中

    将头文件和实现放在同一个文件中 普通函数与静态函数是有区别的 静态函数 xff1a static h ifndef CRND INCLUDE CRND H define CRND INCLUDE CRND H static int pore
  • C++的编译过程详解

    C C 43 43 编译过程 C C 43 43 编译过程主要分为4个过程 编译预处理编译 优化阶段汇编过程链接程序 一 编译预处理 xff08 1 xff09 宏定义指令 xff0c 如 define Name TokenString x
  • BA(Basic authentication)认证实践

    1 概念介绍 Basic authentication xff1a 是一种最简单的对Web资源进行访问控制的方法 xff0c 属应用层的安全保障手段 常用的签名算法有 xff1a base64 HmacSHA1 1 xff09 优点 xff
  • 累加校验和C语言实现

    发送方 xff1a 对要数据累加 xff0c 得到一个数据和 xff0c 对和求反 xff0c 即得到我们的校验值 然后把要发的数据和这个校验值一起发送给接收方 接收方 xff1a 对接收的数据 包括校验和 进行累加 xff0c 如果得到0
  • C++项目工程在Linux环境开发、部署和运行问题

    背景 当我们自己开发的项目程序需要在linux上进行部署 调试时 xff0c 项目代码完整拷贝过去之后 xff0c 直接运行我们自己的可执行程序 xff0c 往往提示找不到所相关的 so库 xff0c 会报错 这是因为 xff0c 系统只会
  • Jetson Xavier NX上安装ROS、Cartographer、基于D435i的Yolov5+TensorRT7的流程及问题解决

    主要记录下自己在Jetson Xavier NX上运行ROS Cartographer 基于D435i的Yolov5 43 TensorRT的系统环境配置流程 xff0c 经过了无数次在ARM上的安装 xff0c 这次是最流畅的一次环境配置