由于不想更改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包 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐