Qualcomm Robotics RB5 平台软件用户指南(3)

150 篇文章 7 订阅
25 篇文章 0 订阅

Qualcomm Robotics RB5 平台软件用户指南(3)


3.4 配置视频设置

配置视频设置涉及设置支持的帧速率和接口。 QRB5165 使用 GStreamer 插件 –qtic2venc和qtic2vdec.

QRB5165采用Qualcomm® Adreno™ VPU 665视频核心,支持高达8K分辨率的视频编解码。

  • H.264/HEVC/VP9 解码为 7680 × 4320(60 fps)/8192 × 4320(48 fps)

  • H.264/HEVC 编码为 7680 × 4320 @ 30 fps
    QRB5165 提高了解码器和编码器的帧速率 (2 倍)。

  • 解码器帧速率:

    • 1280 × 720(每秒 960 帧)
    • 1920 × 1088(480 帧/秒)
    • 240 帧/秒时为 3840 × 2160
    • 7680 × 4320(每秒 60 帧)
  • 编码器帧速率:

    • 1280 × 720(每秒 960 帧)
    • 1920 × 1088(480 帧/秒)
    • 120 帧/秒时为 3840 × 2160
    • 独立 HEVC HDR10+

QRB5165提供两种类型的接口来配置视频硬件功能:

  • GStreamer多媒体框架使用调用的GStreamer插件 qtic2venc来访问视频硬件。
  • Codec2接口是一个较低级别的API。 QRB5165 利用了 Qualcomm 移动平台的 Codec2 实现。除了 GBM 取代了gralloc模块之外,大多数接口都是相同的。
    配置编码器GStreamer插件qtic2venc

3.4.1 配置编码器GStreamer插件qtic2venc

在这里插入图片描述

编码和解码示例

  • H.264 和 HEVC 编码示例
Encoder: qtic2venc
H264: 
gst-launch-1.0 -e qtiqmmfsrc camera=0 name=qmmf ! video/x-raw\(memory:GBM\),format=NV12,width=3840,height=2160,framerate=30/1 ! qtic2venc ! h264parse ! mp4mux ! queue ! filesink location=/data/4k_mux.mp4
H265: 
gst-launch-1.0 -e qtiqmmfsrc camera=0 name=qmmf ! video/x-raw\(memory:GBM\),format=NV12,width=3840,height=2160,framerate=30/1 ! qtic2venc ! h265parse ! mp4mux ! queue ! filesink location=/data/4k_mux_h265.mp4 
  • 解码器GStreamer插件是qtic2vdec
gst-launch-1.0 filesrc location=/data/4k_mux.mp4 ! qtdemux ! queue ! h264parse ! qtic2vdec ! video/x-raw\(memory:GBM\),compression=ubwc ! queue ! waylandsink fullscreen=true
gst-launch-1.0 filesrc location=/data/4k_mux_h265.mp4 ! qtdemux ! queue ! h265parse ! qtic2vdec ! video/x-raw\(memory:GBM\),compression=ubwc ! queue ! waylandsink fullscreen=true

编码器 Codec2 可以支持比qtic2venc.

GBM替代品

在 Codec2 实现中,gralloc被替换为 GBM,因为 GBM 是 Linux 发行版上用于在应用程序之间共享显示缓冲区的流行机制。其他优点如下:

  • 由于缓冲区共享,避免了数据复制
  • 功耗降至最低

GBM替换的某些用法如下。

  • QRB5165 上的摄像头进行视频录制。 Qualcomm 平台提供名为 QMMF 的多媒体框架来使用相机接口。
  • 来自相机输出的视频编码。相机和视频之间的缓冲区是 GBM 分配的。

buffer_handle_t在QComOMXMetadata.h中重新定义:

typedef const gbm_bo* buffer_handle_t;

当相机将帧发送到struct encoder_media_buffer_type.

typedef struct encoder_media_buffer_type {
     MetadataBufferType buffer_type;
     buffer_handle_t meta_handle;
} encoder_media_buffer_type;

这种将相机帧发送到结构内视频的过程encoder_media_buffer_type称为元模式或零复制功能。

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Robotics Toolbox创建ur5机械臂模型,您需要遵循以下步骤: 1. 安装MATLAB Robotics Toolbox。 2. 下载Universal Robots URDF文件。 3. 将URDF文件导入MATLAB中并使用robotics.URDF类读取。 4. 使用robotics.RigidBodyTree类创建机器人模型。 5. 添加所有关节和链接。 6. 定义机器人末端执行器(End Effector)。 7. 设置机器人的关节角度和末端执行器位置。 这里是一个示例代码,可以帮助您进一步了解如何使用Robotics Toolbox创建ur5机械臂模型: ``` % 安装Robotics Toolbox % 下载URDF文件 urdf = 'ur5.urdf'; ur5 = robotics.URDF(urdf); % 创建RigidBodyTree对象 robot = robotics.RigidBodyTree; % 添加链接 link1 = robotics.RigidBody('link1'); joint1 = robotics.Joint('joint1', 'revolute'); setFixedTransform(joint1, trvec2tform([0 0 0])); joint1.JointAxis = [0 0 1]; link1.Joint = joint1; addBody(robot, link1, 'base'); link2 = robotics.RigidBody('link2'); joint2 = robotics.Joint('joint2', 'revolute'); setFixedTransform(joint2, trvec2tform([0 0 0.163])); joint2.JointAxis = [1 0 0]; link2.Joint = joint2; addBody(robot, link2, 'link1'); % ... 添加更多链接和关节 % 添加末端执行器 eeBody = robotics.RigidBody('EndEffector'); setFixedTransform(eeBody.Joint, trvec2tform([0 0 0.09])); addBody(robot, eeBody, 'tool0'); % 设置关节角度和末端执行器位置 q = zeros(1,6); eePos = [0.4 0.1 0.3]; eeOri = [pi/2 0 pi/2]; tform = eul2tform(eeOri); tform(1:3, 4) = eePos; q = ik(eeBody, tform, [1 1 1 0 0 0]); show(robot, q); ``` 这个示例代码将创建一个ur5机械臂模型,并设置关节角度和末端执行器位置。您可以通过修改关节角度和末端执行器位置来控制机器人的运动。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值