Rico's Nerd Cluster

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

Robotics - [3D SLAM - 2] Lidar Odometry

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

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 - 1] Scan Matching

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

Point-Point ICP If we write out our state vector as [theta, translation], the pseudo code for point-point ICP is: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 pt_pt_icp(pose_estimate, source_scan, target_...

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

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 Survey On Oil Pipe Inspection Robotics (Revising)

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 Foundation] Ros2 Bags

Introduction ros2 bag is a command line tool for recording data published on topics in your system. It accumulates the data passed on any number of topics and saves it in a database. You can then ...

Robotics - [ROS2 Foundation] Ros2 Parameters

ROS2 Parameters Intro What are ROS2 parameters? ROS2 Parameters are one means to change certain values in a node during runtime. They are associated initialized, set, and retrieved at the level o...

Robotics - [ROS2 Foundation] Ros2 Executor Callback Model

Executor, Callbacks, Threading Model, Rate Object

Executors TODO Callback groups In ROS2, callback groups are a synchronization mechanism for managing concurrent execution in multi-threaded executors. They determine which callbacks can run simu...

Robotics - ROS2 Service

How to Bring Up a Service

Set up a ROS2 Service File ROS2’s ament build system does not support generating msg and srv files in pure python packages. So it’s a common practice to define an interface package that could be i...

Robotics - [ROS2 Foundation 3] ROS2 Build System

Various Things to Note For Building Dockerized ROS2 App

Build Tool A build tool operates on a set of packages determines the dependency graph invokes the specific build system for each package in topological order. for a specific package, knows ...