在Python3环境中使用ROS的cv_bridge

在Python3环境中使用ROS的cv_bridge

问题:ROS自带的cv_bridge只支持python2,想要在Python3中使用cv_bridge需要自行编译cv_bridge包。

本人环境:Ubuntu 18.04 + ROS Melodic + Anaconda3 + Python3.6

首先进入python3的环境并安装相关依赖包

# 比如先进入 virtualenv 的python3虚拟环境 env_py3 中
workon env_py3
# 然后安装相关依赖包
sudo apt-get install python-catkin-tools python3-dev python3-catkin-pkg-modules python3-numpy python3-yaml ros-kinetic-cv-bridge

创建一个工作空间用于存放待编译的 cv_bridge 文件

mkdir -p catkin_workspace/src

指示carkin设置cmake变量

记得改路径

cd catkin_workspace
catkin config -DPYTHON_EXECUTABLE=/usr/bin/python3 -DPYTHON_INCLUDE_DIR=/usr/include/python3.6m -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so
catkin config --install

在catkin_workspace工作空间中克隆 cv_bridge src

git clone https://github.com/ros-perception/vision_opencv.git src/vision_opencv

查找版本号

apt-cache show ros-kinetic-cv-bridge | grep Version

退回到自己的版本号

cd src/vision_opencv/
git checkout 1.12.8
cd ../../

开始编译

catkin build
或者 catkin build cv_bridge

进入python3环境(virtualenv)之后,先进入到catkin_workspace工作目录下,运行下面的source,然后再到相关的节点工作空间(如catkin_ws),就可以启动那些使用到cv_bridge库的相关节点了:

# 打开虚拟环境env_py3和进入catkin_workspace空间进行source。
workon env_py3
cd catkin_workspace/
# 这里 --extend 参数的作用是让这次的路径配置不影响之前配置好的路径,否则这一次source会覆盖掉之前配置的路径。
source install/setup.bash --extend
cd ..
# 进入另一个工作空间,该空间含有需要启动的python脚本节点。
cd catkin_ws/src/beginner_tutorials/scripts/
python ImgSub.py

参考解决方案

你可能感兴趣的:(ROS,python,开发语言)