top of page

Stability of an Assembly

Here I wrote a program to determine if an assembly of planar rigid bodies, in friction contact with each other, can remain standing, or if the assembly will collapse.

For this project, I used two body assemblies with two scenarios each, one where the assembly will remain stable, and one where the assembly will collapse. A total of four cases.

First, it takes as input an array of the (x,y) location of the center of mass and the total mass of each of the bodies. It also takes an array of the contacts involved in the assembly, where each row has the (x,y) location of the contact point between two bodies, that can be either ground, the first or the second body, and the friction coefficient at the contact. Each contact generates two friction cones that are seen each as forces, and the gravity acts as a force in the {-y} direction, at the center of mass of each body.
 

Then, it creates a matrix of all forces acting on the system. It uses linear programming to find the vector k of weights that satisfies that the sum of all forces equall to zero. it returns either True or False to show if the assembly will remain stable and if it will collapse.

Conditions for Stability of Assembly 2

assembly2 - stable.jpg

The most challenging part for me was to understand that when body 1 and body 2 are in contact, the wrenches that body 1 applies to body 2, are equal and opposite to those that body 2 applies to body 1, and to successfully include all of them in the wrench matrix for the linear solver. 

I used Python 3.7 to develop this program, with the libraries numpy, scipy, matplotlib, math and csv. I also used the library 'modern_robotics' provided in the Modern Robotics wiki website.

http://hades.mech.northwestern.edu/index.php/Modern_Robotics

For the simulations, I used the software V-REP EDU PRO software.

python.png
v-rep-pro-edu.png

I followed the assignments in the Course 5: "Robot Manipulation and Wheeled Mobile Robots", which is part of the online specialization "Modern Robotics: Mechanics, Planing and Control" offered by Nortwestern University and Coursera.

nu-horizontal.gif
f76415d3d9779400d610a0f089f551e5.jpg

©  2022 by Marissa Campa. Created with Wix.com

bottom of page