在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的日誌和錯誤信息,以便進行調試和優化。