赞
踩
https://www.intelrealsense.com/get-started-depth-camera/
请访问 GitHub 上的 Linux* 发行版页面以获取安装说明。
sudo mkdir -p /etc/apt/keyrings
curl -sSf https://librealsense.intel.com/Debian/librealsense.pgp | sudo tee /etc/apt/keyrings/librealsense.pgp > /dev/null
sudo apt-get install apt-transport-https

echo "deb [signed-by=/etc/apt/keyrings/librealsense.pgp] https://librealsense.intel.com/Debian/apt-repo `lsb_release -cs` main" | \
sudo tee /etc/apt/sources.list.d/librealsense.list
sudo apt-get update

安装库(如果升级软件包,请参阅下面的部分):
以上两行将部署librealsense2 udev规则,构建和激活内核模块,运行时库以及可执行的演示和工具。sudo apt-get install librealsense2-dkms``sudo apt-get install librealsense2-utils
(可选)安装开发人员和调试包:
安装包后,您可以使用您选择的 IDE 使用 librealsense 编译应用程序。sudo apt-get install librealsense2-dev``sudo apt-get install librealsense2-dbg``dev``g++ -std=c++11 filename.cpp -lrealsense2
重新连接英特尔实感深度摄像头并运行:
realsense-viewer
以验证安装
验证内核是否已更新:
应包含字符串modinfo uvcvideo | grep "version:"``realsense


Linux 手册安装指南
我使用Motion Module模式报错如下
Backend in rs2_open_multiple(sensor:0x7f0dc401bc80,
profiles:0x7f0dc59de1f8, count:2):
Failed to open scan_element
/sys/devices/pci0000:00/0000:00:14.0/usb4/4-5/4-5.4/4-5.4:1.5/0003:8086:0B3A.000E/HID-SENSOR-200073.3.auto/iio:device0/scan_elements/in_accel_y_en
Last Error: Permission denied
解决:
sudo realsense-viewer
建议参考
ROS接口安装
由于ros1的维护,直接安装会以最新版本下载,其适配ros2,导致编译失败,所以在安装时要选择与之ros相对应的tag
以我的ros noetic为例
~/catkin_RealSense_ws/srcmkdir -p ~/catkin_RealSense_ws/src
cd ~/catkin_RealSense_ws/src
catkin_init_workspace
cd ..
catkin_make
安装realsense-ros:
https://gitcode.net/mirrors/intelrealsense/realsense-ros?utm_source=csdn_github_accelerator
安装ddynamic_reconfigure:
https://gitcode.net/mirrors/pal-robotics/ddynamic_reconfigure.git

返回到工作空间的根目录并构建:编译
catkin_RealSense_ws/src$ cd ..
cgm@cgm:~/catkin_RealSense_ws$ catkin_make
把我们工作空间的环境变量设置到bash中打开终端输入
echo "source ~/catkin_RealSense_ws/devel/setup.bash" >> ~/.bashrc
刷新 bash
source ~/.bashrc
echo $ROS_PACKAGE_PATH

我在catkin_make时报错了:
`CMake Error `at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by "cv_bridge" with
any of the following names:
cv_bridgeConfig.cmake
cv_bridge-config.cmake
Add the installation prefix of "cv_bridge" to CMAKE_PREFIX_PATH or set
"cv_bridge_DIR" to a directory containing one of the above files. If
"cv_bridge" 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/cgm/catkin_RealSense_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/cgm/catkin_RealSense_ws/build/CMakeFiles/CMakeError.log".
`Invoking "cmake" failed`
主要问题是在尝试构建realsense2_camera包时,CMake无法找到cv_bridge包。cv_bridge是ROS中用于在ROS消息和OpenCV数据结构之间进行转换的包。
安装cv_bridge:首先,确保你已经安装了cv_bridge。你可以使用以下命令来安装它:
sudo apt-get install ros-noetic-cv-bridge
再次编译:catkin_make

启动节点
cgm@cgm:~/catkin_RealSense_ws$ source devel/setup.bash
cgm@cgm:~/catkin_RealSense_ws$ ls ~/catkin_RealSense_ws/src/realsense-ros/realsense2_camera/launch
demo_pointcloud.launch rs_camera.launch rs_rgbd.launch
demo_t265.launch rs_d400_and_t265.launch rs_rtabmap.launch
includes rs_d435_camera_with_model.launch rs_t265.launch
opensource_tracking.launch rs_from_file.launch
rs_aligned_depth.launch rs_multiple_devices.launch
cgm@cgm:~/catkin_RealSense_ws$ echo $ROS_PACKAGE_PATH
/home/cgm/catkin_RealSense_ws/src:/home/cgm/catkin_ws_yolov8/src:/home/cgm/catkin_ws/src:/opt/ros/noetic/share
# roslaunch realsense2_camera rs_camera.launch命令
# roslaunch realsense2_camera rs_camera.launch命令
cgm@cgm:~/catkin_RealSense_ws$ roslaunch realsense2_camera rs_camera.launch
... logging to /home/cgm/.ros/log/8cfbde3c-5af3-11ee-9fc0-31bf2915ed5f/roslaunch-cgm-67078.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.
started roslaunch server http://cgm:40819/
SUMMARY
========
.
.
.
.
[ INFO] [1695572201.765937000]: setupPublishers...
[ INFO] [1695572201.767861959]: Expected frequency for depth = 30.00000
[ INFO] [1695572201.769582894]: Expected frequency for color = 30.00000
[ INFO] [1695572201.770742675]: setupStreams...
[ INFO] [1695572201.809016911]: SELECTED BASE:Depth, 0
[ INFO] [1695572201.813351024]: RealSense Node Is Up!
[ WARN] [1695572201.943537509]:
出现RealSense Node Is Up!证明节点启动成功
我们可以看到以下关键信息:
分析总结:
rostopic list

sudo apt-get install ros-noetic-rqt-image-view
rqt_image_view

sudo apt-get install ros-noetic-rviz
roslaunch realsense2_camera demo_pointcloud.launch

前提
roslaunch realsense2_camera rs_camera.launch
再打开一个终端输入
rviz
在RViz界面中,按照以下步骤进行操作:

pip install pyrealsense2
import pyrealsense2 as rs
import numpy as np
import cv2
if __name__ == "__main__":
# Configure depth and color streams
pipeline = rs.pipeline()
config = rs.config()
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
# Start streaming
pipeline.start(config)
try:
while True:
# Wait for a coherent pair of frames: depth and color
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())
# Apply colormap on depth image (image must be converted to 8-bit per pixel first)
depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)
# Stack both images horizontally
images = np.hstack((color_image, depth_colormap))
# Show images
cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)
cv2.imshow('RealSense', images)
key = cv2.waitKey(1)
# Press esc or 'q' to close the image window
if key & 0xFF == ord('q') or key == 27:
cv2.destroyAllWindows()
break
finally:
# Stop streaming
pipeline.stop()

RealSense-ROS安装测试完毕。
前提,先运行rs_camera.launch
roslaunch realsense2_camera rs_camera.launch
看一下有些什么话题
cgm@cgm:~$ rostopic echo /
/camera/color/camera_info
/camera/color/image_raw
/camera/color/metadata
/camera/depth/camera_info
/camera/depth/image_rect_raw
/camera/depth/metadata
/camera/extrinsics/depth_to_color
/camera/motion_module/parameter_descriptions
/camera/motion_module/parameter_updates
/camera/realsense2_camera_manager/bond
/camera/rgb_camera/auto_exposure_roi/parameter_descriptions
/camera/rgb_camera/auto_exposure_roi/parameter_updates
/camera/rgb_camera/parameter_descriptions
/camera/rgb_camera/parameter_updates
/camera/stereo_module/auto_exposure_roi/parameter_descriptions
/camera/stereo_module/auto_exposure_roi/parameter_updates
/camera/stereo_module/parameter_descriptions
/camera/stereo_module/parameter_updates
/diagnostics
/rosout
/rosout_agg
/tf
/tf_static
这些话题的简要介绍和总结:
Color Stream (彩色流):
/camera/color/camera_info: 这个话题提供了RGB摄像头的内部参数,如焦距、畸变系数等,这些信息对于图像处理和计算机视觉任务非常重要。/camera/color/image_raw: 这是摄像头捕获的原始RGB图像数据,通常用于图像处理和分析。/camera/color/metadata: 这个话题提供了与RGB图像流相关的元数据,如时间戳、曝光时间等。Depth Stream (深度流):
/camera/depth/camera_info: 提供深度摄像头的内部参数,这些参数对于深度估计和3D重建非常重要。/camera/depth/image_rect_raw: 这是经过矫正的深度图像数据,其中的每个像素值表示该像素点到摄像头的距离。/camera/depth/metadata: 提供与深度图像流相关的元数据。Extrinsics (外部参数):
/camera/extrinsics/depth_to_color: 这个话题提供了深度摄像头到RGB摄像头的外部参数,如旋转和平移矩阵。这些参数对于深度和彩色图像的对齐非常重要。Motion Module (IMU - 惯性测量单元):
/camera/motion_module/parameter_descriptions: 这个话题描述了IMU的动态参数,如陀螺仪和加速度计的范围、分辨率等。/camera/motion_module/parameter_updates: 当IMU参数发生变化时,这个话题会提供更新。Camera Manager (摄像头管理器):
/camera/realsense2_camera_manager/bond: 这是一个bond连接,用于确保摄像头节点的稳定运行。RGB Camera Settings (RGB摄像头设置):
/camera/rgb_camera/...: 这些话题允许用户获取和设置RGB摄像头的参数,如曝光、增益等。Stereo Module Settings (立体摄像头模块设置):
/camera/stereo_module/...: 这些话题允许用户获取和设置立体摄像头模块的参数。Diagnostics (诊断):
/diagnostics: 这个话题提供了有关摄像头和ROS节点健康状况的信息,如温度、错误消息等。ROS Output (ROS输出):
/rosout & /rosout_agg: 这些话题提供了ROS节点的日志信息,对于调试和故障排除非常有用。Transforms (坐标变换):
/tf & /tf_static: 这些话题提供了摄像头的坐标变换信息,如摄像头在机器人或环境中的位置和方向。
这些话题允许你访问和控制摄像头的各种功能,从基本的图像和深度流到高级的参数调整和诊断。
查看相机内参,再打开一个终端输入
rostopic echo /camera/color/camera_info

camera_info消息详解这个消息是ROS中sensor_msgs/CameraInfo类型的一个实例,它为摄像头提供了详细的几何和畸变参数。这些参数对于图像校正、立体视觉和其他计算机视觉任务至关重要。
header:
seq: 这是连续的消息序列号,用于跟踪消息的顺序。stamp: 这是消息的时间戳,通常表示消息的生成时间。frame_id: 这是摄像头的参考帧的名称。在ROS中,每个坐标帧都有一个唯一的名称,这里的frame_id表示摄像头的光学中心。height & width:
distortion_model:
D:
K:
R:
P:
binning_x & binning_y:
roi:
这些参数通常是通过摄像头标定得到的,标定过程使用一系列已知的3D点和它们在图像中的2D投影来计算。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。