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.

AWR1642BOOST: ROS package 1642_multi_2d_0.launch gives error "Command failed (mmWave sensor did not respond with 'Done')"

Part Number: AWR1642BOOST
Other Parts Discussed in Thread: IWR1843BOOST, UNIFLASH,

Hi,

I have been trying to use my new AWR1642BOOST board with ROS and I am encountering the following error. I have the same issue with the IWR1843BOOST as well. I have flashed the devices with the demo code in the SDK using Uniflash and then I am connecting it to the system with ROS and launching the ROS package.I am using an Ubuntu 18 system with ROS melodic installed. I am seeing the following errors:

[ INFO] [1654781853.249424486]: mmWaveQuickConfig: Configuring mmWave device using config file: /mmwave_ti_ros/ros_driver/src/ti_mmwave_rospkg/cfg/1642_2d.cfg
[ INFO] [1654781853.253626230]: waitForService: Service [/mmWaveCLI] has not been advertised, waiting...
[ INFO] [1654781853.373661062]: Initializing nodelet with 2 worker threads.
[ INFO] [1654781853.436605793]: mmWaveCommSrv: command_port = /dev/ttyACM0
[ INFO] [1654781853.438026546]: mmWaveCommSrv: command_rate = 115200
[ INFO] [1654781853.453446163]: mmWaveDataHdl: data_port = /dev/ttyACM1
[ INFO] [1654781853.454603541]: mmWaveDataHdl: data_rate = 921600
[ INFO] [1654781853.455049513]: mmWaveDataHdl: max_allowed_elevation_angle_deg = 90
[ INFO] [1654781853.455082512]: mmWaveDataHdl: max_allowed_azimuth_angle_deg = 90
[ INFO] [1654781853.472754367]: waitForService: Service [/mmWaveCLI] is now available.
[ INFO] [1654781854.317173568]: mmWaveCommSrv: Sending command to sensor: 'sensorStop'
[ INFO] [1654781855.318523823]: mmWaveCommSrv: Received response from sensor: 'sensorStop
'
[ERROR] [1654781855.350354819]: mmWaveQuickConfig: Command failed (mmWave sensor did not respond with 'Done')
[ERROR] [1654781855.350485664]: mmWaveQuickConfig: Response: 'sensorStop
'

Please advise me on how I can resolve this error and proceed to get point cloud data. Any help is appreciated.

Thank you

- Adithya

  • Hello Adithya,

    After flashing the boards with the firmware, if it was successful, did you change the BOOST board back to functional mode? "sensorStop" is the very first command sent to the sensor and if it is responding with ' ' then either the board is in the wrong operational mode as it has to now be in functional mode or the flash was bad. To double check, here is the EVM operational mode guide: https://dev.ti.com/tirex/explore/node?a=VLyFKFf__4.11.0&node=AMLjV2I4hAEEwpYRfP2okA__VLyFKFf__4.11.0

    Regards,

    Pedrhom Nafisi

  • Hi Pedrhom,

    Yes, I have verified that the board is back to functional mode. I have actually tried flashing the device multiple times to ensure it wasn't just one bad flash. Also, note that the response from the board isn't ' ' it is echoing the same 'sensorStop' command. Please suggest how I can debug this issue.

    Thanks
    Regards,
    Adithya

  • Hello Adithya,

    Lets try something as a test. Go to and open ros_driver/src/ti_mmwave_rospkg/src/mmWaveQuickConfig.cpp in a text editor. Then go and comment out every place you see "return 1" or starts with "ROS_ERROR". If you notice, these are the lines of code that are making you error out, and the only good response it is looking for is "Done". With this commented out you can at least continue forward and see what happens when trying to give input values of more than just "sensorStop". This allows debug of statements that do not respond with "Done".

    Make sure after this is done that you run "catkin_make" on the project to compile the code with the new changes.

    Regards,

    Pedrhom Nafisi

  • Hi Pedrhom,

    SUMMARY
    ========
    
    PARAMETERS
     * /radar_0/ti_mmwave/command_port: /dev/ttyACM0
     * /radar_0/ti_mmwave/command_rate: 115200
     * /radar_0/ti_mmwave/data_port: /dev/ttyACM1
     * /radar_0/ti_mmwave/data_rate: 921600
     * /radar_0/ti_mmwave/frame_id: /ti_mmwave_0
     * /radar_0/ti_mmwave/max_allowed_azimuth_angle_deg: 90
     * /radar_0/ti_mmwave/max_allowed_elevation_angle_deg: 90
     * /radar_0/ti_mmwave/mmWaveCLI_name: /mmWaveCLI
     * /radar_0/ti_mmwave_config/mmWaveCLI_name: /mmWaveCLI
     * /rosdistro: melodic
     * /rosversion: 1.14.13
    
    NODES
      /
        radar_baselink_0 (tf/static_transform_publisher)
        rviz (rviz/rviz)
      /radar_0/
        ti_mmwave (ti_mmwave_rospkg/ti_mmwave_rospkg)
        ti_mmwave_config (ti_mmwave_rospkg/mmWaveQuickConfig)
    
    auto-starting new master
    process[master]: started with pid [39574]
    ROS_MASTER_URI=http://localhost:11311
    
    setting /run_id to ce199c2e-eb3c-11ec-af02-000c29e69c31
    process[rosout-1]: started with pid [39588]
    started core service [/rosout]
    process[radar_0/ti_mmwave-2]: started with pid [39592]
    process[radar_0/ti_mmwave_config-3]: started with pid [39597]
    process[radar_baselink_0-4]: started with pid [39598]
    [ INFO] [1655140698.970070605]: mmWaveQuickConfig: Configuring mmWave device using config file: /home/adithyasunil/ros_workspaces/mmwave_ti_ros/ros_driver/src/ti_mmwave_rospkg/cfg/1642_2d.cfg
    [ INFO] [1655140698.971288798]: waitForService: Service [/mmWaveCLI] has not been advertised, waiting...
    process[rviz-5]: started with pid [39605]
    [ INFO] [1655140699.088915113]: Initializing nodelet with 2 worker threads.
    [ INFO] [1655140699.164576665]: mmWaveCommSrv: command_port = /dev/ttyACM0
    [ INFO] [1655140699.167240398]: mmWaveCommSrv: command_rate = 115200
    [ INFO] [1655140699.183928893]: waitForService: Service [/mmWaveCLI] is now available.
    [ INFO] [1655140699.185598060]: mmWaveDataHdl: data_port = /dev/ttyACM1
    [ INFO] [1655140699.185698813]: mmWaveDataHdl: data_rate = 921600
    [ INFO] [1655140699.185898512]: mmWaveDataHdl: max_allowed_elevation_angle_deg = 90
    [ INFO] [1655140699.186060415]: mmWaveDataHdl: max_allowed_azimuth_angle_deg = 90
    [ INFO] [1655140700.099630866]: mmWaveCommSrv: Sending command to sensor: 'sensorStop'
    [ INFO] [1655140701.102024081]: mmWaveCommSrv: Received response from sensor: 'sensorStop
    '
    [ INFO] [1655140701.136823696]: mmWaveCommSrv: Sending command to sensor: 'flushCfg'
    [ INFO] [1655140702.139134296]: mmWaveCommSrv: Received response from sensor: 'flushCfg
    '
    [ INFO] [1655140702.161342563]: mmWaveCommSrv: Sending command to sensor: 'dfeDataOutputMode 1'
    [ INFO] [1655140703.163746026]: mmWaveCommSrv: Received response from sensor: 'dfeDataOutputMode 1
    '
    [ INFO] [1655140703.193587618]: mmWaveCommSrv: Sending command to sensor: 'channelCfg 15 3 0'
    [ INFO] [1655140704.197163875]: mmWaveCommSrv: Received response from sensor: 'channelCfg 15 3 0
    '
    [ INFO] [1655140704.222871085]: mmWaveCommSrv: Sending command to sensor: 'adcCfg 2 1'
    [ INFO] [1655140705.225147960]: mmWaveCommSrv: Received response from sensor: 'adcCfg 2 1
    '
    [ INFO] [1655140705.248557027]: mmWaveCommSrv: Sending command to sensor: 'adcbufCfg -1 0 1 1 0'
    [ INFO] [1655140706.253905904]: mmWaveCommSrv: Received response from sensor: 'adcbufCfg -1 0 1 1 0
    '
    [ INFO] [1655140706.277559397]: mmWaveCommSrv: Sending command to sensor: 'profileCfg 0 77 429 7 57.14 0 0 70 1 256 5209 0 0 30'
    [ INFO] [1655140707.282814072]: mmWaveCommSrv: Received response from sensor: 'profileCfg 0 77 429 7 57.14 0 0 70 1 256 5209 0 0 30
    '
    [ INFO] [1655140707.314024526]: mmWaveCommSrv: Sending command to sensor: 'chirpCfg 0 0 0 0 0 0 0 1'
    [ INFO] [1655140708.316802603]: mmWaveCommSrv: Received response from sensor: 'chirpCfg 0 0 0 0 0 0 0 1
    '
    [ INFO] [1655140708.337677261]: mmWaveCommSrv: Sending command to sensor: 'chirpCfg 1 1 0 0 0 0 0 2'
    [ INFO] [1655140709.340400076]: mmWaveCommSrv: Received response from sensor: 'chirpCfg 1 1 0 0 0 0 0 2
    '
    [ INFO] [1655140709.363991443]: mmWaveCommSrv: Sending command to sensor: 'frameCfg 0 1 16 0 100 1 0'
    [ INFO] [1655140710.367763289]: mmWaveCommSrv: Received response from sensor: 'frameCfg 0 1 16 0 100 1 0
    '
    [ INFO] [1655140710.392577899]: mmWaveCommSrv: Sending command to sensor: 'lowPower 0 1'
    [ INFO] [1655140711.395954828]: mmWaveCommSrv: Received response from sensor: 'lowPower 0 1
    '
    [ INFO] [1655140711.418708669]: mmWaveCommSrv: Sending command to sensor: 'guiMonitor -1 1 1 0 0 0 1'
    [ INFO] [1655140712.421961959]: mmWaveCommSrv: Received response from sensor: 'guiMonitor -1 1 1 0 0 0 1
    '
    [ INFO] [1655140712.444204521]: mmWaveCommSrv: Sending command to sensor: 'cfarCfg -1 0 2 8 4 3 0 15 1'
    [ INFO] [1655140713.447247739]: mmWaveCommSrv: Received response from sensor: 'cfarCfg -1 0 2 8 4 3 0 15 1
    '
    [ INFO] [1655140713.473899082]: mmWaveCommSrv: Sending command to sensor: 'cfarCfg -1 1 0 4 2 3 1 15 1'
    [ INFO] [1655140714.477893875]: mmWaveCommSrv: Received response from sensor: 'cfarCfg -1 1 0 4 2 3 1 15 1
    '
    [ INFO] [1655140714.507135037]: mmWaveCommSrv: Sending command to sensor: 'multiObjBeamForming -1 1 0.5'
    [ INFO] [1655140715.510146931]: mmWaveCommSrv: Received response from sensor: 'multiObjBeamForming -1 1 0.5
    '
    [ INFO] [1655140715.532781292]: mmWaveCommSrv: Sending command to sensor: 'clutterRemoval -1 0'
    [ INFO] [1655140716.535123284]: mmWaveCommSrv: Received response from sensor: 'clutterRemoval -1 0
    '
    [ INFO] [1655140716.557846459]: mmWaveCommSrv: Sending command to sensor: 'calibDcRangeSig -1 0 -5 8 256'
    [ INFO] [1655140717.561910398]: mmWaveCommSrv: Received response from sensor: 'calibDcRangeSig -1 0 -5 8 256
    '
    [ INFO] [1655140717.583853438]: mmWaveCommSrv: Sending command to sensor: 'extendedMaxVelocity -1 0'
    [ INFO] [1655140718.586402779]: mmWaveCommSrv: Received response from sensor: 'extendedMaxVelocity -1 0
    '
    [ INFO] [1655140718.609928719]: mmWaveCommSrv: Sending command to sensor: 'bpmCfg -1 0 0 1'
    [ INFO] [1655140719.612219600]: mmWaveCommSrv: Received response from sensor: 'bpmCfg -1 0 0 1
    '
    [ INFO] [1655140719.635401124]: mmWaveCommSrv: Sending command to sensor: 'lvdsStreamCfg -1 0 0 0'
    [ INFO] [1655140720.638006050]: mmWaveCommSrv: Received response from sensor: 'lvdsStreamCfg -1 0 0 0
    '
    [ INFO] [1655140720.660410199]: mmWaveCommSrv: Sending command to sensor: 'compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0'
    [ INFO] [1655140721.666083133]: mmWaveCommSrv: Received response from sensor: 'compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
    '
    [ INFO] [1655140721.689802412]: mmWaveCommSrv: Sending command to sensor: 'measureRangeBiasAndRxChanPhase 0 1.5 0.2'
    [ INFO] [1655140722.693891554]: mmWaveCommSrv: Received response from sensor: 'measureRangeBiasAndRxChanPhase 0 1.5 0.2
    '
    [ INFO] [1655140722.714780911]: mmWaveCommSrv: Sending command to sensor: 'CQRxSatMonitor 0 3 5 121 0'
    [ INFO] [1655140723.717908520]: mmWaveCommSrv: Received response from sensor: 'CQRxSatMonitor 0 3 5 121 0
    '
    [ INFO] [1655140723.739509412]: mmWaveCommSrv: Sending command to sensor: 'CQSigImgMonitor 0 127 4'
    [ INFO] [1655140724.742662767]: mmWaveCommSrv: Received response from sensor: 'CQSigImgMonitor 0 127 4
    '
    [ INFO] [1655140724.764495686]: mmWaveCommSrv: Sending command to sensor: 'analogMonitor 0 0'
    [ INFO] [1655140725.766581858]: mmWaveCommSrv: Received response from sensor: 'analogMonitor 0 0
    '
    [ INFO] [1655140725.788506989]: mmWaveCommSrv: Sending command to sensor: 'aoaFovCfg -1 -90 90 -90 90'
    [ INFO] [1655140726.791390801]: mmWaveCommSrv: Received response from sensor: 'aoaFovCfg -1 -90 90 -90 90
    '
    [ INFO] [1655140726.811676591]: mmWaveCommSrv: Sending command to sensor: 'cfarFovCfg -1 0 0 8.92'
    [ INFO] [1655140727.815191610]: mmWaveCommSrv: Received response from sensor: 'cfarFovCfg -1 0 0 8.92
    '
    [ INFO] [1655140727.835608046]: mmWaveCommSrv: Sending command to sensor: 'cfarFovCfg -1 1 -1 1.00'
    [ INFO] [1655140728.838400783]: mmWaveCommSrv: Received response from sensor: 'cfarFovCfg -1 1 -1 1.00
    '
    [ INFO] [1655140728.860404750]: mmWaveCommSrv: Sending command to sensor: 'calibData 0 0 0'
    [ INFO] [1655140729.862211483]: mmWaveCommSrv: Received response from sensor: 'calibData 0 0 0
    '
    [ INFO] [1655140729.892409600]: mmWaveCommSrv: Sending command to sensor: 'sensorStart'
    [ INFO] [1655140730.894544926]: mmWaveCommSrv: Received response from sensor: 'sensorStart
    '
    [ INFO] [1655140730.953603347]: mmWaveQuickConfig: mmWaveQuickConfig will now terminate. Done configuring mmWave device using config file: /home/adithyasunil/ros_workspaces/mmwave_ti_ros/ros_driver/src/ti_mmwave_rospkg/cfg/1642_2d.cfg
    [ INFO] [1655140730.970082425]: 
    
    ==============================
    List of parameters
    ==============================
    Number of range samples: 22021
    Number of chirps: -880233832
    f_s: 0.000 MHz
    f_c: nan GHz
    Bandwidth: nan MHz
    PRI: 0.000 us
    Frame time: 0.000 ms
    Max range: nan m
    Range resolution: nan m
    Max Doppler: +-nan m/s
    Doppler resolution: nan m/s
    ==============================
    
    [ INFO] [1655140730.972208060]: DataUARTHandler Read Thread: Port is open
    [radar_0/ti_mmwave_config-3] process has finished cleanly
    


    This is the output I am getting after commenting out all the error and return lines. It seems that the program is running but the sensor responses don't seem to be correct. 

    Regards,
    Adithya

  • Hello Adithya,

    This is quite the weird behavior. So the observation here is that for whatever reason, the sensor is simply regurgitating the input as output. What should be happening is it needs to respond with "Done". Here is what we can do next to isolate the problem some more: try doing the Soft Reset Using CLI lab (https://dev.ti.com/tirex/explore/node?a=VLyFKFf__4.11.0&node=ACeLNnq-7-B.6PnmfPHO0Q__VLyFKFf__4.11.0).

    Essentially you will be using TeraTerm to actively send your sensor commands. If reset is successful, try sending commands like sensorStop and you are looking for the word "Done". You can send every command within mmwave_ti_ros/browse/ros_driver/src/ti_mmwave_rospkg/cfg/1642_2d.cfg via copy and paste as that is the .cfg file used in this launch file.

    Best Regards,

    Pedrhom Nafisi

  • Hi Pedrhom,

    I will try this and let you know the result. 

    (Issue marked as resolved by mistake)

    Thanks and Regards,
    Adithya

  • Hi Pedrhom,

    I am receiving the Done responses when I am sending commands through the CLI. So, the issue is most likely in the ROS package? Any thoughts?

    Thank you
    Regards,
    Adithya

  • Hello Adithya,

    Correct, we have isolated the problem to somewhere in the ROS configuration/communication and that your sensor is working properly. To double check you set the UART ports correctly in Ubuntu, can you please confirm you have done step 7 properly from this ROS guide from the industrial toolbox (https://dev.ti.com/tirex/explore/node?a=VLyFKFf__4.11.0&node=AFb4FPjEEzryPswZ9ILeFQ__VLyFKFf__4.11.0)? 

    This ensures the right port is being read for input and output. It is possible you are trying to send commands to the wrong port. A valid port, but incorrect one.

    Best Regards,

    Pedrhom Nafisi

  • Hi Pedrhom,

    I haven't done this step as the note above the step stated that it is not valid for the BOOST board. I shall try following the step and update you with the results soon.

    Thank you
    Regards,
    Adithya

  • Hi Pedrhom,

    I have tried step 7 but the "ls -l /dev/ | grep mmWave" returns nothing. However, the board seems to be working now. I am able to view the point cloud.

    Thank you
    Regards,
    Adithya