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.

AWR1843AOPEVM: Mode of the MRR

Part Number: AWR1843AOPEVM
Other Parts Discussed in Thread: UNIFLASH, AWR1843, AWR1843AOP, AWR1843BOOST

Tool/software:

I am currently working with the AWR1843AOPEVM radar sensor and following the Auto MRR User's Guide. I have successfully flashed the xwr18xx_mrr_demo.bin file located at

C:\ti\radar_toolbox_2_20_00_05\source\ti\examples\ADAS\medium_range_radar\ 

In the file "mrr_config_consts.h" there are code line that are enable modes




I am analyzing the mrr_config_consts.h file and would like to understand the impact of enabling different radar modes on the packet data.

If I uncomment #define SUBFRAME_CONF_MRR_USRR, which enables a multi-mode operation (MRR followed by USRR20), what type of data will be included in the packet?

Similarly, if I uncomment only #define SUBFRAME_CONF_MRR (MRR80 mode), what will be the structure and content of the packet data in this case?

Could you please clarify the differences and the type of data  included in both configurations?

Looking forward to your insights.


Here is the setup I am using:
CCS version: 12.8
SDK version: 3.6
Radar module: AWR1843AOPEVM
UniFlash version: 8.8

  • Hi Mitesh, 

    The data structure/format will be the same for the different modes of the operation, as defined in in mrr_output.h.

    For more details on the output data format (TLV scheme), please refer to Medium_Range_Radar_users_guide.html.

    However, the contents of the TLVs will differ based on the mode of operation. For example, in MRR mode, the detected points TLV would include points from MRR detections. In multi-mode, the detected points TLV would include points from both MRR and USRR detections. 

    Thank you,

    Jin

  • Hello Jin Lee,

    Thank you for your response.

    I would like to clarify my understanding of the MRR (Medium-Range Radar) and USRR (Ultra-Short-Range Radar) modes. From what I understand:

    • MRR Mode: The radar detects objects up to 120 meters with a narrow field of view (FoV), making it suitable for long-range detection with better resolution.
    • USRR Mode: The radar detects objects up to 50 meters, but with a wider FoV, making it more suitable for short-range applications like parking assist and blind-spot detection.
    • MRR_USRR Mode: A combination of both, where detection extends up to 120 meters with a narrow FoV while also covering 50 meters with a wider FoV for better situational awareness.

    Does this understanding correctly describe how these modes function, or is there any additional aspect I should consider?

    Looking forward to your insights.

  • Hi Mitesh,

    Does this understanding correctly describe how these modes function, or is there any additional aspect I should consider?

    Yes, your understanding is correct. In MRR_USRR mode, two subframes are configured. First subframe works in MRR mode and the second subframe works in USRR mode. When the results are transmitted over UART, you can differentiate the output of each subframe based on the header. Output of every subframe has header, TLVs, padding. Here is the structure of header -

      

    Refer to Medium Range Radar Users Guide.

    Regards,

    Samhitha

  • Hello samhitha ,

    Thank you so much for the quick response.

    I conducted an experiment using the AWR1843 EVM with MRR_USRR mode enabled. I positioned myself 5 to 6 meters in front of the radar and monitored the data through CAN messages. However, I noticed that the detected distance appears only in one packet out of every 5 to 7 regular packets, rather than being consistently reported.

    I have the following questions:

    1. Does the MRR_USRR mode detect static objects, or is it optimized mainly for moving objects?
    2. What factors could cause the inconsistent distance reporting, and how can I improve the detection consistency for  objects?
    3. Are there specific configurations or parameters I should adjust to enhance the radar's response to nearby  objects?

    Any insights or suggestions would be greatly appreciated.

    Thank you!

    Mitesh

  • Hello samhitha,

    Thank for your suggestion.


    As per the suggested link, I have commented out the function call. However, I am unsure about the instruction "add a statement that passes detObj2DRaw to detObj2D."

    I tried assigning it directly using:


    obj->detObj2D = detObj2DRaw;



    But I am getting an error: "identifier 'detObj2DRaw' is undefined."

    Can you clarify the actual meaning of this instruction and where exactly I should implement it?

    Do I need to declare or initialize detObj2DRaw somewhere before using it? 


    Thanks!

    Mitesh singh





  • Hi Mitesh,

    detObj2DRaw is a field in obj. detObj2DRaw has the rangeIdx, dopplerIdx, range etc. of each object.

    Can you clarify the actual meaning of this instruction and where exactly I should implement it?

    You should copy the contents of obj->detObj2DRaw to obj->detObj2D. This implementation should be done instead of calling rangeBasedPruning. In rangeBasedPruning, we modify the detection list, pick the required objects and copy the information of each object from obj->detObj2DRaw to obj->detObj2D.

    Regards,

    Samhitha

  • Hello Samhitha,

    As per your suggestion, I commented out the function call and copied the contents of obj->detObj2DRaw into obj->detObj2D directly, just below the original function call location. For your reference, please check the image I’ve attached to verify if this implementation is correct. 


    I have a doubt — the detObj2D structure contains more members than detObj2DRaw, such as the x, y, and z fields. How will the x, y, and z values in detObj2D get updated if they are not present in detObj2DRaw?

  • Hi Mitesh,

    I have a doubt — the detObj2D structure contains more members than detObj2DRaw, such as the x, y, and z fields. How will the x, y, and z values in detObj2D get updated if they are not present in detObj2DRaw?

    These values will be computed during XYZ estimation in Azimuth processing -> aziEleProcessing.

    Regards,

    Samhitha

  • Hello samhitha,

    Hope you are doing well.


    After modifying the code as discussed above, I ran the MRR Visualizer to check whether the device can detect static objects. However, it doesn't display any objects now.

    Previously, before the code changes, it was able to show the position of moving objects, but after the modification, it no longer shows either static or moving objects.

    Thanks
    Mitesh

  • Hi Mitesh,

    After modifying the code as discussed above, I ran the MRR Visualizer to check whether the device can detect static objects. However, it doesn't display any objects now.

    That isn't the expected behaviour. Can you check the value of numDetObj2D? Can you halt the core to see if there is any assert?

    The code snippet that you have added instead of rangeBasedPruning just copies the contents of object data. This is the same thing that you do even in rangeBasedPruning. The only difference is that you will filter the detections in rangeBasedPruning.

    Regards,

    Samhitha

  • Hello Samhitha,

    I'm currently using the AWR1843AOPEVM device, which does not have a debugger interface—so I'm unable to check the value of numDetObj2D or halt the core to inspect for any asserts. Is any other methods to find out the reason of the unexpected behavior ? if any let me know .

    The changes to enable static object detection were made based on the suggested link. If there's anything incorrect or missing in those changes, please let me know.

    I would also like to confirm—does the prebuilt application located at
    C:\ti\radar_toolbox_2_20_00_05\source\ti\examples\ADAS\medium_range_radar\prebuilt_binaries
    support detection of static objects within a 10-meter range?

    Thanks 





  • Hi,

    Let me check your query and get back to you tomorrow.

    Regards,

    Samhitha

  • Hi Mitesh,

    I'm currently using the AWR1843AOPEVM device, which does not have a debugger interface—so I'm unable to check the value of numDetObj2D or halt the core to inspect for any asserts. Is any other methods to find out the reason of the unexpected behavior ? if any let me know .

    Can you check if you are receiving any object data over UART? You can use terminal emulator like TeraTerm to check if you are receiving any data over UART. If you are not receiving any data over the DATA port, this means there is some assert. If the data is streaming over UART, then you should check the logic that you have implemented. But I don't see any error in the changes that you have made.

    I would also like to confirm—does the prebuilt application located at
    C:\ti\radar_toolbox_2_20_00_05\source\ti\examples\ADAS\medium_range_radar\prebuilt_binaries
    support detection of static objects within a 10-meter range?

    I don't think detection of static objects in short range is enabled.

    Regards,

    Samhitha

  • Hi Samhitha,

    Thank you for your response.

    I have followed the same procedure as per thread, but I’m currently not receiving any data over the UART.


    Regarding the thread you suggested —  (+) AWR1843BOOST: Can lab demo MRR detect the short range static objects? - Sensors forum - Sensors - TI E2E support forums. but I'm working with the AWR1843AOP device.



    I did not get the answer on these following questions that already mentioned in this thread for the AWR1843AOP.

    1. Does the MRR_USRR mode detect static objects, or is it optimized mainly for moving objects?
    2. What factors could cause the inconsistent distance reporting, and how can I improve the detection consistency for  objects?
    3. Are there specific configurations or parameters I should adjust to enhance the radar's response to nearby objects?

    Could you please guide me on how to enable or configure the MRR demo on the AWR1843AOP to detect static objects, particularly in short range?

    Looking forward to your support.

    Thanks
    Mitesh



  • Hi Mitesh,

    but I’m currently not receiving any data over the UART.

    I just read the previous replies in this E2E. Seems like you are transmitting data over CAN and not UART. If object data is being transmitted over CAN, please check if you are receiving any messages over CAN.

    Does the MRR_USRR mode detect static objects, or is it optimized mainly for moving objects?

    I think this question is already answered. By default, the demo will detect moving objects (in short range). At farther distance, you should be able to detect both static and moving objects.

    What factors could cause the inconsistent distance reporting, and how can I improve the detection consistency for  objects?

    When you say inconsistent distance reporting, are you comparing the messages received in MRR subframe and USRR subframe? When you compare the detections, it should be between same subframe i.e compare either the results of MRR subframe or USRR subframe.

    Are there specific configurations or parameters I should adjust to enhance the radar's response to nearby objects?

    You can finetune CFAR thresholds and peakVal thresholds. These parameters are configured in MmwDemo_populateUSRR.

    Regards,

    Samhitha

  • Dear Samhitha,

    Thank you for your kind response.

    As previously mentioned, I am working on enabling static object detection within the existing MRR demo application for the AWR1843AOP device. In response to my query, you had kindly shared a link to the following discussion:

    • AWR1843BOOST: Can lab demo MRR detect short-range static objects? – TI E2E Sensors Forum

    I have implemented the code modifications as outlined in the referenced discussion. However, after making these changes, I am not receiving any data output over UART or CAN, and the thats why MRR GUI does not display any detected points. but in the suggested link TI member mentioned that MRR can detect the static objects after changing the codes.

    My primary objective is to enable static object detection within the current MRR application for the AWR1843AOP. If there is any recommended approach or provision to achieve this, I would be grateful for your guidance. Otherwise, I would appreciate it if you could confirm whether this functionality is not supported by the device or demo even after changing the code.

    Please let me know if you require any additional information or clarification from my side to assist further.

    Thank you once again for your support.

  • Hi Mitesh,

    With the same changes, I am able to see static objects being detected (in short range).

    Below is the screenshot of the code changes -

    I don't see anything wrong in the implementation.

    Regards,

    Samhitha

  • Hello samhitha,

    Which radar device did you flash the bin file onto — the AWR1843BOOST or the AWR1843AOPEVM?"

    Which mode you enabled " MRR , MRR_USRR  or USRR ?

    Thanks
    Mitesh

  • Hi Mitesh,

    Which mode you enabled " MRR , MRR_USRR  or USRR ?

    Both MRR and USRR subframes are enabled.

    Which radar device did you flash the bin file onto — the AWR1843BOOST or the AWR1843AOPEVM?"

    I have tested the application using AWR1843BOOST. I do not have AWR1843AOP EVM with me. I don't even think it's pinmux issue as you are able to run MRR demo on AWR1843AOP.

    Regards,

    Samhitha

  • Hello Samhitha,

    I followed the same steps you mentioned, but I’m not receiving any data on either UART or CAN from the AWR1843AOP module.

    Before making the modifications, the radar was working correctly and providing data in MRR mode.

    In the one of T thread, it mentioned that "AWR1843AOP does not support static object"

    Could you please confirm if this modification is expected to work with the AWR1843AOP module?


    Thank you for your support.

  • Hi Mitesh,

    I followed the same steps you mentioned, but I’m not receiving any data on either UART or CAN from the AWR1843AOP module.

    When you are not receiving any data, this means there might be some assert in the application.

    Here is the whole CCS project that you can use to test the changes - MRR.zip

    In the one of T thread, it mentioned that "AWR1843AOP does not support static object"

    Could you please confirm if this modification is expected to work with the AWR1843AOP module?

    Yes, static objects can be detected. The above changes are purely logical or algorithm changes. These changes should work irrespective of the device type. I suggest you go through the code changes and understand the changes that are made.

    Regards,

    Samhitha