# GMSL相机 方竹科技针对GMSL相机开发了标准的V4L2(Video for Linux缩写,是Linux视频采集相关设备的驱动框架),对应用层提供统一的接口方便应用开发。 F305L载板FAKRA接口与设备节点映射关系(单目RGB或红外GMSL相机) | 物理接口 | 设备节点 | | -------- | ----------- | | GMSL0 | /dev/video0 | | GMSL1 | /dev/video1 | | GMSL2 | /dev/video2 | | GMSL3 | /dev/video3 | | GMSL4 | /dev/video4 | | GMSL5 | /dev/video5 | ### GMSL快速验证 设备支持使用Gstreamer输出视频流,图像获取与显示使用方法如下: ```bash #8M相机:(3840x2160) gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)UYVY, width=(int)3840, height=(int)2160" ! videoconvert ! fpsdisplaysink video-sink=xvimagesink sync=false #5M相机:(2880x1860) gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)UYVY, width=(int)2880, height=(int)1860" ! videoconvert ! fpsdisplaysink video-sink=xvimagesink sync=false #2M 相机:(1920x1080) gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080" ! fpsdisplaysink video-sink=xvimagesink sync=false #1M相机:(1280x720) gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)720" ! fpsdisplaysink video-sink=xvimagesink sync=false #其他分辨率相机根据具体相机参数进行设置即可 ``` ### 相机Sync IN输入 | 接口名称 | PHD2.0针脚序号 | 信号定义 | 接口说明 | | ---------------- | ---------------------- | ---------------- | ----------------- | | Sync in1同步接口 | 17 | GPIO13 (SOM: Pin218) | MAX9296-GMSL4~5 Sync in信号 | | Sync in2同步接口 | 19 | GPIO12 (SOM: Pin228) | MAX96712-GMSL0~3Sync in信号 | 即可以通过外部输入固定频率信号对GMSL相机进行触发,需软件配合 也可以通过软件模拟的方式让相机进行同步 ```shell #!/bin/bash # JetPack5.x GPIO13 Sync out同步接口 cd /sys/class/pwm/pwmchip0 echo 0 > export cd pwm0 echo 40000000 > period echo 8000000 > duty_cycle echo 1 > enable #JetPack6.x cd /sys/class/pwm/pwmchip0 echo 0 > export cd pwm0 echo 40000000 > period echo 8000000 > duty_cycle echo 1 > enable ``` ### Camera应用代码参考 [jetson_cam_app](https://gitee.com/fangzhutech/jetson_cam_app.git) 包含两个C++ 应用案例如下: camera_v4l2_cuda :CUDA SDK Demo通过CUDA运行效率高(需预装JetPack SDK)。 camera_v4l2_opencv:OpenCV SDK Demo 直接使用V4L2和OpenCV来获取摄像头图像。 ### F305支持搭载D457/ZED X - **F305支持Intel D457系列, Stereolabs ZED X系列, 猎豹Leopard Imaging Hawk双目相机** - **F305支持双目与单目、红外等相机混合接入,如:4路ISX031+Intel D457x1~2,或4路ISX031+1路ZED X** (ISX031可替换为其他Sensor) - Intel D457系列 仅MAX9296芯片支持,可接入一路全数据,也可接入两路Depth+RGB/Grey - Steraolabs ZED X系列 MAX9296和MAX96712 均可支持接入一路,暂不支持多路接入 - Orbbec 335Lg系列 MAX9296和MAX96712 均可支持接入 Intel Realsense SDK安装 ```bash #安装Realsense-viewer DISTRO=bionic wget --no-check-certificate https://librealsense.intel.com/Debian/apt-repo/dists/$DISTRO/Release wget --no-check-certificate https://librealsense.intel.com/Debian/apt-repo/dists/$DISTRO/main/binary-arm64/Packages wget --no-check-certificate https://librealsense.intel.com/Debian/apt-repo/pool/$DISTRO/main/librealsense2-gl_2.53.1-0~realsense0.703_arm64.deb wget --no-check-certificate https://librealsense.intel.com/Debian/apt-repo/pool/$DISTRO/main/librealsense2_2.53.1-0~realsense0.703_arm64.deb wget --no-check-certificate https://librealsense.intel.com/Debian/apt-repo/pool/$DISTRO/main/librealsense2-udev-rules_2.53.1-0~realsense0.703_arm64.deb wget --no-check-certificate https://librealsense.intel.com/Debian/apt-repo/pool/$DISTRO/main/librealsense2-utils_2.53.1-0~realsense0.703_arm64.deb sudo apt install libglfw3-dev libusb-1.0-0-dev libgtk-3-dev libudev-dev at libfl2 sudo dpkg -i *.deb #F305 + ONX/XNX 搭配2路Intel D457 相机V4L2 验证 #LinkA: Depth PipeX + RGB PipeY(MAX9295) - PipeX/Y(MAX9296) - /dev/video0~3 #LinkB: Depth PipeZ + RGB PipeU(MAX9295) - PipeZ/U(MAX9296) - /dev/video4~7 #验证LinkA - Depth v4l2-ctl --set-fmt-video=width=1280,height=720,pixelformat=Z16\ --set-ctrl bypass_mode=0 --stream-mmap --stream-count=2 --stream-to=depth.dat -d /dev/video0 << #验证LinkA - RGB v4l2-ctl --set-fmt-video=width=1280,height=720,pixelformat=YUYV --set-ctrl bypass_mode=0 --stream-mmap --stream-count=2 --stream-to=rgb.dat -d /dev/video2 << #验证LinkB - Depth v4l2-ctl --set-fmt-video=width=1280,height=720,pixelformat=Z16\ --set-ctrl bypass_mode=0 --stream-mmap --stream-count=2 --stream-to=depth.dat -d /dev/video4 << #验证LinkA - RGB v4l2-ctl --set-fmt-video=width=1280,height=720,pixelformat=YUYV --set-ctrl bypass_mode=0 --stream-mmap --stream-count=2 --stream-to=rgb.dat -d /dev/video6 << ``` Stereolabs ZED X SDK 安装 - 依据本地Jetpack版本下载安装[ZED SDK for Jetson](https://www.stereolabs.com/developers/release/). ```bash $ cd ~/Download/ $ chmod +x ZED_SDK_Tegra_L4T35.3_v4.0.0.zstd.run $ sudo apt-get install -y zstd #运行ZED SDK安装 $ ./ZED_SDK_Tegra_L4T35.3_v4.0.0.zstd.run ``` ![D457/ZEDX/AR0231](../img/gmsl.multi.jpg) GMSL物理接口特性及常见故障排查 - 支持最长15米同轴电缆的信号传输,采用方竹定制GMSL线实测可达33米 - 支持GMSL2/1不同串行器的摄像头,此载板搭配XNX/ONX等核心模块已验证约20余款不同厂商相机(详询业务人员) - 相机显示无图像: 检查相机镜头盖是否打开。 - 相机GST显示绿屏: 检查固件与相机是否匹配,以及是否需要相机是否需要触发输出。 - 相机显示颜色不对: 相机图像格式不匹配如相机为YUYV格式而软件配置为UYVY,会呈现下列效果。