Error with FAST_LIO_LC package: Invalid quaternion in transform

106 Views Asked by At

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?

2

There are 2 best solutions below

0
On BEST ANSWER

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.

2
On

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.