I usually understand things better after trying to build them.
A derivation becomes clearer when it drives a simulation.
A simulation becomes more interesting when it meets hardware.
That's the loop I keep coming back to:
understand → build → break → improve → document
|
A Python library for robot kinematics, dynamics and visualization, implemented from first principles. Built mainly as a way to understand the mathematics behind robotics more deeply. |
Working with differential-drive robots, embedded controllers, sensors and ROS 2. Moving from physical prototypes toward:
|
|
Exploring tendon-driven actuation, soft robotic mechanisms and dynamic simulation. The current chain is:
|
Exploring how simulation, robot models and real-world data can come together to represent robotic systems. |
Instead of a wall of badges, here's how the tools fit into the way I work:
Current technical focus
Robot Kinematics · Computer Vision · Control Systems · ROS 2 · Robot Simulation · Embedded Robotics · Soft Robotics · Digital Twins
I don't think of these as separate technologies. I'm interested in how they form one robotic system:
graph TD
A[Perception]
A_CV[(Computer Vision)]
A_LIDAR[(LIDAR, IMU)]
A --> A_CV
A --> A_LIDAR
B[State & World Model]
C[Algorithms]
D[Planning & Control]
B --> C
C --> D
C_KD[("Kinematics & Dynamics")] -.-> C
C_SLAM[("SLAM, Navigation")] -.-> C
E[Simulation]
E_DT[(Digital Twins)] -.-> E
F[Robot Hardware]
F_ES[(Embedded Systems)] -.-> F
ROS2[("ROS 2")]
A --> B --> C --> D
D --> E
D -- "Commands" --> ROS2
F -- "Sensor Data" --> ROS2
ROS2 --> B
E -- "Sim-to-Real" --> F
%% Clickable links
click C_KD "https://github.com/devwithchai/OpenKinematics" "View OpenKinematics repository" _blank
click C_SLAM "https://github.com/devwithchai/MobileRobotics" "View Mobile Robotics repository" _blank
click F_ES "https://github.com/devwithchai/MobileRobotics" "View Mobile Robotics repository" _blank
click ROS2 "https://docs.ros.org/en/rolling/" "Go to ROS 2 Documentation" _blank
%% --- Styling ---
%% Define classes for each logical group
classDef sense fill:#0077b6,stroke:#023e8a,color:#fff
classDef think fill:#06d6a0,stroke:#073b4c,color:#000
classDef act fill:#f9c74f,stroke:#f3722c,color:#000
classDef orchestrate fill:#ef476f,stroke:#b22c49,color:#fff
%% Assign nodes to classes
class A,A_CV,A_LIDAR sense
class B,C,D,C_KD,C_SLAM think
class E,F,E_DT,F_ES act
class ROS2 orchestrate
The interesting part for me is the loop:
sense → understand → decide → simulate → act → learn
That's where mathematics, algorithms, software and physical robotics start meeting each other.
Not everything here is finished.
Some repositories are polished.
Some are experiments.
Some are ideas I'm still trying to figure out.
I prefer documenting the process rather than waiting until everything looks perfect.
< Keep building. Keep learning. Share everything. />

