Long Range People Detection User Guide
远距离人员检测,实现对100m外对多人进行计数和跟踪;
6843实现了波束成形和波束定向(Beamforming and Beamsteering),增加超过100m的人的检测范围,每400ms完成一次90度视场得扫描,,生成人、车辆和其他移动物体的轨迹。忽略静态对象(如树、标志和建筑物)。该demo还支持50米线性调频配置,该配置提供20赫兹的更新率(而不是波束控制的2.5赫兹),从而实现更平滑的跟踪器性能。
性能指标
demo的默认chrip配置
2D 50米:50米范围,更新率为20 Hz,适合跟踪人员-与3D相比检测范围略高
3D 50米:50米范围,20赫兹更新率和三维笛卡尔数据,具备高程信息
2D 100米:2.5赫兹的100米范围,实现波束成形以增加范围。
2D和3D 50米chrip性能相近,2D每个虚拟天线具备更多的chrip数,这使其能够检测更长距离。如下所示,波束形成的chrip在每个chirp中使用3个Tx,因此被限制为2D。与50米的chrip不同,波束成形的chrip在其视场角上具有更一致的范围,因为在chrip的持续时间内辐射方向图指向每个方向。
3D具备chripcfg更多,使用到了所有的天线
3D具备3种frame,其frame中有96个chrip;2D具备2种frame,每个frame有128个chrip,多普勒分辨率更高
硬件限制,使用TX波束成形时,6443的性能略低于6843。
Angle of Arrival | 2D Approaching | 3D Approaching (m) | 2D Departing (m) | 3D Departing (m) | 6443 Tx Beamforming Approaching | 6443 Tx Beamforming Departing | 6843 Tx Beamforming Approaching | 6843 Tx Beamforming Departing |
---|---|---|---|---|---|---|---|---|
(degrees) | (m) | 临近 | 离开 | 波束成形 | ||||
0 | 56 | 56 | 56 | 56 | >100 | >100 | >100 | >100 |
15 | 55 | 55 | 55 | 56 | >80 | >80 | >100 | >100 |
30 | 55 | 44 | 55 | 50 | >80 | >80 | >100 | >100 |
45 | 56 | 42 | 55 | 42 | >80 | >80 | >100 | >100 |
60 | 34 | 28 | 45 | 34 | NA | NA | NA | NA |
到达角:雷达系统使用水平面估算反射信号的角度,该角度称为到达角AoA(Angle of Arrival)
调整范围偏置和相位变化
compRangeBiasAndRxChanPhase 是 cfg 文件中的一个参数,让用户考虑天线之间的近场效应,调整 compRangeBiasAndRxChanPhase 可以改善设备的角度估计。在生产中的设备应始终调整 compRangeBiasAndRxChanPhase,但在开发过程中,一些客户选择不调整该参数。
但在远距离人员检测实验室中,由于预期目标距离较远,方位角估计的微小误差会导致物体 X 位置的较大误差。因此,德州仪器建议客户对开发过程中使用的每块电路板单独调整该参数。
compRangeBiasAndRxChanPhase | ||
---|---|---|
用于补偿距离估计偏差,接收信道增益,相位缺陷 | 以米为单位的范围估计补偿 | 支持 |
表示在Q15格式下对虚拟接收天线的相位偏差的复数集合,实部和虚部的组合必须提供给设备的每一个Tx和Rx天线 | 按照Re Im提供,6843具备3T4R具备12个虚拟天线,所以需要提供12个 |
compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
距离补偿0m,虚拟天线1,2,3… 12
波束成形和波束扫描原理
通过操纵每个发射天线的相位偏移,将波瓣定向到指定方向上,对指定区域实现更强的信号强度,从而实现更远的距离测量。
TDM-MIMO时分复用的多发多收
TDM:时分多路复用(TDM),不同发射天线依次发射信号(不同时工作),某一天线的发射信号可被多个接收天线接收。
MIMO:多输入多输出(multiple input multiple output),在接收端形成奈奎斯特虚拟阵列,提高阵列的有效孔径,提高测角能力
设备在TDM-MIMO模式下运行时一次只有一个发射机工作,所有接收机监听返回信号,一帧由每个发射机多次啁啾组成。
波束成形时,所有接收器仍然在监听每个啁啾,但是所有的发射机会一起工作。发射的信号相互之间相互增益或者相互损害,构造性干扰发生在雷达正前方的区域,呈锥形,与视线成22.5度角。破坏性干涉发生在该圆锥体外部的其他视场中。22.5度相长干涉锥内的区域具有更强的信号强度,从而实现更远的距离检测。波束定向是通过操纵每个发射器的相位偏移来将该圆锥体定向到各个方向的过程。这会改变相长干涉和相消干涉发生的位置,使光束指向不同的方向。
在远程人员检测中,配置了四个子帧,每个子帧将波束指向不同的方向。这些配置方式使得光束累积覆盖从-45度到+45度的区域。对于每个子帧,都会生成点云,然后进行存储。在完成所有四个子帧之后,点云被合并并发送到跟踪器。在这个过程之后,所有的点云和跟踪数据都从设备中输出。每次完整扫描需要400毫秒。
波束方向
高级帧的配置
frame和advframe比较
profile是chirp的基础模板,profile只对chirp进行粗略的配置,配置chirp时,通过指定profileId来确定使用那个profile
frame是由chrip组成的;advframe是由subframe组成,subframe由brust组成,brust由chrip组成。
通过相位偏置改变波束方向,其脚本phaseShift.m的如下
theta_desired = 33.75;
m_ind = [0 1 2]; % antenna distance in unit of lambda
phaseInc = 5.625; % step size for the phase shifter
phaseTX_rad = 2*pi*(m_ind*sind(theta_desired));
phaseTX_deg = (phaseTX_rad)*180/pi;
phaseTX_deg_wrap = wrapTo360(phaseTX_deg);
phaseShifter = round(phaseTX_deg_wrap/phaseInc) * [ 0, 2^8, 2^16].' * 4
软硬件需求
MMWAVEICBOOST
波束成形和波束扫描都需要使用ICBOOST板来实现该功能所需要的更高的功率需求,单独使用ISK板子会使射频性能较差,通常表现为有噪声的点云
硬件
Item | Details |
---|---|
IWR6843ISK | IWR6843远程天线板 |
ECIBoost | 载波板,使用波束成形时需要 |
硬件安装 | 需要安装在2m高度,并轻微下倾 |
USB数据线 | 连接PC板,输出数据 |
电源 | 5V, 3A得2.1mm圆形插孔,也可以是USB转圆形插孔的电池组,因为MMWAVEICBOOST需要供电 |
mmWaveICBoost 配置
设置 S1 开关,设置 S1开关,使得毫米波ICBoost处于独立运行状态,而不是在开发模式下与DCA1000一起使用。
切换SOP模式跳线到功能模式
切换后需要按下NRST开关重启电源
IWR6843配置
设置ISK的开关为ECIBoost模式
模式 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
刷写模式 | on | off | on | on | off | -随意 |
功能模式 | off | off | on | on | off | -随意 |
DCA1000EVM模式 | off | on | on | off | off | -随意 |
mmWAVEEICBOOST | off | off | off | off | on | -随意 |
挂载 EVM
将IWR6843ISK和ECIBOOST连接起来
连接电缆
- 将 micro-USB 连接到所示连接器的载板和 PC。请注意,micro-USB 连接到下部 XDS110 USB(而不是 FTDI USB)。
- 将 5V/3A 电源连接到电源,然后连接到载板。载板上的 LED 应亮起。
软件
Tool | Required For |
---|---|
Uniflash | 刷新固件 |
TI Radar Toolbox | 工程源码以及固件 |
刷写固件
可以使用ECIBoost的刷下模式进行,也可以直接使用IWR6843板子刷下固件
CCS
环境必须安装有最新版的CCS(Code Composer Studio,我装的12.5,之前9.2的Source explore没反应)和TI mmWave SDK
CCS对应的Ti 项目在View——Resource Explorer中(不显示,就安装最新版的CCS)
工程导入:依次点击mmWave radar sensors——>Embedded Software——>Radar Toolbox——>Example Projects——People Tracking——>3D People Track 6843 DSS——>点击右上角的improt导入工程
导入成功后可以在project Explorer中看到导入的项目,编辑对应的dss_main.c
右键项目并rebuild,会生成对应的area_scanner_6843_dss.bin文件
CCS可以实现代码运行时调试,但是需要有硬件mmWaveECIboost的板子支持
Uniflash
在编译的项目目录下找到对应bin文件(我的在“C:\Users\mengzhe\workspace_v12\out_of_box_6843_isk_dss\Debug”下面)
打开Uniflash软件,选择对应的芯片并start;
点击Setting,设置端口号码;对应的是Enhanced的端口,我这里是com10,enhanced是烧写口,UART是数据口
点击Program,选择烧写的固件,并按压reset按钮重启板子,点击load image烧录固件
刷写失败的原因通常是因为路径中包含中文;刷写固件成功后,更改板子到功能模式,使用串口工具连接设备,并重置设备,串口工具会显示写入程序信息
如果没有反馈信息,重新刷固件。
刷写注意事项
确保已成功安装驱动程序并枚举 COM 端口。
将 SOP 配置为刷写模式。
运行 UniFlash 工具。
按压复位开关,以确保电路板在正确的模式下启动。
在 UniFlash 界面中输入增强型 COM 端口。
将映像加载到串行闪存中。
物理设置
- 按照模式要求连接硬件,并设置为对应的功能模式
- 根据的功能模式的ISK设置说明,EVM安装位置需要足够高,高于给追踪的物体顶部,略微向下倾斜;目的是使得EWm的天线波束能覆盖感兴趣区域,向下倾斜太大,地波杂声讲增加,没有向下的话的,那一个人被另一个人遮挡的时候跟踪性能会下降,考虑到天线辐射方向图,EVM不要安装台靠近天花板,这会导致本底噪声增加影响跟踪
Setup Requirements:
- 距离地面 2.0-2.5m high 高度
- 向下倾斜角度2-3 度
- 使用三脚架或手机支架安装
运行实验室
启动可视化实验室、并配置可视化工具,该可视化工具显示通过UART接收的检测和跟踪对象数据。可视化工具位于\tools\visualizers\Industrial_Visalizer
确保所选的cfg文件来自该实验室中包含的chirp_configs文件夹。
数据采集中说使用
E:\雷达原理\学习资料\mmwave_industrial_toolbox_4_12_0\labs\Traffic_Monitoring\gui
C:\ti\radar_toolbox_1_30_00_05\tools\visualizers\Traffic_Monitoring_Visualizer
最远测量距离达到了这里的60m
数据格式
TLV(type length value,类型长度值)编码方案使用小端字节顺序。每一帧都会发送一个数据包,其中包括一个固定大小的帧头,然后根据在该场景中检测到的内容发送可变数量的TLV。TLV可以是表示点云、目标列表对象和关联点的类型。
帧头
**长度:**40 字节
帧标头在每个数据包的开头发送。使用magic words魔术词找到每个数据包的开头。
价值 | 类型 | 字节 | 评论 |
---|---|---|---|
魔术词 | uint64_t | 8 | 十六进制的 syncPattern 为:‘02 01 04 03 06 05 08 07’ |
版本 | unint32_t | 4 | 软件版本 |
数据包总长度 | unint32_t | 4 | 以字节为单位,包括标头 |
平台 | unint32_t | 4 | 空客 A6843 |
帧号 | unint32_t | 4 | 帧号 |
时间 [以 CPU 周期为单位] | unint32_t | 4 | 消息创建时间(以周期为单位) |
检测到的 Num Obj | unint32_t | 4 | 此帧中检测到的点数 |
TLV 数量 | unint32_t | 4 | 此帧中的 TLV 数量 |
子帧编号 | unint32_t | 4 | 子帧编号 |
TLV 接头
**长度:**8 字节
在每个 TLV 的开头发送一个 TLV 标头。标头后面是特定于 TLV 类型的有效负载。TLV 可以是
MMWDEMO_OUTPUT_MSG_SPHERICAL_POINTS
MMWDEMO_OUTPUT_MSG_DETECTED_POINTS_SIDE_INFO
MMWDEMO_OUTPUT_MSG_TRACKERPROC_3D_TARGET_LIST
MMWDEMO_OUTPUT_MSG_TRACKERPROC_TARGET_INDEX
type | 类型 | 字节 | 详细 |
---|---|---|---|
类型 | unint32_t | 4 | TLV 类型:06 = DPIF 点云球形,07 = 目标对象列表,08 = 目标索引, 09 = DPIF 点云侧信息 |
长度 [字节数] | unint32_t | 4 | 以字节为单位 |
TLV系列
点云TLV
**大小:**sizeof (DPIF_PointCloudSpherical) x numberOfPoints
每个点云 TLV 都由一个点数组组成。每个点以 16 个字节定义。
值 | 类型 | 字节 | 评论 |
---|---|---|---|
范围 | 浮 | 4 | 范围,以米为单位 |
方位角 | 浮 | 4 | 方位角,以弧度为单位 |
海拔 | 浮 | 4 | 以弧度为单位的抬高 |
多普勒 | 浮 | 4 | 多普勒,单位为m/s |
点云侧信息 TLV
类型: MMWDEMO_OUTPUT_MSG_DETECTED_POINTS_SIDE_INFO
**大小:**sizeof(DPIF_PointCloudSideInfo) x numberOfPoints
每个点云侧信息TLV都由一个点侧信息数据数组组成。每个字节为 8 个字节。
值 | 类型 | 字节 | 评论 |
---|---|---|---|
信噪比 | int16_t | 2 | 信噪比 |
噪声 | int16_t | 2 |
目标列表 TLV
**大小:**sizeof (tlvHeaderStruct) + sizeof (trackerProc_Target) x numberOfTargets 目标列表 TLV 由目标数组组成。每个目标对象的定义如下。
值 | 类型 | 字节 | 评论 |
---|---|---|---|
tid | uint32 | 4 | 跟踪 ID |
posX | 浮 | 4 | X 维度的目标位置,米 |
posY | 浮 | 4 | Y 维度的目标位置,米 |
posZ | 浮 | 4 | Z 维度的目标位置,米 |
velX | 浮 | 4 | X 维度的目标速度,米/秒 |
velY | 浮 | 4 | Y 维度的目标速度,米/秒 |
velZ | 浮 | 4 | Z 维度的目标速度,米/秒 |
accX | 浮 | 4 | X 维度的目标加速度,米/秒2 |
accY | 浮 | 4 | Y 维度的目标加速度,米/秒2 |
accZ | 浮 | 4 | Z 维度的目标加速度,米/秒2 |
ec[16] | 浮 | 16x4 | 跟踪误差协方差矩阵,[4x4],范围/方位角/仰角/多普勒坐标 |
g | 浮 | 4 | 门控功能增益 |
置信度 | 浮 | 4 | 置信水平 |
目标指数 TLV
**大小:**sizeof (tlvHeaderStruct) + sizeof(uint8) x numberOfPoints(注意:这里的点数是帧 n-1)
目标索引 TLV 由一组目标 ID 组成。索引 i 处的 targetID 是前一帧点云的点 i所关联的目标。有效 ID 的范围为 0-249。
值 | 类型 | 字节 | 评论 |
---|---|---|---|
目标 ID | uint8_t | 1 | 跟踪 ID |
其他目标 ID 值:
价值 | 意义 |
---|---|
253 | 未关联的点,信噪比太弱 |
254 | 未关联的点,位于感兴趣边界之外 |
255 | 未关联的点,被视为噪声 |