This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AWR1642: Range-Doppler Heatmap with 10-20 fps

Part Number: AWR1642
Other Parts Discussed in Thread: DCA1000EVM

Hello

We are working on a gesture recognition system based on machine learning. To obtain the training data we try to extract the range-doppler heatmap with a reasonable frame rate (10-20 fps). So each gesture will take a couple of seconds and thus consist of 20-30 range-doppler images.

Since the frame rate depends on the number of range and doppler bins the goal is to get as good of a resolution as possible while maintaining a frame rate above 10 fps. The current baud rate we are using for the data port are the default 921600, but I read on the forum that it is possible to double that frame rate. We use a python script to receive the data from the sensor.

It would be very helpful if you could tell us where exactly the bottleneck is. Is there a formula to calculate the maximum achievable frame rate based on the chosen number of range- and doppler-bins? Also, currently we are working with the xwr16xx_mmw_demo.bin image. Do you have another available image that might be faster or more suited to extract the range-doppler heatmap?


Thank you for your help

Simon

  • Hello Simon,

    The bottleneck here is the UART interface that is used for sending out all the object data. You could either decide to selectively choose the data you want to sent over the UART or you could use a faster interface like CAN/CANFD which is available on the AWR1642 for sending out the data.

    This can help you resolve the issue of sending out the data at 10fps.

    Let me know if this helps your understanding.

    Thanks,
    Raghu
  • You can refer to the doxygen documentation of the mmw demo [section "output information sent to host"] to know how much data is involved in range-doppler heatmap per frame. It is basically #range bins * #doppler bins * 16 bits each frame. You can also try various configuration profiles to try different combinations of range and doppler and set a very low frame rate so you don't have a real-time deadline miss and look at UART transmit time information in the visualizer plots view to know how much actual time the configuration is taking [besides the heatmap streaming which you will enable in gui mon config, you will also have point-cloud streaming but this will be a fraction of heatmap data]. If you cannot meet your need with UART, you can use one of the high speed interfaces. If you don't want to develop new h/w for this, you can use DCA1000EVM + 1642 EVM and enable lvds streaming on 1642 EVM to collect data on the DCA [sufficient material exists for knowing how to do this, please don't ask questions on this without referring to standard documentation first]. If you go on this path, you will need to modify the demo's s/w session of LVDS to stream the range doppler heatmap instead of objects [point-cloud] data.

  • Hello Raghu,

    Tank you for your response. I have two follow-up questions:

    1) Since the bottleneck is the UART, I tried to double the baud rate of the data port from 921600 to 1843200. I was able to change the baud rate in mss_main.c and rebuilt it, but I am not sure how to change the mmWave_demo_visualizer to work with that baud rate. Do you know what exactly i would have to change in the mmWave_demo_visualizer?

    2) You mentioned that it is possible to selectively choose the data I want to sent over the UART. In the .cfg-file I set guiMonitor -1 0 0 0 0 1 0 so only the heatmap will get sent, but is it also possible to change the c-files in C:\ti_2.0\mmwave_sdk_02_00_00_04\packages\ti\demo\xwr16xx\mmw to only send part of the heatmap? Since the recoded gestures will only occupy the first third of the range bins (ca. 128 rangeBins / 3), that could further decrease the packet size by 2/3. The recorded gestures are within 1.5m distance from the sensor.

    Thank you for your help 

    Simon

  • Simon,
    A1: Max supported UART baudrate is "921600". So you cannot double the UART baudrate. This is the reason to use the CAN interface that can support higher baudrates.

    A2: My reference was to modify the code to not send the data over UART.

    -Raghu
  • Hello Raghu

    According to this thread http://e2e.ti.com/support/sensors/f/1023/t/651605?CCS-IWR1642BOOST-What-is-the-limit-for-the-frame-duration a colleague of yours tested 2*921600 baud rate and got a positive result, but I am not sure how to modify the mmWave_Demo_Visualizer.

    Of course it would be nice to upgrade to a CAN interface, but that is not allowed in our thesis. So we are basically forced to use the UART port. If it is somehow possible to only send a part of the heatmap, then that would pretty much solve the issue. All the gestures occur in the first third of the range bins. 

    Simon

  • Hi
    921600 is the max baud rate supported by the hardware.

    It may be possible to reduce the size of the heatmap by updating the code. This is something you would have to do

    Closing the thread now

    thank you
    Cesar