Static transform issues with PointCloud under WSL2 and ROS Noetic
[SOLUTION ON NEXT ANSWER]
Hi all,
I've successfully set up ROS Noetic on WSL2 (under Windows 10), but I'm currently struggling with PointCloud display on RViz.
I'm currently working with the TI IWR6843ISK radar, and set up the ROS example package. Even if tf is configured properly (it works well on a native Ubuntu under ROS Melodic), I can't get it working on WSL2. I have an error in the transform for PointCloud: "Failed to transform for frame /ti_mmwave_pcl_0 to frame ti_mmwave_pcl"
, even if the transform exists and is published.
I'm using usbip
for bridging the serial device from Windows to WSL. Could it be the issue?
RViz under WSL2:
TF monitor :
Rviz under native Ubuntu and ROS Melodic (the PointCloud is displayed correctly):
My launch file:
<launch>
<!-- Input arguments -->
<arg name="device" value="6843" doc="TI mmWave sensor device type [1443, 1642, 6843]"/>
<arg name="config" value="3d" doc="TI mmWave sensor device configuration [3d_best_range_res (not supported by 1642 EVM), 2d_best_range_res]"/>
<arg name="max_allowed_elevation_angle_deg" default="90" doc="Maximum allowed elevation angle in degrees for detected object data [0 > value >= 90]}"/>
<arg name="max_allowed_azimuth_angle_deg" default="90" doc="Maximum allowed azimuth angle in degrees for detected object data [0 > value >= 90]}"/>
<arg name="send_config" default="true" />
<!-- mmWave_Manager node -->
<node pkg="ti_mmwave_rospkg" type="ti_mmwave_rospkg" name="ti_mmwave" ns="radar_0" output="screen">
<param name="command_port" value="/dev/ttyUSB0" />
<param name="command_rate" value="115200" />
<param name="data_port" value="/dev/ttyUSB1" />
<param name="data_rate" value="921600" />
<param name="max_allowed_elevation_angle_deg" value="$(arg max_allowed_elevation_angle_deg)" />
<param name="max_allowed_azimuth_angle_deg" value="$(arg max_allowed_azimuth_angle_deg)" />
<param name="frame_id" value="/ti_mmwave_0"/>
<param name="mmWaveCLI_name" value="/mmWaveCLI" />
<remap from="/ti_mmwave/radar_scan_pcl" to="/ti_mmwave/radar_scan_pcl_0"/>
</node>
<!-- mmWaveQuickConfig node (terminates after configuring mmWave sensor) -->
<group if="$(arg send_config)">
<node pkg="ti_mmwave_rospkg" type="mmWaveQuickConfig" name="ti_mmwave_config" ns="radar_0" args="$(find ti_mmwave_rospkg)/cfg/6843ISK_3d.cfg" output="screen" >
<param name="mmWaveCLI_name" value="/mmWaveCLI" />
</node>
</group>
<node pkg="tf2_ros" type="static_transform_publisher" name="radar_baselink_0" args="0 0 0 0 0 0 ti_mmwave_pcl ti_mmwave_0" />
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find ti_mmwave_rospkg)/launch/rviz/ti_mmwave_multi.rviz"/>
</launch>
If someone has any clue about this issue, that would be awesome.
In the future, please do not post screenshots of text. Instead, copy/paste the text into your description.