当前位置: 首页 > news >正文

在ros2 humble版本上安装D455相机并获取图像和深度信息

在ros2 humble版本上安装D455相机并获取图像和深度信息

  • 一、安装ROS2 Humble
  • 二、安装Intel RealSense SDK
    • 2.1、更新系统依赖:
    • 2.2、安装构建工具:
    • 2.3、下载并编译SDK:
  • 三、安装ROS2的RealSense驱动
    • 3.1、下载ROS2的RealSense驱动:
    • 3.3、编译驱动:
  • 四、配置和启动RealSense相机
    • 4.1、启动相机节点:
  • 1. 然后source您的工作区环境
  • 2. 现在可以执行节点命令了
  • 3.这样没事
    • 4.2、使用RViz2查看图像和深度信息:
  • 五、调试与优化
    • 5.1、 调整相机设置:
    • 5.2、查看日志和错误信息:

一、安装ROS2 Humble

鱼香ros一键安装,如果源问题报错也可以用这个命令

wget http://fishros.com/install -O fishros && bash fishros

二、安装Intel RealSense SDK

2.1、更新系统依赖:

打开终端,执行以下命令来更新系统的依赖项:

sudo apt-get update && sudo apt-get upgrade

2.2、安装构建工具:

安装构建Intel RealSense SDK所需的工具:

sudo apt-get install git wget cmake build-essential

2.3、下载并编译SDK:

从Intel RealSense的GitHub仓库下载最新版本的SDK源码:

git clone https://github.com/IntelRealSense/librealsense.git

进入SDK源码目录,并按照官方文档中的说明进行编译和安装。通常情况下,可以执行以下命令来构建SDK:

mkdir build && cd build
cmake ../ -DBUILD_EXAMPLES=true -DBUILD_GRAPHICAL_EXAMPLES=false
make -j$(nproc)
sudo make install

注:cmake …/ -DBUILD_EXAMPLES=true -DBUILD_GRAPHICAL_EXAMPLES=false时报错
在这里插入图片描述
解决办法
1、系统中缺少OpenGL开发库,导致多个示例程序无法链接到OpenGL::GL目标。让我先尝试安装OpenGL开发库来解决这个问题。

sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev

2、尝试通过禁用构建示例程序来避开这个问题,使用-DBUILD_EXAMPLES=OFF选项重新运行cmake。

cmake ../ -DBUILD_GRAPHICAL_EXAMPLES=false -DBUILD_EXAMPLES=OFF

通过禁用示例程序,可以避开缺少 OpenGL 库的问题,让 CMake 配置成功完成。不编译示例程序会减少编译时间和生成的文件数量。

三、安装ROS2的RealSense驱动

3.1、下载ROS2的RealSense驱动:

从Intel RealSense的GitHub仓库下载适用于ROS2的RealSense驱动源码:

git clone https://github.com/IntelRealSense/realsense-ros.git

3.3、编译驱动:

进入驱动源码目录cd realsense-ros,并使用colcon进行编译。首先,确保已经安装了colcon和python3-colcon-common-extensions:

sudo apt-get install python3-colcon-common-extensions

首先,构建realsense2_camera_msgs依赖包:

colcon build --packages-select realsense2_camera_msgs

然后,安装缺失的ROS 2诊断更新器包:

sudo apt-get install ros-humble-diagnostic-updater

安装 librealsense2 包

sudo apt install ros-$ROS_DISTRO-librealsense2

最后,在驱动源码目录中执行以下命令进行编译:

colcon build --packages-select realsense2_camera

四、配置和启动RealSense相机

4.1、启动相机节点:

• 在终端中,使用ros2 run命令启动RealSense相机的节点:

ros2 run realsense2_camera realsense2_camera_node

运行时报以下错误:

$ros2 launch realsense2_camera rs_launch.py
Package 'realsense2_camera' not found: "package 'realsense2_camera' not found, searching: ['/opt/ros/humble']" 

从错误信息可以看出,系统只在/opt/ros/humble目录中搜索包,而没有包含您的工作区路径。这是一个典型的ROS 2环境变量配置问题。

# 查看AMENT_PREFIX_PATH环境变量,应该包含您的工作区路径
echo $AMENT_PREFIX_PATH# 验证系统是否能找到realsense2_camera包
ros2 pkg list | grep realsense

问题根源
1、环境变量未包含工作区路径:ROS 2使用AMENT_PREFIX_PATH环境变量来确定去哪里搜索包。 错误信息显示系统只在/opt/ros/humble中搜索,这是ROS 2的默认安装路径 但您的realsense2_camera包安装在/home/hbs/projects/ros2_d455/realsense-ros/install目录中 系统没有在这个路径中搜索包,所以找不到它
2、缺少source工作区的setup文件:每次打开新终端或需要使用已安装的包时,都需要先source相应的setup文件来设置环境变量。
要解决这个问题,您需要按照以下步骤正确设置环境变量:

1. 然后source您的工作区环境

source ./install/setup.bash

2. 现在可以执行节点命令了

ros2 run realsense2_camera realsense2_camera_node

3.这样没事

C_QBUF) failed when requesting new frame! fd: 21 error: No such device
[ros2run]: Segmentation fault

launch测试一下

ros2 launch realsense2_camera rs_launch.py

获取realsense相机内参

ros2 topic echo /camera/camera/color/camera_info 

可以得到参数

4.2、使用RViz2查看图像和深度信息:

• 启动RViz2:

ros2 run rviz2 rviz2

• 在RViz2中,添加Image或PointCloud2显示,
并选择相应的话题(例如/camera/color/image_raw用于查看彩色图像,
/camera/depth/image_rect_raw用于查看深度图像,
/camera/depth/points用于查看点云数据)。

五、调试与优化

5.1、 调整相机设置:

• 可以通过修改启动命令中的参数来调整相机的设置,例如分辨率、帧率、滤波器参数等。

5.2、查看日志和错误信息:

• 如果在运行过程中遇到问题,可以查看ROS2的日志和错误信息,以便进行调试和优化。

http://www.dtcms.com/a/511993.html

相关文章:

  • C++DirectX9坐标系与基本图元之渲染状态(RenderState)_0304
  • 网站建设app长春seo技术
  • 【C++】力扣hot100错误总结
  • C++中的vector讲解
  • 笔记【字符串,转义字符,注释】
  • visual studio安装本地帮助手册
  • 北京市基础建设质量监督局网站wordpress 插件怎么看
  • 大模型技术分析与演进逻辑
  • 苏州模板网站建站长沙网站建设推广
  • 从零起步学习MySQL || 第六章:MySQL数据库中的一条数据是如何存储的?(结合源码深度解析)
  • 微信小程序页面配置,基本语法,页面切换,tabbar全局配置
  • 数据结构 07
  • 18.基本的ACL
  • 网站后台编程语言创业中文网站模板
  • 从“刘易斯拐点”到“骑手拐点”,即时零售3.0时代还有多远?
  • 有没有一种app类似网站建设开发定制软件开发
  • 沈阳网站建设建设公司普洱网站建设
  • 蓝桥杯题库——部分简单题题解(Java)
  • 新民电商网站建设程序wordpress淘宝发货插件
  • 多服务隔离部署jenkins自动化脚本:从构建到上线的全流程保障
  • React JSX完全指南
  • CSS进阶 | 不用一行JS!用纯CSS打造会动的现代化单页应用(3D翻转卡片)
  • 云栖重磅|瑶池数据库:从云原生数据底座向“AI就绪”的多模态数据底座演进
  • LeetCode 410.分割数组的最大值
  • python批量读取word表格写入excel固定位置
  • 区块链知识总结
  • 开关电源三种拓扑资料整理
  • xss-labs pass-07
  • ES安装和简单讲解
  • Microtest的整套承包系统(turnkey system)目标电源设备特性