RealSense L515相机使用踩坑记录

Realsense Viewer以及ROS驱动安装

要想通过ROS驱动Realsense系列产品,需要首先安装Realsense Viewer以及对应版本的realsense-ros驱动。

Realsense Viewer安装

Realsense Viewer的安装参考文章Linex Ubuntu环境下 Intel Realsense D435I 驱动+ROS驱动安装配置

  1. 安装依赖项
sudo apt-get update
sudo apt-get install libudev-dev libgtk-3-dev libusb-1.0-0-dev pkg-config libglfw3-dev libssl-dev
  1. 前往https://github.com/IntelRealSense/librealsense/releases下载librealsense,需要注意下载的版本,仅2.50.0之前的版本支持L515,所以需要下载2.50.0之前的版本
  2. 编译及安装
cd librealsense
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
mkdir build
cd build
cmake ../ -DBUILD_EXAMPLES=true
make -j8
sudo make install
  1. 检测是否安装成功
    打开终端,通过realsense-viewer启动,观察是否能查看到相机图像

Realsense-ros驱动安装

推荐通过源码安装

  1. 创建工作空间
cd
mkdir ros-realsense_ws && cd ros-realsense_ws
mkdir src && cd src
  1. 克隆源代码
https://github.com/IntelRealSense/realsense-ros.git

根据自己的需求切换ROS1或者ROS2分支

git checkout ros1-legacy
  1. 编译
catkin_make

Resource not found: rgbd_launch

如果启动rs_rgbd.launch时报错Resource not found: rgbd_launch,这是因为rs_rgbd.launch中启动了一些ROS中自带的功能包,当你没有安装这些功能包时就会报这个错误,直接安装即可,记得将melodic切换为自己需要的ros版本

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

压缩深度图的Rviz报错与无法读取问题

当使用Realsense-ros对L515进行驱动时,会遇到深度图的压缩图在Rviz无法可视化、无法从其中恢复出可用数据的问题,其原因是L515产生的深度图为16位,但是采用的压缩方式为8位有损JPEG压缩,压缩算法会将16位的图像按照8位图像进行处理,导致压缩算法根本无法“理解”图像中的内容,而JPEG压缩算法本身为有损压缩算法,在压缩算法无法“理解”图像内容的前提下,有损压缩会损坏原始数据,从而导致压缩深度图出错。
解决方法:更改压缩方式为16位无损PNG压缩

<param name="color/image_raw/compressed/format" value="png"/>
<param name="color/image_raw/compressed/png_level" value="1"/>

其中第一个参数为压缩格式,可选项为png和jpeg,第二个参数为压缩级别,0 表示无压缩,处理速度最快,文件最大;9 表示最高压缩级别,处理速度较慢,但文件最小。如果参数修改后无效,请参考下一小节“参数修改”。

参数修改

因为L515的驱动程序rs_rgbd.launch中不仅启动了当前功能包中的节点,还启动了一下ROS中自带的节点,因此在设置参数时记得将参数写在launch文件的最前面,否则ROS自带节点可能会无法读取到该参数。

软件对齐与硬件对齐

官方提供的rs_rgbd.launch中提供了将RGB图像与深度图像对齐到同一坐标系的选项,其中如果将align_depth置为true,则为在硬件中对齐;如果将其置为false,则为软件对齐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/52812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker进入容器运行命令

Docker容器的基本操作 在深入讨论如何进入容器并运行命令之前&#xff0c;让我们先回顾一下Docker容器的一些基本操作&#xff1a; 列出容器&#xff1a;使用docker ps命令列出当前正在运行的容器。如果你还想看到已经停止的容器&#xff0c;可以添加-a或--all选项。 启动容器…

音视频开发常见的开源项目汇总

FFmpeg 地址&#xff1a;https://ffmpeg.org/介绍&#xff1a;FFmpeg 是一个非常强大的开源多媒体框架&#xff0c;它可以用来处理视频和音频文件。它支持多种格式的转换、编码、解码、转码、流处理等。FFmpeg 包括了 libavformat、libavcodec、libavutil、libswscale、libpos…

JAVA学习笔记01-变量的初始化

package day01; public class VarDemo { public static void main(String[] args) { int a; //int b,c,d; // int a; int e 300; //声明一个int(整数)的变量名为e并为e存储了300这样的整数数据 声明时并初始化 int f; //声明一个…

组播 2024 9 11

PIM&#xff08;Protocol Independent Multicast&#xff09;是一种常用的组播路由协议&#xff0c;其独立于底层的单播路由协议&#xff0c;能够在多种网络环境中有效地实现多播路由功能。PIM主要有两种模式&#xff1a;PIM Sparse Mode (PIM-SM) 和 PIM Dense Mode (PIM-DM)&…

sqlx1.3.4版本的问题

sqlx1.3.4版本存在问题&#xff0c;在调用sqlx的Select方法时&#xff0c;如果传入的dest是一个slice且slice不为空&#xff0c;查询结果将会追加在这个slice已有的元素后面。这位用户认为这个行为是“a little surprising”的&#xff0c;且与json 反序列化的表现不一致&#…

【C++题解】1580. 扫雷(mine)

欢迎关注本专栏《C从零基础到信奥赛入门级&#xff08;CSP-J&#xff09;》 问题&#xff1a;1580. 扫雷&#xff08;mine&#xff09; 类型&#xff1a;二维数组 题目描述&#xff1a; 扫雷游戏是一款十分经典的单机小游戏。在 n 行 m 列的雷区中有一些格子含有地雷&#x…

I/O 多路复用:`select`、`poll`、`epoll` 和 `kqueue` 的区别与示例

I/O 多路复用是指在一个线程内同时监控多个文件描述符&#xff08;File Descriptor, FD&#xff09;&#xff0c;以便高效地处理多个 I/O 事件。在 UNIX/Linux 和 BSD 系统中&#xff0c;select、poll、epoll、kqueue 都是实现 I/O 多路复用的系统调用。它们各有特点&#xff0…

el-input设置type=‘number‘和v-model.number的区别

el-input设置typenumber’与设置.number修饰符的区别 1. 设置type‘number’ 使用el-input时想收集数字类型的数据&#xff0c;我们首先会想到typenumber&#xff0c;设置完type为number时会限制我们输入的内容只能为数字&#xff0c;不能为字符/汉字等非数字类型的数值&…

房产销售系统开发:SpringBoot技术要点

摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于房产销售系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了房产销售系统&#xff0c;它彻底改变了过去传统的…

基于Prometheus和Grafana的现代服务器监控体系构建

构建基于Prometheus和Grafana的现代服务器监控体系是一个非常有效的方式来监控服务器性能、资源利用率和应用程序健康状况。以下是一些步骤和指南&#xff0c;帮助您构建这样一个监控体系&#xff1a; 1. **安装和配置Prometheus**&#xff1a; - 下载并安装Prometheus&…

性能诊断的方法(五):架构和业务诊断

关于性能诊断的方法&#xff0c;我们可以按照“问题现象—直接原因—问题根源”这样一个思路去归纳。我们先从问题的现象去入手&#xff0c;包括时间的分析、资源的分析和异常信息的分析。接下来再去分析产生问题现象的直接原因是什么&#xff0c;这里我们归纳了自上而下的资源…

外观模式详解:如何为复杂系统构建简洁的接口

&#x1f3af; 设计模式专栏&#xff0c;持续更新中 欢迎订阅&#xff1a;JAVA实现设计模式 &#x1f6e0;️ 希望小伙伴们一键三连&#xff0c;有问题私信都会回复&#xff0c;或者在评论区直接发言 外观模式 外观模式&#xff08;Facade Pattern&#xff09;为子系统中的一组…

linux系统安装miniconda3

一、下载minconda3 下载地址&#xff1a;https://docs.conda.io/en/latest/miniconda.html 一般国内访问比较困难&#xff0c;可到清华软件镜像站 Index of /anaconda/miniconda/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 需要特别注意自己的下载版本和自己的…

初识爬虫2

requests学习&#xff1a; 小技巧&#xff0c;如果你用的也是pycharm&#xff0c;对于控制台输出页面因为数据很长一行&#xff0c;不方便进行查看&#xff0c; 可以让它自动换行&#xff1a; 1.requests文档阅读学习链接&#xff1a;快速上手 — Requests 2.18.1 文档 需掌…

如何利用 Redis 列表实现一个简单的任务调度系统?

以下是利用 Redis 列表实现一个简单任务调度系统的步骤: 一、任务存储 定义任务格式 每个任务可以是一个包含任务相关信息的字符串或者 JSON 对象。例如,任务可以包含任务 ID、任务执行的函数名、执行参数、执行时间等信息。例如,一个简单的任务可以表示为{"id":…

【运维监控】Prometheus+grafana监控zookeeper运行情况

运维监控系列文章入口&#xff1a;【运维监控】系列文章汇总索引 文章目录 一、prometheus二、grafana三、prometheus集成grafana监控zookeeper1、修改zookeeper配置2、修改prometheus配置3、导入grafana模板4、验证 本示例通过zookeeper自带的监控信息暴露出来&#xff0c;然后…

基于imx6ull平台opencv的图像采集和显示屏LCD显示功能(带Qt界面)

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、开发流程3.1 编写测试3.2 验证功能一、概述 本文档是针对imx6ull平台opencv的图像采集和显示屏LCD显示功能,创建Qt工程,在工程里面通过点击按钮,实现opencv通过摄像头采集视频图像,将采集的视频图像送给显示屏LCD进…

LabVIEW编程快速提升的技术

在LabVIEW程序员的成长过程中&#xff0c;很多技术和概念看似简单、常用&#xff0c;但真正掌握并能熟练运用&#xff0c;往往需要踏踏实实的实践与积累。没有什么是能够一蹴而就的&#xff0c;唯有通过不断的专注与深入&#xff0c;才能获得显著的提升。要想在LabVIEW开发上取…

SSM框架学习(三、MyBatis实践:提高持久层数据处理效率)

目录 一、Mybatis简介 1.简介 2.持久层框架对比 3.快速入门&#xff08;基于Mybatis3方式&#xff09; 4.ibatis方式的实现和原理 5.ibatis与mybatis之间的关系 二、Mybatis基本使用 1.向 sql 语句传参 &#xff08;1&#xff09;mybatis日志输出配置 &#xff08;2&…

为什么矩阵特征值之和等于主对角线元素之和,特征值乘积等于行列式值

首先给出特征值和特征向量的定义。 设A是n阶矩阵&#xff0c;如果数λ和n维非零向量x使关系式 Axλx &#xff08;1&#xff09; 成…