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输出视频流,图像获取与显示使用方法如下:

#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相机进行触发,需软件配合 也可以通过软件模拟的方式让相机进行同步

#!/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 包含两个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安装

#安装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 安装

$ 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

../_images/gmsl.multi.jpgD457/ZEDX/AR0231

GMSL物理接口特性及常见故障排查

  • 支持最长15米同轴电缆的信号传输,采用方竹定制GMSL线实测可达33米

  • 支持GMSL2/1不同串行器的摄像头,此载板搭配XNX/ONX等核心模块已验证约20余款不同厂商相机(详询业务人员)

  • 相机显示无图像: 检查相机镜头盖是否打开。

  • 相机GST显示绿屏: 检查固件与相机是否匹配,以及是否需要相机是否需要触发输出。

  • 相机显示颜色不对: 相机图像格式不匹配如相机为YUYV格式而软件配置为UYVY,会呈现下列效果。