Alvin Zou’s Status Report for 2/10

Things I did:

For the past two weeks, I helped our team create the abstract and presentation. Additionally, I worked on the symbolic modeling and simulation of the double pendulum system with Thomas, towards prototype 2. Specifically, I was able to use the Lagrangian equations of the system to derive the equations of motion, and encoded them into symbolic objects in Casadi. The main challenge I faced during this step is figuring out how to represent dynamical systems in Casadi. This is largely due to the fact that Casadi’s documentation is very sparse. This caused issues when I tried to represent the derivatives of variables, as I had to work around to find a correct representation.

Additionally, after obtaining the dynamical equations, I was able to implement a Second Order Implicit Runge-Kutta solver(IRK2). By using this solver, I can solve the dynamical ODE’s, giving me the evolution of the state with respect to time. The reason we used IRK2 is three fold:

  1. IRK2 guarentees stability if the ODE system is stable.
  2. It gives O(dt^3) local error(where dt is the time step) even though it’s a second order method due to some its properties.
  3. It only requires the current state and next state values when solving the system, which is already given by the NMPC formulation. This means there is no need to add additional variables to the equality constraint for optimization, which means we don’t need to add additional components to the PCB board.

After creating the solver, I implemented a basic visualizer using matplotlib, which visualizes the double pendulum and displays how it’s state evolves as time progresses.

Finally, I added a control input, a torque on the joint, to the system.

The resulting simulation with a constant torque applied is shown below.

 

Things I will do:

For the upcoming week, I will continue working on the simulation, starting with looking into how to integrate a NMPC solver into the system. This will involve a review of existing solvers, and looking at ways of integrating them with Casadi.

 

Current standing:

Currently, I am on schedule working towards prototype 1. I will be continually working on this for the next week.

Thomas’s Status Report for Feb 10

Personal tasks of this week:

Task: Proposal Presentation

Definition: As the presenter, prepare for the proposal presentation by drafting up the content to present, making presentation slides, writing a script, and rehearsing. Finally, present the proposal to our section.

Completion: The task was completed. It was done together with my teammates, who were especially helpful in giving me useful feedback when I rehearsed. Our TA Aidan also gave me very constrictive feedback on my presentation. The presentation slides can be found here: http://course.ece.cmu.edu/~ece500/projects/s24-teamd6/proposal/

Task: Project Management

Definition: As the team’s Project Manager of the week, keep track of the progress of the project, ensure that everyone is aware of and capable of completing their tasks, organize meetings and work sessions, and communicate with instructors and TAs on behalf of the team when necessary.

Completion: The task was partially completed. I was effective in manually tracking progress and organizing work sessions, but I did not set up a more easy-to-use project management tool (like a GitHub Project) as planned. I will work on better utilizing the available tools when I take up PM duties next time.

Task: Symbolic Model Development

Definition: Work with Alvin to develop a symbolic dynamics model of an inverted double pendulum, which would be the basis of Nonlinear Model Predictive Control (NMPC).

Completion: The task is completed. Alvin and I made substantial progress in deriving the dynamics equations and coding up the simulation using CasADi, an automatic differentiation library. A visualization of the simulated double pendulum with an external torque applied can be found in Alvin’s update for this week.

Overall progress assessment:

My progress is on-schedule, as all of my tasks this week have been completed. I will continue working towards completing Prototype 1, which is swinging up the inverted double pendulum with NMPC in a simulation.