https://hades.mech.northwestern.edu//index.php?title=Stability_of_an_Assembly_Project&feed=atom&action=historyStability of an Assembly Project - Revision history2024-03-29T05:06:01ZRevision history for this page on the wikiMediaWiki 1.35.9https://hades.mech.northwestern.edu//index.php?title=Stability_of_an_Assembly_Project&diff=25509&oldid=prevLynch: /* Program Specification */2019-05-28T12:25:27Z<p><span dir="auto"><span class="autocomment">Program Specification</span></span></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 12:25, 28 May 2019</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 24:</td>
<td colspan="2" class="diff-lineno">Line 24:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>Unlike the form and force closure linear programming tests, where the elements of your contact vector had to be greater than or equal to a positive value, in this problem the elements of your contact vector only need to be nonnegative. (You are only trying to find one solution to the assembly equilibrium equations; in the form and force closure tests, you needed to show that the contacts could create arbitrary wrenches.)</div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>Unlike the form and force closure linear programming tests, where the elements of your contact vector had to be greater than or equal to a positive value, in this problem the elements of your contact vector only need to be nonnegative. (You are only trying to find one solution to the assembly equilibrium equations; in the form and force closure tests, you needed to show that the contacts could create arbitrary wrenches.)</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td class="diff-deletedline diff-side-deleted"><div>Your biggest job in this programming assignment is taking the specifications of the bodies' mass properties and the contacts and turning them into static equilibrium equations of the form <math>Fk = b</math>, similar to Example 12.11. These equations are solved by linear programming with the constraint that the elements of the contact vector <math>k</math> must all be nonnegative. If you have <math>m</math> bodies in the assembly, you will have <math>3m</math> wrench balance equations, and if you have <math>n</math> contacts, you will have <math>2n</math> friction cone edges and therefore <math>2n</math> elements in your contact vector <math>k</math>.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><div>Your biggest job in this programming assignment is taking the specifications of the bodies' mass properties and the contacts and turning them into static equilibrium equations of the form <math>Fk = b</math>, similar to Example 12.11<ins class="diffchange diffchange-inline"> in the book</ins>. These equations are solved by linear programming with the constraint that the elements of the contact vector <math>k</math> must all be nonnegative. If you have <math>m</math> bodies in the assembly, you will have <math>3m</math> wrench balance equations, and if you have <math>n</math> contacts, you will have <math>2n</math> friction cone edges and therefore <math>2n</math> elements in your contact vector <math>k</math>.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>=== Testing Your Program ===</div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>=== Testing Your Program ===</div></td>
</tr>
</table>Lynchhttps://hades.mech.northwestern.edu//index.php?title=Stability_of_an_Assembly_Project&diff=25153&oldid=prevLynch: /* Program Specification */2018-07-20T11:04:15Z<p><span dir="auto"><span class="autocomment">Program Specification</span></span></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 11:04, 20 July 2018</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 20:</td>
<td colspan="2" class="diff-lineno">Line 20:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>The output of your program will be binary: it is either possible or impossible for the assembly to remain standing. Your solution method is likely to use linear programming (linprog in MATLAB, LinearProgramming in Mathematica, or scipy.optimize.linprog in Python). If you find a solution to the contact vector <math>k</math> (see Example 12.11) and standing is possible, then it is recommended that you also output <math>k</math>. This represents one set of contact forces that would keep the assembly standing. </div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>The output of your program will be binary: it is either possible or impossible for the assembly to remain standing. Your solution method is likely to use linear programming (linprog in MATLAB, LinearProgramming in Mathematica, or scipy.optimize.linprog in Python). If you find a solution to the contact vector <math>k</math> (see Example 12.11) and standing is possible, then it is recommended that you also output <math>k</math>. This represents one set of contact forces that would keep the assembly standing. </div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td class="diff-deletedline diff-side-deleted"><div>: '''Important note for Python users:''' A Coursera student mentioned a bug in linprog, apparently occurring when using the 'simplex' method for solving linear programs where the equality constraints are specified by a matrix that is not full rank. One solution is to use the interior point method by adding the option "method='interior-point'". See the discussion at [https://github.com/scipy/scipy/issues/6690 https://github.com/scipy/scipy/issues/6690].</div></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><div>: '''Important note for Python users:''' A Coursera student mentioned a bug in<ins class="diffchange diffchange-inline"> an earlier version of</ins> linprog, apparently occurring when using the 'simplex' method for solving linear programs where the equality constraints are specified by a matrix that is not full rank. One solution is to use the interior point method by adding the option "method='interior-point'". See the discussion at [https://github.com/scipy/scipy/issues/6690 https://github.com/scipy/scipy/issues/6690].</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>Unlike the form and force closure linear programming tests, where the elements of your contact vector had to be greater than or equal to a positive value, in this problem the elements of your contact vector only need to be nonnegative. (You are only trying to find one solution to the assembly equilibrium equations; in the form and force closure tests, you needed to show that the contacts could create arbitrary wrenches.)</div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>Unlike the form and force closure linear programming tests, where the elements of your contact vector had to be greater than or equal to a positive value, in this problem the elements of your contact vector only need to be nonnegative. (You are only trying to find one solution to the assembly equilibrium equations; in the form and force closure tests, you needed to show that the contacts could create arbitrary wrenches.)</div></td>
</tr>
</table>Lynchhttps://hades.mech.northwestern.edu//index.php?title=Stability_of_an_Assembly_Project&diff=25151&oldid=prevLynch: /* Program Specification */2018-07-20T11:00:17Z<p><span dir="auto"><span class="autocomment">Program Specification</span></span></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 11:00, 20 July 2018</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 19:</td>
<td colspan="2" class="diff-lineno">Line 19:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>The output of your program will be binary: it is either possible or impossible for the assembly to remain standing. Your solution method is likely to use linear programming (linprog in MATLAB, LinearProgramming in Mathematica, or scipy.optimize.linprog in Python). If you find a solution to the contact vector <math>k</math> (see Example 12.11) and standing is possible, then it is recommended that you also output <math>k</math>. This represents one set of contact forces that would keep the assembly standing. </div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>The output of your program will be binary: it is either possible or impossible for the assembly to remain standing. Your solution method is likely to use linear programming (linprog in MATLAB, LinearProgramming in Mathematica, or scipy.optimize.linprog in Python). If you find a solution to the contact vector <math>k</math> (see Example 12.11) and standing is possible, then it is recommended that you also output <math>k</math>. This represents one set of contact forces that would keep the assembly standing. </div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><br /></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><div>: '''Important note for Python users:''' A Coursera student mentioned a bug in linprog, apparently occurring when using the 'simplex' method for solving linear programs where the equality constraints are specified by a matrix that is not full rank. One solution is to use the interior point method by adding the option "method='interior-point'". See the discussion at [https://github.com/scipy/scipy/issues/6690 https://github.com/scipy/scipy/issues/6690].</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>Unlike the form and force closure linear programming tests, where the elements of your contact vector had to be greater than or equal to a positive value, in this problem the elements of your contact vector only need to be nonnegative. (You are only trying to find one solution to the assembly equilibrium equations; in the form and force closure tests, you needed to show that the contacts could create arbitrary wrenches.)</div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>Unlike the form and force closure linear programming tests, where the elements of your contact vector had to be greater than or equal to a positive value, in this problem the elements of your contact vector only need to be nonnegative. (You are only trying to find one solution to the assembly equilibrium equations; in the form and force closure tests, you needed to show that the contacts could create arbitrary wrenches.)</div></td>
</tr>
</table>Lynchhttps://hades.mech.northwestern.edu//index.php?title=Stability_of_an_Assembly_Project&diff=24818&oldid=prevLynch: /* Introduction */2018-05-27T22:44:17Z<p><span dir="auto"><span class="autocomment">Introduction</span></span></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 22:44, 27 May 2018</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 2:</td>
<td colspan="2" class="diff-lineno">Line 2:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>=== Introduction ===</div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>=== Introduction ===</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td class="diff-deletedline diff-side-deleted"><br /></td>
<td colspan="2" class="diff-empty diff-side-added"></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td class="diff-deletedline diff-side-deleted"><div>You will write a program to determine if an assembly of planar rigid bodies, in frictional contact with each other, can remain standing in gravity, or if the assembly must collapse. (See Example 12.11 and Figure 12.27 in Chapter 12.3 of the book.)</div></td>
<td colspan="2" class="diff-empty diff-side-added"></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>Your assignment will be graded on:</div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>Your assignment will be graded on:</div></td>
</tr>
</table>Lynchhttps://hades.mech.northwestern.edu//index.php?title=Stability_of_an_Assembly_Project&diff=24817&oldid=prevLynch at 22:43, 27 May 20182018-05-27T22:43:44Z<p></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 22:43, 27 May 2018</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>This page describes the "Stability of an Assembly" Project from the Coursera course "Modern Robotics, Course 5: Robot Manipulation and Wheeled Mobile Robots."</div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>This page describes the "Stability of an Assembly" Project from the Coursera course "Modern Robotics, Course 5: Robot Manipulation and Wheeled Mobile Robots."</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><br /></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><div>=== Introduction ===</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><br /></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><div>You will write a program to determine if an assembly of planar rigid bodies, in frictional contact with each other, can remain standing in gravity, or if the assembly must collapse. (See Example 12.11 and Figure 12.27 in Chapter 12.3 of the book.)</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><br /></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><div>Your assignment will be graded on:</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><div>* An evaluation of your source code, including its clarity for the reader.</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><div>* The correctness of your code's output on example assemblies, as well as your physical explanation for the results.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>=== Program Specification ===</div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>=== Program Specification ===</div></td>
</tr>
</table>Lynchhttps://hades.mech.northwestern.edu//index.php?title=Stability_of_an_Assembly_Project&diff=24792&oldid=prevLynch: /* What to Submit */2018-05-20T20:15:18Z<p><span dir="auto"><span class="autocomment">What to Submit</span></span></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 20:15, 20 May 2018</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 32:</td>
<td colspan="2" class="diff-lineno">Line 32:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>'''2. A directory called "results."''' In this directory you should have </div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>'''2. A directory called "results."''' In this directory you should have </div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>* An output log showing your program being called and the resulting output for the case of the '''collapsing assembly''' and the '''assembly that can continue to stand''' described in the section "Testing Your Program" above. The figure on this page shows the assembly and the text above gives the body masses and friction coefficients for these two cases. </div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>* An output log showing your program being called and the resulting output for the case of the '''collapsing assembly''' and the '''assembly that can continue to stand''' described in the section "Testing Your Program" above. The figure on this page shows the assembly and the text above gives the body masses and friction coefficients for these two cases. </div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td class="diff-deletedline diff-side-deleted"><div>* A drawing of another assembly of your own design. This assembly should have at least two bodies in addition to ground. You could use the three-body arch in Figure 12.27 as your assembly if you'd like (choose your own contact and center of mass locations that agree approximately with the figure). Without changing the masses of the bodies, this assembly must begin to collapse for one set of friction coefficients and should be able to stand for another set of friction coefficients. </div></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><div>* A drawing of another assembly of your own design. This assembly should have at least two bodies in addition to ground<ins class="diffchange diffchange-inline">. This drawing should clearly indicate the center of mass and contact <math>(x,y)</math> locations, as well as the masses of each body</ins>. You could use the three-body arch in Figure 12.27 as your assembly if you'd like (choose your own contact and center of mass locations that agree approximately with the figure). Without changing the masses of the bodies, this assembly must begin to collapse for one set of friction coefficients<ins class="diffchange diffchange-inline"> at the contacts</ins> and should be able to stand for another set of friction coefficients. </div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>* An output log showing your program being called with your assembly from the previous bullet, for a choice of friction coefficients where the assembly must begin to collapse and another set of choices where it can continue to stand. For each of the two cases, you should provide a brief explanation of the results. For example, for the case where the assembly can continue to stand, you can use your linear programming solution for <math>k</math> to draw the contact wrenches for each body, graphically showing that the sum of the contact wrenches cancels the gravity wrench.</div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>* An output log showing your program being called with your assembly from the previous bullet, for a choice of friction coefficients where the assembly must begin to collapse and another set of choices where it can continue to stand. For each of the two cases, you should provide a brief explanation of the results. For example, for the case where the assembly can continue to stand, you can use your linear programming solution for <math>k</math> to draw the contact wrenches for each body, graphically showing that the sum of the contact wrenches cancels the gravity wrench.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
</table>Lynchhttps://hades.mech.northwestern.edu//index.php?title=Stability_of_an_Assembly_Project&diff=24791&oldid=prevLynch: /* What to Submit */2018-05-20T19:58:15Z<p><span dir="auto"><span class="autocomment">What to Submit</span></span></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:58, 20 May 2018</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 33:</td>
<td colspan="2" class="diff-lineno">Line 33:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>* An output log showing your program being called and the resulting output for the case of the '''collapsing assembly''' and the '''assembly that can continue to stand''' described in the section "Testing Your Program" above. The figure on this page shows the assembly and the text above gives the body masses and friction coefficients for these two cases. </div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>* An output log showing your program being called and the resulting output for the case of the '''collapsing assembly''' and the '''assembly that can continue to stand''' described in the section "Testing Your Program" above. The figure on this page shows the assembly and the text above gives the body masses and friction coefficients for these two cases. </div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>* A drawing of another assembly of your own design. This assembly should have at least two bodies in addition to ground. You could use the three-body arch in Figure 12.27 as your assembly if you'd like (choose your own contact and center of mass locations that agree approximately with the figure). Without changing the masses of the bodies, this assembly must begin to collapse for one set of friction coefficients and should be able to stand for another set of friction coefficients. </div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>* A drawing of another assembly of your own design. This assembly should have at least two bodies in addition to ground. You could use the three-body arch in Figure 12.27 as your assembly if you'd like (choose your own contact and center of mass locations that agree approximately with the figure). Without changing the masses of the bodies, this assembly must begin to collapse for one set of friction coefficients and should be able to stand for another set of friction coefficients. </div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td class="diff-deletedline diff-side-deleted"><div>* An output log showing your program being called with your assembly from the previous bullet, for a choice friction coefficients where the assembly must begin to collapse and another set of choices where it can continue to stand. For each of the two cases, you should provide a brief explanation of the results. For example, for the case where the assembly can continue to stand, you can use your linear programming solution for <math>k</math> to draw the contact wrenches for each body, graphically showing that the sum of the contact wrenches cancels the gravity wrench.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><div>* An output log showing your program being called with your assembly from the previous bullet, for a choice<ins class="diffchange diffchange-inline"> of</ins> friction coefficients where the assembly must begin to collapse and another set of choices where it can continue to stand. For each of the two cases, you should provide a brief explanation of the results. For example, for the case where the assembly can continue to stand, you can use your linear programming solution for <math>k</math> to draw the contact wrenches for each body, graphically showing that the sum of the contact wrenches cancels the gravity wrench.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>'''3. (OPTIONAL).''' For the three-body arch in Figure 12.27 in the book, assume all three bodies are identical, with the same masses and friction coefficients. Use your program to determine the minimum friction coefficient that keeps the assembly standing.</div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>'''3. (OPTIONAL).''' For the three-body arch in Figure 12.27 in the book, assume all three bodies are identical, with the same masses and friction coefficients. Use your program to determine the minimum friction coefficient that keeps the assembly standing.</div></td>
</tr>
</table>Lynchhttps://hades.mech.northwestern.edu//index.php?title=Stability_of_an_Assembly_Project&diff=24790&oldid=prevLynch at 19:56, 20 May 20182018-05-20T19:56:44Z<p></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:56, 20 May 2018</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 3:</td>
<td colspan="2" class="diff-lineno">Line 3:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>=== Program Specification ===</div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>=== Program Specification ===</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td class="diff-deletedline diff-side-deleted"><div>[[image:leaning.png|thumb|right|x300px|An assembly consisting of two planar rigid bodies in contact with each other and stationary ground. This assembly will begin to collapse if the mass of body 1 is 2, the mass of body 2 is 5, and all friction coefficients are 0.5 except friction between body 1 and the ground, which is 0.1. The assembly can remain standing if the mass of body 1 is 2, the mass of body 2 is 10, and the friction coefficient at all four contacts is 0.5.]]</div></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><div>[[image:leaning.png|thumb|right|x300px|An assembly consisting of two planar rigid bodies in contact with each other and stationary ground. This assembly will begin to collapse if the mass of body 1 is 2, the mass of body 2 is 5, and all friction coefficients are 0.5 except<ins class="diffchange diffchange-inline"> the</ins> friction<ins class="diffchange diffchange-inline"> coefficient</ins> between body 1 and the ground, which is 0.1. The assembly can remain standing if the mass of body 1 is 2, the mass of body 2 is 10, and the friction coefficient at all four contacts is 0.5.]]</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>You will write a program to determine if an assembly of planar rigid bodies, in frictional contact with each other, can remain standing in gravity (where gravity acts in the <math>-y</math> direction), or if the assembly must collapse. (See Example 12.11 and Figure 12.27 in Chapter 12.3 of '''[http://modernrobotics.org the book]'''.) An example assembly is shown in the image at right.</div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>You will write a program to determine if an assembly of planar rigid bodies, in frictional contact with each other, can remain standing in gravity (where gravity acts in the <math>-y</math> direction), or if the assembly must collapse. (See Example 12.11 and Figure 12.27 in Chapter 12.3 of '''[http://modernrobotics.org the book]'''.) An example assembly is shown in the image at right.</div></td>
</tr>
</table>Lynchhttps://hades.mech.northwestern.edu//index.php?title=Stability_of_an_Assembly_Project&diff=24789&oldid=prevLynch at 19:56, 20 May 20182018-05-20T19:56:06Z<p></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:56, 20 May 2018</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 3:</td>
<td colspan="2" class="diff-lineno">Line 3:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>=== Program Specification ===</div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>=== Program Specification ===</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td class="diff-deletedline diff-side-deleted"><div>[[image:leaning.png|thumb|right|x300px|An assembly consisting of two planar rigid bodies in contact with each other and stationary ground.]]</div></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><div>[[image:leaning.png|thumb|right|x300px|An assembly consisting of two planar rigid bodies in contact with each other and stationary ground<ins class="diffchange diffchange-inline">. This assembly will begin to collapse if the mass of body 1 is 2, the mass of body 2 is 5, and all friction coefficients are 0.5 except friction between body 1 and the ground, which is 0.1. The assembly can remain standing if the mass of body 1 is 2, the mass of body 2 is 10, and the friction coefficient at all four contacts is 0.5</ins>.]]</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>You will write a program to determine if an assembly of planar rigid bodies, in frictional contact with each other, can remain standing in gravity (where gravity acts in the <math>-y</math> direction), or if the assembly must collapse. (See Example 12.11 and Figure 12.27 in Chapter 12.3 of '''[http://modernrobotics.org the book]'''.) An example assembly is shown in the image at right.</div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>You will write a program to determine if an assembly of planar rigid bodies, in frictional contact with each other, can remain standing in gravity (where gravity acts in the <math>-y</math> direction), or if the assembly must collapse. (See Example 12.11 and Figure 12.27 in Chapter 12.3 of '''[http://modernrobotics.org the book]'''.) An example assembly is shown in the image at right.</div></td>
</tr>
</table>Lynchhttps://hades.mech.northwestern.edu//index.php?title=Stability_of_an_Assembly_Project&diff=24788&oldid=prevLynch: /* What to Submit */2018-05-20T19:50:14Z<p><span dir="auto"><span class="autocomment">What to Submit</span></span></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:50, 20 May 2018</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 32:</td>
<td colspan="2" class="diff-lineno">Line 32:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>'''2. A directory called "results."''' In this directory you should have </div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>'''2. A directory called "results."''' In this directory you should have </div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>* An output log showing your program being called and the resulting output for the case of the '''collapsing assembly''' and the '''assembly that can continue to stand''' described in the section "Testing Your Program" above. The figure on this page shows the assembly and the text above gives the body masses and friction coefficients for these two cases. </div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>* An output log showing your program being called and the resulting output for the case of the '''collapsing assembly''' and the '''assembly that can continue to stand''' described in the section "Testing Your Program" above. The figure on this page shows the assembly and the text above gives the body masses and friction coefficients for these two cases. </div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td class="diff-deletedline diff-side-deleted"><div>* A drawing of another assembly of your own design. This assembly should have at least two bodies in addition to ground. You could use the arch in Figure 12.27 as your assembly if you'd like (choose your own contact and center of mass locations that agree approximately with the figure). Without changing the masses of the bodies, this assembly must begin to collapse for one set of friction coefficients and should be able to stand for another set of friction coefficients. </div></td>
<td class="diff-marker" data-marker="+"></td>
<td class="diff-addedline diff-side-added"><div>* A drawing of another assembly of your own design. This assembly should have at least two bodies in addition to ground. You could use the<ins class="diffchange diffchange-inline"> three-body</ins> arch in Figure 12.27 as your assembly if you'd like (choose your own contact and center of mass locations that agree approximately with the figure). Without changing the masses of the bodies, this assembly must begin to collapse for one set of friction coefficients and should be able to stand for another set of friction coefficients. </div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><div>* An output log showing your program being called with your assembly from the previous bullet, for a choice friction coefficients where the assembly must begin to collapse and another set of choices where it can continue to stand. For each of the two cases, you should provide a brief explanation of the results. For example, for the case where the assembly can continue to stand, you can use your linear programming solution for <math>k</math> to draw the contact wrenches for each body, graphically showing that the sum of the contact wrenches cancels the gravity wrench.</div></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><div>* An output log showing your program being called with your assembly from the previous bullet, for a choice friction coefficients where the assembly must begin to collapse and another set of choices where it can continue to stand. For each of the two cases, you should provide a brief explanation of the results. For example, for the case where the assembly can continue to stand, you can use your linear programming solution for <math>k</math> to draw the contact wrenches for each body, graphically showing that the sum of the contact wrenches cancels the gravity wrench.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td class="diff-context diff-side-deleted"><br /></td>
<td class="diff-marker"></td>
<td class="diff-context diff-side-added"><br /></td>
</tr>
</table>Lynch