Qualcomm 机器人 RB5 开发套件用户指南(6)
4.7 设置视频
视频编码
要使用 qtic2venc 对视频进行编码,请在 RB5 开发套件上执行以下操作:
H.264视频编码
- 运行以下命令:
gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw\(memory:GBM\),format=NV12,width=3840,height=2160,framerate=30/1 ! qtic2venc ! queue ! h264parse ! mp4mux ! queue ! filesink location="/data/mux4K.mp4"
- /data/mux4K.mp4从设备下载 文件并使用视频播放器打开它。视频按预期播放。
H.265视频编码
- 运行以下命令:
gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw\(memory:GBM\),format=NV12,width=3840,height=2160,framerate=30/1 ! qtic2venc ! queue ! h265parse ! mp4mux ! queue ! filesink location="/data/mux4K.mp4
- /data/mux4K.mp4从设备下载 文件并使用视频播放器打开它。视频按预期播放。
视频解码
要使用 qtic2vdec 解码视频,请在 RB5 开发套件上执行以下操作:
H.264视频解码
-
将视频3840_2160_H264_30fps.mp4文件推送到设备。
-
运行以下命令:
export XDG_RUNTIME_DIR=/run/user/root && gst-launch-1.0 filesrc location=/data/mux4K.mp4 ! qtdemux ! queue ! h264parse ! qtic2vdec ! queue ! waylandsink sync=true fullscreen=true
H.265视频解码
-
将视频3840_2160_H265_30fps.mp4文件推送到设备。
-
运行以下命令:
export XDG_RUNTIME_DIR=/run/user/root && gst-launch-1.0 filesrc location=/data/mux4K.mp4 ! qtdemux ! queue ! h265parse ! qtic2vdec ! queue ! waylandsink sync=true fullscreen=true
4.8 用于播放的 Wayland 接收器
Wayland接收器用于播放视频、预览相机或在本地显示器上预览图像。
笔记
Weston 在设备启动期间自动启动。
显示视频播放
笔记
该export WAYLAND_DISPLAY=wayland-1命令仅适用于Linux嵌入式系统。
要在显示屏上启用视频播放,请在 RB5 开发套件上运行以下命令:
export XDG_RUNTIME_DIR=/run/user/root && gst-launch-1.0 filesrc location=/data/7680_4320_30fps.mp4 ! qtdemux ! queue ! h264parse ! qtic2vdec ! video/x-raw\(memory:GBM\),compression=ubwc ! queue ! waylandsink x=100 y=100 width=960 height=540
显示相机预览
要在显示屏上启用相机预览,请在 RB5 开发套件上运行以下命令:
export XDG_RUNTIME_DIR=/run/user/root && gst-launch-1.0 qtiqmmfsrc name=qmmf ! video/x-raw\(memory:GBM\), format=NV12, width=1920, height=1080, framerate=30/1, camera=0 ! waylandsink fullscreen=true async=true sync=false
显示图像预览
要启用显示图像预览,请在 RB5 开发套件上运行以下命令:
export XDG_RUNTIME_DIR=/run/user/root && gst-launch-1.0 multifilesrc location=/data/output/snapshot9982.jpg ! jpegdec ! videoconvert ! videorate ! waylandsink x=960 y=0 width=960 height=540
4.9 设置传感器
惯性测量单元 (IMU) 传感器位于 RB5 平台主板上。要设置传感器,请执行以下操作:
- 将视觉夹层板上的压力传感器安装在空闲插槽之一中。
- 确保 DIP 开关设置正确,以根据所使用的板启用传感器。有关所用主板的更多信息,请参阅QRB5165 RB5 硬件参考平台用户指南(80-PV086-600)。
- 使用驱动程序验收测试 ( ssc_drva_test) 来验证加速度、陀螺仪和压力传感器流。这ssc_drva_test是构建的一部分。
- 驱动程序验收测试命令示例:
ssc_drva_test -sensor=accel -duration=5 -sample_rate=50
此示例在流模式下以 50 Hz 采样率启用加速计传感器 5 秒。该参数的值 -sensor是要启用的传感器类型。例如,accel对于加速度计、 gyro陀螺仪和pressure压力/气压计。
- 测试示例的输出显示:
- 接收到的物理配置采样率为 50 Hz
- 测试期间共收到243个加速度样本
- 驱动程序验收测试命令示例:
5 开发应用程序
开发应用程序可以使用以下两种方法:
- 使用 Qualcomm Robotics RB5 Platform shell 终端编写、编译和运行代码。
- 使用交叉编译器。将最终输出复制到 Qualcomm Robotics RB5 平台。
5.1 安装ROS2
Linux Ubuntu
当前基于 Ubuntu 的 QRB5165 平台已针对 ROS2/Foxy 进行了验证。由于 Foxy 版本不是默认存储库的一部分,因此在安装 ROS2 之前,您必须运行以下步骤将 ROS2 软件包存储库添加到基于 Ubuntu 的焦点源列表中。
先决条件:
- 要使用 ROS2,请安装 ROS2/Foxy 包和 ssh。
- 使用 ssh 将gpgROS2 存储库的密钥更新为 apt.
- 确保设备已连接到有效的互联网连接。有关如何在设备上设置 Wi-Fi 的信息,请参阅设置 Wi-Fi。
要安装 ssh 和 ROS2 并获得在 RB5 开发套件上运行的基本 ROS2 应用程序,请执行以下操作:
-
安装 ssh。
adb root
adb remount
adb shell
apt update
apt upgrade
apt install openssh-server
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
/etc/init.d/ssh restart
-
要安装usbutils、git、bc和设置locale,请运行以下命令:
apt install usbutils git bc
apt install libvulkan1=1.2.131.2-1
apt update && apt install locales
locale
locale-gen en_US en_US.UTF-8
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
locale
-
要确保启用基于 Ubuntu 的 Universe 存储库,请运行以下命令:
apt install software-properties-common
add-apt-repository universe
-
要添加 ROS2gpg密钥apt,请运行以下命令:
apt update && apt install curl -y
curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
-
要将存储库添加到源列表,请运行以下命令:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | tee /etc/apt/sources.list.d/ros2.list > /dev/null
-
要安装 ROS2 软件包,请运行以下命令:
apt update
笔记
如果命令失败,请使用以下命令:apt update --fix-missing
apt upgrade
apt install ros-foxy-desktop
笔记
如果 ROS2 命令不可见,请再次运行该命令。 -
验证 ROS2 发布/订阅机制是否正常工作。
a. 在终端上,使用以下命令测试发布机制:adb shell
export ROS_HOME="/tmp/ros"
source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_cpp talker
b. 在另一个终端上,使用以下命令测试订阅机制:
adb shell
export ROS_HOME="/tmp/ros"
source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_py listener
嵌入式Linux
Linux嵌入式系统内置ROS2。
要验证 ROS2,请执行以下操作:
-
打开一个新终端并运行以下命令:
source /usr/bin/ros_setup.sh
export HOME=/data
ros2 run demo_nodes_cpp talker
-
打开另一个终端并运行以下命令:
source /usr/bin/ros_setup.sh
export HOME=/data
ros2 run demo_nodes_cpp listener