首页 › 具身智能 › 03-机器人硬件、lerobot及地瓜RDK-X5开发板控制教程 › 01RDKX5超新手入门教程

01RDKX5超新手入门教程

RDK X5超新手入门教程 :从系统烧录到 YOLO 物体识别​

目录​

•

RDK X5超新手入门教程 :从系统烧录到 YOLO 物体识别​

◦

目录​

◦

如何购买​

◦

RDK X5 规格参数​

◦

系统烧录​

▪

烧录准备​

•

供电​

•

存储​

•

显示​

•

网络连接​

•

系统烧录​

▪

镜像下载​

▪

系统烧录​

▪

启动系统​

▪

常见问题​

◦

YOLO算法测试​

▪

运行方法​

◦

摄像头应用​

▪

摄像头图像本地保存​

•

环境准备​

•

运行方式​

•

预期效果​

◦

ROS 应用​

▪

功能介绍​

▪

实现步骤​

◦

结语​

如何购买​

第一步就是 买板子 啦!大家可以去到 RDK官网 进行购买。​

收到的板子会带一个盒子,非常美观:​

​

飞书文档 - 图片

​

RDK X5 规格参数​

​

​
元器件​
​
​
参数​
​
​
CPU​
​
​
8x A55 @ 1.5GHz​
​
​
RAM​
​
​
4GB / 8GB LPDDR4​
​
​
BPU​
​
​
10 TOPS​
​
​
GPU​
​
​
32 GFlops​
​
​
储存​
​
​
使用外部Micro SD卡作为存储(自行购买)​
​
​
多媒体​
​
​
H.265 (HEVC) Main Profile @ L5.1, H.264 (AVC) Baseline/Constrained Baseline/Main/High Profiles @ L5.2 with SVC-T encoding, H.265/H.264 encoding and decoding up to 3840x2160@60fps​
​

​

RDK X5 提供了网口、USB、摄像头、LCD、HDMI、CANFD、40PIN等功能接口,方便用户进行图像多媒体、深度学习算法等应用的开发和测试。开发板接口布局如下:​

​

​

​

​
序号​
​
​
功能​
​
​
序号​
​
​
功能​
​
​
序号​
​
​
功能​
​
​
1​
​
​
供电接口 (USB Type-C)​
​
​
2​
​
​
RTC 电池接口​
​
​
3​
​
​
易连接口 (USB Type-C)​
​
​
4​
​
​
调试串口(Micro USB)​
​
​
5​
​
​
2 路 MIPI Camera 接口​
​
​
6​
​
​
千兆以太网口,支持 POE​
​
​
7​
​
​
4 路 USB 3.0 Type A 接口​
​
​
8​
​
​
CAN FD 高速接口​
​
​
9​
​
​
40PIN 接口​
​
​
10​
​
​
HDMI 显示接口​
​
​
11​
​
​
多标准兼容耳机接口​
​
​
12​
​
​
板载 Wi-Fi 天线​
​
​
13​
​
​
TF卡接口(底面)​
​
​
14​
​
​
LCD 显示接口(MIPI DSI)​
​
​
​
​
​
​
​

​

机械尺寸:​

​

​

系统烧录​

烧录准备​

供电​

RDK X5开发板通过 USB Type-C 接口供电,需要使用支持 5V/3A 的电源适配器为开发板供电。​

[!NOTE]​

请不要使用电脑USB接口为开发板供电,否则会因供电不足造成开发板异常断电、反复重启等异常情况。​

存储​

RDK X5开发板采用 Micro SD 存储卡作为系统启动介质,推荐至少 8GB 容量的存储卡,以便满足 Ubuntu 系统、应用功能软件对存储空间的需求。​

[!IMPORTANT]​

SD 卡选择的型号,参考 1元/1G 的价格去买,我买过便宜的会导致系统启动失败!​

显示​

RDK X5开发板支持HDMI显示接口,通过HDMI线缆连接开发板和显示器,支持图形化桌面显示。​

网络连接​

RDK X5开发板支持以太网、Wi-Fi 两种网络接口,用户可通过任意接口实现网络连接功能。​

系统烧录​

RDK套件目前提供 Ubuntu 22.04 系统镜像,可支持 Desktop 桌面图形化交互。​

[!NOTE]​

RDK X5 Module出厂已经烧写测试版本系统镜像,为确保使用最新版本的系统,建议参考本文档完成最新版本系统镜像的烧写。​

镜像下载​

点击 下载镜像,进入版本选择页面,选择对应版本目录,进入3.1.0版本系统下载页。​

下载完成后,解压出Ubuntu系统镜像文件,如 rdk-x5-ubuntu22-preinstalled-desktop-3.1.0-arm64.img​

[!TIP]​

•

desktop :带有桌面的Ubuntu系统,可以外接屏幕、鼠标操作​

•

server :无桌面的Ubuntu系统,可以通过串口、网络远程连接操作​

系统烧录​

在烧录Ubuntu系统镜像前,需要做如下准备:​

•

准备至少 8GB 容量的 Micro SD 卡​

•

SD 读卡器​

•

下载镜像烧录工具balenaEtcher,balenaEtcher 是一款支持 Windows/Mac/Linux 等多平台的 PC 端启动盘制作工具。使用轻量版镜像烧录工具 Rufus 也是可以的。​

制作SD启动卡流程如下:​

打开 balenaEtcher 工具,点击Flash from file按钮,选择解压出来的 rdk-x5-ubuntu22-preinstalled-desktop-3.1.0-arm64.img 文件作为烧录镜像​

​

​

点击Select target按钮,选择对应的 Micro SD 存储卡作为目标存储设备​

​

​

点击 现在烧录 按钮开始烧录​

​

​

等待 烧录 & 验证 完成​

​

​

​

​

​

待工具提示 烧录成功 时,表示镜像烧录完成,可以关闭 balenaEtcher 并取出存储卡​

​

​

启动系统​

首先保持开发板断电,然后将制作好的存储卡插入开发板的 Micro SD 卡槽,并通过 HDMI 线缆连接开发板与显示器,最后给开发板上电。​

系统首次启动时会进行默认环境配置,整个过程持续45秒左右,配置结束后会在显示器输出 Ubuntu 系统桌面,如下图:​

​

​

[!TIP]​

开发板指示灯说明​

绿色 指示灯:点亮代表硬件上电正常​

如果开发板上电后长时间没有显示输出(2分钟以上),说明开发板启动异常。需要通过串口线进行调试,查看开发板是否正常。​

如果没有接入显示器同学,可以看下 绿色电源灯 的 附近 是否有 橙色灯 亮起,如果亮起则表明系统起来了,可以开始玩耍了!​

常见问题​

首次使用开发板时的常见问题如下:​

•

上电不开机 :请确保使用供电中推荐的适配器供电;请确保开发板的Micro SD卡已经烧录过Ubuntu系统镜像​

•

使用中热插拔存储卡 :开发板不支持热插拔Micro SD存储卡,如发生误操作请重启开发板​

[!WARNING]​

注意事项​

•

禁止带电时拔插除 USB、HDMI、网线之外的任何设备​

•

RDK X5 的 Type-C USB 接口仅用作供电​

•

选用正规品牌的 USB Type-C 口供电线,否则会出现供电异常,导致系统异常断电的问题​

YOLO算法测试​

本示例主要实现以下功能:​

加载 yolov5s_672x672_nv12 目标检测模型​

读取 kite.jpg 静态图片作为模型的输入​

分析算法结果,渲染检测结果​

运行方法​

本示例的完整代码和测试数据安装在 /app/pydev_demo/07_yolov5_sample/ 目录下,调用以下命令运行​

​

代码块​

Shell

cd /app/pydev_demo/07_yolov5_sample/​

sudo python3 ./test_yolov5.py​

​

运行成功后,会输出目标检测结果,​

​

代码块​

Bash

bbox: [593.949768, 80.819038, 672.215027, 147.131607], score: 0.856997, id: 33, name: kite​

bbox: [215.716019, 696.537476, 273.653442, 855.298706], score: 0.852251, id: 0, name: person​

bbox: [278.934448, 236.631256, 305.838867, 281.294922], score: 0.834647, id: 33, name: kite​

bbox: [115.184196, 615.987, 167.202667, 761.042542], score: 0.781627, id: 0, name: person​

bbox: [577.261719, 346.008453, 601.795349, 370.308624], score: 0.705358, id: 33, name: kite​

bbox: [1083.22998, 394.714569, 1102.146729, 422.34787], score: 0.673642, id: 33, name: kite​

bbox: [80.515938, 511.157104, 107.181572, 564.28363], score: 0.662, id: 0, name: person​

bbox: [175.470078, 541.949219, 194.192871, 572.981812], score: 0.623189, id: 0, name: person​

bbox: [518.504333, 508.224396, 533.452759, 531.92926], score: 0.597822, id: 0, name: person​

​

并且输出渲染结果到 output_image.jpg 文件中,如下图:​

​

​

摄像头应用​

摄像头图像本地保存​

本示例 vio_capture 示例实现了 MIPI 摄像头图像采集,并将 RAW 和 YUV 两种格式的图像本地保存的功能。示例流程框图如下:​

​

​

环境准备​

•

开发板断电状态下,将 MIPI 摄像头接入开发板​

•

通过 HDMI 线缆连接开发板和显示器​

•

开发板上电,并通过命令行登录​

运行方式​

示例代码以源码形式提供,需要使用 make 命令进行编译后运行,步骤如下:​

​

代码块​

Bash

sunrise@ubuntu:~$ cd /app/cdev_demo/vio_capture/​

sunrise@ubuntu:/app/cdev_demo/vio_capture$ sudo make​

sunrise@ubuntu:/app/cdev_demo/vio_capture$ sudo ./capture -b 16 -c 10 -h 1080 -w 1920​

​

参数说明:​

•

-b: RAW 图 bit 数,IMX219 / IMX477 / OV5647 都设置为 16,只有极少数 Camera Sensor 需要设置为 8​

•

-c: 保存图像的数量​

•

-w: 保存图像的宽度​

•

-h: 保存图像的高度​

预期效果​

程序正确运行后,当前目录保存指定数量的图片文件,RAW 格式以 raw_*.raw 方式命名,YUV 格式以 yuv_*.yuv 方式命名。运行log如下:​

​

代码块​

Bash

sunrise@ubuntu:/app/cdev_demo/vio_capture$ sudo ./capture -b 16 -c 10 -h 1080 -w 1920​

Camera 0:​

i2c_bus: 6​

mipi_host: 0​

Camera 1:​

​

保存的文件:​

​

代码块​

Bash

-rw-r--r-- 1 root video 4147200 Dec 14 12:38 raw_0.raw​

-rw-r--r-- 1 root video 4147200 Dec 14 12:38 raw_1.raw​

-rw-r--r-- 1 root video 4147200 Dec 14 12:38 raw_2.raw​

-rw-r--r-- 1 root video 4147200 Dec 14 12:38 raw_3.raw​

-rw-r--r-- 1 root video 4147200 Dec 14 12:38 raw_4.raw​

-rw-r--r-- 1 root video 4147200 Dec 14 12:38 raw_5.raw​

-rw-r--r-- 1 root video 4147200 Dec 14 12:38 raw_6.raw​

-rw-r--r-- 1 root video 4147200 Dec 14 12:38 raw_7.raw​

-rw-r--r-- 1 root video 4147200 Dec 14 12:38 raw_8.raw​

-rw-r--r-- 1 root video 4147200 Dec 14 12:38 raw_9.raw​

​

ROS 应用​

功能介绍​

本示例使用 YOLOv8 目标检测算法,实现订阅 MIPI 摄像头发布的图片,经过算法推理后发布算法 msg,通过 websocket package 实现在 PC 端浏览器上渲染显示发布的图片和对应的算法结果。​

模型使用COCO数据集进行训练,支持的目标检测类型包括人、动物、水果、交通工具等共 80 种类型。​

代码仓库:https://github.com/D-Robotics/hobot_dnn​

实现步骤​

​

代码块​

Bash

# 配置tros.b环境​

source /opt/tros/humble/setup.bash​

​

# 配置MIPI摄像头​

export CAM_TYPE=mipi​

​

# 启动launch文件​

ros2 launch dnn_node_example dnn_node_example.launch.py dnn_example_config_file:=config/yolov8workconfig.json dnn_example_image_width:=640 dnn_example_image_height:=640​

​

终端会输出如下 Log :​

​

代码块​

Bash

[example-3] model_name: ​

[example-3] [WARN] [1734150496.829080954] [dnn_example_node]: model_file_name_: /opt/hobot/model/x5/basic/yolov8_640x640_nv12.bin, task_num: 4​

[example-3] [BPU_PLAT]BPU Platform Version(1.3.6)!​

​

输出 log 显示,发布算法推理结果的 topic 为 hobot_dnn_detection,订阅图片的 topic 为 /hbmem_img。​

在 PC 端的浏览器输入 http://IP:8000/TogetheROS/ 即可查看图像和算法渲染效果(IP为RDK的IP地址)​

结语​

以上就是本教程的全部内容啦,欢迎各位继续探索😁​