Series
Robot Arm Classical Controller
The "Robot Arm Classical Controller" series has 15 parts — read them in order from part 1.
Manipulation
Classical Robot Arm Control: The Complete Roadmap
A beginner roadmap to industrial arm controllers: MoveJ/MoveL, planners, trajectories, servo loops, C++/Python, and 2026 libraries.
Setting Up a C++ Robot Controller Project with CMake
Build a reusable C++/CMake/Eigen skeleton with GoogleTest and a Python robotics environment for the rest of the series.

Robot Arm Model: Joints, Links, URDF, DH and SE(3)
Fill a UR5 DH table by hand, build a NumPy/C++ Eigen model, then cross-check with Robotics Toolbox and Pinocchio URDF.

Forward Kinematics from Scratch: DH to SE(3) in C++
Compute UR5 FK from DH by hand, implement NumPy/C++ Eigen from scratch, then verify with GoogleTest, RTB and Pinocchio.

Inverse Kinematics for 6-DOF Arms: Analytical vs Numerical
Derive UR5 IK by hand, then build numerical IK in Python and C++ with Jacobian pseudo-inverse, DLS and joint-limit handling.

Jacobian-Based Control and Singularity Avoidance
Derive the UR5 Jacobian, detect singularities with SVD, and build safe resolved-rate control in Python and C++.
Robot Coordinate Frames: Base, Tool, User and TCP
A practical guide to base/tool/user/object frames, 6-DOF TCP offsets, and SE(3) pose composition in Python and C++.

How to Implement MoveJ for Robot Arms
Build MoveJ from scratch: joint-space interpolation, synchronized arrival, velocity and acceleration limits, Python prototype, and C++ playback.

How to Implement MoveL: Cartesian Linear Motion with IK
Implement MoveL from scratch: linear TCP waypoints, quaternion SLERP, IK at every pose, and straightness verification.

MoveC and MoveP: Circular and Process Path Motion
Build MoveC through three points and MoveP through many via points with steady TCP speed, blend radius, Python, and C++ Eigen.

Trapezoidal vs S-Curve Trajectory Profiles
Time-scaling for robot arms: trapezoid, S-curve, velocity/acceleration/jerk limits, Python prototype and C++ classes.

Waypoint Blending and Corner Smoothing for Robot Arms
Learn blend radius, path deviation, why hard stops are slow, and build Python/C++ prototypes for smooth multi-waypoint arm motion.

Robot Arm Jogging and Servoing with MoveIt Servo
Complete guide to MoveIt Servo on ROS 2: joint jog, Cartesian twist jog, real-time pose tracking, singularity/collision/joint-limit safety, C++ API and Python keyboard teleop.

Motion Planning with Collision Avoidance in MoveIt2
Understand C-space, RRT/RRT-Connect/PRM via OMPL, use MoveGroupInterface C++ and moveit_py Python to plan collision-free paths and execute them in RViz with MoveIt2.

Executing Trajectories with ROS2 Control and UR RTDE
Capstone article: deploy your controller on a real UR robot via ros2_control, joint_trajectory_controller and ur_rtde C++ with full tracking-error logging.