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

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


4.7 相机动态参数 – 使用 gst-pipeline-app 更新

Qualcomm gst-pipeline-app是一个辅助工具,它提供与 GStreamer gst-launch-1.0工具相同的功能。它还提供了一个选项来设置 GST 元素的运行时属性。

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

要在运行时更新插件的相机属性qtiqmmfsrc并观察显示屏上的变化,请执行以下操作:

  1. 通过gst-pipeline-app运行以下管道 。

    • Linux Ubuntu:

      export XDG_RUNTIME_DIR=/run/user/root && gst-pipeline-app qtiqmmfsrc name=qmmf ! "video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1" ! waylandsink sync=false fullscreen=true enable-last-sample=false
      
    • 嵌入式Linux:

      export WAYLAND_DISPLAY=wayland-1 && export XDG_RUNTIME_DIR=/run/user/root && gst-pipeline-app qtiqmmfsrc name=qmmf ! "video/x-raw, format=NV12,width=1920,height=1080,framerate=30/1" ! waylandsink sync=false fullscreen=true enable-last-sample=false
      
  2. 输入要控制的插件的名称。

    qmmf
    

    显示所有可动态更新的参数。

    在这里插入图片描述

  3. 选择所需的选项并提供开/关输入或设置该功能的适当值。效果可以在实时预览中查看。
    在这里插入图片描述

4.8 在视频录制过程中捕捉快照

下图显示了在录制两个 1080p 视频时捕获的 1080p 快照。

请添加图片描述

  1. 运行以下命令。

    gst-pipeline-app -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 ! queue ! h264parse ! mp4mux ! queue ! filesink location=/data/output/mux2.mp4 qmmf. ! "image/jpeg,width=1920,height=1080,framerate=30/1" ! multifilesink location=/data/output/frame%d.jpg sync=true async=false
    
  2. 输入要控制的插件名称:qmmf。该图显示了终端上显示的各种选项。

    在这里插入图片描述
    录制的 MP4 文件和 JPEG 快照存储在 /data/中。

  3. 要提取快照和录制的视频,请运行以下命令。

    adb pull /data/<filename>
    

4.9 叠加:1080p 视频,用户文本叠加存储到文件中

  1. 要在 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 ! qtioverlay overlay-text="text0,text=\"Qualcomm\ Intelligence\", color=(uint)0xFFFF00FF, dest-rect=<160,624, 944, 50>;" ! queue ! qtic2venc ! queue ! h264parse ! mp4mux ! queue ! filesink location=/data/output/mux.mp4
    
  2. 该qtiqmmfsrc元件用于生成一个 1080p 分辨率的 YUV 流。

  3. YUV 流由插件接收qtioverlay,该插件将作为覆盖文本属性值给出的用户文本应用到流上。

  4. 然后,带有叠加层的 YUV 流由插件进行处理h264parse和编码。qtic2venc

  5. 该mp4mux插件将编码流打包在 MP4 容器中。

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

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

    adb pull /data/mux.mp4
    

4.10 叠加:带有静态图像和圆形隐私遮罩的 1080p 视频预览

要在 1080p 实时视频预览上应用带有隐私遮罩叠加的静态图像叠加,请运行以下命令:
  • 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 ! qtioverlay overlay-simg="image0,image=\"/data/overlay_test_464_109.rgba\", resolution=<464, 109>, dest-rect=<1300, 800, 464, 109>;" overlay-mask="mask0, circle=<960, 540,400>, dest-rect=<0, 0, 1920, 1080>, color=0x202020FF" ! waylandsink x=0 y=0 width=1920 height=1080 sync=false
    
  • 嵌入式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 ! qtioverlay overlay-simg="image0,image=\"/data/overlay_test_464_109.rgba\", resolution=<464, 109>, dest-rect=<1300, 800, 464, 109>;" overlay-mask="mask0, circle=<960, 540,400>, dest-rect=<0, 0, 1920, 1080>, color=0x202020FF" ! waylandsink x=0 y=0 width=1920 height=1080 sync=false
    
  1. 该qtiqmmfsrc元件用于生成一个 1080p 分辨率的 YUV 流。
  2. 插件接收 YUV 流qtioverlay,该插件应用隐私遮罩,这意味着只有圆圈中指定的区域被指定的颜色遮盖,并且还将静态图像放置在指定位置。
  3. 然后,插件qtioverlay将带有覆盖层的帧传递给waylandsink元素以在显示器上渲染。
  4. 要停止用例,请按CTRL + C。

4.11 叠加:1080p 视频预览,带有反圆形隐私遮罩

要在 1080p 实时视频预览上应用反向隐私遮罩叠加,请运行以下命令:

  • 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 ! qtioverlay overlay-mask="mask0,circle=<960,540, 540>, inverse=true, dest-rect=<0, 0, 1920, 1080>,color=0x202020FF" ! waylandsink x=0 y=0 width=1920 height=1080 sync=false
    
  • Linix 嵌入式:

    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 ! qtioverlay overlay-mask="mask0,circle=<960,540, 540>, inverse=true, dest-rect=<0, 0, 1920, 1080>,color=0x202020FF" ! waylandsink x=0 y=0 width=1920 height=1080 sync=false
    
  1. 该qtiqmmfsrc元件用于生成一个 1080p 分辨率的 YUV 流。
  2. YUV 流由qtioverlay插件接收,该插件应用反向隐私遮罩。因此,只有圆圈中指定的区域是可见的,而该区域的其余部分则被指定的颜色遮盖,然后将其传递给元素waylandsink以在显示上渲染。
  3. 要停止用例,请按CTRL + C。

4.12 叠加:带日期和时间的 1080p 视频预览

要在 1080p 实时视频预览上应用日期和时间叠加,请运行以下命令。

  • 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 ! qtioverlay overlay-date="date0,date-format=\"10122023\", time-format=\"101010_24HR\",color=(uint)0xFF00FFFF, dest-rect=<0, 0, 256, 80>;" ! waylandsink x=0 y=0 width=1920 height=1080 sync=false
    
  • 嵌入式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 ! qtioverlay overlay-date="date0,date-format=\"10122023\", time-format=\"101010_24HR\",color=(uint)0xFF00FFFF, dest-rect=<0, 0, 256, 80>;" ! waylandsink x=0 y=0 width=1920 height=1080 sync=false
    
  1. 该qtiqmmfsrc元件用于生成一个 1080p 分辨率的 YUV 流。
  2. 插件接收 YUV 流qtioverlay,该插件将作为 override-date 属性值给出的日期和时间应用到流上,然后将其传递到元素waylandsink以在显示上渲染。
  3. 要停止用例,请按CTRL + C。

4.13 叠加:带有用户文本的 1080p 视频预览

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

  1. 要在 1080p 实时视频预览上应用用户文本叠加,请运行以下命令:

    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 ! qtioverlay overlay-text="text0,text=\"Qualcomm\ Intelligence\", color=(uint)0xFFFF00FF, dest-rect=<160,624, 944, 50>;" ! waylandsink x=0 y=0 width=1920 height=1080 sync=false
    
  2. 该qtiqmmfsrc元素用于生成 1080p 分辨率的 YUV 流。

  3. 该qtioverlay插件接收 YUV 流,将作为覆盖文本属性值给出的用户文本应用到流上,并将其传递到元素waylandsink以在显示上呈现。

  4. 要停止用例,请按 CTRL + C。

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

余额充值