Wiki
OpenCV
約 3 分鐘閱讀
本文由簡體中文內容確定性轉換,並受版本化術語表保護。
1.OpenCV
2.CV_Bridge
cv_bridge維基百科介紹:
https://wiki.ros.org/cv_bridge
https://index.ros.org/p/cv_bridge/
ROS2Humble的cv_bridge倉庫連結(注意選擇對應版本的分支branches):
https://github.com/ros-perception/vision_opencv/tree/humble


2.1.安裝
提前自己編譯好帶CUDA的OpenCV4,詳見電控組環境搭建大全
- apt安裝(不建議)
由於ros自帶的cv_bridge自動連結ros自帶的oepncv版本,所以我們一般不會用ros2自帶的cv_bridge,一般都需要自己手動編譯一個cv_bridge.
# 通用命令
sudo apt install ros-<ros2-distro>-vision-opencv
# ROS2 Humble
sudo apt install ros-humble-vision-opencv
# ROS2 Jazzy
sudo apt install ros-jazzy-vision-opencv
- 原始碼編譯安裝(建議)
本教程以jazzy為例子.
首先克隆倉庫,克隆jazzy,humble,rolling都可以,只要是ROS2的基本都沒啥大變化.但是官方暫時沒出jazzy,我就直接克隆預設的rolling了.

新建一個資料夾
mkdir ~/ros2_ws/src
cd ~/ros2_ws/src
# 克隆源码
git clone https://github.com/ros-perception/vision_opencv.git
cd vision_opencv
# 如果是humble建议:
git checkout humble
安裝依賴:
sudo apt install python3-numpy
sudo apt install libboost-python-dev
修改cv_bridge的CMakeLists

將原本的find_package(OpenCV 4 QUIET)改為精確匹配版本,並新增EXACT引數:
EXACT是未找到精確版本時,CMake會報錯並終止構建.

find_package(OpenCV 4.11 EXACT QUIET
COMPONENTS
opencv_core
opencv_imgproc
opencv_imgcodecs
CONFIG
)
cd ~/ros2_ws
# 下面这三个根据情况三选一,一般是第一个colcon build --symlink-install
# 如果你曾经没编译过
colcon build --symlink-install
# 如果你只想编译cv_bridge
colcon build --symlink-install --packages-select cv_bridge
# 如果你曾经编译过一遍,则需要下列命令
colcon build --symlink-install --packages-select cv_bridge --allow-overriding cv_bridge
驗證:
# 列出cv_bridge链接的opencv版本
ldd ./install/cv_bridge/lib/libcv_bridge.so | grep opencv
如下圖,我的成功連結到411了,也就是opencv4.11版本.

接下來配置環境:
vim ~/.bashrc
在source /opt/ros/jazzy/setup.bash的下一行加入下面這句
source ~/ros2_ws/install/setup.bash
輸入:wq儲存
完成安裝與環境配置結束.