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.

IWR6843ISK-ODS: Issues in getting pointcloud from 3D people tracking post change in cfg file

Part Number: IWR6843ISK-ODS

Hello,

I am using ros2 with Ubuntu 22.04LTS to get point cloud data from IWR6843ISK-ODS using 3D people detection binary file. I have following queries:

1. Not getting point cloud data on using 3D ceil mouting settings with ODS antenna. I want to get equal angle resolution in elevation and azimuth and therefore aiming for ceil mouting than wall mounting configuration.
I am using the following cfg as mentioned in the Detection layer parameter tuning guide.

% SDK Parameters
% See the SDK user's guide for more information
% "C:\ti\mmwave_sdk_[VER]\docs\mmwave_sdk_user_guide.pdf"
sensorStop
flushCfg
dfeDataOutputMode 1
channelCfg 15 7 0
adcCfg 2 1
adcbufCfg -1 0 1 1 1
lowPower 0 0

% Radar and Point Cloud Detection Layer Parameters
% See the Detection Layer Tuning Guide for more information
% "C:\ti\mmwave_industrial_toolbox_[VER]\labs\people_counting\docs\3D_people_counting_detection_layer_tuning_guide.pdf"
profileCfg 0 61.2 60 17 50 657930 0 55.27 1 64 2000 2 1 36
chirpCfg 0 0 0 0 0 0 0 1
chirpCfg 1 1 0 0 0 0 0 2
chirpCfg 2 2 0 0 0 0 0 4
frameCfg 0 2 224 0 120 1 0
dynamicRACfarCfg -1 10 1 1 1 8 8 6 4 4 6 0.5 1 1
staticRACfarCfg -1 10 1 1 1 8 8 6 4 8 15.00 0.30 0 0
dynamicRangeAngleCfg -1 7 0.0010 2 0 
dynamic2DAngleCfg -1 5 1 1 1 15 2
staticRangeAngleCfg -1 0 1 1
antGeometry0 0 0 -1 -1 -2 -2 -3 -3 -2 -2 -3 -3
antGeometry1 0 -1 -1 0 0 -1 -1 0 -2 -3 -3 -2
antPhaseRot 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1
fovCfg -1 60.0 60.0
compRangeBiasAndRxChanPhase 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

% Tracker Layer Parameters
% See the Tracking Layer Tuning Guide for more information
% "C:\ti\mmwave_industrial_toolbox_[VER]\labs\people_counting\docs\3D_people_counting_tracker_layer_tuning_guide.pdf"
staticBoundaryBox 0 1 0.9 0.9 -0.4 0.4
boundaryBox 0 2 -1 1 -0.5 0.5
sensorPosition 0 0 0
gatingParam 4 2 2 2 10
stateParam 10 5 5 50 5 600
allocationParam 20 20 0.05 20 0.5 2
maxAcceleration 0.1 0.1 0.1
trackingCfg 1 2 250 10 20 260 94
presenceBoundaryBox -3 3 2 6 0.5 2.5
sensorStart

Could you please guide on how to make it work?

2. 3D wall mounting configuration with default parameters and rangeAngleEstMethod (under dynamicRangeAngleCfg) set to 1 works, if i change profilecfg and framecfg parameters as obtained from mmWaveSensingEstimator, even then I get no point cloud data. And if i change rangeAngleEstMethod to 2 it doesnt work. 
I want to use the parameters commented below:

% SDK Parameters
% See the SDK user's guide for more information
% "C:\ti\mmwave_sdk_[VER]\docs\mmwave_sdk_user_guide.pdf"
sensorStop
flushCfg
dfeDataOutputMode 1
channelCfg 15 7 0
adcCfg 2 1
adcbufCfg -1 0 1 1 1
lowPower 0 0

% Radar and Point Cloud Detection Layer Parameters
% See the Detection Layer Tuning Guide for more information
% "C:\ti\mmwave_industrial_toolbox_[VER]\labs\people_counting\docs\3D_people_counting_detection_layer_tuning_guide.pdf"

profileCfg 0 60.75 10.00 10.00 59.10 657930 0 54.71 1 94 3000.00 2 1 36
%profileCfg 0 60 7 7.9 65.23 657930 0 58.85 1 169 3000 2 1 30
chirpCfg 0 0 0 0 0 0 0 1
chirpCfg 1 1 0 0 0 0 0 2
chirpCfg 2 2 0 0 0 0 0 4
frameCfg 0 2 64 0 200 1 0
%frameCfg 0 2 42 0 200 1 0
dynamicRACfarCfg -1 2 77 2 2 8 12 4 8 10.00 9.00 0.40 1 1
staticRACfarCfg -1 2 77 2 2 8 8 6 4 10.00 15.00 0.30 0 0
dynamicRangeAngleCfg -1 0.75 0.0010 1 0
dynamic2DAngleCfg -1 1.5 0.0300 1 0 1 0.30 0.85 8.00
staticRangeAngleCfg -1 1 8 8
%fineMotionCfg -1 1 1 10 2
antGeometry0 0 0 -1 -1 -2 -2 -3 -3 -2 -2 -3 -3
antGeometry1 0 -1 -1 0 0 -1 -1 0 -2 -3 -3 -2
antPhaseRot 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1
fovCfg -1 45.0 30.0
compRangeBiasAndRxChanPhase 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0

% Tracker Layer Parameters
% See the Tracking Layer Tuning Guide for more information
% "C:\ti\mmwave_industrial_toolbox_[VER]\labs\people_counting\docs\3D_people_counting_tracker_layer_tuning_guide.pdf"
staticBoundaryBox 0 1 0.9 0.9 -0.4 0.4
boundaryBox 0 2 -1 1 -0.5 0.5
sensorPosition 0 0 0
gatingParam 4 2 2 2 10
stateParam 10 5 5 50 5 600
allocationParam 20 20 0.05 20 0.5 2
maxAcceleration 0.1 0.1 0.1
trackingCfg 1 2 250 10 20 260 94
presenceBoundaryBox -3 3 2 6 0.5 2.5
sensorStart

I want to have a finer range resolution of less than 5cm and that's he reason to play with these parameters.
Could you suggest on why is it not working or what i am doing wrong here?

3. How to get the tracking layer output in ros2? I checked all the topics and only 2 topic output pointcloud information /ti_mmwave/radar_scan and /ti_mmwave/radar_scan_pcl, rest all are empty.

Could you please check these cfg files at your end and suggest how to get dense pointcloud information from this?

Thank you.

Best regards,
Pushkar

  • Hi

    Thanks for your query. Please allow us a couple of days to respond

    Regards

  • Hello Pushkar

    1. Are you able to get a default ceiling mount configuration to work? If so then it is probably a cfg setting you have changed that has made it too aggressive or computation intensive.

    2. rangeAngleEstMethod being changed from 1 to 2 changes the way the processing chain works on a fundamental level. Settings that work with one will not work with another. It is for this reason that if you check the CFAR parameters in the default configuration for 3D People Tracking demo (which uses wall mount application CFAR), versus the parameters in the default configurations for Overhead People Tracking (ceiling mount), they are very different.

    Wall Mount Default

    dynamicRACfarCfg -1 4 4 2 2 8 12 4 12 5.00 8.00 0.40 1 1
    staticRACfarCfg -1 6 2 2 2 8 8 6 4 8.00 15.00 0.30 0 0
    dynamicRangeAngleCfg -1 0.75 0.0010 1 0
    dynamic2DAngleCfg -1 3.0 0.0300 1 0 1 0.30 0.85 8.00
    Ceiling Mount Default
    dynamicRACfarCfg -1 10 1 1 1 8 8 6 4 4.00 6.00 0.50 1 1
    staticRACfarCfg -1 4 4 2 2 8 16 4 6 6.00 13.00 0.50 0 0
    dynamicRangeAngleCfg -1 7.000 0.0010 2 0
    dynamic2DAngleCfg -1 5 1 1 1.00 15.00 2
    Page 24 of our 3D People Tracking Detection Layer Guide covers the rangeAngleEstMethod values
    My suggestion: Start with a default configuration and change only chirp parameters first. These are the parameters found in the mmWaveSensingEstimator. Unfortunately this sensing estimator is not perfect and there are still several dependencies and interactions between parameters that are not covered via error and warning check. It covers most, but not all as it is currently. I can assure you that you are able to get a range resolution under 5cm. For maximizing range resolution I recommend making sure the start frequency is set to 60.5, and you get end frequency to get as close to 64 without going over. You should also try doing a mixture of increasing numAdcSamples and decreasing digOutSampleRate which will both improve your range resolution.
    Once you have a working chirp design, only then should you go and change detection layer parameters.

    3. RadarTrackArray will not publish anything until a valid track is found and sent out from the sensor. Are you or a person standing in front of the sensor when looking to see if track information is sent?

  • Hi Pedrhom,

    Thank you for your reply.

    1. I am not able to run the default ceiling mount configuration as mentioned in 3D People Tracking Detection Layer Guide.

    2. I understand that both the methods are different and I tried different combination to make it work but it didnt. Somewhere it is mentioned in the "3D People Tracking Detection Layer Guide" that for ODS antenna rangeAngleEstMethod shall be set to 2. For wall mouting cfg, value of 1 works but 2 doesnt. 
    Since, ceil mounting provides same resolution in range and elevation i would like to use for testcase. For wall mounting, the resolutions are different and would need higher FOV in elevation. In wall mouting, it is 30 and ceil mount it is 60 degrees. 


    Could you suggest what can i try to make ceil mounting cfg work?

    3. I will check with person standing. 

    Best regards,
    Pushkar

  • Hello Pushkar,

    1. Are you able to run that configuration outside of ROS? To isolate whether its the ROS driver or your setup related.

    2. When you set rangleAngleEstMethod to 2, you have to change a lot of fields to make it work. For example the dynamic2DAngleCfg parameter is completely different depending on whether rangeAngleEstMethod is 1 or 2. That is why in the detection layer guide there are two dynamic2DAngleCfg tables, one on page 29 and the other on page 31. You could also try flashing the Overhead 3D People Tracking binary which has better memory optimization which is required for higher end configurations in ceiling mount mode, as ceiling mount mode requires more processing and memory.

    Best Regards,

    Pedrhom

  • Hi Pedrhom,

    I didn't check the configuration outside ROS but that is a good idea. I will check it.

    Thank you and regards,
    Pushkar