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

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


4.3 记录器:2 流并发用例

笔记
在实施用例之前确保 Weston 正在运行。

有关上游 GStreamer 插件和元素的信息,请参阅 GStreamer 文档,网址为 https://gstreamer.freedesktop.org/documentation/plugins_doc.html。

4.3.1 两个 H.264 流:保存到文件

先决条件:确保 Weston 正在运行。

该gst-launch管道可同时捕获、编码和存储两个 H.264/AVC 编码视频流。两路码流由一路 4K 分辨率流和一路 480p 分辨率流组成。

  • 对于 Linux Ubuntu:

    gst-launch-1.0 -e qtiqmmfsrc name=qmmf camera=0 ! video/x-raw\(memory:GBM\),format=NV12,width=3840,height=2160,framerate=30/1 ! queue ! qtic2venc ! queue ! h264parse ! mp4mux ! queue ! filesink location=/data/output/mux_4k.mp4 qmmf. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=30/1 ! queue ! qtic2venc ! queue ! h264parse ! mp4mux ! queue ! filesink location=/data/output/mux_480.mp4
    
  • 对于嵌入式 Linux:

    gst-launch-1.0 -e qtiqmmfsrc name=qmmf camera=0 ! video/x-raw\(memory:GBM\),format=NV12,width=3840,height=2160,framerate=30/1 ! queue ! qtic2venc ! queue ! h264parse ! mp4mux ! queue ! filesink location=/data/output/mux_4k.mp4 qmmf. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=30/1 ! queue ! qtic2venc ! queue ! h264parse ! mp4mux ! queue ! filesink location=/data/output/mux_480.mp4
    
  1. 该qtiqmmfsrc元素用于捕获和编码两个视频流。

  2. h264parse和元素mp4mux处理缓冲区并准备存储。

  3. 队列元素确保每个路径/轨道独立于另一个运行。

  4. 这些filesink元素将缓冲区存储在相应的文件中。

  5. 要停止用例,请按CTRL + C,然后运行以下命令。

    1. 使用以下命令从设备中提取录制的内容adb pull。

      adb pull /data/mux_4k.mp4
      
    2. 在主机 PC 上播放内容。

      adb pull /data/mux_480.mp4
      
  6. 播放设备上的内容。

请添加图片描述

4.3.2 两个 H.264 流:保存到文件并通过 TCP 进行流式传输

先决条件:确保 Weston 正在运行。

以下gst-launch管道提供两个 1080p 分辨率 H.264/AVC 编码视频流的捕获。一个流存储到文件,而另一个流通过网络 (TCP) 传输。

gst-launch-1.0 -e qtiqmmfsrc name=qmmf camera=0 ! video/x-raw\(memory:GBM\),format=NV12,width=3840,height=2160,framerate=30/1 ! queue ! qtic2venc ! queue ! h264parse ! mp4mux ! queue ! filesink location=/data/output/mux1.mp4 qmmf. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=30/1 ! queue ! qtic2venc ! h264parse config-interval=-1 ! mpegtsmux name=muxer ! queue ! tcpserversink port=8900 host=127.0.0.1
  1. 该qtiqmmfsrc元素用于捕获和编码两个视频流。

  2. h264parse和元素mp4mux处理第一个流中的缓冲区并准备存储它们。

  3. 该filesink元素存储文件中第一个流的缓冲区。

  4. h264parse和元素mpegtsmux处理来自第二个流的缓冲区并为流式传输做好准备。

  5. 然后该tcpserversink元素将缓冲区发送到网络上。队列元素确保每个路径/轨道独立运行。

  6. 播放设备上的内容。

  7. 要停止用例,请按CTRL + C,使用以下命令从设备中提取录制的内容adb pull ,然后在主机 PC 上播放该内容。

    adb pull /data/mux1.mp4
    

请添加图片描述

查看主机上的 TCP 流

先决条件:

  1. 在主机上安装 adb 和VLC Media Player 。
  2. 在环境变量中设置二进制和可执行文件路径。

要查看主机上的 TCP 流,请执行以下操作:

  1. 在Linux主机上,运行以下命令:

    adb forward tcp:8900 tcp:8900
    
    vlc -vvv tcp://127.0.0.1:8900
    
  2. 在Windows主机上执行以下命令:

    • 运行命令。

      adb forward tcp:8900 tcp:8900
      
    • 启动VLC 媒体播放器。

    • 选择媒体/打开网络流(或按 CTRL + N)

    • 输入网络 URL。tcp://127.0.0.1:8900

    • 单击“播放”。

4.3.3 两个 H.264 流:保存到文件和实时相机预览

先决条件:确保 Weston 正在运行。

以下gst-launch管道在显示用例上提供同步记录和实时预览:

  • 对于 Linux Ubuntu:

    export XDG_RUNTIME_DIR=/run/user/root && gst-launch-1.0 -e qtiqmmfsrc name=qmmf camera=0 ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1 ! waylandsink fullscreen=true enable-last-sample=false qmmf. ! video/x-raw\(memory:GBM\),format=NV12,width=3840,height=2160,framerate=30/1 ! queue ! qtic2venc ! queue ! h264parse ! mp4mux ! queue ! filesink location=/data/output/mux1.mp4
    
  • 对于嵌入式 Linux:

    export WAYLAND_DISPLAY=wayland-1 && export XDG_RUNTIME_DIR=/run/user/root && gst-launch-1.0 -e qtiqmmfsrc name=qmmf camera=0 ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1 ! waylandsink fullscreen=true enable-last-sample=false qmmf. ! video/x-raw\(memory:GBM\),format=NV12,width=3840,height=2160,framerate=30/1 ! queue ! qtic2venc ! queue ! h264parse ! mp4mux ! queue ! filesink location=/data/output/mux1.mp4
    
  1. 该qtiqmmfsrc元件用于生成4K分辨率编码视频流和1080p分辨率YUV流。
  2. 和h264parse元素mp4mux处理编码视频流。
  3. 该filesink元素将流存储在设备上的文件中。

请添加图片描述
YUV流由元素渲染在显示面板上waylandsink。

要停止用例,请按CTRL + C,使用以下命令从设备中提取录制的内容adb pull,然后在主机 PC 上播放该内容。

adb pull /data/mux1.mp4

要在设备上播放内容,请参阅验证 Weston。

4.4 记录器:3 流并发用例

有关上游 GStreamer 插件和元素的信息,请参阅 GStreamer 文档,网址为https://gstreamer.freedesktop.org/documentation/plugins_doc.html

4.4.1 三个视频流:保存到文件

以下gst-launch管道提供同步 1080p 视频录制用例:

gst-launch-1.0 -e qtiqmmfsrc name=qmmf camera=0 ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1 ! queue ! qtic2venc ! queue ! h264parse ! mp4mux ! queue ! filesink location=/data/output/mux1.mp4 qmmf. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1 ! queue ! qtic2venc ! queue ! h264parse ! mp4mux ! queue ! filesink location=/data/output/mux2.mp4 qmmf. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1 ! queue ! qtic2venc ! queue ! h264parse ! mp4mux ! queue ! filesink location=/data/output/mux3.mp4
  1. 该qtiqmmfsrc元素用于捕获和编码所有三个视频流。

  2. h264parse,元素mp4mux处理缓冲区并准备存储。

  3. 队列元素确保每个路径/轨道独立于另一个运行。

  4. 这些filesink元素将缓冲区存储在相应的文件中。

  5. 播放设备上的内容。

  6. 要停止用例,请按CTRL + C,使用以下命令从设备中提取录制的内容adb pull,然后在主机 PC 上播放该内容。

    adb pull /data/mux1.mp4
    adb pull /data/mux2.mp4
    adb pull /data/mux3.mp4
    

请添加图片描述

4.4.2 三个视频流:保存到文件、通过 TCP 流式传输以及实时预览

先决条件:确保 Weston 正在运行。

以下gst-launch管道提供同步 4K 录制、显示屏上的 1080p 实时预览和 480p 流媒体用例。

gst-launch-1.0 -e qtiqmmfsrc name=qmmf camera=0 ! video/x-raw\(memory:GBM\),format=NV12,width=3840,height=2160,framerate=30/1 ! queue ! qtic2venc ! queue ! h264parse ! mp4mux ! queue ! filesink location=/data/output/mux1.mp4 qmmf. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=30/1 ! queue ! qtic2venc ! h264parse config-interval=-1 ! mpegtsmux name=muxer ! queue ! tcpserversink port=8900 host=127.0.0.1 qmmf. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1 ! waylandsink fullscreen=true enable-last-sample=false
  1. 该qtiqmmfsrc元素用于生成两个编码视频流(4K 和 480p 分辨率)和一个 1080p YUV 流。

  2. h264parse第一个编码视频流由和元素处理mp4mux。

  3. 该filesink元素将其存储在设备上的文件中。

  4. h264parse第二编码流由和元件处理mpegtsmux,并由该tcpserversink元件通过 TCP 进行流传输。

  5. 第三原始 YUV 流由该元素渲染在显示面板上waylandsink。

  6. 播放设备上的内容。

  7. 要停止用例,请按CTRL + C,使用以下命令从设备中提取录制的内容adb pull ,然后在主机 PC 上播放该内容。

    adb pull /data/mux1.mp4
    

查看主机上的 TCP 流

先决条件:

  1. 在主机上安装 ADB 和VLC Media Player 。
  2. 在环境变量中设置二进制/可执行文件路径。

要查看主机上的 TCP 流,请执行以下操作。

  1. 在Linux主机上,运行以下命令:

    adb forward tcp:8900 tcp:8900
    
    vlc -vvv tcp://127.0.0.1:8900
    
  2. 在Windows主机上,运行以下命令。

    1. 运行命令。

      adb forward tcp:8900 tcp:8900
      
    2. 启动VLC 媒体播放器。

    3. 选择媒体/打开网络流(或按 CTRL + N)

    4. 输入网络 URLtcp://127.0.0.1:8900

    5. 单击“播放”。

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值