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.
Tool/software:
I am trying to read point cloud data from the TI AWR1843Boost using ROS2 Humble on Ubuntu 22.04. I followed the configuration guide for the ROS2 driver provided at this link: https://dev.ti.com/tirex/explore/node?node=A__AFIEVaaBoBCgo.VCtJenZQ__radar_toolbox__1AslXXD__LATEST. The compilation process completed without any errors.
However, when I attempt to execute the command `ros2 launch 1843_Standard.py`
in the terminal, no data is returned. The terminal displays the following error message: cannot publish data, at ./src/rmw_publish.cpp:62 during '__function__'
.
More detailed terminal output is as follows:
$ ros2 launch 1843_Standard.py [INFO] [launch]: All log files can be found below /home/shu/.ros/log/2024-08-12-20-20-34-235342-mahalia-38381 [INFO] [launch]: Default logging verbosity is set to INFO [INFO] [mmWaveCommSrv-2]: process started with pid [38384] [INFO] [mmWaveQuickConfig-3]: process started with pid [38386] [INFO] [ParameterParser-4]: process started with pid [38388] [INFO] [DataHandlerClass-5]: process started with pid [38390] [INFO] [ConfigParameterServer-1]: process started with pid [38382] [mmWaveQuickConfig-3] [INFO] [1723486834.449115529] [rclcpp]: [mmWaveQuickConfig-3] [mmWaveQuickConfig-3] ============================== [mmWaveQuickConfig-3] mmWave ROS Driver is starting [mmWaveQuickConfig-3] ============================== [mmWaveQuickConfig-3] [mmWaveQuickConfig-3] [INFO] [1723486834.449163929] [rclcpp]: mmWaveQuickConfig: Configuring mmWave device using config file: /home/shu/Documents/myRos2/mmwave_ti_ros/ros2_driver/install/ti_mmwave_rospkg/share/ti_mmwave_rospkg/cfg/1843_Standard.cfg [DataHandlerClass-5] [INFO] [1723486834.458111373] [rclcpp]: DataUARTHandler Read Thread: Port is open [mmWaveQuickConfig-3] [INFO] [1723486834.509560491] [rclcpp]: File was opened [mmWaveCommSrv-2] [INFO] [1723486834.513696105] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'sensorStop' [mmWaveCommSrv-2] [INFO] [1723486834.617079686] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'sensorStop [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.619375704] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'flushCfg' [mmWaveCommSrv-2] [INFO] [1723486834.622195624] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'flushCfg [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.624400961] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'dfeDataOutputMode 1' [mmWaveCommSrv-2] [INFO] [1723486834.628139579] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'dfeDataOutputMode 1 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.630281685] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'channelCfg 15 7 0' [mmWaveCommSrv-2] [INFO] [1723486834.633875823] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'channelCfg 15 7 0 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.636080355] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'adcCfg 2 1' [mmWaveCommSrv-2] [INFO] [1723486834.638911340] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'adcCfg 2 1 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.641220464] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'adcbufCfg -1 0 1 1 1' [mmWaveCommSrv-2] [INFO] [1723486834.645059750] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'adcbufCfg -1 0 1 1 1 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.647239064] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'profileCfg 0 77 267 7 57.14 0 0 70 1 256 5209 0 0 30' [mmWaveCommSrv-2] [INFO] [1723486834.653868321] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'profileCfg 0 77 267 7 57.14 0 0 70 1 256 5209 0 0 30 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.656037347] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'chirpCfg 0 0 0 0 0 0 0 1' [mmWaveCommSrv-2] [INFO] [1723486834.660184709] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'chirpCfg 0 0 0 0 0 0 0 1 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.662774474] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'chirpCfg 1 1 0 0 0 0 0 4' [mmWaveCommSrv-2] [INFO] [1723486834.666881428] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'chirpCfg 1 1 0 0 0 0 0 4 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.669166383] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'chirpCfg 2 2 0 0 0 0 0 2' [mmWaveCommSrv-2] [INFO] [1723486834.673292613] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'chirpCfg 2 2 0 0 0 0 0 2 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.675435439] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'frameCfg 0 2 16 0 100 1 0' [mmWaveCommSrv-2] [INFO] [1723486834.679616704] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'frameCfg 0 2 16 0 100 1 0 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.681545685] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'lowPower 0 0' [mmWaveCommSrv-2] [INFO] [1723486834.684632718] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'lowPower 0 0 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.686774188] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'guiMonitor -1 1 1 0 0 0 1' [mmWaveCommSrv-2] [INFO] [1723486834.690968691] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'guiMonitor -1 1 1 0 0 0 1 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.693469370] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'cfarCfg -1 0 2 8 4 3 0 15 1' [mmWaveCommSrv-2] [INFO] [1723486834.697852441] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'cfarCfg -1 0 2 8 4 3 0 15 1 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.699965824] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'cfarCfg -1 1 0 4 2 3 1 15 1' [mmWaveCommSrv-2] [INFO] [1723486834.704372169] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'cfarCfg -1 1 0 4 2 3 1 15 1 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.706870639] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'multiObjBeamForming -1 1 0.5' [mmWaveCommSrv-2] [INFO] [1723486834.711367050] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'multiObjBeamForming -1 1 0.5 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.713835817] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'clutterRemoval -1 0' [mmWaveCommSrv-2] [INFO] [1723486834.717541729] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'clutterRemoval -1 0 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.719679430] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'calibDcRangeSig -1 0 -5 8 256' [mmWaveCommSrv-2] [INFO] [1723486834.724238560] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'calibDcRangeSig -1 0 -5 8 256 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.727142703] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'extendedMaxVelocity -1 0' [mmWaveCommSrv-2] [INFO] [1723486834.731314167] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'extendedMaxVelocity -1 0 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.733774524] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'lvdsStreamCfg -1 0 0 0' [mmWaveCommSrv-2] [INFO] [1723486834.737830786] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'lvdsStreamCfg -1 0 0 0 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.740543786] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'compRangeBiasAndRxChanPhase 0.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' [mmWaveCommSrv-2] [INFO] [1723486834.749267820] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'compRangeBiasAndRxChanPhase 0.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 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.751333040] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'measureRangeBiasAndRxChanPhase 0 1.5 0.2' [mmWaveCommSrv-2] [INFO] [1723486834.756844416] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'measureRangeBiasAndRxChanPhase 0 1.5 0.2 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.759036203] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'CQRxSatMonitor 0 3 5 121 0' [mmWaveCommSrv-2] [INFO] [1723486834.763364598] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'CQRxSatMonitor 0 3 5 121 0 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.765970228] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'CQSigImgMonitor 0 127 4' [mmWaveCommSrv-2] [INFO] [1723486834.769778865] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'CQSigImgMonitor 0 127 4 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.772160102] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'analogMonitor 0 0' [mmWaveCommSrv-2] [INFO] [1723486834.775666460] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'analogMonitor 0 0 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.778664537] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'aoaFovCfg -1 -90 90 -90 90' [mmWaveCommSrv-2] [INFO] [1723486834.783023922] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'aoaFovCfg -1 -90 90 -90 90 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.785835495] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'cfarFovCfg -1 0 0 8.92' [mmWaveCommSrv-2] [INFO] [1723486834.789790551] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'cfarFovCfg -1 0 0 8.92 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.791804259] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'cfarFovCfg -1 1 -1 1.00' [mmWaveCommSrv-2] [INFO] [1723486834.795611285] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'cfarFovCfg -1 1 -1 1.00 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.797984370] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'calibData 0 0 0' [mmWaveCommSrv-2] [INFO] [1723486834.801047061] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'calibData 0 0 0 [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [mmWaveCommSrv-2] [INFO] [1723486834.803435018] [rclcpp]: mmWaveCommSrv: Sending command to sensor: 'sensorStart' [mmWaveCommSrv-2] [INFO] [1723486834.811951939] [rclcpp]: mmWaveCommSrv: Received response from sensor: 'sensorStart [mmWaveCommSrv-2] Done mmwDemo:/>'Srv-2] [INFO] [mmWaveCommSrv-2]: process has finished cleanly [pid 38384] [ParameterParser-4] [INFO] [1723486836.527985544] [rclcpp]: [ParameterParser-4] [ParameterParser-4] ============================== [ParameterParser-4] List of parameters [ParameterParser-4] ============================== [ParameterParser-4] Number of range samples: 256 [ParameterParser-4] Number of chirps: 16 [ParameterParser-4] f_s: 5.209 MHz [ParameterParser-4] f_c: 79.210 GHz [ParameterParser-4] Bandwidth: 3440.200 MHz [ParameterParser-4] PRI: 324.140 us [ParameterParser-4] Frame time: 100.000 ms [ParameterParser-4] Max range: 11.154 m [ParameterParser-4] Range resolution: 0.044 m [ParameterParser-4] Max Doppler: +-0.973 m/s [ParameterParser-4] Doppler resolution: 0.122 m/s [ParameterParser-4] ============================== [ParameterParser-4] [ParameterParser-4] cannot publish data, at ./src/rmw_publish.cpp:62 during '__function__' [ParameterParser-4] destroy_client() failed to delete datareader, at ./src/rmw_client.cpp:92 during '__function__' [ERROR] [ParameterParser-4]: process has died [pid 38388, exit code -11, cmd '/home/shu/Documents/myRos2/mmwave_ti_ros/ros2_driver/install/ti_mmwave_rospkg/lib/ti_mmwave_rospkg/ParameterParser --ros-args -r __node:=ParameterParser --params-file /tmp/launch_params_arsot4_1 --params-file /tmp/launch_params_fysk3674 --params-file /tmp/launch_params_15j9aptx'].
Note: I could directly communicate (send commands and receive data) with the TI1843Boost in the terminal through `screen /dev/ttyACM0 115200` and `screen /dev/ttyACM1 921600`
Additionally, I have tested the radar using the mmWave Demo Visualizer by loading the example configuration file provided in the driver, and the radar functions correctly, displaying point cloud data without any issues.
I am also facing a similar issue. In my case the error is com port are not allowed to access while I have added the user in dialout groups.
for me this error is coming:
[mmWaveCommSrv-2] mmWaveCommSrv: Failed to open User serial port with error: IO Exception (2): No such file or directory, file /home/tirthapc/mmwave_ti_ros/ros2_driver/src/serial-ros2-master/src/impl/unix.cc, line 151.
Have you solved the issue?
Hi,
Let's open this question to the e2e forum. You may also want to reach to the ROS community.
Thank you
Cesar
Hi,
Thanks for your reply for addressing this issue.
I have also searched in ROS community, other ros developer have faced this problem for accessing the serial port:
Also gone through :
rosserial: Permission denied
Solution from Link: User need to be inside dialout group to access serial port.
I have added the user to dialout group
but same problem comes (tried rebooting the pc also)
I also posted almost same problem IWR1843BOOST: Unable get pointcloud data from Radar through ROS2 due to serial port problem
Note: I have tried with different Ubuntu distribution(Noble Numbat, Humble) and for both architecture i.e amd64, arm64
Let me check with extended team if there is any additional support we can provide
thank you
Cesar
Hello,
I updated the ROS Driver and this should be fixed now. Please reclone the repository and rebuild the ros2 driver.
Best Regards,
Pedrhom
Thank you so much. Point cloud works fine.......
Also, I have seen that only a few lines of code were reordered in the launch file. If possible, Sir, may I know how you figured this out by debugging this code?
It will help me to customize the existing TI ROS file.
Thanks in advance.
Regards
Tirtha
Hello Tirtha,
There was two things wrong.
First: If you do "ll /dev" in terminal, you will see all your tty connections. With 1843 you will see ttyACM0 and ttyACM1. The XDS110 hardware port (on 1843 and 6432 EVMS) serial port shows up as ttyACM0 and ttyACM1, and the Silicon Labs (on all 6843 EVMs) hardware port shows up as ttyUSB0 and ttyUSB1. 1843 launch file incorrectly had ttyUSB
Second: In your thread here: https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1401756/iwr1843boost-unable-get-pointcloud-data-from-radar-through-ros2-due-to-serial-port-problem
You can see the line in your last screenshot saying "DataHandlerClass what(): parameter 'frame_id'" is not initialized. frame_id needed to be given a value within the launch file's DataHandlerClass node section, and it did not exist before.
Best Regards,
Pedrhom