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.

AWR1843AOP: Data structure with ROS driver

Part Number: AWR1843AOP

Hi

I am currently using AWR184AOP with ROS to design an application for my project. 

I run the "

    roslaunch ti_mmwave_rospkg 1843_multi_3d_0.launch

" to launch the driver and use "rostopic echo /ti_mmwave/radar_scan_pcl_0" to read the data published by the ROS node. 

However, when I tried to analyze the data published by the ROS node, there is one problem.  I notice that some times there will be 6 digit data for a point and sometimes there are 7. After going through the DataHandlerClass.CPP, I can only figure out only 5 digit out of the 6/7 digit data for a point, for example, the X,Y, Z, intensity and velocity of the detected point . Could anyone help me figure out what does each digit mean in the examples below? Note that the two examples are basically obtained with the same pose and same environment. 

Seven digit for a point

180 1 90 176 182 88 67
122 130 232 104 219 124 62
18 75 148 162 191 253 42
60 60 63 63 63 63 64
127 255 63 67 159 172 0
10 96 50 6 246 141 0
73 95 17 43 100 223 0
188 60 63 63 63 63 128
191 31 255 89 203 143 143
136 243 6 96 87 83 83
39 33 6 6 200 170 170
61 61 63 63 62 62 189
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
154 154 205 205 154 51 51
153 153 204 204 153 51 51
13 13 124 208 145 99 99
66 66 65 65 65 65 65
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0

Six digit for a point

180 1 176 182 50 67
122 130 104 219 69 62
18 75 162 191 2 42
60 60 63 63 64 64
127 255 67 159 115 0
10 96 6 246 232 0
73 95 43 100 212 0
188 60 63 63 63 128
191 31 89 203 115 143
136 243 96 87 232 83
39 33 6 200 212 170
61 61 63 62 62 189
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
154 154 0 154 154 154
153 153 0 153 153 153
15 15 212 145 97 97
66 66 65 65 65 65
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

  • Hello,

    The radarscan structure, prior to being published,  is populated with the following fields as described by code in DataHandlerClass.cpp and defined in RadarScan.msg

    • Header
      • Frame ID
      • Timestamp
    • Point Id
    • X
    • Y
    • Z
    • Velocity

    I would suggest using ROS_INFO() API to test and see what these values are as they are assigned. And see how they are when look at the published data compares. RadarScan.msg works for both SDK 3 and 2, what is published in those two ROS messages is different, but the structure is the same. For SDK 3 the Fields highlighted above are the only fields of concern when subscribing from to the topic that the radarscan is published to. The "intensity" field is replaced by SNR and is part of the Side Info TLV just so you know; this is mentioned in the code. I would just verify that the data you are interested in is getting published correctly and that you are only taking that data when subscribing, not the other fields. Additionally, you can modify RadarScan.msg just for the data for SDK 3.

    Best regards,

    Connor Desmond

  • Hi Connor

    Thank you for replying me.

    I tried use rostopic echo to read the /ti_mmwave/Radar_Scan, which is the Radar scan.msg you mentioned.

    However, I am not sure whether the driver is fully compatible with AWR1843AOP. It keeps mentioning that the message is not built. That's why I can only echo the other topics and see whether I can get some information about the data. In my case, the /…/…_pcl_0 is the one I can echo.

    I went through the DataHandlerClass.cpp and found all the ROS topics. However, I am a bit confused by how the radar_scan_pcl_0 consists after going through the code. 

    Do you have any suggestions or comments?

    Thank you again for helping.

    Best

    Tong

  • Hello,

    I just noticed that you are using AWR1843AOP. This is not supported in this lab. The ROS driver just parses the UART data based on the assumed frame structure. It is not an extensive effort though to understand the code for the ROS driver and change the parser to align with the output frame structure that is for AWR1843AOP. The one thing that will for sure need to be accounted for here is that the assumed coordinate system is different for AWR1843AOP then it is for the supported devices. If you wanted to use the ROS driver as is you would need a regular 1843 EVM.

    Best regards,

    Connor Desmond