背景
需要在VMWare的x86架构和Jetson TX2的arm架构中安装cv_bridge以进行画面编解码并通过ros话题传输
参考:在Python3环境中使用ROS的cv_bridge
环境
Ubuntu18.04
ROS melodic
jetson tx2
安装步骤(在系统空间里完成, 而非conda)
-
建立工作空间
mkdir cv_bridge && cd cv_bridge mkdir src cd src && catkin_init_workspace
-
克隆源码
注意版本与ros系统对应git clone -b melodic https://github.com/ros-perception/vision_opencv
-
catkin config
cd ../ 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
这里注意由于jetson是arm架构, 故-DPYTHON_LIBRARY路径的x86_64-linux-gnu要修改为本机对应的路径, 比如jetson的话架构是/usr/lib/aarch64-linux-gnu, 路径不同, 找不到的话用
find
或locate
语句找到对应的路径 -
catkin build cv_bridge
-
source /install/setup.bash --extend
可以将路径放入.bashrc
网上很多说用–extend确保不被覆盖, 但不知道为什么有时候没有用, 所以我常常需要手动source一下, 有懂得老哥可以说一下 -
测试:
$ usr@cgy: python3 >>> from cv_bridge.boost.cv_bridge_boost import getCvType >>>
成功~