mmWave Applications Visualizer User Guide
Table of Contents
Overview
This tool parses and visualizes data sent from TI mmWave Radar devices. It is designed to help expedite evaluation and to make it easier to investigate TI radar demos.
Supported Demos
Industrial Visualizer
The follow TI demos are supported in this visualizer:
- Out of Box Demo (xWRL6432) (Includes Motion and Presence, People Tracking and Human/Non-human classification)
- Out of Box Demo (xWR6843)
- Calibration
- 3D People Tracking
- Overhead 3D People Tracking
- Long Range People Detection
- Vital Signs with People Tracking
- Mobile Tracker
- Small Obstacle Detection
- Video Doorbell Demo
- Gesture Recognition
- Level Sensing (xWRL1432/xWRL6432)
- Surface Classification
- True Ground Speed
- Bike Radar
- Video Doorbell (2-Pass and Configurable Versions)
Body and Chassis Visualizer
The follow TI demos are supported in this visualizer:
- Out of Box Demo (xWRL6432) (Includes Motion and Presence, mmWave Demo, People Tracking and Human/Non-human classification)
- Out of Box Demo (xWR6843)
- Calibration
- 3D People Tracking
- Overhead 3D People Tracking
- Gesture Recognition
- Kick to Open
- Exterior Intrusion Monitoring
- Intrusion Detection
- Seat Belt Reminder
- Child Presence Detection
Quickstart
This section will give a brief rundown of how to get started using the mmWave Industrial Visualizer.
1. Launch the visualizer:
- Navigate to
<RADAR_TOOLBOX_INSTALL_DIR>\tools\visualizers\Applications_Visualizer\Industrial_Visualizeror<RADAR_TOOLBOX_INSTALL_DIR>\tools\visualizers\Applications_Visualizer\Body_and_Chassis_Visualizer - Run the
.exe - It should take 5 - 10 seconds to startup.
On the left side of the visualizer setup window are options and parameters for running the demo. On the right side is a 3D graph which will display the relevant demo output.
2. Set COM Ports
At the top left of the GUI should be two text fields for the COM Ports. These will attempt to autodetect your TI mmWave Device and autofill the correct COM ports.
If this does not auto-populate, find them by going to your Device Manager (or equivalent menu for your OS) and looking for the serial ports.
Typically, the CLI COM Port will be name either * Silicon Labs Dual CP2105 USB to UART Bridge: Enhanced COM Port * XDS110 Class **Application/User UART**
Typically, the Data COM Port will be name either * Silicon Labs Dual CP2105 USB to UART Bridge: Standard COM Port * XDS110 Class Auxiliary Data Port
When entering the COM Port, please be sure to put only the COM Port number.
3. Select Demo
Now that the COM Ports are selected, using the dropdown menu in the top left to select the demo that you’d like to run. Be sure that the corresponding binary is flashed onto your device.
4. Connect to Device
Now click the connect button in the top left. If the status does not change to Connected, please return to step 1 and revalidate the COM port selections
5. Select Configuration
Next, click the Select Configuration button, and navigate using your file explorer to the correct cfg file for your application. Typically, these can be found at <RADAR_TOOLBOX_INSTALL_DIR>\src\ti\examples\<ExampleName>\chirp_configs
6. Send Configuration and Start the Demo
Finally, click the Start and Send Configuration button, which will transmit your config file to the device. Please note that this may take ~10 seconds. Once this is complete, data should begin to be displayed in the GUI.
Saving Data
To select/deselect the option that saves the data stream that gets output from the visualizer, click the checkbox “Save Data to File”
When data is saved from the visualizer, it is stored in a JSON format. a binData directory is created and replayXX.json files are saved every 100 frames. By default, the replay JSON files are cumulative, meaning replay_3.json would have frames 1-300 of data, and replay_4.json would have frames 1-400 of data. In gui_parser.py, this can be changed to write frames in 100 frame chunks to files. Search for the comment below:
“uncomment to put data into one file at a time in 100 frame chunks”
When data is saved from the python visualizer, it can also optionally be stored in a .bin file in a binData/ folder located at the directory from which the visualizer is run. The data stored inside the .bin file is simply a binary stream of the data sent out of the xWRL6432. So, users will need to reprocess the TLV data again in order to interpret the output. More modifications to the code need to be enabled to just output the stream, look for the comment:
“uncomment below to save bin data in Matlab-friendly format”
Getting Familiar with Different Parts of the Visualizer
Setup Pane
This area is where you will start when using the visualizer. You can configure COM Ports (if they were not detected automatically), select the demo type, and connect to the device.
Statistics Pane
This area will show some of the high level information for the data that is being shown, such as the frame number, number of points, and the number of targets/tracks (when applicable).
Configuration Pane
This area is focused on your radar chirp configuration. You can use it to select your config file, send it to the device, or to just enable the visualizer if a Hard-coded Configuration is being used.
Plot Controls Pane
This area allows you to customize the display of information on the plot. Use it to hide targets/tracks (for demos which generate them), determine how you would like points to be colored, and how many frames worth of data to display concurrently.
3D Plot
This area is the main plot for the visualizer. It shows the relevant information which is transmitted from the device in realtime, and can be used to better understand the data being output.
Components Unique to Specific Demos
Some demos may add components to the visualizer to better enable the visualization for that specific demo. Below, you can see some of the unique options which are available.
Vital Signs Pane
This area is unique to the Vital Signs with People Tracking demo, and shows crucial vital signs of detected people via the measurements done in this demo.
Power Consumption Report
The power consumption report displays the measured power consumption from the INA228 current sensing amplifiers on the IWRL6432BOOST and IWRL6432AOPEVM development kits. The table on the bottom shows average, minimum and maximum measurements.
False Alarm Report
The false alarm report displays the locations of frequent false alarms that awaken the video camera for a +video camera design emulated by the video doorbell demo. The shading of red indicates the frequency of false alarms from the region colored.
Child Presence Detection and Seat Belt Reminder
For the CPD and SBR demo, when a box is highlighted/bolded, this indicates that the box is occupied by an adult. When a box has cross lines going through it, this indicates that the box is occupied by a child. This information can also be observed in the status pane to the left of the visualizer.
Intruder Detection
For the intruder detection demo, we show which intrusion zone is being intruded into and highlight it with the respective color of the line from the occupancy signal plot. You can observe intrusions in the car from the status pane to the left of the visualizer. Please note that some of the threshold lines may be overlayed on top of each other in the occupancy signal plot.
Working with Visualizer Source Code
In order to ensure that the visualizer can be modified to suit any special use case, the source code for the visualizer is included.
Requirements
Below is a table which includes the required software. Most of these are python modules which can be installed with pip. You can use the file requirements.txt to pip install all of these using pip. For example:
pip install -r requirements.txt
| Software | Version | How to get |
|---|---|---|
| Python 3 | 3.7.4 | Python 3.7.3 64Bit Download |
| PySide2 | 5.15.2.1 | pip install pyside2==5.15.2.1 |
| pyopengl | 3.1.5 | pip install pyopengl==3.1.5 |
| numpy | 1.19.4 | pip install numpy==1.19.4 |
| pyserial | 3.5 | pip install pyserial==3.5 |
| pyqtgraph | 0.11.0 | pip install pyqtgraph==0.11.0 |
| json-fix | 1.0.0 | pip install json-fix==1.0.0 |
Running the Visualizer From Source
Once all the requisite software is installed, the GUI can be started by running the command python gui_main.py in the terminal
Understanding the Visualizer Source Code
Below is a brief rundown of the various source files included in this visualizer and what their purpose is.
- gui_main.py starts the application.
- gui_core.py handles the GUI and backend processing for the GUI
- gui_parser.py defines an object used for parsing the UART stream. If you want to parse the UART data, you can use this file to do so.
- gui_threads.py defines the different threads that are run by the demo. These threads handle updating the plot and calling the UART parser.
- graph_utilities.py contains functions used to draw objects.
- gui_common.py aggregates several variables and configurables which are used across several files.
- parseFrame.py is responsible for parsing the frame format of incoming data.
- parseTLVs.py is responsible for parsing all TLV’s which are defined in the demos.
- tlv_defines.py defines tlv’s used in the examples.
- demo_defines.py defines which examples work with which devices.
- Demo_Classes/ is a directory that contains example-specific source files.
- Common_Tabs/ is a directory that contains common plotting tabs like 1D or 3D plots.
Need More Help?
- Find answers to common questions on mmWave E2E FAQ
- Search for your issue or post a new question on the mmWave E2E forum