APEX AD10 GMSL相机开发#

使用V4L开发#

您可以使用Linux下面的v4l-utils工具,验证对应的video口是否正常出图以及帧率是否正常。

安装v4l-utils工具

#更新ubutu软件源
sudo apt update

#安装工具
sudo apt install v4l-utils

根据所用相机的分辨率以及插入的位置使用该工具获取出图及帧率情况

#以video0 1280x720分辨率相机为例
v4l2-ctl -d /dev/video0 --set-fmt-video=width=1280,height=720 --stream-mmap

保存图片

#以video0 1280x720分辨率相机为例,其中--stream-count表示的是保存的帧数,--stream-to表示的是保存的文件名
v4l2-ctl -d /dev/video0 --set-fmt-video=width=1280,height=720 --stream-mmap --stream-count=1 --stream-to=miivii_1280x720.yuv

使用Jetson multimedia开发#

除了v4l-utils工具,Miivii设备预装了Jetson multimedia-api包,同样可以用于验证出图,同时如果您需要使用v4l2框架进行源码开发,同样建议您参考下面nvidia的sample。

编译Jetson multimedia source code包

#进入源码包
cd /usr/src/jetson_multimedia_api
#编译samples
sudo make

Miivii设备支持下面两个samples直接运行

#预览视频
cd /usr/src/jetson_multimedia_api/samples/12_v4l2_camera_cuda/
sudo ./v4l2_camera_cuda -d /dev/video0 -s 1920x1080 -f UYVY

GMSL​相机问题排查#

原则#

米文只保证从硬件接口拿到数据的帧率是正常的,用户自行设计的程序进行计算的帧率不能作为判断异常的标准,应当使用业内常用的工具或者大家认可的标准进行测试。

建议使用v4l2-ctl命令(安装命令: sudo apt install v4l-utils)进行帧率测试。

故障排查具体方法#

现象一:相机可正常点亮,但图像帧率与相机手册帧率不符#

排查项一:使用v4l2-ctl工具验证出图#

相机插到米文设备上,并在websetting正确配置相机型号。 打开终端,输入命令:

v4l2-ctl --verbose -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --stream-mmap

上述指令假如相机分辨率为:1920x1080,插入的相机口为:video0,客户可按自身实际情况进行改动。

如上图,ts:33.327ms  即相机帧率为30HZ。

  • 多次执行,如使用v4l2-ctl帧率均与相机手册不符合,建议客户与相机厂商沟通固件版本是否正确。

  • 如存在丢帧问题,建议检查硬件链路链接,如硬件链路正常,则执行”排查项二:收集log信息”。

排查项二:抓取log#

将设备连接外网后,打开终端输入:

curl -sSL https://doc.miivii.com/scripts/run_miivii_diagnostic.sh | sudo bash -s gmsl

并将日志以及/var/log下文件导出,上传至故障工单中,交由米文技术支持。

现象二:相机无法修改帧率#

排查项一:确认相机是否支持外触发#

步骤1:询问相机厂家相机是否支持外触发#

  • 如支持外触发则执行”排查项二:使用v4l2-ctl工具验证帧率是否被修改”。

  • 如不支持外触发,则不支持修改帧率。

排查项二:使用v4l2-ctl工具验证帧率是否被修改#

步骤1:同”现象一”中”排查步骤一”#

  • 如确认未修改成功,则执行”排查项三”。

  • 如帧率与修改的帧率相符,则需要排查自身应用程序。

排查项三:小幅度修改帧率,尝试能否修改成功#

步骤1:使用sdkdemo修改小范围帧率(相比默认帧率相差5FPS之内的帧率)#

  • 如可修改成功,则建议客户咨询相机厂商相机固件支持的帧率修改范围。

  • 如不可修改成功则执行”排查项四:确保相机的同步信号正常在输出”。

根因解释:

由于CMOS硬件限制,即使是同一家相机厂商的不同产品,可以支持的相机修改的帧率也是不同的,这里给一个大致的区分,凡是支持外触发相机的都可以参考(以CMOS的供应商进行区分):

1 2 OV相机的CMOS最低帧率通常是默认的一半+1,如何识别是否是OV的CMOS?例如:相机名称中携带OX08B/OX03C/OV10640等带OX/OV字样的。 2 ONSEMI的CMOS通常支持1-30FPS的帧率调整,如何识别是否是ONSEMI的CMOS?例如:相机名称中携带AR0233/AR0820/AR0147等带AR字样的。 2 SONY的CMOS比较特殊,没有特定的特点,常见的如IMX系列,通常只支持固定帧率输出(例如 IMX390,IMX477,IMX728),如ISX系列,通常支持默认帧率的一半+1(例如ISX031,ISX021)。

排查项四:确保相机的同步信号正常在输出#

步骤1:检查sdk是否正常运行#

1、查看终端是否有报错信息。 2、使用sdkdemo打印时间戳,查看触发是否正常.

  • 如无报错信息且时间戳正常,建议客户询问相机厂商该型号相机是否支持修改帧率。

  • 如有报错信息,则执行”排查项五-步骤2:抓取log信息”。

排查项五:重新刷写镜像验证是否为软件环境导致#

步骤1:刷写镜像#

刷写镜像方法:https://doc.miivii.com/Apex-AD10-User-Manual-CH/wiki/Apex-AD10-%E5%9B%BA%E4%BB%B6%E7%83%A7%E5%86%99.html

  • 刷写镜像后,帧率可正常修改,则证明为系统软件环境导致,需要客户自己排查软件环境。

  • 刷写镜像后,帧率仍然无法修改,则执行”步骤2”。

步骤2:抓取log#

将设备连接外网后,打开终端输入:

curl -sSL https://doc.miivii.com/scripts/run_miivii_diagnostic.sh | sudo bash -s gmsl

并将日志以及/var/log下文件导出,上传至故障工单中,交由米文技术支持。