T265+ROS+opencv4.5.3

2023-05-16

在这里插入图片描述OpenCV4 for CUDA安装

OpenCV提供图像处理过程中的基础API,所以首先完成OpenCV4的构建。为了利用Jetson平台拥有CUDA加速的优势需要先安装OpenCV的CUDA版本。(Jetpack默认为非CUDA版本)
更新安装包

sudo apt update
sudo apt install -y build-essential cmake git libgtk2.0-dev pkg-config  libswscale-dev libtbb2 libtbb-dev
sudo apt install -y python-dev python3-dev python-numpy python3-numpy
sudo apt install -y curl

安装视频和图片依赖

sudo apt install -y  libjpeg-dev libpng-dev libtiff-dev
sudo apt install -y libavcodec-dev libavformat-dev
sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install -y libv4l-dev v4l-utils qv4l2 v4l2ucp libdc1394-22-dev

克隆OpenCV和OpenCV_Contrib源码

curl -L https://github.com/opencv/opencv/archive/4.5.3.zip -o opencv-4.5.3.zip
curl -L https://github.com/opencv/opencv_contrib/archive/4.5.3.zip -o opencv_contrib-4.5.3.zip

解压缩包

unzip opencv-4.5.3.zip 
unzip opencv_contrib-4.5.3.zip 
cd opencv-4.5.3/
mkdir build
cd build/

使用Cmake编译工程

cmake     -D WITH_CUDA=ON \
        -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \
        -D WITH_GSTREAMER=ON \
        -D WITH_LIBV4L=ON \
        -D BUILD_opencv_python2=ON \
        -D BUILD_opencv_python3=ON \
        -D BUILD_TESTS=OFF \
        -D BUILD_PERF_TESTS=OFF \
        -D BUILD_EXAMPLES=OFF \
        -D CMAKE_BUILD_TYPE=RELEASE \
        -D CMAKE_INSTALL_PREFIX=/usr/local ..

use cuda

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr -D OPENCV_ENABLE_NONFREE=1 -D BUILD_opencv_python2=1 -D BUILD_opencv_python3=1 -D WITH_FFMPEG=1 -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.2 -D CUDA_ARCH_BIN=7.2 -D CUDA_ARCH_PTX=7.2 -D WITH_CUDA=1 -D WITH_CUDNN=1 -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D OPENCV_GENERATE_PKGCONFIG=1 -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -D BUILD_EXAMPLES=OFF -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.2 ..

编译和安装

make -j4
sudo make install

安装Intel® RealSense™ SDK
命令安装2进制包进行安装。
1: 注册服务器公钥

2: 添加镜像源

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

3: 安装环境

sudo apt-get update
sudo apt-get install apt-utils -y

sudo apt-get install librealsense2-utils librealsense2-dev -y

4: 插上T265 在终端里面运行 realsense-viewer 测试

realsense-viewer

如果成功运行,可以得到如下的界面效果
在这里插入图片描述

sh安装
安装脚本:https://github.com/jetsonhacks/installRealSenseSDK.git

请先克隆仓库,然后进行修改。

git clone https://github.com/jetsonhacks/installRealSenseSDK.git

执行脚本

./buildLibrealsense.sh 

在这里插入图片描述
安装realsense-ros
安装依赖

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

创建工作区

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/

克隆源码仓库

git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1`
cd ..

构建模块

catkin_init_workspace
cd ..
catkin_make clean

解决问题
cv_bridge
在这里插入图片描述
修改cv_bridge配置文件,将API对接到安装的OpenCV4 with CUDA

修改文件/opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake
在这里插入图片描述
ddynamic_reconfigure
在这里插入图片描述
安装ddynamic_reconfigure:

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

继续构建

catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install

添加环境变量

echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

动测试demo,即可看到T265的位姿数据

roslaunch realsense2_camera demo_t265.launch

在这里插入图片描述
如果需要查看图像数据,则需要对rs_t265.launch lanunch文件中使能图像输出
在这里插入图片描述
重新启动测试demo即可查看到图像数据

roslaunch realsense2_camera demo_t265.launch

在这里插入图片描述
使用Opencv库读取T265

 #include<iostream>
#include<string>
#include <librealsense2/rs.hpp>
#include <opencv2/opencv.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>

using namespace std;
using namespace cv;

int main(int argc,char** argv)
{
    rs2::config cfg;

    // 使能 左右目图像数据
    cfg.enable_stream(RS2_STREAM_FISHEYE,1, RS2_FORMAT_Y8);
    cfg.enable_stream(RS2_STREAM_FISHEYE,2, RS2_FORMAT_Y8);

    // 使能 传感器的POSE和6DOF IMU数据
    cfg.enable_stream(RS2_STREAM_POSE, RS2_FORMAT_6DOF);

    rs2::pipeline pipe;
    pipe.start(cfg);

    rs2::frameset data;

    while (1)
   {
    data = pipe.wait_for_frames();
	// Get a frame from the pose stream
	auto f = data.first_or_default(RS2_STREAM_POSE);
	auto pose = f.as<rs2::pose_frame>().get_pose_data();
	
	cout<<"px: "<<pose.translation.x<<"   py: "<<pose.translation.y<<"   pz: "<<pose.translation.z<<
	"vx: "<<pose.velocity.x<<"   vy: "<<pose.velocity.y<<"   vz: "<<pose.velocity.z<<endl;
	cout<<"ax: "<<pose.acceleration.x<<"   ay: "<<pose.acceleration.y<<"   az: "<<pose.acceleration.z<<
	"gx: "<<pose.angular_velocity.x<<"   gy: "<<pose.angular_velocity.y<<"   gz: "<<pose.angular_velocity.z<<endl;

     rs2::frame image_left = data.get_fisheye_frame(1);
      rs2::frame image_right = data.get_fisheye_frame(2);

      if (!image_left || !image_right)
          break;

      cv::Mat cv_image_left(cv::Size(848, 800), CV_8U, (void*)image_left.get_data(), cv::Mat::AUTO_STEP);
      cv::Mat cv_image_right(cv::Size(848, 800), CV_8U, (void*)image_right.get_data(), cv::Mat::AUTO_STEP);

      cv::imshow("left", cv_image_left);
      cv::imshow("right", cv_image_right);
      cv::waitKey(1);
    }

    return 0;
}

即可读取到T265的图像数据和位姿数据

在这里插入图片描述
参考资料

[1] https://www.intelrealsense.com/get-started-tracking-camera/
[2] https://blog.csdn.net/u011341856/article/details/106430940?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf
[3] https://github.com/IntelRealSense/librealsense/tree/master/examples/pose
[4] https://github.com/IntelRealSense/librealsense/tree/master/tools/enumerate-devices
[5] https://blog.csdn.net/weixin_44631150/article/details/104495156?utm_medium=distribute.wap_aggpage_search_result.none-task-blog-2allsobaiduend~default-2-104495156.nonecase&utm_term=t265%E8%BE%93%E5%87%BAimu
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

T265+ROS+opencv4.5.3 的相关文章

  • ros 样例代码和教程

    中国大学MOOC 机器人操作系统入门 课程代码示例 代码 https github com DroidAITech ROS Academy for Beginners 书 https legacy gitbook com book sych
  • Python 实现 Dijkstar 路径规划算法

    Dijstar 最短路径算法 用于计算起始点到最终点的最短路径 一般采用的是贪心算法策略 原理可以参考 图解 Open list 和 close list 环境 Terminal 需要预先安装两个库 matplotlib 和 math pi
  • 使用WTGAHRS2(JY-GPSIMU)在ROS中读取数据并发布话题

    目录 IMU简介 驱动程序 IMU串口通信协议 程序 效果 IMU简介 十轴惯性导航传感器WTGAHRS2传感器集成高精度的陀螺仪 加速度计 地磁场传感器 GPS 模块 采用高性能的微处理器和先进的动力学解算与卡尔曼动态滤波算法 能够快速求
  • ROS系统基本功能的使用详解(基本指令/节点/服务/启动文件/动态参数)

    ROS系统基本功能的使用详解 一 创建工作空间 二 创建与编译ROS功能包 三 ROS的基本命令 3 1 节点 3 2 主题 3 3 服务 3 4 参数服务器 四 节点的创建与运行 4 1 创建源文件 4 2 修改CMakeLists tx
  • SLAM-hector_slam 简介与使用

    hector slam功能包使用高斯牛顿方法 不需要里程计数据 只根据激光信息便可构建地图 所以他的总体框架如下 hector slam功能包 hector slam的核心节点是hector mapping 它订阅 scan 话题以获取SL
  • ros 中ERROR: cannot download default sources list from: https://raw.githubusercontent.com/ros/rosdist

    ros 中ERROR cannot download default sources list from https raw githubusercontent com ros rosdistro master rosdep sources
  • V-REP安装

    小知识 是当前目录 是父级目录 是根目录 1 下载V REP 官网地址 http www v rep eu downloads html 我用ubuntu16 04下载V REP PRO EDU V3 5 0 Linux tar 2 解压安
  • Ubuntu16.04安装ROS Kinetic详细步骤

    文章目录 ROS安装 配置Ubuntu软件仓库 设置sources list 设置密钥 更新Debian软件包索引 安装ROS 初始化 rosdep 环境配置 构建工厂依赖 测试安装 开发环境 ROS安装 ROS Kinetic只支持Wil
  • ROS noetic tf demo错误处理及python版本切换

    文章目录 报错描述及解决 ubuntu20 04下python版本切换 报错描述及解决 ubuntu版本 20 04 ROS版本 noetic roslaunch turtle tf turtle tf demo launch 报错信息 t
  • Hypervisor介绍及在智能驾驶的应用

    转自Hypervisor 智能座舱和智能驾驶融合的关键技术 腾讯新闻
  • 清华大学开源软件镜像站网址

    清华大学 TUNA 协会原名清华大学学生网管会 注册名清华大学学生网络与开源软件协会 是由清华大学网络技术和开源软件爱好者 技术宅组成的团体 现阶段向校内外提供开源软件镜像等服务 清华大学 TUNA 协会清华大学 TUNA 协会原名清华大学
  • 激光雷达LMS111在ROS上的使用

    LMS111 10100 在ROS上的测试与使用 准备工作 设备 硬件 LMS111 101000激光雷达 软件 ubuntu16 04 ROS 开始 设备连接 将激光雷达与处理器 电脑 工控机等 通过以太网连接好 激光雷达默认的IP地址为
  • 在Ubuntu 14.04.2 LTS上安装Qt

    Qt是一个跨平台的应用程序框架 广泛用于开发具有GUI界面的应用软件以及命令行工具 几乎所有操作系统都可以使用Qt 如Windows Mac OS X Android等 用于开发Qt应用程序的主要编程语言是C 但是可以使用诸如Python
  • Raspberry Pi 上 ROS 服务器/客户端通过GPIO 驱动硬件

    ROS 服务 现在 想象一下你在你的电脑后面 你想从这个服务中获取天气 你 在你身边 被认为是客户端 在线天气服务是服务器 您将能够通过带有 URL 的 HTTP 请求访问服务器 将 HTTP URL 视为 ROS 服务 首先 您的计算机将
  • ubuntu18.04命令安装ros2

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

    ROS1 ROS2学习 安装 ROS ROS1 ROS2 命令行界面 ROS2 功能包相关指令 ROS 命令行工具 ROS1 CLI工具 ROS2 CLI工具 ROS 通信核心概念 节点 Node 节点相关的CLI 话题 Topic 编写发
  • 如何将从 rospy.Subscriber 数据获得的数据输入到变量中?

    我写了一个示例订阅者 我想将从 rospy Subscriber 获得的数据提供给另一个变量 以便稍后在程序中使用它进行处理 目前 我可以看到订阅者正在运行 因为当我使用 rospy loginfo 函数时 我可以看到打印的订阅值 虽然我不
  • catkin_make 编译报错 Unable to find either executable ‘empy‘ or Python module ‘em‘...

    文章目录 写在前面 一 问题描述 二 解决方法 参考链接 写在前面 自己的测试环境 Ubuntu20 04 一 问题描述 自己安装完 anaconda 后 再次执行 catkin make 遇到如下问题 CMake Error at opt
  • catkin_make 编译报错 Unable to find either executable ‘empy‘ or Python module ‘em‘...

    文章目录 写在前面 一 问题描述 二 解决方法 参考链接 写在前面 自己的测试环境 Ubuntu20 04 一 问题描述 自己安装完 anaconda 后 再次执行 catkin make 遇到如下问题 CMake Error at opt
  • ROS中spin和rate.sleep的区别

    我是 ROS 新手 正在尝试了解这个强大的工具 我很困惑spin and rate sleep功能 谁能帮助我了解这两个功能之间的区别以及何时使用每个功能 ros spin and ros spinOnce 负责处理通信事件 例如到达的消息

随机推荐

  • kalibr使用笔记

    官网 GitHub ethz asl kalibr The Kalibr visual inertial calibration toolbox The Kalibr visual inertial calibration toolbox
  • Python上传文件到百度网盘(一)

    前言 最近由于突发奇想要下载某网站电影 xff0c 当然资源也是爬来的 xff0c 然后是一堆M3u8格式的URL xff0c 为了保证防止资源后续失效的情况 xff0c 打算先下载下来 xff0c 然后加密压缩 xff08 xff5e x
  • Python上传文件到百度网盘(二)之文件切割

    前言 继续上文提到的使用Python上传文件到百度网盘的伟大事业 接口分析 上文我们完成了百度网盘上传的api的封装 xff0c 通过分析api我得出 xff0c 需要完成上传4m以上的文件的话 xff0c 是需要分片上传滴 xff0c 具
  • This指向及改变,DOM节点操作、获取,删除,各种节点

    这里写目录标题 DOM节点自定义获取元素节点方法操作元素节点的属性这是dataset的进一步理解 操作元素的类名操作元素节点中的内容函数的执行顺序this 重要 this全局变量中指向windowthis在对象的方法中指向调用者this在事
  • 使用策略模式优化IF ELSE

    使用传统的if else扩展性不强 xff0c 代码量越多阅读起来越困难 如果后期又要扩展条件语句维护起来就会变得非常的麻烦 传统的If else 不容易扩展 代码量大的情况下代码阅读性不高 64 param args public sta
  • 业务常见面试题 (数据分析)

    1 某APP近期上线了一个拉新活动 xff0c 并在各个渠道进行了推广投放 xff0c 活动结束后 xff0c 作为数据分析师 xff0c 你如何评估这场活动的效果 xff1f 活动关键核心指标达成情况 xff0c 比如拉新多少用户 xff
  • Matlab提速方法-转

    用过Matlab的人都知道 xff0c Matlab是一种解释性语言 xff0c 存在计算速度慢的问题 xff0c 为了提高程序的运行效率 xff0c matlab提供了多种实用工具及编码技巧 循环矢量化 Matlab是为矢量和矩阵操作而设
  • 自用笔记-机载计算机与PX4系列的配合

    机载计算机与Pixhawk系列的配合 Pixhawk与配套计算机 span class token punctuation span Raspberry Pi xff0c Odroid xff0c Tegra K1 span class t
  • QGC-TX2-PX4

    span class token number 1 span 安装mavros sudo apt install ros span class token operator span melodic span class token ope
  • ROS--geometry_msgs/PoseStanped消息解读

    http wiki ros org geometry msgs 可以看到不同类型的消息 xff0c 点击PoseStamped进入PoseStamped message 页面 1 通过包含头文件可以调用该类型的消息 span class t
  • MAVRos--SetMavFrame更改速度控制的坐标系

    使用服务 xff08 Service xff09 来更改速度控制的坐标系 mavros支持的坐标系 uint8 FRAME GLOBAL span class token operator 61 span span class token
  • PX4中的控制分配

    PX4中的控制分配 本文主要讲讲在PX4代码中pwm计算的过程 xff0c 即如何将旋翼姿态控制模块产生的控制指令 三轴力矩 43 机体轴升力 转换为对应的PWM信号 xff1f 如果您想修改控制分配矩阵 xff0c 或者修改混控算法 xf
  • 常用MAVROS话题和服务

    https zhuanlan zhihu com p 364872655 一 常用接收的话题 1 1 系统状态 消息名称 xff1a mavros state 类型 xff1a mavros msgs State 头文件 xff1a mav
  • QGC for Android 串口深扒

    QT for Android 实现机制是需要java库支持的 xff0c QT原生接口QSerialPort不支持Android系统的串口开发 QGC使用QT框架 xff0c 采用c 43 43 语言通过基类linkinterface和qt
  • ROS系统 摄像头标定camera calibration

    1 安装标定功能包 sudo apt span class token operator span get install ros span class token operator span melodic span class toke
  • make px4_sitl_default gazebo

    make px4 sitl default gazebo这个过程可能比较考验电脑内存 xff0c 我电脑有几次CPU都是100 运行 xff0c 而且停下卡住 情况可能如下 xff1a 11 33 Building CXX object C
  • sklearn学习笔记9:逻辑回归

    定义 xff1a 是一种名为回归的线性分类器 xff0c 其本质是由线性回归变化而来的 xff0c 一种广泛使用于分类问题中的广义回归算法 xff0c 通常用于二分类问题 xff0c 也可以做多分类 本质 xff1a 是一个返回对数几率的
  • XTDrone--执行roslaunch px4 indoor1.launch 遇到的问题

    RLException while processing home karasi PX4 Firmware launch single vehicle spawn xtd launch Invalid tag Cannot load com
  • PX4编译中的各种问题

    最近在研究如何使用UAV xff0c 由于是初学者 xff0c 不好直接上手实体无人机 xff0c 因此考虑通过在gazebo中模拟的方式进行一下无人机的简单使用模拟 xff0c 于是了解到了PX4这个东西 xff0c 他不仅支持固件写入
  • T265+ROS+opencv4.5.3

    OpenCV4 for CUDA安装 OpenCV提供图像处理过程中的基础API xff0c 所以首先完成OpenCV4的构建 为了利用Jetson平台拥有CUDA加速的优势需要先安装OpenCV的CUDA版本 xff08 Jetpack默