ROS中cv_bridge如何用python3进行编译
最近遇到了個問題,cv_bridge實現了opencv和ros中圖像數據類型的轉換,但ros-melodic默認python版本是python2。在配置yolact環境的時候,要求是python3。
這就導致在ros自帶的cv_bridge是python2版本,想使用python3的話需要自己去編譯cv_bridge。否則會報錯:
ImportError: dynamic module does not define module export function (PyInit_cv_bridge_boost)
配置環境
Ubuntu18.04
ros-melotic
注意:操作要在系統的真實空間中,不要在conda建立的虛擬空間中操作!!!
python3編譯cv_bridge
1、安裝相關依賴包
sudo apt-get install python-catkin-tools python3-dev python3-catkin-pkg-modules python3-numpy python3-yaml ros-melodic-cv-bridge
2、創建一個工作空間用于存放待編譯的 cv_bridge 文件
mkdir -p catkin_workspace/src
cd catkin_workspace
3、指示carkin設置cmake變量
注意:ros-melodic使用的是Python3.6,而kinetic使用的是Python3.5
catkin config -DPYTHON_EXECUTABLE=/usr/bin/python3 -DPYTHON_INCLUDE_DIR=/usr/include/python3.6m -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython36m.so
4、
catkin config --install
5、在catkin_workspace工作空間中克隆 cv_bridge
git clone https://github.com/ros-perception/vision_opencv.git src/vision_opencv
6、查看安裝的版本
apt-cache show ros-melodic-cv-bridge | grep Version
7、編譯
catkin build
驗證
1、首先進入自己的工作空間目錄下,進行catkin_make,然后source
2、進入到創建的虛擬環境,進入到編譯好cv_bridge的工作空間下運行
–extend表示:在原有的路徑配置下,加入一個配置。這個過程不會影響之前的配置
conda activate yolact
source install/setup.bash --extend
3、運行自己創建的節點
另一種驗證
如果沒有創建的話,可知執行一下命令
cd catkin_workspace/
source install/setup.bash --extend
python
from cv_bridge.boost.cv_bridge_boost import getCvType
總結
以上是生活随笔為你收集整理的ROS中cv_bridge如何用python3进行编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 排卵期容易受孕吗
- 下一篇: 笑着哭最痛是哪首歌啊?