Using high precision measurement in Nordic Distance Toolbox

Hey,

I watched webinar with presentation of NDT and a Lidar as a reference data and if looks quite impressive for high precision calc method.
We are using 7002 DK and we would like to really see how it works. Currently we did some testing for IFFT method from nrf-sdk samples, but as it was said in webinar these result are not trustworthy for wide measurement ranges.

However, i haven't seen example usage of nrf_dm_high_precision_calc() function in sdk, or github.
I know that there is a need of calling nrf_dm_populate_report but i still fail using this with sdk 2.5.0.
Could you maybe share a piece of code, where you present how to properly use these tools for high precision distance measurement?
It could be for other target or SDK version, i just need a start point.It could be the code, that you use for webinar measurement with roll camera :)

We are eager to test it and try to auto-map 5x5 nrf device matrix in large space with coodrdinates, but for this purpose we need as precise result as possible.
Of course, we could share our results of this experiments.

Thanks!

  • Hey, I spent 2 days of rebuilding, changing hardware, conditions, SDK versions and even build platforms. Not matter what i did high preciosion measurements stopped working at about 2 meters. I'm afraid you've got some issue here :(

    Below i present my measurements based on IFFT method. Not quite good unfortunatelly, but like you have said, probably some Kalman filtering would do the job here. But being honest i really thought such filtering or calculation will be done inside a driver Disappointed

    Open space measurements

    Measurements done in predictable conditions - open office space, antennas placed 1m above floor, no obstacles in between.

    Distance

    Measured value

    1m

    1.2m

    2m

    2.1m

    3m

    3.2m

    4m

    4.2m

    5m

    5.2m

    6m

    6.1m

    7m

    7.2m

    8m

    9m

    9m

    14m

    10m

    9.5m

    11m

    14.7m

    12m

    13.6m

    Walls measurements

    Real conditions test. DUTs placed in different rooms - up to 3 concrete walls in between, glass or wooden doors.

    Distance

    Measured value

    2m

    2.5m

    4m

    4.4m

    9m

    9.6m

    12m

    13.5m

    14m

    14.1m

    These results are after "visual selection", as there is even 1-2m variations in each measurement. I would suggest to take a look at this sample guys and make some adjustments here.

  • Dymek117 said:
    What I'm gonna do is exactly what you described - use high precision if available and IFFT in other case.

    Understood. Switching to one of the regular results if high precision doesn't work sounds like a good idea, but keep also in mind what I said about mixing results and using them in the situation they are best. IFFT with something like a median 3 filter does perform okay though.

    Dymek117 said:
    I'm going to do some openspace test and some other with walls in between. Hopefully it will be good enough. 

    Scenarios with no line-of-sight and possibly a with paths that goes around walls being the strongest path measured, are typical scenarios that are quite difficult to handle when doing distance estimation.

    Dymek117 said:
    Is it regular situations on devkits? I tried to move away from any other signal sources. Maybe there is something wrong in my setup, shouldn't I use some external antenna, etc?

    I haven't tested this over various distances with the DK myself. Of course it might be that you get better results with an optimized external antenna. 

    Having a look at the SINR indicators themselves instead of the lack of a result might help you out.

    If there are many SINR indicators that are not "HIGH" the high precision algorithm will do poorly and instead return NaN. The indicators are part of the `nrf_dm_report_t`, so it would be possible to just overwrite the values of all of the indicators to be https://github.com/nrfconnect/sdk-nrfxlib/blob/main/nrf_dm/include/nrf_dm.h#L41, before calling https://github.com/nrfconnect/sdk-nrfxlib/blob/main/nrf_dm/include/nrf_dm.h#L379. This might give poor results though.

    Regards,

    ELfving

    Regards,

    Elfving

Related