Rico's Nerd Cluster

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

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

Robotics - [Bugs - 1] SLAM Related "Epic Bugs"

G2O Optimization Vertex Updates, Compiler-Specific Bugs, Yaml-cpp

Below is a list of bugs that took me multiple hours, if not days, to troubleshoot and analyze. These are the “epic bugs” that are worth remembering for my career. Epic Bug 1: G2O Optimization Didn...

Robotics - A Short Introduction To Underwater Sonar Imaging Cameras

Beam Forming

Sonar Imaging Pipeline Here is a nice introduction to the concept of beam-forming Beam Forming If you have multiple attenae, say each attena is attached to a fixed delay,...

AI - LLM Applications

Techniques For Using AI Reflection is extremely helpful. “validate this code”, “check instructions for coherence and completeness”; “make this code more concise.” For subjective questions, AI is ...

Robotics - A Survey On Oil Pipe Inspection Robotics (Revising)

Sonar Imaging

Non-Destructive Testing Methods American Society for Testing and Materials (ASTM) and American Society of Mechanical Engineers (ASME) develops standards for pipe inspections Ultrasonic Testing...

Robotics - ROS2 Logging

Logging Level Tweaking

Logging Level Tweaking Programmatic API (in-process) In C++, any rclcpp::Logger can have its level tweaked at runtime: 1 2 3 #include <rclcpp/logger.hpp> auto my_logger = rclc...

Robotics - ROS2 TF2

Transform Listener

TF2 and Sim Time When working with ROS2 and tf2, you may encounter the following warning when visualizing data in RViz or processing buffers: 1 Warning: TF_OLD_DATA ignoring data from the past fo...

Robotics - ROS2 Behavior Tree Cpp

TransformListener

Basic Constructs BT ports: BehaviorTree-CPP needs a compile-time contract for every node type, a list of ports (name + type + optional default + description). e.g., BT::InputPort<...