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.

IWR6843AOPEVM: Area Scanning in ROS

Part Number: IWR6843AOPEVM

Hello,

I have created code for a "ROS-compatible" version of the Area Scanning code. I used the DataHandlerClass.cpp code as a reference. The code runs and publishes the Detected point cloud. However, I am having an issue with the rostopic output rate. My configuration file is set up for a 10Hz rate, but rostopic publishes at closer to 7.5Hz. I have tried to simplify the code by only publishing the Detected point cloud at TLV=1 and NOT the static or tracked object list. It doesn't seem to help.

I have attached my modified ROS driver for your consideration. I'm wondering if this is an issue with the Configuration file or is it an inherent limitation of the Area Scanning demo because of the clustering algorithms that are running on-chip?

Actually, I have no idea what the Area Scanning configuration file parameters are. For example, what do the values in trackingCfg 1 2 250 20 20 260 100 90 relate to? Is there documentation on this?


Regards


Rachel

ti_mmwave_rospkg.tar.gz

  • Hi Rachel,

    Is your config file attached in your driver? What is the name of the file?

    Is it possible that if the ROS driver doesn't see any points, then it will not publish anything? You could also try changing frameCfg to send out points more often (changing the frame rate parameter).

    All parameters have been documented. In the area scanner cfg file, there are commands from the mmWave SDK, from the GTRACK algorithm, and also specific to the area scanner demo. I will list the relevant documentation here:

    1. mmWave SDK. You can find the parameters and commands from Table 1 of the mmWave SDK user's guide. You can get this in the docs/ folder of the mmWave SDK after installation.

    2. The GTRACK algorithm. You can find the documentation for this in the Industrial Toolbox Labs folder. Look for the following document in the People Counting directory: 3D_people_counting_tracker_layer_tuning_guide.pdf

    3. Finally, there are two other commands specific to the Area Scanner demo. In the Industrial Toolbox Labs folder, look for the document 'cli_commands.pdf' in the Area Scanner directory.

  • Hi Sabeeh,

    Thanks for the reply.

    After reviewing the documentation you recommended, I'm not convinced that the timing issue is related to my configuration file. Increasing the speed in the FrameCfg isn't a viable solution for me. I already have it set to 100ms, so I would like to get the rostopic output publishing at this speed.

    In the previous driver file I linked the configuration file was located in the cfg folder. It's named 6843AOP_AS. Basically it's the same configuration file used for the 6843AOP Area Scanning demo. I have attached my most recent revision of my modified driver. I'm confident that the code is functional. It publishes the point cloud, but at approx 7 Hz instead of 10Hz.

    Could it be a fundamental limitation of the Area Scanning firmware? Perhaps there's too many TLV data sources to be processed within a single mutex function or something?

    I'm thinking of trying with the People Counting demo instead. This seems to have the same "object tracking" functionality as the area scanning. Maybe I'm mistaken?

    Regards

    Rachel


    0412.ti_mmwave_rospkg.tar.gz

  • I've had a look at your cfg file, thanks for sharing.

    I'd also like to stress that if points are not seen by the sensor, than the driver will not publish anything to the topic. You might actually be getting close to 10Hz, with just "dropped" frames in between. It might be a worthwhile exercise to modify the driver such that it will publish onto the topic, but just with no data. For your source code, in AreaScanning.cpp, it seems to be starting at line 686.

    If the above does not resolve your issue, then there may be a limitation of the serial package itself (used for USB communication) and/or the driver implemented by ti_mmwave_rospkg. It would be interesting to see if another tool (eg. rosserial or python) would perform better.

    Out of curiosity, which tool are you using to measure the output speed of the topic?

  • Hi Sabeeh,


    Thank for your continued help. So it seems that with no target tracking, the point cloud is publishing quite well (close to 10Hz). As soon as tracking is enabled and a target is present, it drops to about 7Hz. I guess this is a firmware issue. The same case happens for a 20Hz configuration file.

    I guess I'll have to explore other options or review the firmware code.

    Regards

    Rachel