My first few months at OSU were spent getting familiar with how to develop dynamic models and create trajectory optimization solutions for optimal control problems. Below are some of the models I created to gain intuition and practice while working up in complexity towards a single rigid body centroidal dynamic model for legged locomotion.
Compound Pendulum Ball Throw:
The first system I modeled to practice dealing with non-linear hybrid dynamics was a planar ball throwing robot arm. This system features a compound pendulum with actuators at both joints. Initially the ball is rigidly attached to the arm but after it is thrown it enters into a ballistic trajectory necessitating the hybrid nature of the system. The goal is for the arm to throw the ball to the specified target under the imposed constraints and objectives.
This system is a great example for exploring how the optimization solves the problem depending on the imposed conditions. If the objective is to minimize speed while ample torque is available, then the arm will whip the ball as fast as possible and shoot it like a cannon straight towards the goal. If max torque is limited and the minimization of input torque squared is the objective, then the arm will need to gain momentum by pumping itself until it can reach the required velocity to lob the ball towards the target. This behaviour is further exemplified if restrictions are placed on the rotation arm (no full 360 rotations)
Minimizing torque input to motors + standing up arm at end condition
Adding restrictions to angular position about elbow
3D Rigid Body Dynamics Optimization (Satellite Reorientation) :
To begin working in 3 dimensions I started with a satellite reorientation model. This system features a 3D rigid body that is manipulated by applying forces and torques along and about each axis, much like a satellite that reorients itself in space using its thrusters or reaction wheels. The state space is composed of a 13 part state vector containing [x,y,z] positions of the rigid bodies center, the 4 part attitude quaternion [q1,q2,q3,q4] ([w,x,y,z]), as well as both the linear and angular momentum [Px,Py,Pz], and [Lx,Ly,Lz] respectively.
Toss up - minimizing all forces and torques squared over a fixed (0-5s) time duration
Toss up - time objective (perform as fast as possible)
2 part reorientation maneuver - minimizing all forces and torques squared over a fixed (0-5s) time duration
2 part reorientation maneuver - time objective (perform as fast as possible)