Jetson nx(Jetpack4.6版本)保姆级教程安装安装d435i-SDK流程踩坑,以及安装realsense与code_utils与imu_utils并标定imu内参附上测试demo

2023-05-16

不知道啥时候自己能买得起这个相机,拍照留个纪念。

NVIDIA Jetson installation (intelrealsense.com)

固件跟新地址Firmware Update Tool (rs-fw-update) (intelrealsense.com)

安装IntelRealsense D435i驱动,注意该过程中不能接入摄像头:

git clone https://github.com/jetsonhacks/installRealSenseSDK.git
cd installRealSenseSDK
./buildLibrealsense.sh 

这里可以选择安装版本,默认为V2.5.0


###  一些可以参考的链接:https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md   

等待一个小时左右脚本才会运行结束,连接摄像头,先运行realsense-viewer查看摄像头能否正常使用。然后可以python3 然后import pyrealsense as rs查看是否安装正确。如果出现nomodule的报错则需要找到~/librealsense/build/wrappers/python该路径下的六个gnu文件,复制到 /usr/local/lib/python3.6中,我得设备python版本3.6,注意自己得环境

then find the pyrealsense2 in ~/librealsense/build/wrappers/python   copy the six file use following command
sudo mv ~/pyrealsense2/ /usr/local/lib/python3.6
nvidia@nvidia-desktop:~/librealsense/build/wrappers/python$ ls
CMakeFiles           pybackend2.cpython-36m-aarch64-linux-gnu.so         pyrealsense2Config.cmake                       pyrealsense2.cpython-36m-aarch64-linux-gnu.so.2.50
cmake_install.cmake  pybackend2.cpython-36m-aarch64-linux-gnu.so.2       pyrealsense2ConfigVersion.cmake                pyrealsense2.cpython-36m-aarch64-linux-gnu.so.2.50.0
Makefile             pybackend2.cpython-36m-aarch64-linux-gnu.so.2.50.0  pyrealsense2.cpython-36m-aarch64-linux-gnu.so

我安装完sdk好像就自己生成这个目录了,但是还是拷贝了一下.so文件,该步骤结束后再编辑bashrc修改环境变量

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.6/pyrealsense2

添加这一行至bashrc中再source ~/.bashrc即可再import pyrealsense as rs查看是否安装正确
 

1、建立workspace,已经有的可以跳过可以参考安装ros教程先安装(9条消息) Jetson系列 安装ros自动化安装_无证驾驶梁嗖嗖的博客-CSDN博客_jetson 安装ros 

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
catkin_init_workspace 
cd ..
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

 2、在catkin_ws/src/下载源程序

cd src
git clone https://github.com/intel-ros/realsense.git
cd ..
catkin_make

CMake Error at /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake:113 (message):
  Project 'cv_bridge' specifies '/usr/local/include/opencv' as an include
  dir, which is not found.  It does neither exist as an absolute directory
  nor in '${{prefix}}//usr/local/include/opencv'.  Check the issue tracker
  'https://github.com/ros-perception/vision_opencv/issues' and consider
  creating a ticket if the problem has not been reported yet.
Call Stack (most recent call first):
  /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:76 (find_package)
  realsense-ros/realsense2_camera/CMakeLists.txt:11 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/nvidia/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/nvidia/catkin_ws/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed

刚开始找得解决办法如下,这个可能是老版本得记录:

 sudo vi /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake

真实解决办法如下:

将94和96行得opencv改成opencv4即可

CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by
  "ddynamic_reconfigure" with any of the following names:

    ddynamic_reconfigureConfig.cmake
    ddynamic_reconfigure-config.cmake

  Add the installation prefix of "ddynamic_reconfigure" to CMAKE_PREFIX_PATH
  or set "ddynamic_reconfigure_DIR" to a directory containing one of the
  above files.  If "ddynamic_reconfigure" provides a separate development
  package or SDK, be sure it has been installed.
Call Stack (most recent call first):
  realsense-ros/realsense2_camera/CMakeLists.txt:11 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/nvidia/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/nvidia/catkin_ws/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed

解决办法如下:

sudo apt-get install ros-melodic-ddynamic-reconfigure
... logging to /home/nvidia/.ros/log/bb471694-1c79-11ed-bb9d-48b02d359274/roslaunch-nvidia-desktop-9361.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

Resource not found: rgbd_launch
ROS path [0]=/opt/ros/melodic/share/ros
ROS path [1]=/home/nvidia/catkin_ws/src
ROS path [2]=/opt/ros/melodic/share
The traceback for the exception was written to the log file

解决办法如下:

sudo apt-get install ros-melodic-rgbd-launch

最终测试demo如下:

import pyrealsense2 as rs
import numpy as np
import cv2

width = 640
height = 360

pipeline = rs.pipeline()
config = rs.config()
config.enable_stream(rs.stream.depth, width, height, rs.format.z16, 30)
config.enable_stream(rs.stream.color, width, height, rs.format.bgr8, 30)

profile = pipeline.start(config)

depth_sensor = profile.get_device().first_depth_sensor()
depth_scale = depth_sensor.get_depth_scale()

print("Depth Scale is: ", depth_scale)

try:
    while True:
        frames = pipeline.wait_for_frames()
        depth_frame = frames.get_depth_frame()
        color_frame = frames.get_color_frame()
        if not depth_frame or not color_frame:
            continue

        # convert images to numpy arrays
        depth_image = np.asanyarray(depth_frame.get_data())
        color_image = np.asanyarray(color_frame.get_data())
        depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)

        depth = depth_image[320,240].astype(float)*depth_scale

        cv2.imshow('rgb', color_image)
        cv2.imshow('depth', depth_colormap)
        print(f'Depth: {depth} m')

        if cv2.waitKey(1) == ord("q"):
            break
finally:
    pipeline.stop()

到这里只是能打开无法获取imu,接着干 

 

nvidia@nvidia-desktop:~$ rs-fw-update -s 135122074423 -f Signed_Image_UVC_5_12_13_50.bin

Search for device with serial number: 135122074423

Updating device:
Name: Intel RealSense D435I, serial number: 135122074423, update serial number: 134523064666, firmware version: 05.12.07.150, USB type: 3.2

Firmware update started

Firmware update progress: 100[%]

Firmware update done

如果就一个摄像头可以不加序列号 ,fuab3.0和固件改了还是没启动imu,再看看别的原因毕竟第一次用使用手册什么得也没用到,应该还是相机配置问题。

(15条消息) RealSense D435i + imu 标定 Ros Melodic_Y.Finn的博客-CSDN博客_d435i imu标定

(17条消息) Jetson Xavier NX+ubuntu18.04安装Ceres步骤记录_viai_youme的博客-CSDN博客

jetson c++: internal compiler error: Segmentation fault (program cc1plus) Please submit a full bug

 解决方法:sudo gedit /etc/security/limits.conf

                      修改了stack 为8192(8GB)

                       然后重启

                       make 成功

Jetson Xavier NX+ubuntu18.04安装Ceres步骤记录

mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver-1.14.0
make -j3
sudo make install

Segmentation fault (program cc1plus) when compile code with "ROS_ERROR_STREAM()" - ROS Answers: Open Source Q&A Forum

参考链接(https://www.cnblogs.com/long5683/p/13614352.html)

主要记录一下在jetson xavier上编译的时候由于opencv版本问题导致的错误以及解决方法:

主要流程见参考链接。其中会遇到三个错误:

1、在code_utils下面找到sumpixel_test.cpp,修改#include "backward.hpp"为

#include “code_utils/backward.hpp”

2、在code_utils中的sumpixel_test.cpp和mat_io_test.cpp 中添加如下两行:

       #define CV_LOAD_IMAGE_UNCHANGED   -1

       #define CV_LOAD_IMAGE_GRAYSCALE   0

 #define CV_LOAD_IMAGE_UNCHANGED   -1

       #define CV_LOAD_IMAGE_GRAYSCALE   0

3、在code_utils中的sumpixel_test.cpp中,将CV_MINMAX换成

NORM_MINMAX

以上是我遇到的问题和解决方法。

注意code是否编译成功


nvidia@nvidia-desktop:~/catkin_ws/src$ ls
6.txt  CMakeLists.txt  code_utils-master  code_utils-master.zip  demo2.py  demo.py  imu.py  imu_utils-master.zip  realsense-ros
nvidia@nvidia-desktop:~/catkin_ws/src$ sudo mv code_utils-master code_utils
nvidia@nvidia-desktop:~/catkin_ws/src$ cd ..
nvidia@nvidia-desktop:~/catkin_ws$ catkin_make
Base path: /home/nvidia/catkin_ws
Source space: /home/nvidia/catkin_ws/src
Build space: /home/nvidia/catkin_ws/build
Devel space: /home/nvidia/catkin_ws/devel
Install space: /home/nvidia/catkin_ws/install
####
#### Running command: "cmake /home/nvidia/catkin_ws/src -DCATKIN_DEVEL_PREFIX=/home/nvidia/catkin_ws/devel -DCMAKE_INSTALL_PREFIX=/home/nvidia/catkin_ws/install -G Unix Makefiles" in "/home/nvidia/catkin_ws/build"
####
-- Using CATKIN_DEVEL_PREFIX: /home/nvidia/catkin_ws/devel
-- Using CMAKE_PREFIX_PATH: /home/nvidia/imu_catkin_ws/devel;/home/nvidia/catkin_ws/devel;/opt/ros/melodic
-- This workspace overlays: /home/nvidia/imu_catkin_ws/devel;/home/nvidia/catkin_ws/devel;/opt/ros/melodic
-- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.17", minimum required is "2")
-- Using PYTHON_EXECUTABLE: /usr/bin/python2
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/nvidia/catkin_ws/build/test_results
-- Found gtest sources under '/usr/src/googletest': gtests will be built
-- Found gmock sources under '/usr/src/googletest': gmock will be built
-- Found PythonInterp: /usr/bin/python2 (found version "2.7.17")
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.29
-- BUILD_SHARED_LIBS is on
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 3 packages in topological order:
-- ~~  - realsense2_description
-- ~~  - code_utils
-- ~~  - realsense2_camera
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin package: 'realsense2_description'
-- ==> add_subdirectory(realsense-ros/realsense2_description)
-- +++ processing catkin package: 'code_utils'
-- ==> add_subdirectory(code_utils)
-- Found OpenCV: /usr (found version "4.1.1")
-- Found installed version of Eigen: /usr/lib/cmake/eigen3
-- Found required Ceres dependency: Eigen version 3.3.4 in /usr/include/eigen3
-- Found required Ceres dependency: glog
-- Found installed version of gflags: /usr/lib/aarch64-linux-gnu/cmake/gflags
-- Detected gflags version: 2.2.1
-- Found required Ceres dependency: gflags
-- Found Ceres version: 1.14.0 installed in: /usr/local with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, CXSparse, SchurSpecializations, OpenMP, Multithreading]
-- +++ processing catkin package: 'realsense2_camera'
-- ==> add_subdirectory(realsense-ros/realsense2_camera)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Create Release Build.
-- realsense2_camera: 3 messages, 1 services
-- Configuring done
-- Generating done
-- Build files have been written to: /home/nvidia/catkin_ws/build
####
#### Running command: "make -j2 -l2" in "/home/nvidia/catkin_ws/build"

/home/nvidia/catkin_ws/src/imu_utils/src/imu_an.cpp: In function ‘void writeData1(std::__cxx11::string, const std::vector<double>&, const std::vector<double>&)’:
/home/nvidia/catkin_ws/src/imu_utils/src/imu_an.cpp:68:19: error: aggregate ‘std::ofstream out_t’ has incomplete type and cannot be defined
     std::ofstream out_t;
                   ^~~~~
/home/nvidia/catkin_ws/src/imu_utils/src/imu_an.cpp:69:19: error: aggregate ‘std::ofstream out_x’ has incomplete type and cannot be defined
     std::ofstream out_x;
                   ^~~~~
/home/nvidia/catkin_ws/src/imu_utils/src/imu_an.cpp: In function ‘void writeData3(std::__cxx11::string, const std::vector<double>&, const std::vector<double>&, const std::vector<double>&, const std::vector<double>&)’:
/home/nvidia/catkin_ws/src/imu_utils/src/imu_an.cpp:90:19: error: aggregate ‘std::ofstream out_t’ has incomplete type and cannot be defined
     std::ofstream out_t;
                   ^~~~~
/home/nvidia/catkin_ws/src/imu_utils/src/imu_an.cpp:91:19: error: aggregate ‘std::ofstream out_x’ has incomplete type and cannot be defined
     std::ofstream out_x;
                   ^~~~~
/home/nvidia/catkin_ws/src/imu_utils/src/imu_an.cpp:92:19: error: aggregate ‘std::ofstream out_y’ has incomplete type and cannot be defined
     std::ofstream out_y;
                   ^~~~~
/home/nvidia/catkin_ws/src/imu_utils/src/imu_an.cpp:93:19: error: aggregate ‘std::ofstream out_z’ has incomplete type and cannot be defined
     std::ofstream out_z;
                   ^~~~~
/home/nvidia/catkin_ws/src/imu_utils/src/imu_an.cpp:103:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for ( int index = 0; index < gyro_ts_x.size( ); ++index )
                          ~~~~~~^~~~~~~~~~~~~~~~~~~
imu_utils/CMakeFiles/imu_an.dir/build.make:62: recipe for target 'imu_utils/CMakeFiles/imu_an.dir/src/imu_an.cpp.o' failed
make[2]: *** [imu_utils/CMakeFiles/imu_an.dir/src/imu_an.cpp.o] Error 1

 解决方法添加头文件在报错文件内

#include <fstream>

到这里应该就差不多了明天继续补存测试

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

Jetson nx(Jetpack4.6版本)保姆级教程安装安装d435i-SDK流程踩坑,以及安装realsense与code_utils与imu_utils并标定imu内参附上测试demo 的相关文章

  • pyinstaller打包后找不到.pyc文件,例如:FileNotFoundError: [WinError 3] 系统找不到指定的路径。: ‘C:\\xx\\torch_utils.pyc‘

    使用pyinstaller打包python项目后 xff0c 运行dist里的 exe文件 xff0c 提示如下错误 说找不到utils文件夹里的torch utils pyc 原因分析 xff1a 我查看到项目里面有utils这个文件夹
  • Django中上传图片后,获得图片的网站的访问地址

    在Django中 xff0c 您可以通过使用Django自带的MEDIA URL和MEDIA ROOT设置来访问存储在media目录中的图像 这些设置定义了您的媒体文件的URL和文件系统路径 要访问存储在media images目录中的图像
  • 关于树莓派rc.local开机自启python文件失败的问题

    当我们在使用树莓派的rc local进行开机自启python文件时 xff0c 常常不能成功 xff0c 其中有一个原因 xff0c 特别常见 当我们查询rc local服务运行日志时 xff1a sudo systemctl status
  • 什么是串口通信协议

    ARM体系结构 串口通信 一 什么是串口通信 1 串口通信属于基层基本性的通信规约 xff0c 收发双方事先规定好通信参数 2 它自己本身不会去协商通信参数 xff0c 需要通信前通信双方事先约定好通信参数来进行通信 3 因此 xff0c
  • 利用MQTT协议与阿里云数据交互的python程序

    利用MQTT协议与阿里云数据交互的python程序 设计目的功能要求和关键问题环境配置问题本地程序如何连接云上设备云上的数据交互问题界面设计问题 阿里云相关操作本地程序 设计目的 设计开发一个py应用程序 xff0c 实现对阿里云数据的双向
  • 中文分词:隐马尔可夫-维特比算法(HMM-Viterbi)附源码

    目录 0 先验知识 1 什么是中文分词 2 数据集的构造 3 训练及预测过程简述 4 训练阶段 xff1a 统计隐马尔可夫模型的参数 5 预测阶段 xff1a 应用 Viterbi 算法 6 完整的 Python 实现代码 0 先验知识 有
  • python学习day1

    打印字 print haha 注释符 单行注释符 xxx 多行注释符 xxx xxx 34 34 定义变量 a 61 10 定义数字 b 61 haha ni hao 定义字符串 print a print b 赋值 b 61 a 用户交互
  • 系统学习-----firewalld概述

    动态防火墙后台服务程序 xff1a 提供一个动态管理的防火墙 xff0c 用以支持网络 Zone xff0c 来分配对一个网络链接和界面一定程序的信息 xff0c 它具备对IPv4和Ipv6防火墙设置的支持 它支持以太网桥 xff0c 并有
  • 系统学习----DHCP服务原理

    文章目录 DHCPDHCP优点DHCP相关概念DHCP租约更新DHCP运行过程 DHCP DHCP xff1a 动态主机设置协议 xff0c 是一个局域网协议 xff0c 使用UDP协议工作 主要有两个用途 xff1a 用于局域网或网络服务
  • 区块链技术及应用---区块链技术(一)

    文章目录 第一章 疯狂的比特币及其原理机制1 1 比特币诞生1 2 疯狂的比特币1 2 1 疯狂的价格1 2 2 疯狂的矿机和芯片 1 3 通俗地讲比特币机制1 4比特币交易1 5 比特币挖矿1 5 1 数学难题1 5 2 矿池原理 1 6
  • OpenFlow协议是什么

    为什么学习OpenFlow xff1f 实践SDN的首选主流南向接口协议P4和PISA的前身 OpenFlow起源 Ethane项目是OpenFlow的前身 集中式 主动式 xff0c 基于Flow控制2008年的Open Flow论文最初
  • OpenDaylight(ODL)学习笔记

    什么是OpenDaylight xff1f OpenDaylight是SDN开发及运行的一个平台 OpenDaylight架构特点 基于OSGi的模块化设计多南向协议 OpenFlow xff0c Netconf xff0c OVSDB 模
  • Vue / axios / props 调用后端接口数据并渲染到页面

    情景介绍 给了一个可视化大屏的代码 xff0c 代码上写的是假数据 现在要调用后端接口获取数据 xff0c 并将其渲染到页面上 分析问题 给的代码是一个 vue 组件嵌套一个子组件 xff0c 要把数据渲染到子组件上 要调用后端接口 xff
  • Element-ui关于el-icon无法正常显示的问题(已解决)

    在使用element ui组件库的时候 xff0c 使用自带的图标不显示 xff0c 查了好多篇博客 xff0c 都说是element ui的版本老了 xff0c 在package json中修改版本重新安装就行 xff0c 但是我的情况不
  • el-dialog关闭后表单数据缓存没清空【已解决】

    情景介绍 系统中有 新增 和 修改 两个功能 xff0c 共用一个对话框 要求新增时对话框内容为空 xff0c 修改时内容默认填充旧数据 遇到的问题是 xff0c 点击新增后内容填充了 xff0c 关闭对话框再点击新增或者其他条目的修改 x
  • Vue中父组件向子组件传值,子组件没有接收到

    情景介绍 父组件调用接口获取数据 xff0c 然后通过props传值给子组件 xff0c 子组件拿到数据后渲染到 el table 表格组件中 结果子组件没有将数据渲染到表格中 xff0c 但是控制台打印是获取到数据的 问题分析 先看父组件
  • 数字通信系统的性能及可靠性

    目录 1 数字通信系统的性能 2 数字通信系统的可靠性 1 数字通信系统的性能 数字通信系统的性能由码元速率 信息速率 频带利用率表示 每个码元所携带的信息量I定义如下 xff1a 这里 P 是每个码元的概率 xff0c M 是码元的个数
  • 前端学习资源分享

    学习资源 编程导航 xff08 包含以下所有资源 xff0c 强烈推荐 x1f44d xff09 xff1a https www code nav cn freeCodecamp 在线编程 xff1a https learn freecod
  • 嵌入式方向分析

    很多计算机 电子信息类专业的学生都想把嵌入式开发作为自己的职业目标 xff0c 但是因为嵌入式涉及的知识太多 xff0c 太杂 xff0c 太广 xff0c 很多嵌入式初学者陷入嵌入式知识的海洋中 xff0c 东学一点 xff0c 西学一点
  • UWB-DW1000初始化、发送和接收详解(一)

    DWM1000简介 DWM1000板子上的DW1000芯片 xff0c 是基于CMOS的 低功耗的无线收发集成电路 xff0c 遵循IEEE 802 15 4 2011协议中的UWB标准芯片 DWM1000不需要用户去设计电路 xff0c

随机推荐