I am using Gazebo ignition simulator to test LIO-SAM ros2 branch now. The problem I met is, LIO-SAM runs well with simulation but when I recorded ros bag from it and play, LIO-SAM performs quite randomly. Usually it starts well but then the drift happens.
I built a simple robot and the lidar and imu both using the gazebo ignition plugins, so the extrinsic Matrix should be right. I have several guess of the possible reasons:
Frame transformation: I have different frame transformation from LIO-SAM's robot, the error logs are also always around 'link transformation'. But there are only imu/data and lidarpoints topics in the rosbag, so it might not be the reason.
Extrinsic Matrix: I'm using unit matrix for both ExtrinsicROT and ExtrinsicRPY. I built a simple robot and the lidar and imu both using the gazebo ignition plugins, so the extrinsic Matrix should be right.
The plugin I used for imu is <plugin filename="ignition-gazebo-imu-system" name="ignition::gazebo::systems::Imu"> </plugin> But when I run LIO-SAM in some simulation world, the incremental part of the map shows a rotation trend, so does the trajectory. But in others, there is no such problem.
Time synchronization: Because LIO-SAM always starts well in the beginning and drift later. Meanwhile it ran well with simulation. I guess it's a bad synchronization increasing the error which leads to failure in alignment. But LIO-SAM runs well with ros bags which is recorded in reality with real time. And I checked the timestamp of topics, they look synchronized well.
And it always has this in log, even I decrease the rate of rosbag playing to 0.1:
Message Filter dropping message: frame 'vehicle_blue/lidar_link/gpu_lidar' at time 166.800 for reason 'discarding message because the queue is full'
Part of the /imu/data and /points is shown below:
`---
header:
stamp:
sec: 118
nanosec: 782000000
frame_id: vehicle_blue/imu_link/imu_sensor
orientation:
x: -6.693089243585746e-07
y: 3.1786958765501195e-06
z: -0.00022797704779308332
w: 0.9999999740079578
orientation_covariance:
Hello Community,
I am using Gazebo ignition simulator to test LIO-SAM ros2 branch now. The problem I met is, LIO-SAM runs well with simulation but when I recorded ros bag from it and play, LIO-SAM performs quite randomly. Usually it starts well but then the drift happens.
I built a simple robot and the lidar and imu both using the gazebo ignition plugins, so the extrinsic Matrix should be right. I have several guess of the possible reasons:
Frame transformation: I have different frame transformation from LIO-SAM's robot, the error logs are also always around 'link transformation'. But there are only imu/data and lidarpoints topics in the rosbag, so it might not be the reason.
Extrinsic Matrix: I'm using unit matrix for both ExtrinsicROT and ExtrinsicRPY. I built a simple robot and the lidar and imu both using the gazebo ignition plugins, so the extrinsic Matrix should be right. The plugin I used for imu is
<plugin filename="ignition-gazebo-imu-system" name="ignition::gazebo::systems::Imu"> </plugin>
But when I run LIO-SAM in some simulation world, the incremental part of the map shows a rotation trend, so does the trajectory. But in others, there is no such problem.Time synchronization: Because LIO-SAM always starts well in the beginning and drift later. Meanwhile it ran well with simulation. I guess it's a bad synchronization increasing the error which leads to failure in alignment. But LIO-SAM runs well with ros bags which is recorded in reality with real time. And I checked the timestamp of topics, they look synchronized well.
And it always has this in log, even I decrease the rate of rosbag playing to 0.1:
Message Filter dropping message: frame 'vehicle_blue/lidar_link/gpu_lidar' at time 166.800 for reason 'discarding message because the queue is full'
Part of the /imu/data and /points is shown below: `--- header: stamp: sec: 118 nanosec: 782000000 frame_id: vehicle_blue/imu_link/imu_sensor orientation: x: -6.693089243585746e-07 y: 3.1786958765501195e-06 z: -0.00022797704779308332 w: 0.9999999740079578 orientation_covariance:
0.0
header: stamp: sec: 118 nanosec: 785000000 frame_id: vehicle_blue/imu_link/imu_sensor orientation: x: -6.740578860418199e-07 y: 3.1719698767112e-06 z: -0.00022797454932045252 w: 0.9999999740085456 orientation_covariance:
0.0
'...' is_dense: false
header: stamp: sec: 120 nanosec: 102000000 frame_id: vehicle_blue/lidar_link/gpu_lidar height: 16 width: 1875 fields:
'...' is_dense: false
header: stamp: sec: 120 nanosec: 201000000 frame_id: vehicle_blue/lidar_link/gpu_lidar height: 16 width: 1875 fields:
'...' is_dense: false
`
Please leave me some thoughts if you met similar situation before or if you have any idea that I should try.