Fast-LIO not working properly with MID360 LiDAR
Hello! Thank you very much for this work. I am trying to run Fast-LIO with data recorded (ros2 bag) from a LiDAR MID360.
The rosbag contains the topics
/livox/imu
/livox/lidar
To launch FAST-LIO, I'm doing
ros2 launch fast_lio mapping_mid360.launch.py
and then I play the rosbag. But when it starts reading messages from the /livox/topics I get this error:
[fastlio_mapping-1] Failed to find match for field 'reflectivity'
I think this is because Fast-LIO is expecting a field named reflectivity, but my LiDAR point cloud doesn't include this field (it only has x, y, z, intensity, tag, line, and timestamp).
I tried to modify the code here slightly, but I didn't manage to make it work.
Have you ever faced this problem?
Thanks again
@ylenianistico
Thanks for testing our work!
Unfortunately, I haven't tested with MID360, but I have a few questions.
What config file and launch file did you use?
If you used mid360.yaml, could you change the preprocess to the following?
preprocess:
lidar_type: 1 # 1 for Livox serials LiDAR, 2 for Velodyne LiDAR, 3 for ouster LiDAR,
scan_line: 4
blind: 0.5
# timestamp_unit: 3
Hi, I tried to run it with ouster-128. The algorithm seems to work with the same output as above, but in my case, it's only "ring," as shown in the screenshot. I am using the Ouster-64 configuration as follows: preprocess: lidar_type: 3 # 1 for Livox serials LiDAR, 2 for Velodyne LiDAR, 3 for ouster LiDAR, scan_line: 128 blind: 2.0 timestamp_unit: 3 scan_rate: 10
Hi
I had the Failed to find match for field 'reflectivity' too and switched to the custom pcl. The adaptions are in this Pull Request.
@ylenianistico Thanks for testing our work! Unfortunately, I haven't tested with MID360, but I have a few questions.
What config file and launch file did you use? If you used
mid360.yaml, could you change thepreprocessto the following?preprocess: lidar_type: 1 # 1 for Livox serials LiDAR, 2 for Velodyne LiDAR, 3 for ouster LiDAR, scan_line: 4 blind: 0.5 # timestamp_unit: 3
Hi @Taeyoung96 , sorry for the late reply. I think I missed your response for some reason. In the end, I was able to run it with the MID360, although I had to initialize FAST-LIO when there was nobody near the robot. In any case, I’ll test your suggestion as soon as possible.
Hi @ylenianistico any luck running with mid360?, I am also facing same problem, thanks in advance
Hi @ylenianistico any luck running with mid360?, I am also facing same problem, thanks in advance
Hi @Kmedrano101, did you try using the config parameters suggested by @Taeyoung96? I managed to make it work with a MID360 LiDAR, but it was susceptible to the initial conditions, and I had to be very careful to only start the pipeline when no people were walking near the robot....I think it is a problem related to the quality of the LiDAR, because with the Velodyne VLP16, it was instead easier and worked better
@ylenianistico I appreciate your fast reply, I tried @Taeyoung96 suggestion setting lidar_type to 1 but that means fastlio is going to subscribe to lidar type of livox_ros_driver2, if you set to 4 uses the standard callback function which uses PointCloud2 data type of lidar, could you elaborate how to managed to make it work with mid360, which data type of lidar are you using with mid-360?
@ylenianistico I appreciate your fast reply, I tried @Taeyoung96 suggestion setting lidar_type to 1 but that means fastlio is going to subscribe to lidar type of livox_ros_driver2, if you set to 4 uses the standard callback function which uses PointCloud2 data type of lidar, could you elaborate how to managed to make it work with mid360, which data type of lidar are you using with mid-360?
@Kmedrano101 sorry, but it’s been a few months since I last worked with the Mid‑360 (and I’m no longer using that LiDAR), so I don’t remember the exact launch/parameter details offhand. From what I recall, I ran Fast‑LIO with lidar_type=1, subscribing to the Livox driver’s native livox_msgs/LivoxMsg. If you’d rather feed Fast‑LIO a standard PointCloud2, you can configure the Livox driver to publish PointCloud2 (e.g. set data_type: 1 or publish_type: PointCloud2 in the driver’s YAML) and switch Fast‑LIO to lidar_type=4
@ylenianistico thanks for your reply, hopefully I make it work with the custom livox msg type.