高通机器人 RB5 开发套件上手与 AI 部署指南
一、核心 AI 开发工作流
高通机器人 RB5 的 AI 开发遵循模型训练 - 集成 - 部署的标准化流程,适配不同角色开发者的工作环节,核心依托高通神经处理 SDK for AI实现模型优化与端侧部署,整体流程如下:
- 模型训练:在开发工作站完成离线训练,生成包含静态权重、学习偏差的 AI 模型,支持主流机器学习框架;
- 模型集成:基于高通神经处理 SDK for AI 对训练模型进行优化,生成端侧可运行的优化版 AI 模型;
高通机器人 RB5 开发套件提供 AI 工作流、嵌入式 Linux 环境配置及 ROS2 生态支持。通过 SDK 完成模型训练集成与端侧部署,涵盖 HDMI 显示、Wi-Fi 网络初始化、智能多媒体 GStreamer 应用及 TurtleBot3/mBot 机器人适配。教程包含终端命令操作、驱动安装及常见问题排查,帮助开发者快速搭建开发环境并实现 AI 推理与运动控制。
高通机器人 RB5 的 AI 开发遵循模型训练 - 集成 - 部署的标准化流程,适配不同角色开发者的工作环节,核心依托高通神经处理 SDK for AI实现模型优化与端侧部署,整体流程如下:
适配角色:数据科学家(模型训练)、ML 推理工程师(模型优化)、应用开发者(应用集成)、DevOps 工程师(部署运维)。
ReadMe 文件、官方开发者网络的快速入门指南和软件参考指南,查询工具及配件专属文档。高通机器人 RB5 平台提供多版本 Linux 内核支持,适配不同开发需求,核心环境及获取方式如下,均支持板上编译和离线跨平台编译(配套 SDK 工具链):
| 内核版本 | 构建系统 | 获取渠道 | 根文件系统 |
|---|---|---|---|
| 5.x | Yocto | SDK Manager | Ubuntu 系 |
| 4.x | Yocto | SDK Manager | 定制化 |
| 6.x(上游) | Debian/Open Embedded | Linaro | 开源社区版 |
| 通用支持 | - | SDK Manager | APT 包管理器(便捷安装依赖) |
板卡初始化核心完成HDMI 显示和Wi-Fi 网络配置,是后续开发的基础,操作均通过板卡终端执行,默认登录账号:用户名 root,密码 oelinux123。
启动 Weston 桌面服务,依次执行以下命令:
mkdir -p /usr/bin/weston_socket
chmod 700 /usr/bin/weston_socket
export XDG_RUNTIME_DIR=/usr/bin/weston_socket
export LD_LIBRARY_PATH=/usr/lib:/usr/lib/aarch64-linux-gnu/
weston --tty=1 --connector=29 --backend=drm-backend.so
reboot 命令;设备重启后重新登录,再次启动 HDMI 服务,执行以下命令测试网络连通性:
ping www.qualcomm.com
出现连续回包即为网络配置成功。
在文件中写入目标 Wi-Fi 信息(替换<>内内容):
network={ ssid="<你的 Wi-Fi 名称>" proto=WPA2 key_mgmt=WPA-PSK pairwise=TKIP CCMP group=TKIP CCMP psk="<你的 Wi-Fi 密码>" }
编辑 Wi-Fi 配置文件 wpa_supplicant.conf,修改网络信息:
vi /data/misc/wifi/wpa_supplicant.conf
高通 RB5 搭载智能多媒体 SDK,深度集成 GStreamer 框架,支持音视频采集、编解码、AI 推理融合,核心实现相机采集、视频编解码、端侧 AI 目标检测等功能,以下为核心示例应用的实操步骤。
基于 QMMF Server、Camera HAL3、CamX 等核心组件,实现音视频采集 - 编解码-AI 处理 - 显示全链路,支持 H264/YUV 编码、硬件加速解码、GStreamer 插件化开发,兼容 ROS2 生态数据交互。
所有示例应用均在终端执行,完成后可关闭终端窗口,核心命令如下:
# 进入相机示例目录
cd /home/sample-apps-for-Qualcomm-Robotics-RB5-platform/Gstreamer-Applications/gst_camera
# 编译并运行
make ./ispcam_display 0
# 按 Ctrl+c 停止程序
# 进入 AI 示例目录
cd /home/sample-apps-for-Qualcomm-Robotics-RB5-platform/Gstreamer-Applications/gst_tflite
# 安装依赖并编译运行
sh install.sh
cd src
make ./tflite_object_detection
# 按 Ctrl+c 停止程序
高通 RB5 深度兼容ROS2(Foxy 版本) 机器人操作系统,支持传感器数据采集、机器人运动控制、多节点通信,适配 TurtleBot3、mBot 等开源机器人平台,核心包含ROS2 安装、基础测试、硬件适配、运动控制四大环节。
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
# 安装依赖工具
sudo apt install software-properties-common
sudo add-apt-repository universe
# 下载并添加 ROS GPG 密钥
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
# 添加 ROS2 源到系统列表
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" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update && sudo apt upgrade
# 安装桌面版 ROS2 及补全工具
sudo apt install ros-foxy-desktop python3-argcomplete
# 将环境变量写入 bashrc
echo 'source /opt/ros/foxy/setup.bash' >> ~/.bashrc
echo 'export ROS_DOMAIN_ID=30' >> ~/.bashrc
mkdir ~/my_ros_logs
echo 'export ROS_HOME=~/my_ros_logs' >> ~/.bashrc
# 生效环境变量
source ~/.bashrc
打开两个终端窗口,分别执行以下命令,实现节点间消息发布与接收:
终端 2(订阅者):
source ~/.bashrc
ros2 run demo_nodes_py listener
终端 2 可看到终端 1 发布的消息,按 Ctrl+c 停止程序。
终端 1(发布者):
source ~/.bashrc
ros2 run demo_nodes_cpp talker
实现 RB5 板卡 IMU 传感器数据的实时读取,打开两个终端窗口:
终端 2(查看 IMU 数据):
ros2 topic echo /imu
晃动/移动开发板,终端 2 可看到 IMU 数据实时变化,按 Ctrl+c 停止程序。
终端 1(启动 IMU 节点):
ros2 run imu-ros2node imu-ros2node
RB5 提供 3 种终端访问方式,适配不同开发场景:
TurtleBot3 是开源 ROS 移动机器人,适配 RB5 的激光雷达、电机控制、视觉模块,核心分为软件配置和运动控制两步。
# 安装基础依赖
apt install python3-argcomplete python3-colcon-common-extensions libboost-system-dev build-essential
# 创建工作空间并拉取源码
mkdir -p ~/turtlebot3_ws/src && cd ~/turtlebot3_ws/src
git clone -b foxy-devel https://github.com/ROBOTIS-GIT/DynamixelSDK.git
git clone -b foxy-devel https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone -b foxy-devel https://github.com/ROBOTIS-GIT/turtlebot3.git
git clone -b foxy-devel https://github.com/ROBOTIS-GIT/lds08_driver.git
# 编译并配置环境变量
colcon build --symlink-install
echo 'export TURTLEBOT3_MODEL=burger' >> ~/.bashrc
echo 'export LDS_MODEL=LDS-02' >> ~/.bashrc
echo 'source ~/turtlebot3_ws/install/setup.bash' >> ~/.bashrc
source ~/.bashrc
# 创建目录并下载固件
mkdir /home/opencrbin && cd /home/opencrbin
wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/Ros2/latest/opencr_update.tar.bz2
tar xvf ./opencr_update.tar.bz2
# 配置环境变量并更新固件
export OPENCR_PORT=/dev/ttyACM0
export OPENCR_MODEL=burger
dpkg --add-architecture armhf
apt-get update && apt-get install libc6:armhf
cd /home/opencrbin/opencr_update
./update.sh $OPENCR_PORT$OPENCR_MODEL.opencr
固件更新完成后,按住 OpenCR 板的 PUSH SW 1 按钮几秒,机器人将前进约 30 厘米,验证硬件组装正常。
打开两个终端窗口,实现机器人旋转、移动控制:
终端 2(发布运动指令):
source ~/.bashrc
# 左转
ros2 topic pub --once /cmd_vel geometry_msgs/msg/Twist '{linear: {x:0.0,y:0.0,z:0.0}, angular: {x:0.0,y:0.0,z:0.3}}'
# 右转
ros2 topic pub --once /cmd_vel geometry_msgs/msg/Twist '{linear: {x:0.0,y:0.0,z:0.0}, angular: {x:0.0,y:0.0,z:-0.3}}'
终端 1(启动机器人节点):
source ~/.bashrc
ros2 launch turtlebot3_bringup robot.launch.py
# 等待终端出现'Run!'即为启动成功
mBot 是轻量级开源 ROS 机器人,适配 RB5 的 USB 拓展、手柄控制,核心包含上位机配置、固件烧录、硬件组装、驱动安装、手柄控制五大环节。
Sketch→Include Library→Add .ZIP library 导入库文件。Tools→Board→Arduino AVR Boards→Arduino Mega or Mega 2560;Tools→Port→[连接设备的串口号];File→Examples→MakeBlockDrive→Firmware_for_MegaPi;需在 RB5 上编译并安装游戏手柄驱动(joydev) 和串口驱动(ch341),以下为通用步骤(以内核 4.x 为例):
# 查看内核版本,记下车号用于后续下载
uname -r
# 下载对应版本内核源码
wget https://cdn.kernel.org/pub/linux/kernel/4.x/linux-<内核版本>.tar.gz
tar xvzf linux-<内核版本>.tar.gz
# 创建驱动目录并拷贝源码
mkdir joydev
cp -r linux-<内核版本>/drivers/input/* joydev/ && cd joydev/
修改 Makefile,追加以下内容:
KVERS=$(shell uname -r)
obj-m:=joydev.o
EXTRA_CFLAGS=-g -O0 -Wno-vla -Wframe-larger-than-4496
build:
kernel modules
kernel modules:
make -C /usr/src/header M=$(CURDIR) modules
clean:
make -C /usr/src/header M=$(CURDIR) clean
继续执行编译与加载:
# 编译并临时加载
make insmod joydev.ko
# 创建自动加载脚本并执行
vi joydev.sh
脚本内写入以下内容:
#!/bin/bash
KERNEL_VERSION=$(uname -r)
MODINFO=$(modinfo ./joydev/joydev.ko | grep vermagic)
MODULE_VERSION=$(echo $MODINFO | cut -d " " -f2)
if [$KERNEL_VERSION!=$MODULE_VERSION]
then
echo "Versions incompatible"
echo ".ko file compiled with" $MODULE_VERSION
echo "System kernel is" $KERNEL_VERSION
else
mkdir -p /lib/modules/$(uname -r)/kernel/drivers/input/
cp ./joydev/joydev.ko /lib/modules/$(uname -r)/kernel/drivers/input/
depmod -a
fi
echo "JOYDEV loaded"
执行脚本完成永久加载:
bash joydev.sh
步骤与 joydev 一致,仅替换目录和文件名,核心差异命令:
# 拷贝 ch341 源码
mkdir ch341
cp -r linux-<内核版本>/drivers/input/* ch341/ && cd ch341/
# 编译后拷贝至串口驱动目录
mkdir -p /lib/modules/$(uname -r)/kernel/drivers/usb/serial/
cp ./ch341/ch341.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/
其余 Makefile 修改、脚本创建、执行步骤与 joydev 完全一致,脚本命名为 ch341.sh 即可。
打开两个终端窗口,验证手柄数据是否正常传输:
终端 2(查看手柄数据):
ros2 topic echo /joy
按压手柄按键/推动摇杆,终端 2 数据实时变化即为测试成功。
终端 1(启动手柄节点):
ros2 run joy joy_node
# 安装依赖
pip3 install megapi
source /opt/ros/dashing/setup.bash
# 创建工作空间并拉取控制源码
mkdir -p rb5_ws/src && cd rb5_ws/src
git clone https://github.com/AutonomousVehicleLaboratory/rb5_ros2.git
# 编辑控制脚本(按需调整参数)
edit the file rb5_ros2/rb5_ros2_control/scripts/rb5_mpi_control.py
# 编译并运行
cd ..
colcon build --paths src/rb5_ros2/rb5_ros2_control
source install/setup.bash
ros2 run rb5ros2control rb5_mpi_control.py
操作游戏手柄,即可实现 mBot 机器人的运动控制。
LD_LIBRARY_PATH 路径无拼写错误;wpa_supplicant.conf 内的 Wi-Fi 信息(无空格、引号正确),确保板卡与路由器在同一网段;source ~/.bashrc),确认 ROS2 版本为 Foxy,与源码分支匹配;uname -r 输出与下载的内核源码版本完全匹配;lsmod 查看驱动模块)。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online