FAST-LIO2 + EGO-Planner Pipeline on a Ducted Whoop

Overview

This post documents the integration of FAST-LIO2 (LiDAR-inertial odometry) and EGO-Planner (gradient-based local planning) running on an Orange Pi 5 Pro (RK3588) onboard a 3.5-inch ducted whoop platform.

Hardware

Software Stack

Livox Mid-360
    |
    v
livox_ros_driver2  -->  FAST-LIO2  -->  /Odometry
                              |            /cloud_registered
                              v
                        EGO-Planner  <--  /move_base_simple/goal
                              |
                              v
                        /planning/pos_cmd
                              |
                              v
                    ego_mavros_bridge
                              |
                              v
                          MAVROS
                              |
                              v
                            PX4

Key Parameters

The tuning process required several parameter adjustments for the small platform:

Lessons Learned

1. TF Alignment

The coordinate frame alignment between FAST-LIO2's odometry output and MAVROS's expected frame required a dedicated bridge node (fastlio_mavros_bridge) that republishes odometry on the correct topic with proper frame IDs.

2. EGO-Planner Tuning for Small Platforms

The default EGO-Planner parameters assume a larger platform. For the 3.5-inch whoop:

3. Vibration Isolation

The Livox Mid-360 is sensitive to high-frequency vibration. On a small drone with high-RPM motors, soft mounting is essential. We used TPU dampeners between the LiDAR mount and the frame.

4. Compute Headroom

The RK3588 handles the full stack (LiDAR driver + FAST-LIO2 + EGO-Planner) at ~60% CPU utilization, leaving headroom for the YOLO/RKNN target detector and other nodes. The NPU offloading for YOLO is critical — running YOLO on CPU would saturate the board.

References