This page showcases some of my work in modelling dynamic motion with C++ during the course Computational Models of Motion at ETH Zurich.
Walking legged controllerGitHub page
Kinematic walking controller for the unitree legged robot. Consists of inverse kinematics for all four legs and joints, analytical and finite difference jacobian definitions, as well as velocity trajectory planning.
I implemented a finite-element-method (FEM) solver for a soft rigid body. The rigid body is controlled by pins at both ends and a minimum energy and force optimizer is implemented to achieve equilibrium state. A total energy objective is defined and minimized using Newtons method (second order Hessian method) for equilibrium conditions.
Trajectory OptimizationGitHub page
I implemented two methods for trajectory optimization: direct shooting and transcription methods for simple projectile motion tasks. The demos show how the optimization works. Gradient descent line search optimization is used to find solutions to the direct shooting and transcription methods.
Rigid Body DynamicsGitHub page
I implemented rigid body dynamics simulator for projectile motion, spring like system, and a bouncing ball with contact constraints.