You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetson平台ROS Noetic中cv_bridge与OpenCV版本冲突致段错误求助

解决ROS Noetic cv_bridge与OpenCV版本冲突导致的段错误问题

问题根源

你遇到的是apt官方安装的ros-noetic-cv-bridge与Jetson Ubuntu 20.04自带的OpenCV版本不匹配问题:ros-noetic-cv-bridge基于OpenCV 4.2编译,但Jetson系统默认提供的是OpenCV 4.5.4,链接时两个版本的库混编导致符号冲突,最终触发段错误。

解决方案:重新编译cv_bridge适配系统OpenCV

直接重新编译cv_bridge源码,让它基于系统的OpenCV 4.5.4构建,彻底消除版本冲突:

  • 步骤1:创建专用工作空间

    mkdir -p ~/cv_bridge_ws/src
    cd ~/cv_bridge_ws/src
    catkin_init_workspace
    
  • 步骤2:拉取cv_bridge Noetic分支源码

    git clone https://github.com/ros-perception/vision_opencv.git
    cd vision_opencv
    git checkout noetic
    
  • 步骤3:编译cv_bridge
    回到工作空间根目录,指定系统OpenCV的CMake配置路径(Jetson架构为aarch64,路径固定):

    cd ~/cv_bridge_ws
    catkin_make --cmake-args -DOpenCV_DIR=/usr/lib/aarch64-linux-gnu/cmake/opencv4
    
  • 步骤4:设置环境变量优先使用编译后的cv_bridge
    将编译后的工作空间环境变量加入bashrc,确保ROS优先加载我们编译的版本:

    echo "source ~/cv_bridge_ws/devel/setup.bash" >> ~/.bashrc
    source ~/.bashrc
    

验证

重新编译你的ROS项目,版本冲突警告会消失,运行包含cv::circle的代码时也不会再触发段错误。

注意:不要卸载系统自带的OpenCV 4.5.4,Jetson的CSI相机、CUDA组件等都依赖该版本;也无需保留apt安装的ros-noetic-cv-bridge,编译后的版本会自动覆盖其优先级。

内容的提问来源于stack exchange,提问作者Aurelien Montmejat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 08:47:25