Skip to main content
My PURM project allowed me to explore the mathematical and coding aspects of robot manipulation as a member of DAIRLAB under the excellent guidance of Dr. Michael Posa. Specifically, I was tasked with examining the Cassie robot’s simulation model for bugs or logical errors in order to refine it for use with a controller which would allow the robot to balance, walk and run. The project’s objective was to improve our current understanding of and correct the Cassie simulation models with the end goal of facilitating testing of our pd controller without endangering the real robot. 
The Cassie robot is a two-legged humanoid robot with a six-bar linkage within each leg, with two of these links being leaf springs. Since the system is constrained by the fixed lengths of the non-spring connectors and the known mass properties of the components, I constructed matrix equations obeying these constraints and solved for the spring stiffnesses, which were then compared to their expected values. Additionally, manipulating the matrix equations allowed me to find the approximate accelerations of each joint on the robot, which in turn were compared to the first principles acceleration data from the simulation. Furthermore, I produced kinematic graphs for a single motion run using three different simulator software to identify inconsistencies between the models for further investigation.
Through my experience, I became familiar with the python programming language, understood and applied the mathematical principles behind robot control and manipulation and learned how to write python bindings in C++ to leverage the advantages of both languages. My summer work thus introduced me to the programming side of robotics which, up to this point, had been kept separate from the mechanical aspect studied in my MEAM classes, thereby showing me exactly how hardware and software must come together to create a functional robot.
My PURM project allowed me to explore the mathematical and coding aspects of robot manipulation as a member of DAIRLAB under the excellent guidance of Dr. Michael Posa. Specifically, I was tasked with examining the Cassie robot’s simulation model for bugs or logical errors in order to refine it for use with a controller which would allow the robot to balance, walk and run. The project’s objective was to improve our current understanding of and correct the Cassie simulation models with the end goal of facilitating testing of our pd controller without endangering the real robot. 
The Cassie robot is a two-legged humanoid robot with a six-bar linkage within each leg, with two of these links being leaf springs. Since the system is constrained by the fixed lengths of the non-spring connectors and the known mass properties of the components, I constructed matrix equations obeying these constraints and solved for the spring stiffnesses, which were then compared to their expected values. Additionally, manipulating the matrix equations allowed me to find the approximate accelerations of each joint on the robot, which in turn were compared to the first principles acceleration data from the simulation. Furthermore, I produced kinematic graphs for a single motion run using three different simulator software to identify inconsistencies between the models for further investigation.
Through my experience, I became familiar with the python programming language, understood and applied the mathematical principles behind robot control and manipulation and learned how to write python bindings in C++ to leverage the advantages of both languages. My summer work thus introduced me to the programming side of robotics which, up to this point, had been kept separate from the mechanical aspect studied in my MEAM classes, thereby showing me exactly how hardware and software must come together to create a functional robot.