ROS的cv_bridge库与opencv库发生冲突的解决方法
本文提供了一种在ROS的cv_bridge库与opencv库发生冲突时的解决方法
·
由于不想更改ROS的源文件,于是记录下了以下方法。主要思路为重新编译cv_bridge库,在ROS包的CMakeLists.txt文件中指定新编译的cv_bridge库路径。
1、首先下载指定版本的cv_bridge库,该库可前往vision_opencv下载:
git clone https://github.com/ros-perception/vision_opencv.git
cd vision_opencv/cv_bridge
git checkout $(printenv ROS_DISTRO)
注意: git checkout $(printenv ROS_DISTRO)旨在获取系统安装的ROS版本,并切换为符合系统ROS版本的cv_bridge源码
2、编译cv_bridge
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/home/xxx/cv_bridge ..
make -j$(nproc)
sudo make install
注意:/home/xxx/cv_bridge为作者选择安装的路径,读者需自行修改,如果只是简单使用,建议安装到一个好记的位置。
3、使用新编译的cv_bridge
需要使用cv_bridge库的ROS包中的CMakeLists.txt中添加如下代码,此代码需要写在find_package之前,如:
set(cv_bridge_DIR /home/xxx/cv_bridge/share/cv_bridge/cmake)
注意:需要更改xxx为自己的;可以发现该路径比第2步指定的路径要深入一点。
如作者的添加代码的位置如下所示,只需要注意要在cv_bridge的find_package之前即可:
set(cv_bridge_DIR /home/xxx/cv_bridge/share/cv_bridge/cmake)
find_package(catkin REQUIRED COMPONENTS
roscpp
std_msgs
geometry_msgs
nav_msgs
tf
cv_bridge
camera_models
image_transport)
4、重新编译ROS包
更多推荐


所有评论(0)