Rico's Nerd Cluster

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

Robotics - [2D SLAM 1] Hands-On Mapping

Point-Point ICP, Point-Line ICP

🧪 Loop Detection Testing Procedure Phase 1: Baseline Verification (No Loop Closure) Objective: Confirm that submaps are constructed correctly before enabling loop closure. Steps: Disable loo...

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 - [2D SLAM 2] Map Generation

Submap Generation

Submap Generation In modern robotics mapping systems, efficient environment representation and robust localization are achieved by dividing the map into smaller, manageable submaps. Each submap is...

Robotics - [2D SLAM 1] Introduction and Scan Matching

Point-Point ICP, Point-Line ICP

Introduction The assumption of a robot moving on a 2D plane is a strong one. However, many indoor robots do have support an assumption. Maps in this case can simply be interpreted as an image. Low...

C++ - Move Semantics, Perfect Fowarding

Universal Reference, `std::move` with Emplace

Universal Reference And Perfect Forwarding Perfect forwarding in C++ preserves both the type and the value category of an input argument. Refresher - Value categories: lvalue rvalue ...

Robotics - Point Cloud Processing and KNN Problem

Bruteforce KNN Search, KD Tree, OctoTree

Overview Here is a post about the LiDAR Working Principle and different types of LiDARs. One lidar model is the Range-Azimuth-Elevation model (RAE) Its ...

C++ - Datastructures

Priority Queue

std::priority_queue (Priority Queue, or Max-Heap) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 #include <iostream> #include <...

Point Cloud Library

Point Infrastructure Point Cloud Members PointCloud Type includes points: point vector PointTypes PointType include: pcl::PointXYZ pcl::PointXYZI pcl::PointXYZRGB pcl::PointXYZRGB...

Robotics - IMU Hands-On

IMU tools Velocity drift observed. Here, I’m proposing a two-phase static test to confirm true sensor drift: Initialization—standstill for N seconds to estimate biases. Static logging—remain...

Robotics - IMU Pre-integration Optimization Implementation

How To Integrate IMU Pre-Integration into G2O with Odometry and GNSS

G2O Recap - What’s An Edge A single edge is a “difference” between two conceptual entities. The entities are conceptual because they don’t need to map exactly to your implementation. For example, ...