Bike Radar User Guide

Table of Contents

Introduction

This user guide will walk through how to get started with using the IWRL1432 device for bike radar applications. This project is based on the mmwave_demo and binary provided contains a modified implementation of this project that utilizes the processing chain to detect objects travelling up to 40 meters per second and longer distances(120+) if using a high gain antenna.

Overview of Maximum Velocity Extension

The velocity extension algorithm was developed and integrated into the mmWave demo to be able to detect and track objects moving at velocities up to 40 meters per second. This solution was required because otherwise, objects moving much faster than the maximum velocity detectable by a chirp profile will start to become ambiguous and indicate an incorrect velocity that is either faster or slower than the actual velocity

This demo is applicable to the IWRL1432 devices.

Quickstart

Prerequisite

⚠️ WARNING: Run mmWave Demo
Before continuing with this lab, users should first run the mmWave demo for the EVM. This will enable users to gain familiarity with the sensor’s capabilities as well as the various tools used across all labs in the Radar Toolbox.

Software Requirements

Tool Version Download Link
MMWAVE-L-SDK 5.5.x.x Link to Latest mmWave SDK. To access a previous version of the mmWave SDK scroll to the bottom of the table and click the link under “MMWAVE-L-SDK previous release”. Repeat to continue stepping back to previous versions.
TI Radar Toolbox Latest Radar Toolbox
UniFlash Latest UniFlash

Hardware Requirements

Tool Version
IWRL1432BOOST EVM Rev B.
IWRL6432BOOST EVM Rev B.

Hardware Setup

1. Flashing the EVM

Please find the prebuilt binary file bike_radar_demo_x432.Release.appimage in the directory below and flash it onto the EVM. Refer to the Using Uniflash with mmWave for more information on how to flash the EVM with binaries.

<RADAR_TOOLBOX_INSTALL_DIR>/source/ti/examples/E_Bikes_BSD/prebuilt_binaries/bike_radar_demo_x432.Release.appimage

NOTE: This demo is provided as a configurable binary. Source code is not available at this time

2. Using the Industrial Visualizer

To check that the EVM has been configured correctly, set the EVM to functional mode after flashing. Power up the device and connect the EVM to the Industrial Visualizer found in the toolbox.

Launch the Industrial Visualizer

Send configuration over CLI

Interpreting the 2D Plot

The 2D plot in this visualizer provides a bird’s-eye view of the scene captured by the radar device. Tracks are placed around moving points and the field of view has been expanded to account for the larger distance that is covered by this demo.

Bike Radar Demo Results

Developer’s Guide

Adding CLI support for Maximum Velocity Extension

0. Prerequisite

⚠️ WARNING: Run Out of Box Demo
Before continuing with these steps, familiarize yourself with our CCS debug guide

⚠️ WARNING: Custom Code Not Supported
Functions and objects mentioned in the code may be different for projects other than the out of box demo projects for SDK 5.3. If you have modified your project in any way it is not guaranteed that this will work as is with your project. Some debug may be needed and it is not guaranteed to give the same power savings seen in TI’s projects

Demo-Specific CLI Commands

extendedMaxVelocity <enabled> <numerator> <denominator> <numHypothesis> <spreadDopIndx> <spreadRngIndx> <isDetMatrixLogScale>

dynClutterRemoval <Enabled><lambda> <xNearThr> <yNearThr> <rlsMaxInlierErr> <vClutterMaxErr> <keepClutterPoints> <resetMaxInlierErr> <inlierErrLambda> <noUpdateFrmCntrThr>

NOTE: Information on the cfarScndPass and compressionCfg can be found in the mmWave demo documentation in SDK 5.4

Velocity Extension Algorithm

This demo features a new processing chain that allows for disambiguate high velocities past the theoretical max velocity of the chirp. This is done by utilizing the chinese remainder theorem to 1)determine if the velocity is the true disambiguate velocity and 2)if not, disambiguate the velocity to determine the true unambiguous velocity. This is done by taking advantage of two different profiles that are switched between frames. The frames alternate between long and short idle times and the velocities are computed for the points for the current frame and the previous frame. The velocity of the current frame is then used to generate multiple hypothetical velocities and compared across the velocities from the previous frame, and this comparison will determine which hypothesis is correct, thereby determining the unambiguous velocity. This algorithm allows the demo to detect objects travelling up to 40 m/s, which is about 90 mph, and almost double what we can measure with the out-of-box range-doppler processing chain.

2D Track TLV

Since 3D tracks are large chunks of information and only the 2D information is required due the demo designed for a top-down view, the TLV structure was changed to support a 2D track TLV. This TLV provides all the same information as the 3D track except for any z-component information(for position, velocity, and acceleration)

BSD Stats TLV

The stats TLV was also changed to include the ego-motion computation and the angle estimation, which is computed using the RANSAC-LSQ algorithm. This information is also used in removing dynamic clutter as it can indicate which points lie within the RANSAC-LSQ curve indicating static points that show up as the same velocity as the sensor as it moves.

TLV Structure

Value Type Bytes
interFrameProcessingTime [us] uint32_t 4
transmitOutputTime [us] uint32_t 4
powerMeasured [4] uint16_t 8
tempReading [4] uint16_t 8
egoMotionVsMilesPerHour [m/s] float 4
egoMotionAlphaDegrees [m/s] float 4
Value Type Bytes
Tracker ID uint32_t 4
X Position float 4
Y Position float 4
X Velocity float 4
Y Velocity float 4
Error Covariance Matrix[9] float 36
g float 4
Confidence Level float 4

Need More Help?