2026 / 07 / 22
基于RA MCU + Reality AI识别动作姿态全流程开发

本实验将为您介绍如何在e2 studio中使用Reality AI相关组件来进行AI开发,主要涉及如何使用Reality AI Data shipper/collector,Reality AI Data Storage Tool等工具来采集,存储数据文件,同时将数据文件上传到Reality AI portal中进行模型训练与生成,代码部署与调试。


本实验基于3轴加速度传感器的X,Y,Z,3轴加速度在不同动作下的变化,使用Reality AI tools训练并生成模型,来识别不同的动作。开发流程简单,快捷易用。

实验目标

掌握Reality AI Data shipper/collector的基本使用方法

  • 掌握Reality AI Data Storage Tool的基本使用方法


实验材料

Windows10/11 PC

  • FPB-RA6E2开发板及其配件

  • ICM-42670-P模块

  • FSP 5.4.0

  • e2 studio 2024-04及以上

  • Reality AI Tools账号


技能要求

熟悉Renesas e2 studio操作

  • 了解RA MCU的外围接口


安装和准备

本节要点

本节学习如何搭建实验以及如何将套件连接至电脑端。


步骤

1.1

首先确保已安装所有实验工具。

e2stduio 2024-04及以上版本:https://github.com/renesas/fsp/releases/download/v5.4.0/setup_fsp_v5_4_0_e2s_v2024-04.exe

JLink RTT-Viewer V7.96g及以上版本:https://www.segger.com/downloads/jlink/


1.2

本实验将用到如下组件:

  • Micro USB数据线1根

  • FPB-RA6E2 1块

  • ICM-42670-P模块1块

  • PMOD bridge板1块


1.3

请按以下步骤操作:

  • 将ICM-42670-P模块和PMOD bridge板,按照下图安装(注意安装方向)。再与FPB-RA6E2的左下PMOD1端口连接。


用Micro USB线,一端接入FPB-RA6E2板Micro USB端口,另一端接入PC USB接口。

  • 右上黄色Debug LED和右上绿色Power LED会常亮。如果是处于代码调试过程中,黄色Debug LED会处于闪烁状态。


1.4

打开PC设备管理器,在端口(COM和LPT)中会显示“Jlink CDC UART Port(COMxx)”,表示PC已经识别到FPB-RA6E2板上的JLink CDC UART。在通用总线设备中会显示“BULK interface”(这个不是必要的,有些版本的windows不会显示这个信息)。

注意:中文版本的Windows显示信息会略有不同,会显示通信端口(COMxx)或者串行端口(COMxx)。


1.5

使用已经申请到的Reality AI Tools账号登录Reality AI Tools网站(您可点击下方链接查看)。账号申请需要联系Renesas代理商或者Renesas销售。

Reality AI Tools网站:https://portal.reality.ai/login




保持浏览器页面如上图所示。


数据采集

本节要点

本节学习e2 studio中Reality AI组件的使用。工程代码请访问以下地址(您可点击下方链接查看)(需登录后下载):

工程代码:https://gitee.com/recn-mcu-ae/fpbra6e2amrtraining

步骤

2.1


2.2

选择General->existing Projects into Workspace,运行“Next”。


2.3

导入FPBRA6E2_AMR_training工程文件按照下图所示,然后运行“Next”。


2.4

返回到Reality AI Tools网页界面,创建一个新的项目“Asset Tracking”。


Name填写Asset Tracking。


Description主要是用来描述项目简略情况的,可以不填,或者按照自己的需要填写。


2.5

单击网页右上角的用户名,选择“Api Key”。


2.6

单击下面的“Generate New API Key”后,再单击右侧的Copy按钮复制显示的“API Key”。


2.7

点击e2 studio中的Renesas AI->Reality AI Authentication。


粘贴上一步复制的API Key,并运行“Apply and Close”。

2.8

点击“Test Connection…”,进行连接测试。


如果显示下面界面,表示e2 Studio已经成功连接到Reality AI Tools。


2.9

点击e2 studio中的Renesas AI->Show View->Reality AI Data Storage Tool。


2.10

将项目切换到FPBRA6E2_AMR_training,再点击“Data connection…”。

COM port选择1.4步骤中的Jlink CDC UART Port,波特率选择115200,其他配置参考下图显示。


点击“Connect”。然后再点击“Close”。


2.11


2.12


2.13

如果你遇到下面所示弹出的窗口,勾选“Remember my decision”,并点击“Switch”。


2.14


2.15

点击Reality AI Data Storage Tool视图中的Data file setting…。


这里可以设置

  • 采集的数据文件的格式,支持csv,wav格式文件。

  • 数据的采样率。

  • 采集数据文件的存储地址。地址可以根据自己情况设置。


2.16

点击Reality AI Data Storage Tool视图,可以看到三种实时运行的波形图。

注意:如果波形没有出现或者波形图不动,点击红色框中的File review,再点击Live view。如果还是没有波形图出现,检查上述步骤中的JLink CDC UART是否连接正常。


2.17

在Class name中输入当前的数据标签normal/shake/drop,生成的数据文件会以标签名为前缀名,并加上采集的data collector的ID号和时间戳。

如:drop_id0_20240813222558879.csv,表示该数据文件是drop类别的数据,它是由data collector0在2024年8月13日22点25分58秒879毫秒采集的。


本实验一共需要采集3类数据,normal(正常)、shake(摇晃)、drop(跌落)。每类数据采集1分钟左右即可。

 
注意:尽量做到每类数据采集的时间相同,这样可以确保接下来的训练数据处于平衡的状态。

 


normal是板子处于静止的状态下采集的数据。

  • shake是拿着板子左右摇晃,前后摇晃或者移动板子的状态下采集的数据。

  • drop是拿着板子离桌面10cm左右,自由落体跌落的状态下采集的数据。(建议在泡沫或者软材质垫子上进行,避免板子损坏)。


    点击“Start new capture”,开始进行数据采集。点击“Stop capture”停止采集。


2.18

选择已经采集的数据文件,点击右下角的upload…按钮,上传数据到Reality AI Tools中。


2.19

在弹出的窗口中选择“Asset Tracking”,并输入采样率1600。点击OK,等待数据上传。


数据上传完成后,会有如下提示窗口弹出。同时,文件列表中的Status显示为Uploaded。


2.20


创建模型与部署

本节要点

在第二步采集到的数据基础之上,用Reality AI Tools创建模型。


步骤

3.1

点击Asset Tracking,激活此项目。

点击左侧Data界面,按照如下步骤操作:

点击Curate。

点击数据文件展开按钮。

勾选数据文件。

点击Action。

点击Format Selected。


3.2

在弹出的窗口中,按下述步骤操作:

  1. 点击#1 Data,并下拉到最下面,选择Ignore。(注意:这一步非常重要)。

  2. 输入采样率1600。

  3. 点击Confirm。


3.3

点击Action->Segment List From Selected,进行数据分段。


3.4

按照如下步骤:

  1. Window Length Datapoints选择512。

  2. Offset Datapoints选择50%。

  3. List名称为amr_512_50_percent_overlap。

  4. 点击Submit。

在这里解释一下,滑动窗口的作用:

  1. 避免窗口边缘特征的丢失。

  2. 增加样本的数量。


滑动窗口允许背靠背分段数据之间的重叠。

  • Sample 1和2之间有50%重叠。

  • Sample 2和3之间有50%重叠。


3.5

在e2 studio中的configuration.xml中的stack部分Properties页面中Data Shipper/Data Collector/General/Frame Buffer Length,可以设置MCU采集数据时的滑动窗口大小。

本实验滑动窗口的设置是512。


3.6

当数据分段完成后,点击左侧AI Explore->Classes。


3.7

点击先前创建的amr_512_50_percent_overlap。再点击界面下部的Start exploring。


此时,模型正在生成中。模型生成的过程中,允许退出系统或者进行其他操作。这些操作并不会中断或者影响模型生成。 


3.8

大概等待10~25分钟左右后,模型生成完成,模型生成时长与训练数据大小有关。


如何选择适合自己的模型呢?主要关注Complexity和KFold Accuracy两个指标。


点击Complexity列的三角图标,它显示当前模型的相关参数。


X Operations表示模型运行中的MAC(乘累加)操作数量。

  • RAM表示模型运行中所需RAM的大小。

  • Storage(FLASH/ROM)表示模型运行中所需FLASH的大小。


注意:
上述的RAM和FLASH的数值,是以云端服务器硬件平台为基准显示的,仅供参考。部署到实际项目中的MCU/MPU平台中的RAM和FLASH的数值,可能会与这个不同。


KFold Accuracy表示K折交叉验证的模型精度。交叉验证的基本思想是将原始数据集分成多个部分,一部分当作训练集,另一部分作为验证集。先用训练集对算法模型进行训练,再用验证集测试训练得到的算法模型,反复利用这些部分进行模型的训练和验证。Overall %表示本模型的整体精度,数值越高越好,Worst %表示本模型的最差精度,数值越高越好。


点击图中“Create Base Tool”,来生成嵌入式端的模型。


注意:
Reality AI Tools会生成许多模型,点击右下角的” Show more results” 可以看到被折叠隐藏的更多模型。


3.9

使用默认的名称,或者输入模型名称和描述。点击“Add”。


3.10

现在开始创建嵌入式端侧部署模型,按照如下步骤:

  • 点击Deploy->Embedded。

  • 点击Trained Tool Description list。

  • 点击 +New Package。


3.11

输入DeployName,这个名字就是待会生成的API的前缀。在Inputs中的Data type中选择float32(float)。因为采集的数据是float32类型的。中间的outputs区域,显示了API的输出类型和含义。右侧的Build Options涵盖目标设备类型(目前RA6E2没有在列表清单中,暂时选择RA6E1),FPU类型选择M33 FPU,hard fp abi,Toolchain选择GNU GCC 13.2.1,优化类型选择Speed。


点击Generate New Package,创建模型。


3.12


3.13

生成的模型文件名称为amr.zip,里面一共有9个文件,

  1. README.txt和model_info.xml是模型相关的信息,包括占用的ROM和RAM信息等。

  2. librai_edsp_f32_arm.a是库文件。

  3. example_classifier.c是模型调用的例子代码,实际使用的时候,不需要添加到工程中。

  4. 其余5个文件是模型相关的.c和.h文件。


将上述的librai_edsp_f32_arm.a,amr_model.c,amr_model.h,RealityAI.h,RealityAI_Config.h,RealityAI_Types.h文件复制到Asset Tracking工程中的src/rai文件夹中。


3.14

在hal_entry.c中添加#include "amr_model.h"。

同时把hal_entry.c中的宏定义

#define DATA_COLLECTION_EN     (1)

修改成

#define DATA_COLLECTION_EN    (0)

表示代码进入推理阶段。


3.15


3.16


3.17

打开Debug文件中的FPBRA6E2_AMR_training.map文件。

搜索到.bss._SEGGER_RTT字段并复制红色框处地址。

注意:下图中的地址可能和实际的工程不相符,以自己手中的文件为准。


3.18

打开J-Link RTT-Viewer,点击File->Connect。


在弹出的窗口中,按照以下图片配置。注意,左下角的地址,输入的是上一步骤复制的地址,点击OK。


看到下面的Log输出框,表示连接成功。


3.19

点击Terminal 0标签页。


3.20


如果在运行的工程中,发现程序停留在startup.c中Default_Handler中。


参考先前3.14步骤中下载的模型中的README.txt的Estimated Memory Utilization中的Parameters,Stack Usage和Pre-Allocated之和。还要考虑加上工程本身没有使用模型推理的代码的stack消耗。


这是工程的stack设定过小,导致堆栈溢出,从而进入Default_Handler。需要在configuration.xml->BSP->Properties->RA Common中的Main stack size(bytes)进行修改。


3.21

观察J-Link RTT Viewer中的打印信息。通过扔(10cm高处跌落)、摇晃、静止FPB-RA6E2。可以发现得到如下信息:

  • 红色表示FPB-RA6E2处于drop状态。

  • 黄色表示FPB-RA6E2处于shake状态。

  • 绿色表示FPB-RA6E2处于normal状态。


可以尝试采集更多类型动作数据,再次上传数据并训练,以便识别更多的动作。

文件下载
隐私条款

一、接受条款 使用者(也称"您")在访问或使用本网站及其服务时,即已经表示同意并不加修改地接受本《用户协议》、本网站的《隐私声明》、《法律声明》以及其关或相链接的网页和网站的条件和条款的规定。我们强烈建议:在您阅读和接受本《用户协议》时,也应阅读并接受本《用户协议》中所提到《隐私声明》、《法律声明》及其相关或相链接网页或网站所包含的资料,因为《隐私声明》、《法律声明》及其它相关网页或网站可能包含对您适用的进一步规定。(请注意:点击划有底线的词句即可链接到上述《隐私声明》、《法律声明》及其它相关或相链接的网页和网站。

 

二、使用者的资格要求 在本网站中"使用者"指的是浏览、阅读、使用本网站信息或服务的任何个人或组织。本网站的服务仅适用于根据相关法律的规定具有签订有约束力的合同的个人或组织并仅由其使用。本网站的服务不向18周岁以下的个人使用者提供,也不向临时被本网站中止或取消使用者资格的使用者提供。如果使用者不符合本条规定,请停止使用本网站或本网站的服务。

样品
申请

应用
资源

微信