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

Win11下LeRobot SO101相机调用出现ConnectionError及检测报错问题

解决Lerobot OpenCVCamera连接报错(ConnectionError)问题

问题情况

  • Win11系统下执行python -m lerobot.find_cameras opencv,会出现大量global obsensor_uvc_stream_channel.cpp:158 cv::obsensor::getStreamChannelGroup Camera index out of range错误,但仍能正确识别到相机:
--- Detected Cameras ---
Camera #0:
    Name: OpenCV Camera @ 0
    Type: OpenCV
    Id: 0
    Backend api: MSMF
    Default stream profile:
        Format: -1.0
        Width: 640
        Height: 480
        Fps: 30.0
---------------------
  • 使用Lerobot的OpenCVCamera代码调用相机时触发ConnectionError
  • Windows相机应用、原生OpenCV的cv2.VideoCapture(0)均可正常使用该摄像头

解决方案:显式指定OpenCV后端为MSMF

Lerobot的OpenCVCameraConfig默认未指定后端,导致尝试用不兼容的obsensor后端连接相机,而原生OpenCV会自动选择合适的MSMF后端。只需在配置中添加backend参数,指定为OpenCV的MSMF后端即可:

import cv2
from lerobot.cameras.opencv.configuration_opencv import OpenCVCameraConfig
from lerobot.cameras.opencv.camera_opencv import OpenCVCamera
from lerobot.cameras.configs import ColorMode, Cv2Rotation

config = OpenCVCameraConfig(
    index_or_path=0,
    fps=30,
    width=640,
    height=480,
    color_mode=ColorMode.RGB,
    rotation=Cv2Rotation.NO_ROTATION,
    backend=cv2.CAP_MSMF  # 显式指定MSMF后端
)

camera = OpenCVCamera(config)
camera.connect()

原因说明

  • 报错中的obsensor_uvc_stream_channel.cpp错误,是因为OpenCV尝试用Intel obsensor后端连接相机,但该摄像头不支持此后端;而find_cameras工具会遍历所有后端,最终找到兼容的MSMF后端,所以能识别到相机。
  • Lerobot的OpenCVCamera连接逻辑没有像原生cv2.VideoCapture那样自动 fallback 到正确后端,因此需要手动指定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:19:51