Rico's Nerd Cluster

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

C++ - Specifiers

Declaration-Only Specifiers

Declaration Only Specifiers These specifiers will only appear in an .hpp file, not in .cpp files. Keyword What it does virtual Marks a member as p...

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...

C++ - Filesystem

std::filesystem::create_directory(path) Thread safety: std::filesystem::create_directory(path); under the hood it issues a single POSIX mkdir() (or the platform equivalent). If the ...

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...

C++ - Segfaults

Out-of-bounds Iterator Access

Out-of-bounds Iterator Access Out-of-bounds iterator access is an undefined behavior, which might give a segfault, or give a garbage value. 1 2 3 4 5 6 7 8 9 10 11 12 #include <vector> #inc...

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...