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: Tlv header error

Part Number: IWR6843ISK-ODS

hello,

while trying to run the people counting demo 

after modifying the appropriate file to parse the people counting demo tlv 

I get TLV header error 

before it get the tlv header error it gives this message "DataUARTHandler Read Thread: Port is open"

and yet nothing was published

thanks

  • Hello,

    Are you using the python based visualizer? If so, does it work without modifications? You shouldn't need to modify the parser to run the people counting demo.

    Regards,

    Jackson

  • thanks for the reply 

    am using rosdriver

    here is mine mmwave.h file

    enum MmwDemo_Output_TLV_Types
    {
    MMWDEMO_OUTPUT_MSG_POINT_CLOUD_2D = 6,

    MMWDEMO_OUTPUT_MSG_TARGET_LIST_2D,

    MMWDEMO_OUTPUT_MSG_TARGET_INDEX
    };

    enum SorterState{ READ_HEADER,
    CHECK_TLV_TYPE,
    READ_POINT_CLOUD_2D,
    READ_TARGET_LIST_2D,
    READ_TARGET_INDEX,
    SWAP_BUFFERS
    };

    struct MmwDemo_output_message_frameHeader_t
    {
    uint32_t version;

    uint32_t platform;

    uint32_t timestamp;

    uint32_t packetLength;

    uint32_t frameNumber;

    uint32_t subframeNumber;

    uint32_t chirpMargin;

    uint32_t frameMargin;

    uint32_t uartSentTime;

    uint32_t trackProcessTime;

    uint16_t numTLVs;

    uint16_t checksum;
    };

    struct MmwDemo_output_message_tlvHeader_t
    {
    uint32_t type; /*!< @brief Range index */
    uint32_t length; /*!< @brief Dopler index */
    };

    struct MmwDemo_output_message_PointCloud_t
    {
    float range;

    float angle;

    float doppler;

    float snr;
    };

    struct MmwDemo_output_message_TargetList_t
    {
    uint32_t tid;

    float posX;

    float posY;

    float velX;

    float velY;

    float accX;

    float accY;

    float EC[9];

    float G;
    };

    struct MmwDemo_output_message_TargetIndex_t
    {
    uint8_t targetID;
    };

    struct mmwDataPacket
    {
    MmwDemo_output_message_frameHeader_t frameHeader;

    MmwDemo_output_message_tlvHeader_t tlvHeader;

    MmwDemo_output_message_PointCloud_t PointCloudData;

    MmwDemo_output_message_TargetList_t TargetListData;

    MmwDemo_output_message_TargetIndex_t TargetIndexData;
    };

  • I modified the dataHandlerClass.cpp to sort incoming data according to the above mmwave.h as well

  • hello Jackson,

    this issue is not resolved yet

  • If you have modified the ROS parser so that it no longer matches the output of the radar sensor, it will not work. Which people counting demo are you trying to run? This looks like 2D output, which most of the people counting demos, especially running on ODS, have a 3D output. Please see the output structure at the following link.

    3D_people_counting_demo_implementation_guide.pdf

    Regards,

    Jackson

  • thanks for the reply jackson I will take a look at the link you sent to know the data structure , 

    please can I contact you later if I run into problem modifying it

  • Hello, You can post a new question, but modifying ROS components is out of the scope of support for this forum. If there is an issue with the radar output or data we are happy to help.

    Regards,

    Jackson

  • Helllo Jackson, 

    it amazing the way assisted me 

    but I need you help again how do I increase the processing time and decrease the number of detected object from the cfg file 

    whiich Cli Command do I have to focus on

    thank you

  • Hello,

    To do this you will want to modify the frame rate and max number of points. Look at the framePeriodicity in frameCfg and maxNumPoints in trackinfCfg. See more info at the link below.

    3D_people_counting_tracker_layer_tuning_guide.pdf

    Regards,

    Jackson

  • hey jackson,

    I came up with this config file 

    dfeDataOutputMode 1
    channelCfg 15 7 0
    adcCfg 2 1
    adcbufCfg -1 0 1 1 1
    lowPower 0 0
    profileCfg 0 60.75 30.00 25.00 59.10 657930 0 54.71 1 96 2950.00 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 96 0 50 1 0
    dynamicRACfarCfg -1 4 4 2 2 8 12 4 8 5 8 0.4 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.0300 1 0 1 0.3 0.85 8.00
    staticRangeAngleCfg -1 0 8 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 70.0 20.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
    staticBoundaryBox -3 3 -3 3 -0.5 3
    boundaryBox -4 4 -4 4 -0.5 3
    sensorPosition 2.0 0 15
    gatingParam 3 2 2 3 4
    stateParam 3 3 6 500 5 6000
    allocationParam 40 100 0.1 20 0.5 20
    maxAcceleration 1 0.1 1
    trackingCfg 1 4 800 20 37 120 1

    but still get tlv error, what do you think could go wrong

  • Hello,

    The cfg file is not going to directly impact the TLV output. You need to look at the UART output format for the 3D people counting demo, as detailed in the above document and in pplcount3d_main.c in the source code, and at the end of the user's guide. This then needs to match the TLV parser for the rosdriver that you are modifying. 
    https://dev.ti.com/tirex/explore/node?node=AIQzhJRYjeBjkiRvsK8EVg__VLyFKFf__LATEST 

    Regards,

    Jackson

  • hello jackson, I was able to launch the sensor

    without tlv error

    and have tried changing the number of points detected but it still isn't

    but yet was not able to read any value 

  • do you think I should make changes to this CLI

    trackingCfg 1 4 100 20 37 96 55
    frameCfg 0 2 96 0 55.0 1 0

    profileCfg 0 60.75 30.00 25.00 59.10 657930 0 54.71 1 96 2950.00 2 1 3

  • Hello,

    This depends on what you are trying to do. You are using the 3D people counting demo binary right? I would make sure your ROS publication is correct before changing anything in the configuration. Please load the binary onto the device, and run the visualizer, directly on the PC, not through ROS, following the steps in the user's guide.

    https://dev.ti.com/tirex/explore/node?node=AIQzhJRYjeBjkiRvsK8EVg__VLyFKFf__LATEST 

    Then make sure your ROS system matches what you are seeing from the demo visualizer.

    Regards,

    Jackson