Rico's Nerd Cluster

「离开世界之前 一切都是过程」

Fitness - Eat, Move, and Burn Smarter

Eat, Move, and Burn Smarter: A Simple Guide to Metabolism Most of us think “eat less, move more” is the whole story of weight loss and health. But under the hood, your body is running a sophistica...

[3D-SLAM 6] Tightly Coupled Lio

iekf

Introduction If the state estimation process jointly optimizes the states related to multiple sensors rather than treating each module independently, the system is considered tightly coupled. For ...

Robotics - Moré-Thuente Line Search Algorithm

Introduction Introduced in the early 1990s, line search and trust-region strategies have become standard tools for improving the robustness of iterative optimization methods used in LiDAR odometry...

Robotics - Gauss Newton (GN) and Levenberg Marquardt (LM) Optimizers

Newton's Method, GN, LM optimizers

Newton’s Method Solving An Equation To find an arbitrary equation’s root $f(x) = 0$, We start from an arbitrary point $x_0$ that’s hopefully close to the solution, $x_s$ The main idea of Ne...

Robotics - [3D SLAM - 5] LIO Hands-On

Issues That I Encountered Synchronization THere are cases where you lose IMU for a bit. There could be a lag from the liadr to the imu as well. What’s strange is ROS publisher ...

Robotics - [3D SLAM - 5] Loosely and Tightly Coupled Lidar Inertial Odometry

FastLIO

Loosely vs Tightly Coupled LIO In loosely coupled LIO, the IMU and GPS are first fed into error state kalman filter which outputs a global pose estimate T_G. T_G is fed into a lidar odometer (such...

Robotics - [3D SLAM - 3] Lidar Odometry

Direct Lidar Odometry, NDT, Incremental NDT, Indirect Lidar Odometry, LOAM

Direct Lidar Odometry When given two scans, a direct NDT method means no features are extracted. The two scans would directly go through NDT for finding their relative poses. The workflow is as fo...

Robotics - [3D SLAM - 2] Scan Matching Hands-On Notes

Preact-Mojave, Lidar-Only Front-End

Preact-Mojave Build & Workflow The ROS2 driver for Preact-Mojave can be found here. When testing it, I ran into below questions: Why make provision & make ros2? make provisi...

Robotics - [3D SLAM - 1] Scan Matching

3D Point-Point ICP, 3D Point-Plane ICP, NDT

The Scan Matching Problem When we run scan matching, we usually have two point clouds: a source scan $S_1 = {\mathbf{p}_1, \ldots, \mathbf{p}_n}$ (the new measurement), and a target scan $S_...

Robotics - [Bugs - 2] SLAM Related Small Bugs

Passing Ptr By Value

⚠️ Beware of Passing Smart Pointers by Value Passing a smart pointer (e.g. std::shared_ptr or boost::shared_ptr) by value is fine when you’re only modifying the object it points to. But if you int...