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
- Attach the radar to the rear of the bike, pointing straight behind the bike
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
- Open the Industrial Visualizer by launching the
Industrial_Visualizer.exefrom the Radar Toolbox from the following path:<RADAR_TOOLBOX_INSTALL_DIR>/source/ti/tools/visualizers/Applications_Visualizer/> - Select IWRL1432 or IWRL6432 as the device and Bike Radar as the demo.
- The COM port should be automatically filled in if you have an EVM connected to the computer, but if not, look in the device manager for the appropriate COM port
- Click on the Connect button
Send configuration over CLI
- Click on Select Configuration
- Navigate to
<RADAR_TOOLBOX_INSTALL_DIR>/source/ti/examples/E_Bikes_BSD/profiles/and select the configuration in that folder- If you are using the IWRLx432Boost EVM, please select the 40m configuration
- If you are using the IWRL1432 with a higher gain antenna, please use the 120m configuration
- Click on Start and Send Configuration to send the configuration to the device and start the sensor
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
- This demo is capable of tracking objects for very long distances
- The radar was tuned to track vehicles up to 120 meters when using a high gain antenna, but can be tuned to detect at even farther ranges. The max detection range of the IWRL1432BOOST is around 40m. A higher gain antenna design is required for longer ranges.
- This demo can also be used to detect vehicles coming close to the vehicle in spots where the biker cannot see
- The radar will be able to detect vehicles travelling at speeds up to 40 meters per second
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>
- This CLI command sets the parameters for enabling and configuring the velocity extension processing chain in the bike radar demo
dynClutterRemoval <Enabled><lambda> <xNearThr> <yNearThr> <rlsMaxInlierErr> <vClutterMaxErr> <keepClutterPoints> <resetMaxInlierErr> <inlierErrLambda> <noUpdateFrmCntrThr>
- Dynamic clutter removal ignores objects that are static, but show up as moving due to the moving sensor. This allows the radar to filter out false-positives in the form of static objects such as trees or parked cars that are not an actual threat to the user
- The points filtered out by dynamic clutter removal can still be sent from the device, but will be ignored for tracking purposes
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
- BSD Stats TLV - TLV 1035
| 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 |
- 2D Track TLV - TLV 1034
| 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?
- Search for your issue or post a new question on the mmWave E2E forum