Rico's Nerd Cluster

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

Robotics - [ESKF Series 1] IMU Model

Specific Force, IMU model

Introduction The IMU is a very common localization device. One can find it in most electronics nowadays: cars, smart watches, phones, even soccer balls. Knowing how IMU works could be a long proce...

Robotics Fundamentals - Extended Kalman Filter (EKF)

Kalman Filter Framework

Welcome To EKF - A Diff Drive Example EKF (Extended Kalman Filter) is widely applied in robotics to smooth sensor noises to get a better estimate of a car’s position. Now let’s take a look at a d...

Robotics Fundamentals - Kalman Filter

Kalman Filter Framework, Proofs With Minimizing Error Covariance

Kalman Filter FrameWork - Welcome to KF SLAM is a state estimation problem. A typical state estimation framework in discrete time is: \[\begin{gather*} \begin{cases} x_k = f(x_{k-1}, u_k) + ...

Robotics Fundamentals - Velocities

Velocities, Accelerations, Derivative of Rotations

Rotation-Only Velocity and Acceleration Assume we have a world frame, a car frame, and a point. The car is rotating around the world frame, no translation.The point itself is moving as well, $p_c’...

Robotics - Quaternion Kinematics

Definition of Quaternion, Relationship Between Quaternion and Rotation Matrix

Definition of Quaternion Quaternions can be represented as: \[\begin{gather*} q = [s, x, y, z] = s + xi + yj + zk = s + v v = (i, j, k) \end{gather*}\] i, j, k are 3 complex dimensions, where: ...

Robotics Fundamentals - [ESKF Series 2] GPS and Its Coordinate System

RTK GPS, UTM Coordinates

There are two types of GNSS: Traditional single-point GPS: 10m accuracy, usually found in phones RTK (Real-Time-Kinematics) GPS. centimeter accuracy. It talks to a base station. Each module g...

Robotics Fundamentals - Rotations

Representation of Rotations, Gimbal Lock

Representations of Rotation A rotation, can be respresented as $so(3)$ (Lie Algebra of Special Orthogonal Group), or $SO(3)$, (Special Orthogonal Group) and rotation vector. Representation 1 A ro...

Robotics - ROS1 Message Processing

Image Data

Data Manipulation Image Data Read, manipulate, and output image data 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 from sensor_msgs.msg import Image import nu...

Robotics - ROS1 Build Systems

catkin build, catkin make

catkin make Catkin make is basically a wrapper of the CMake and make. It’s part of the original Catkin build system, and build the entire workspace using a single Cmake invocation. catkin make...

C++ - Common General Sofware Design Pricinples

Coupling & Cohesion, Indempotency, Rico's Software Development Philosophy

“Plug and Play”: Low Coupling, High Cohesion In software engineering, low coupling and high cohesion are two fundamental principles that lead to better code organization, maintainability, and scal...