0
$\begingroup$

I'm trying to see a point cloud in Rviz but when I add the topic to de Displays i get an error (Rviz) and in the terminal where i opened Rviz I get the following message:

Invalid argument passed to canTransform argument source_frame in tf2 frame_ids cannot be empty

I'm working with OpenDR, specifically with the 3D object detection module.

Warning in terminal:

Warning in terminal

Rviz error:

Rviz error

I'm trying to see other people's responses with the same issue, I have already tried it everything but this information is not valid for me.

The output of rostopic echo /tf:

transforms:

header: 
  seq: 0
  stamp: 
    secs: 1696351719
    nsecs: 943305939
  frame_id: "map"
child_frame_id: "base_link"
transform: 
  translation: 
    x: 0.0
    y: 0.0
    z: 0.0
  rotation: 
    x: 0.0
    y: 0.0
    z: 0.0
    w: 1.0**

for rostopic echo /opendr/dataset_point_cloud the output is:

header: 
  seq: 10053
  stamp: 
    secs: 1696352933
    nsecs:   3319978
  frame_id: ''
points: "<array type: geometry_msgs/Point32, length: 18911>"
channels: "<array type: sensor_msgs/ChannelFloat32, length: 1>"
$\endgroup$
8
  • $\begingroup$ Please post error messages as text and not as screenshots, because images are not text searchable. $\endgroup$ Oct 3, 2023 at 11:02
  • $\begingroup$ Can you please check the frame id the pointcloud is refered to? Try using ros2 topic echo /opendr/dataset_point_cloud. $\endgroup$ Oct 3, 2023 at 12:16
  • $\begingroup$ @DiegoCarvajal Hi, I'm using ROS1 and when I use echo for /opendr/dataset_point_cloud I get a huge matrix of numbers and x,y,z coordinates but no information about the frame id. Also, when I use rostopic echo /tf I get the following info: frame_id: "map" and child_frame_id: "base_link" $\endgroup$
    – ARosOpenDR
    Oct 3, 2023 at 14:33
  • $\begingroup$ @ARosOpenDR Can you please edit the question and add the output from rostopic echo /opendr/dataset_point_cloud and rostopic echo /tf so we can check the info. $\endgroup$ Oct 3, 2023 at 16:31
  • $\begingroup$ The output of rosrun tf2_tools view_frames.py is more useful than the raw topic output of /tf $\endgroup$
    – Tully
    Oct 3, 2023 at 16:57

1 Answer 1

0
$\begingroup$

The error means that can_transform is being invoked with an empty string as the frame_id. As there doesn't appear to be any issues with your transform tree it's mostly likely that the data in your dataset that you're playing back does not have the frame_id fields properly set.

$\endgroup$
3
  • $\begingroup$ How can I set correctly the frame_id fields? I don't understand very good how to do it. When I launch point_cloud_dataset_node.py I get this: Downloading KITTI Dataset zip file from opendrdata.csd.auth.gr/perception/object_detection_3d/… to KITTI So I suppose that this dataset is set wrong? $\endgroup$
    – ARosOpenDR
    Oct 3, 2023 at 18:02
  • $\begingroup$ The dataset does not contain that information. It's not complete for your use case. I would recommend using the rosbag API to iterate through the bag files and rewrite the frame_ids before you play them back: There's example scripts at wiki.ros.org/rosbag/Cookbook $\endgroup$
    – Tully
    Oct 3, 2023 at 21:38
  • $\begingroup$ To close the loop, your echo of the bag file confirms that the frame_ids are not set which was what I guessed the problem was. $\endgroup$
    – Tully
    Oct 3, 2023 at 21:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.