Rico's Nerd Cluster

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

Robotics - An Overview Of Kalman Filter, Extended Kalman Filter, and Error State Kalman Filter

[1] What Does A Kalman Filter Do? If a system is a linear system, with Gaussian measurement and control noise, the Kalman Filter (KF) produces the minimum-covariance (i.e., the mean squared error)...

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, Occam's Razor, 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...

C++ - Build A Reflection Configuration That Loads Fields From YAML Without Manual Loading

reflection

Introduction Reflection is the ability of an application to examine and modify its fields during runtime. In cpp, as we know, is a compiled language. If we have a configuration object, we need to ...

Web Devel - web-crawler-toyota-rav4-crawler

Google Drive

Complete web crawler code can be found here Beautiful Soup and Selium Beautiful Soup is a Python library for parsing HTML and XML document. It is able to extract elements by class or ids in stati...