0

I'm using the FAST_LIO_LC package (https://github.com/yanliang-wang/FAST_LIO_LC) which integrates the fastlio package with a graph optimization method. When running the roslaunch fast_lio mapping_velodyne.launch and roslaunch aloam_velodyne fastlio_velodyne_VLP_16.launch commands with my own rosbag file, I encountered the following error:

[ERROR] [1689143757.287959229]: Ignoring transform for child_frame_id "aft_pgo" from authority "unknown_publisher" because of an invalid quaternion in the transform (-nan -nan -nan -nan)

I'm unsure about the cause of this error and how to resolve it. Can someone provide insights or suggestions on how to troubleshoot and fix this issue?

I'm currently working with a ROS bag file that I generated, and I'm trying to analyze the IMU data by using rostopic echo /imu/data/header. However, I've noticed that my ROS bag file publishes /imu/data with frame_id set to "imu_link". On the other hand, the ROS bag file provided by the FAST_LIO_LC package (https://github.com/yanliang-wang/FAST_LIO_LC) publishes /imu/data with frame_id set to "imu".

I suspect that this difference in frame_id values is causing the problem. Is it possible that my ROS bag file has an incorrect frame_id value?

Should I modify the frame_id value in my ROS bag file to match the one used by the FAST_LIO_LC package? Or is there a different approach to solve this problem?

BoP
  • 2,310
  • 1
  • 15
  • 24
ajim
  • 3
  • 2

2 Answers2

0

If your error comes from the frame_id you can rename it in a program msg.header.frame_id = "/imu". Or remap it in your launch file using tf transform :

    <launch>
      <node pkg="tf" type="tf_remap" name="tf_remapper" output="screen">
        <rosparam param="mappings">
          - {old: "/imu_link",
             new: "/imu"}
        </rosparam>
      </node>
    </launch>

However, the error could also come from your rosbag if it has nan value like (-nan -nan -nan -nan). You should then filter them.

Rémi.T
  • 68
  • 6
  • can I use this command to remap the frame_id message? rosbag play motor.bag --clock -r 2 /imu/data/header/frame_id/"imu_link":=/imu/data/header/frame_id/"imu"? – ajim Jul 12 '23 at 08:07
  • @ajim it should be doable using `rosbag play x.bag /imu:=/imu_link` – Rémi.T Jul 12 '23 at 08:23
0

You can change the speedFactor in fastlio_velodyne_VLP_16.launch to a lower value. the default speed is 1. You can change to a lower value until the error is not come out. This is maybe because the timestamp from the pose graph optimization is faster than your own data. Hope this help you.

AmirulJ
  • 118
  • 1
  • 11
  • Thank you very much for your answer. I have change it to 0.7 and it works. Thank you again! – ajim Jul 13 '23 at 04:22