ROS调用cv_bridge问题

问题报错

from cv_bridge.boost.cv_bridge_boost import getCvType
ImportError: dynamic module does not define module export function (PyInit_cv_bridge_boost)

解决方案:使用Python3编译cv_bridge

1. 新建ROS工作区

mkdir cv_bridge
cd cv_bridge
catkin init

2. 注意配置本地python环境,虚拟环境编译无效

catkin config -DPYTHON_EXECUTABLE=/usr/bin/python3 -DPYTHON_INCLUDE_DIR=/usr/include/python3.5m -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so #寻找对应位置
catkin config --install

3. 下载cv_bridge并编译

git clone https://github.com/ros-perception/vision_opencv.git src/vision_opencv
apt-cache show ros-melodic-cv-bridge | grep Version
    Version: 1.12.8-0xenial-20180416-143935-0800 #版本不一定
cd src/vision_opencv/
git checkout 1.12.8
cd ../../
# Build
catkin build cv_bridge
# Extend environment with new package
source install/setup.bash --extend

可放入~/.bashrc文件

source devel/setup.bash