<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://hades.mech.northwestern.edu//index.php?action=history&amp;feed=atom&amp;title=Mobile_Manipulation_Capstone_2021</id>
	<title>Mobile Manipulation Capstone 2021 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://hades.mech.northwestern.edu//index.php?action=history&amp;feed=atom&amp;title=Mobile_Manipulation_Capstone_2021"/>
	<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;action=history"/>
	<updated>2026-04-11T00:55:30Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26242&amp;oldid=prev</id>
		<title>Lynch: /* Introduction, and the CSV Mobile Manipulation youBot CoppeliaSim Scene */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26242&amp;oldid=prev"/>
		<updated>2021-12-09T01:32:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Introduction, and the CSV Mobile Manipulation youBot CoppeliaSim Scene&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:32, 9 December 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 34:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 34:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;* the initial resting configuration of the cube object (which has a known geometry), represented by a frame attached to the center of the object&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;* the initial resting configuration of the cube object (which has a known geometry), represented by a frame attached to the center of the object&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;* the desired final resting configuration of the cube object&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;* the desired final resting configuration of the cube object&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;* the actual initial configuration of the youBot&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;* the actual initial configuration of the youBot&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; (given by a 13-vector as described above, for example)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;* the&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; reference&lt;/del&gt; initial configuration of the youBot (&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;which&lt;/del&gt; will generally &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;be&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;different&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;from&lt;/del&gt; the actual initial configuration, to allow you to test feedback control)&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;* the initial configuration&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;math&amp;gt;T_{se}&amp;lt;/math&amp;gt; of the reference trajectory for the end-effector frame&lt;/ins&gt; of the youBot (&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;this&lt;/ins&gt; will generally &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;not&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;coincide&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;with&lt;/ins&gt; the&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; end-effector frame corresponding to the youBot&#039;s&lt;/ins&gt; actual initial configuration, to allow you to test&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; your&lt;/ins&gt; feedback control)&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;* optionally:  gains for your feedback controller (or these gains can be hard-coded in your program)&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;* optionally:  gains for your feedback controller (or these gains can be hard-coded in your program)&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26239&amp;oldid=prev</id>
		<title>Lynch: /* Final Step:  Completing the Project and Your Submission */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26239&amp;oldid=prev"/>
		<updated>2021-12-06T19:32:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Final Step:  Completing the Project and Your Submission&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:32, 6 December 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 398:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 398:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;&#039;&#039;&#039;What to submit:&#039;&#039;&#039; You will submit a single .zip file of a directory with the following contents:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;&#039;What to submit:&#039;&#039;&#039; You will submit a single .zip file of a directory with the following contents:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A file called README.txt or README.pdf.&#039;&#039;&#039;  This file should briefly explain your software and your results.  If you needed to follow a different approach to solve the problem than the one described above, explain why and explain your solution method.  If you encountered anything surprising, or if there is something you still don&#039;t understand, or if you think an important point is neglected in the description of the project on this page, explain it.  &#039;&#039;&#039;Extra credit (up to 10% of total points possible)&#039;&#039;&#039;: If you implement joint limits to avoid self-collisions and singularities, as described above, explain your method in this README file.  Also, include more results in the three results directories described below, showing the results when using your enhancements vs. when you don&#039;t use your enhancements, to highlight the value of your enhancements.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A file called README.txt or README.pdf.&#039;&#039;&#039;  This file should briefly explain your software and your results.  If you needed to follow a different approach to solve the problem than the one described above, explain why and explain your solution method.  If you encountered anything surprising, or if there is something you still don&#039;t understand, or if you think an important point is neglected in the description of the project on this page, explain it.  &#039;&#039;&#039;Extra credit (up to 10% of total points possible)&#039;&#039;&#039;: If you implement joint limits to avoid self-collisions and singularities, as described above, explain your method in this README file&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, including how you chose your joint limits and why they prevent the arm from colliding with itself or with the mobile base&lt;/ins&gt;.  Also, include more results in the three results directories described below, showing the results when using your enhancements vs. when you don&#039;t use your enhancements, to highlight the value of your enhancements&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. For example, you should include at least one more video in at least one of the directories, showing the performance when self-collision joint limits are enforced and when they are not&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;Your commented code in a directory called &quot;code.&quot;&#039;&#039;&#039; Your code should be commented, so it is clear to the reader what the code is doing. Your code comments must include an example of how to use the code, and to make the code easy to run, each separate task you solve should have its own script, so by invoking the script, the code runs with all the appropriate inputs. (This makes it easy for others to test your code and modify it to run with other inputs.)  Apart from the scripts, only turn in functions that you wrote or modified; you don&#039;t need to turn in other MR functions that your code uses. If your code is in MATLAB or Python, just turn in the source files (text files) with your functions. If your code is in Mathematica, turn in (a) your .nb notebook file and (b) a .pdf printout of your code, so a reviewer can read your code without having to have the Mathematica software. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;Your commented code in a directory called &quot;code.&quot;&#039;&#039;&#039; Your code should be commented, so it is clear to the reader what the code is doing. Your code comments must include an example of how to use the code, and to make the code easy to run, each separate task you solve should have its own script, so by invoking the script, the code runs with all the appropriate inputs. (This makes it easy for others to test your code and modify it to run with other inputs.)  Apart from the scripts, only turn in functions that you wrote or modified; you don&#039;t need to turn in other MR functions that your code uses. If your code is in MATLAB or Python, just turn in the source files (text files) with your functions. If your code is in Mathematica, turn in (a) your .nb notebook file and (b) a .pdf printout of your code, so a reviewer can read your code without having to have the Mathematica software. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A directory called &quot;results&quot; with the results of your program.&#039;&#039;&#039; This directory should contain three directories:  one titled &quot;best,&quot; one titled &quot;overshoot,&quot; and one titled &quot;newTask.&quot;  The directories &quot;best&quot; and &quot;overshoot&quot; both solve a pick-and-place task where the initial and final configurations of the cube are at the default locations in the capstone CoppeliaSim scene, i.e., the initial block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (1~\text{m}, 0~\text{m}, 0~\text{rad})&amp;lt;/math&amp;gt; and the final block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (0~\text{m},-1~\text{m},-\pi/2~\text{rad})&amp;lt;/math&amp;gt;.  The directory &quot;newTask&quot; should have different initial and final block configurations, which you are free to choose yourself. In all cases, the initial configuration of the end-effector should have at least 30 degrees of orientation error and 0.2 m of position error from the first configuration on the reference trajectory.  The directory &quot;best&quot; should contain results using a well-tuned controller, either feedforward-plus-P or feedforward-plus-PI.  The convergence exhibited by the controller does not necessarily have to be fast (in fact, it is more interesting if the convergence is not too fast, so the transient response is clearly visible), but the motion should be smooth, with no overshoot, and very little error by partway through trajectory segment 1.  The directory &quot;overshoot&quot; should contain the results using a less-well-tuned controller, one that exhibits overshoot and a bit of oscillation.  Nonetheless, the error should be eliminated before the end of trajectory segment 1.  Your controller for &quot;overshoot&quot; will likely be feedforward-plus-PI or just PI.  You can use any controller to solve the &quot;newTask&quot; task.  In each of the three directories, give:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A directory called &quot;results&quot; with the results of your program.&#039;&#039;&#039; This directory should contain three directories:  one titled &quot;best,&quot; one titled &quot;overshoot,&quot; and one titled &quot;newTask.&quot;  The directories &quot;best&quot; and &quot;overshoot&quot; both solve a pick-and-place task where the initial and final configurations of the cube are at the default locations in the capstone CoppeliaSim scene, i.e., the initial block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (1~\text{m}, 0~\text{m}, 0~\text{rad})&amp;lt;/math&amp;gt; and the final block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (0~\text{m},-1~\text{m},-\pi/2~\text{rad})&amp;lt;/math&amp;gt;.  The directory &quot;newTask&quot; should have different initial and final block configurations, which you are free to choose yourself. In all cases, the initial configuration of the end-effector should have at least 30 degrees of orientation error and 0.2 m of position error from the first configuration on the reference trajectory.  The directory &quot;best&quot; should contain results using a well-tuned controller, either feedforward-plus-P or feedforward-plus-PI.  The convergence exhibited by the controller does not necessarily have to be fast (in fact, it is more interesting if the convergence is not too fast, so the transient response is clearly visible), but the motion should be smooth, with no overshoot, and very little error by partway through trajectory segment 1.  The directory &quot;overshoot&quot; should contain the results using a less-well-tuned controller, one that exhibits overshoot and a bit of oscillation.  Nonetheless, the error should be eliminated before the end of trajectory segment 1.  Your controller for &quot;overshoot&quot; will likely be feedforward-plus-PI or just PI.  You can use any controller to solve the &quot;newTask&quot; task.  In each of the three directories, give:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26238&amp;oldid=prev</id>
		<title>Lynch: /* Final Step:  Completing the Project and Your Submission */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26238&amp;oldid=prev"/>
		<updated>2021-12-06T19:30:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Final Step:  Completing the Project and Your Submission&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:30, 6 December 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 398:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 398:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;&#039;&#039;&#039;What to submit:&#039;&#039;&#039; You will submit a single .zip file of a directory with the following contents:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;&#039;What to submit:&#039;&#039;&#039; You will submit a single .zip file of a directory with the following contents:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A file called README.txt or README.pdf.&#039;&#039;&#039;  This file should briefly explain your software and your results.  If you needed to follow a different approach to solve the problem than the one described above, explain why and explain your solution method.  If you encountered anything surprising, or if there is something you still don&#039;t understand, or if you think an important point is neglected in the description of the project on this page, explain it.  &#039;&#039;&#039;Extra credit (up to 10% of total points possible)&#039;&#039;&#039;: If you implement joint limits to avoid self-collisions and singularities, as described above, explain your method.  Also, include more results in the three results directories described below, showing the results when using your enhancements vs. when you don&#039;t use your enhancements, to highlight the value of your enhancements.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A file called README.txt or README.pdf.&#039;&#039;&#039;  This file should briefly explain your software and your results.  If you needed to follow a different approach to solve the problem than the one described above, explain why and explain your solution method.  If you encountered anything surprising, or if there is something you still don&#039;t understand, or if you think an important point is neglected in the description of the project on this page, explain it.  &#039;&#039;&#039;Extra credit (up to 10% of total points possible)&#039;&#039;&#039;: If you implement joint limits to avoid self-collisions and singularities, as described above, explain your method&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; in this README file&lt;/ins&gt;.  Also, include more results in the three results directories described below, showing the results when using your enhancements vs. when you don&#039;t use your enhancements, to highlight the value of your enhancements.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;Your commented code in a directory called &quot;code.&quot;&#039;&#039;&#039; Your code should be commented, so it is clear to the reader what the code is doing. Your code comments must include an example of how to use the code, and to make the code easy to run, each separate task you solve should have its own script, so by invoking the script, the code runs with all the appropriate inputs. (This makes it easy for others to test your code and modify it to run with other inputs.)  Apart from the scripts, only turn in functions that you wrote or modified; you don&#039;t need to turn in other MR functions that your code uses. If your code is in MATLAB or Python, just turn in the source files (text files) with your functions. If your code is in Mathematica, turn in (a) your .nb notebook file and (b) a .pdf printout of your code, so a reviewer can read your code without having to have the Mathematica software. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;Your commented code in a directory called &quot;code.&quot;&#039;&#039;&#039; Your code should be commented, so it is clear to the reader what the code is doing. Your code comments must include an example of how to use the code, and to make the code easy to run, each separate task you solve should have its own script, so by invoking the script, the code runs with all the appropriate inputs. (This makes it easy for others to test your code and modify it to run with other inputs.)  Apart from the scripts, only turn in functions that you wrote or modified; you don&#039;t need to turn in other MR functions that your code uses. If your code is in MATLAB or Python, just turn in the source files (text files) with your functions. If your code is in Mathematica, turn in (a) your .nb notebook file and (b) a .pdf printout of your code, so a reviewer can read your code without having to have the Mathematica software. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A directory called &quot;results&quot; with the results of your program.&#039;&#039;&#039; This directory should contain three directories:  one titled &quot;best,&quot; one titled &quot;overshoot,&quot; and one titled &quot;newTask.&quot;  The directories &quot;best&quot; and &quot;overshoot&quot; both solve a pick-and-place task where the initial and final configurations of the cube are at the default locations in the capstone CoppeliaSim scene, i.e., the initial block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (1~\text{m}, 0~\text{m}, 0~\text{rad})&amp;lt;/math&amp;gt; and the final block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (0~\text{m},-1~\text{m},-\pi/2~\text{rad})&amp;lt;/math&amp;gt;.  The directory &quot;newTask&quot; should have different initial and final block configurations, which you are free to choose yourself. In all cases, the initial configuration of the end-effector should have at least 30 degrees of orientation error and 0.2 m of position error from the first configuration on the reference trajectory.  The directory &quot;best&quot; should contain results using a well-tuned controller, either feedforward-plus-P or feedforward-plus-PI.  The convergence exhibited by the controller does not necessarily have to be fast (in fact, it is more interesting if the convergence is not too fast, so the transient response is clearly visible), but the motion should be smooth, with no overshoot, and very little error by partway through trajectory segment 1.  The directory &quot;overshoot&quot; should contain the results using a less-well-tuned controller, one that exhibits overshoot and a bit of oscillation.  Nonetheless, the error should be eliminated before the end of trajectory segment 1.  Your controller for &quot;overshoot&quot; will likely be feedforward-plus-PI or just PI.  You can use any controller to solve the &quot;newTask&quot; task.  In each of the three directories, give:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A directory called &quot;results&quot; with the results of your program.&#039;&#039;&#039; This directory should contain three directories:  one titled &quot;best,&quot; one titled &quot;overshoot,&quot; and one titled &quot;newTask.&quot;  The directories &quot;best&quot; and &quot;overshoot&quot; both solve a pick-and-place task where the initial and final configurations of the cube are at the default locations in the capstone CoppeliaSim scene, i.e., the initial block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (1~\text{m}, 0~\text{m}, 0~\text{rad})&amp;lt;/math&amp;gt; and the final block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (0~\text{m},-1~\text{m},-\pi/2~\text{rad})&amp;lt;/math&amp;gt;.  The directory &quot;newTask&quot; should have different initial and final block configurations, which you are free to choose yourself. In all cases, the initial configuration of the end-effector should have at least 30 degrees of orientation error and 0.2 m of position error from the first configuration on the reference trajectory.  The directory &quot;best&quot; should contain results using a well-tuned controller, either feedforward-plus-P or feedforward-plus-PI.  The convergence exhibited by the controller does not necessarily have to be fast (in fact, it is more interesting if the convergence is not too fast, so the transient response is clearly visible), but the motion should be smooth, with no overshoot, and very little error by partway through trajectory segment 1.  The directory &quot;overshoot&quot; should contain the results using a less-well-tuned controller, one that exhibits overshoot and a bit of oscillation.  Nonetheless, the error should be eliminated before the end of trajectory segment 1.  Your controller for &quot;overshoot&quot; will likely be feedforward-plus-PI or just PI.  You can use any controller to solve the &quot;newTask&quot; task.  In each of the three directories, give:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 413:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 413:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt; &amp;gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt; &amp;gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;:::In this case, the file/function &quot;runscript&quot; contains the data for the program and actually invokes the program, and you should include the file &quot;runscript&quot;.  It is recommended that your program provide some simple feedback to the user, like &quot;Generating animation csv file.  Writing error plot data.  Done.&quot; or similar, but it is not strictly necessary.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;:::In this case, the file/function &quot;runscript&quot; contains the data for the program and actually invokes the program, and you should include the file &quot;runscript&quot;.  It is recommended that your program provide some simple feedback to the user, like &quot;Generating animation csv file.  Writing error plot data.  Done.&quot; or similar, but it is not strictly necessary.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;## If you do the extra credit, as described above, your README file should mention additional files in this directory (including at least one extra video file) that shows how your enhancements improve the performance of the system. For example, one video could show the result when you don&#039;t use self-collision avoidance, and the other video could show the result when you turn on self-collision avoidance.&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Project grading.&#039;&#039;&#039;  Your project will be graded on the clarity and correctness of your README files and your code.  Your &quot;results&quot; directories will be graded on their correctness, including the quality of your videos and whether your error plots show reasonable convergence to zero.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Project grading.&#039;&#039;&#039;  Your project will be graded on the clarity and correctness of your README files and your code.  Your &quot;results&quot; directories will be graded on their correctness, including the quality of your videos and whether your error plots show reasonable convergence to zero.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26237&amp;oldid=prev</id>
		<title>Lynch: /* Final Step:  Completing the Project and Your Submission */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26237&amp;oldid=prev"/>
		<updated>2021-12-06T19:27:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Final Step:  Completing the Project and Your Submission&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:27, 6 December 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 398:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 398:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;&#039;&#039;&#039;What to submit:&#039;&#039;&#039; You will submit a single .zip file of a directory with the following contents:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;&#039;What to submit:&#039;&#039;&#039; You will submit a single .zip file of a directory with the following contents:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A file called README.txt or README.pdf.&#039;&#039;&#039;  This file should briefly explain your software and your results.  If you needed to follow a different approach to solve the problem than the one described above, explain why and explain your solution method.  If you encountered anything surprising, or if there is something you still don&#039;t understand, or if you think an important point is neglected in the description of the project on this page, explain it.  &#039;&#039;&#039;Extra credit (up to 10% of total points possible)&#039;&#039;&#039;: If you implement joint limits to avoid self-collisions and singularities, explain your method.  Also, include more results in the three results directories described below, showing the results when using your enhancements vs. when you don&#039;t use your enhancements, to highlight the value of your enhancements.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A file called README.txt or README.pdf.&#039;&#039;&#039;  This file should briefly explain your software and your results.  If you needed to follow a different approach to solve the problem than the one described above, explain why and explain your solution method.  If you encountered anything surprising, or if there is something you still don&#039;t understand, or if you think an important point is neglected in the description of the project on this page, explain it.  &#039;&#039;&#039;Extra credit (up to 10% of total points possible)&#039;&#039;&#039;: If you implement joint limits to avoid self-collisions and singularities&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, as described above&lt;/ins&gt;, explain your method.  Also, include more results in the three results directories described below, showing the results when using your enhancements vs. when you don&#039;t use your enhancements, to highlight the value of your enhancements.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;Your commented code in a directory called &quot;code.&quot;&#039;&#039;&#039; Your code should be commented, so it is clear to the reader what the code is doing. Your code comments must include an example of how to use the code, and to make the code easy to run, each separate task you solve should have its own script, so by invoking the script, the code runs with all the appropriate inputs. (This makes it easy for others to test your code and modify it to run with other inputs.)  Apart from the scripts, only turn in functions that you wrote or modified; you don&#039;t need to turn in other MR functions that your code uses. If your code is in MATLAB or Python, just turn in the source files (text files) with your functions. If your code is in Mathematica, turn in (a) your .nb notebook file and (b) a .pdf printout of your code, so a reviewer can read your code without having to have the Mathematica software. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;Your commented code in a directory called &quot;code.&quot;&#039;&#039;&#039; Your code should be commented, so it is clear to the reader what the code is doing. Your code comments must include an example of how to use the code, and to make the code easy to run, each separate task you solve should have its own script, so by invoking the script, the code runs with all the appropriate inputs. (This makes it easy for others to test your code and modify it to run with other inputs.)  Apart from the scripts, only turn in functions that you wrote or modified; you don&#039;t need to turn in other MR functions that your code uses. If your code is in MATLAB or Python, just turn in the source files (text files) with your functions. If your code is in Mathematica, turn in (a) your .nb notebook file and (b) a .pdf printout of your code, so a reviewer can read your code without having to have the Mathematica software. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A directory called &quot;results&quot; with the results of your program.&#039;&#039;&#039; This directory should contain three directories:  one titled &quot;best,&quot; one titled &quot;overshoot,&quot; and one titled &quot;newTask.&quot;  The directories &quot;best&quot; and &quot;overshoot&quot; both solve a pick-and-place task where the initial and final configurations of the cube are at the default locations in the capstone CoppeliaSim scene, i.e., the initial block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (1~\text{m}, 0~\text{m}, 0~\text{rad})&amp;lt;/math&amp;gt; and the final block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (0~\text{m},-1~\text{m},-\pi/2~\text{rad})&amp;lt;/math&amp;gt;.  The directory &quot;newTask&quot; should have different initial and final block configurations, which you are free to choose yourself. In all cases, the initial configuration of the end-effector should have at least 30 degrees of orientation error and 0.2 m of position error from the first configuration on the reference trajectory.  The directory &quot;best&quot; should contain results using a well-tuned controller, either feedforward-plus-P or feedforward-plus-PI.  The convergence exhibited by the controller does not necessarily have to be fast (in fact, it is more interesting if the convergence is not too fast, so the transient response is clearly visible), but the motion should be smooth, with no overshoot, and very little error by partway through trajectory segment 1.  The directory &quot;overshoot&quot; should contain the results using a less-well-tuned controller, one that exhibits overshoot and a bit of oscillation.  Nonetheless, the error should be eliminated before the end of trajectory segment 1.  Your controller for &quot;overshoot&quot; will likely be feedforward-plus-PI or just PI.  You can use any controller to solve the &quot;newTask&quot; task.  In each of the three directories, give:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A directory called &quot;results&quot; with the results of your program.&#039;&#039;&#039; This directory should contain three directories:  one titled &quot;best,&quot; one titled &quot;overshoot,&quot; and one titled &quot;newTask.&quot;  The directories &quot;best&quot; and &quot;overshoot&quot; both solve a pick-and-place task where the initial and final configurations of the cube are at the default locations in the capstone CoppeliaSim scene, i.e., the initial block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (1~\text{m}, 0~\text{m}, 0~\text{rad})&amp;lt;/math&amp;gt; and the final block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (0~\text{m},-1~\text{m},-\pi/2~\text{rad})&amp;lt;/math&amp;gt;.  The directory &quot;newTask&quot; should have different initial and final block configurations, which you are free to choose yourself. In all cases, the initial configuration of the end-effector should have at least 30 degrees of orientation error and 0.2 m of position error from the first configuration on the reference trajectory.  The directory &quot;best&quot; should contain results using a well-tuned controller, either feedforward-plus-P or feedforward-plus-PI.  The convergence exhibited by the controller does not necessarily have to be fast (in fact, it is more interesting if the convergence is not too fast, so the transient response is clearly visible), but the motion should be smooth, with no overshoot, and very little error by partway through trajectory segment 1.  The directory &quot;overshoot&quot; should contain the results using a less-well-tuned controller, one that exhibits overshoot and a bit of oscillation.  Nonetheless, the error should be eliminated before the end of trajectory segment 1.  Your controller for &quot;overshoot&quot; will likely be feedforward-plus-PI or just PI.  You can use any controller to solve the &quot;newTask&quot; task.  In each of the three directories, give:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 413:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 413:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt; &amp;gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt; &amp;gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;:::In this case, the file/function &quot;runscript&quot; contains the data for the program and actually invokes the program, and you should include the file &quot;runscript&quot;.  It is recommended that your program provide some simple feedback to the user, like &quot;Generating animation csv file.  Writing error plot data.  Done.&quot; or similar, but it is not strictly necessary.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;:::In this case, the file/function &quot;runscript&quot; contains the data for the program and actually invokes the program, and you should include the file &quot;runscript&quot;.  It is recommended that your program provide some simple feedback to the user, like &quot;Generating animation csv file.  Writing error plot data.  Done.&quot; or similar, but it is not strictly necessary.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;## If you do the extra credit, as described above, your README file should mention additional files in this directory (including at least one extra video file) that shows how your enhancements improve the performance of the system. For example, one video could show the result when you don&#039;t use self-collision avoidance, and the other video could show the result when you turn on self-collision avoidance.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Project grading.&#039;&#039;&#039;  Your project will be graded on the clarity and correctness of your README files and your code.  Your &quot;results&quot; directories will be graded on their correctness, including the quality of your videos and whether your error plots show reasonable convergence to zero.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Project grading.&#039;&#039;&#039;  Your project will be graded on the clarity and correctness of your README files and your code.  Your &quot;results&quot; directories will be graded on their correctness, including the quality of your videos and whether your error plots show reasonable convergence to zero.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26236&amp;oldid=prev</id>
		<title>Lynch: /* Final Step:  Completing the Project and Your Submission */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26236&amp;oldid=prev"/>
		<updated>2021-12-06T19:23:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Final Step:  Completing the Project and Your Submission&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:23, 6 December 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 398:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 398:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;&#039;&#039;&#039;What to submit:&#039;&#039;&#039; You will submit a single .zip file of a directory with the following contents:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;&#039;What to submit:&#039;&#039;&#039; You will submit a single .zip file of a directory with the following contents:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A file called README.txt or README.pdf.&#039;&#039;&#039;  This file should briefly explain your software and your results.  If you needed to follow a different approach to solve the problem than the one described above, explain why and explain your solution method.  If you encountered anything surprising, or if there is something you still don&#039;t understand, or if you think an important point is neglected in the description of the project on this page, explain it.  &#039;&#039;&#039;Extra credit (up to 10% of total points possible&#039;&#039;&#039;: If you implement joint limits to avoid self-collisions and singularities, explain your method.  Also, include more results in the three results directories described below, showing the results when using your enhancements vs. when you don&#039;t use your enhancements, to highlight the value of your enhancements.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A file called README.txt or README.pdf.&#039;&#039;&#039;  This file should briefly explain your software and your results.  If you needed to follow a different approach to solve the problem than the one described above, explain why and explain your solution method.  If you encountered anything surprising, or if there is something you still don&#039;t understand, or if you think an important point is neglected in the description of the project on this page, explain it.  &#039;&#039;&#039;Extra credit (up to 10% of total points possible&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;)&lt;/ins&gt;&#039;&#039;&#039;: If you implement joint limits to avoid self-collisions and singularities, explain your method.  Also, include more results in the three results directories described below, showing the results when using your enhancements vs. when you don&#039;t use your enhancements, to highlight the value of your enhancements.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;Your commented code in a directory called &quot;code.&quot;&#039;&#039;&#039; Your code should be commented, so it is clear to the reader what the code is doing. Your code comments must include an example of how to use the code, and to make the code easy to run, each separate task you solve should have its own script, so by invoking the script, the code runs with all the appropriate inputs. (This makes it easy for others to test your code and modify it to run with other inputs.)  Apart from the scripts, only turn in functions that you wrote or modified; you don&#039;t need to turn in other MR functions that your code uses. If your code is in MATLAB or Python, just turn in the source files (text files) with your functions. If your code is in Mathematica, turn in (a) your .nb notebook file and (b) a .pdf printout of your code, so a reviewer can read your code without having to have the Mathematica software. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;Your commented code in a directory called &quot;code.&quot;&#039;&#039;&#039; Your code should be commented, so it is clear to the reader what the code is doing. Your code comments must include an example of how to use the code, and to make the code easy to run, each separate task you solve should have its own script, so by invoking the script, the code runs with all the appropriate inputs. (This makes it easy for others to test your code and modify it to run with other inputs.)  Apart from the scripts, only turn in functions that you wrote or modified; you don&#039;t need to turn in other MR functions that your code uses. If your code is in MATLAB or Python, just turn in the source files (text files) with your functions. If your code is in Mathematica, turn in (a) your .nb notebook file and (b) a .pdf printout of your code, so a reviewer can read your code without having to have the Mathematica software. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A directory called &quot;results&quot; with the results of your program.&#039;&#039;&#039; This directory should contain three directories:  one titled &quot;best,&quot; one titled &quot;overshoot,&quot; and one titled &quot;newTask.&quot;  The directories &quot;best&quot; and &quot;overshoot&quot; both solve a pick-and-place task where the initial and final configurations of the cube are at the default locations in the capstone CoppeliaSim scene, i.e., the initial block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (1~\text{m}, 0~\text{m}, 0~\text{rad})&amp;lt;/math&amp;gt; and the final block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (0~\text{m},-1~\text{m},-\pi/2~\text{rad})&amp;lt;/math&amp;gt;.  The directory &quot;newTask&quot; should have different initial and final block configurations, which you are free to choose yourself. In all cases, the initial configuration of the end-effector should have at least 30 degrees of orientation error and 0.2 m of position error from the first configuration on the reference trajectory.  The directory &quot;best&quot; should contain results using a well-tuned controller, either feedforward-plus-P or feedforward-plus-PI.  The convergence exhibited by the controller does not necessarily have to be fast (in fact, it is more interesting if the convergence is not too fast, so the transient response is clearly visible), but the motion should be smooth, with no overshoot, and very little error by partway through trajectory segment 1.  The directory &quot;overshoot&quot; should contain the results using a less-well-tuned controller, one that exhibits overshoot and a bit of oscillation.  Nonetheless, the error should be eliminated before the end of trajectory segment 1.  Your controller for &quot;overshoot&quot; will likely be feedforward-plus-PI or just PI.  You can use any controller to solve the &quot;newTask&quot; task.  In each of the three directories, give:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A directory called &quot;results&quot; with the results of your program.&#039;&#039;&#039; This directory should contain three directories:  one titled &quot;best,&quot; one titled &quot;overshoot,&quot; and one titled &quot;newTask.&quot;  The directories &quot;best&quot; and &quot;overshoot&quot; both solve a pick-and-place task where the initial and final configurations of the cube are at the default locations in the capstone CoppeliaSim scene, i.e., the initial block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (1~\text{m}, 0~\text{m}, 0~\text{rad})&amp;lt;/math&amp;gt; and the final block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (0~\text{m},-1~\text{m},-\pi/2~\text{rad})&amp;lt;/math&amp;gt;.  The directory &quot;newTask&quot; should have different initial and final block configurations, which you are free to choose yourself. In all cases, the initial configuration of the end-effector should have at least 30 degrees of orientation error and 0.2 m of position error from the first configuration on the reference trajectory.  The directory &quot;best&quot; should contain results using a well-tuned controller, either feedforward-plus-P or feedforward-plus-PI.  The convergence exhibited by the controller does not necessarily have to be fast (in fact, it is more interesting if the convergence is not too fast, so the transient response is clearly visible), but the motion should be smooth, with no overshoot, and very little error by partway through trajectory segment 1.  The directory &quot;overshoot&quot; should contain the results using a less-well-tuned controller, one that exhibits overshoot and a bit of oscillation.  Nonetheless, the error should be eliminated before the end of trajectory segment 1.  Your controller for &quot;overshoot&quot; will likely be feedforward-plus-PI or just PI.  You can use any controller to solve the &quot;newTask&quot; task.  In each of the three directories, give:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26235&amp;oldid=prev</id>
		<title>Lynch: /* Final Step:  Completing the Project and Your Submission */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26235&amp;oldid=prev"/>
		<updated>2021-12-06T19:22:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Final Step:  Completing the Project and Your Submission&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:22, 6 December 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 398:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 398:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;&#039;&#039;&#039;What to submit:&#039;&#039;&#039; You will submit a single .zip file of a directory with the following contents:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;&#039;What to submit:&#039;&#039;&#039; You will submit a single .zip file of a directory with the following contents:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A file called README.txt or README.pdf.&#039;&#039;&#039;  This file should briefly explain your software and your results.  If you needed to follow a different approach to solve the problem than the one described above, explain why and explain your solution method.  If you encountered anything surprising, or if there is something you still don&#039;t understand, or if you think an important point is neglected in the description of the project on this page, explain it.  &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;If&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;you&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;implemented&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;singularity&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;avoidance,&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;joint&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;limit&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;avoidance,&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;or&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;any&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;other&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;enhancement&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;over&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;basic&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;project&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;description&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;given&lt;/del&gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;on this page&lt;/del&gt;, explain your method.  &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;You may also wish to&lt;/del&gt; include more results in the three results directories described below, showing the results when using your enhancements vs. when you don&#039;t use your enhancements, to highlight the value of your enhancements.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A file called README.txt or README.pdf.&#039;&#039;&#039;  This file should briefly explain your software and your results.  If you needed to follow a different approach to solve the problem than the one described above, explain why and explain your solution method.  If you encountered anything surprising, or if there is something you still don&#039;t understand, or if you think an important point is neglected in the description of the project on this page, explain it.  &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&#039;&#039;&#039;Extra&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;credit&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(up&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;to&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;10%&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;of&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;total&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;points&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;possible&#039;&#039;&#039;:&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;If&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;you&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;implement&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;joint&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;limits&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;to&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;avoid&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;self-collisions&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and&lt;/ins&gt; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;singularities&lt;/ins&gt;, explain your method.  &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Also,&lt;/ins&gt; include more results in the three results directories described below, showing the results when using your enhancements vs. when you don&#039;t use your enhancements, to highlight the value of your enhancements.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;Your commented code in a directory called &quot;code.&quot;&#039;&#039;&#039; Your code should be commented, so it is clear to the reader what the code is doing. Your code comments must include an example of how to use the code, and to make the code easy to run, each separate task you solve should have its own script, so by invoking the script, the code runs with all the appropriate inputs. (This makes it easy for others to test your code and modify it to run with other inputs.)  Apart from the scripts, only turn in functions that you wrote or modified; you don&#039;t need to turn in other MR functions that your code uses. If your code is in MATLAB or Python, just turn in the source files (text files) with your functions. If your code is in Mathematica, turn in (a) your .nb notebook file and (b) a .pdf printout of your code, so a reviewer can read your code without having to have the Mathematica software. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;Your commented code in a directory called &quot;code.&quot;&#039;&#039;&#039; Your code should be commented, so it is clear to the reader what the code is doing. Your code comments must include an example of how to use the code, and to make the code easy to run, each separate task you solve should have its own script, so by invoking the script, the code runs with all the appropriate inputs. (This makes it easy for others to test your code and modify it to run with other inputs.)  Apart from the scripts, only turn in functions that you wrote or modified; you don&#039;t need to turn in other MR functions that your code uses. If your code is in MATLAB or Python, just turn in the source files (text files) with your functions. If your code is in Mathematica, turn in (a) your .nb notebook file and (b) a .pdf printout of your code, so a reviewer can read your code without having to have the Mathematica software. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A directory called &quot;results&quot; with the results of your program.&#039;&#039;&#039; This directory should contain three directories:  one titled &quot;best,&quot; one titled &quot;overshoot,&quot; and one titled &quot;newTask.&quot;  The directories &quot;best&quot; and &quot;overshoot&quot; both solve a pick-and-place task where the initial and final configurations of the cube are at the default locations in the capstone CoppeliaSim scene, i.e., the initial block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (1~\text{m}, 0~\text{m}, 0~\text{rad})&amp;lt;/math&amp;gt; and the final block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (0~\text{m},-1~\text{m},-\pi/2~\text{rad})&amp;lt;/math&amp;gt;.  The directory &quot;newTask&quot; should have different initial and final block configurations, which you are free to choose yourself. In all cases, the initial configuration of the end-effector should have at least 30 degrees of orientation error and 0.2 m of position error from the first configuration on the reference trajectory.  The directory &quot;best&quot; should contain results using a well-tuned controller, either feedforward-plus-P or feedforward-plus-PI.  The convergence exhibited by the controller does not necessarily have to be fast (in fact, it is more interesting if the convergence is not too fast, so the transient response is clearly visible), but the motion should be smooth, with no overshoot, and very little error by partway through trajectory segment 1.  The directory &quot;overshoot&quot; should contain the results using a less-well-tuned controller, one that exhibits overshoot and a bit of oscillation.  Nonetheless, the error should be eliminated before the end of trajectory segment 1.  Your controller for &quot;overshoot&quot; will likely be feedforward-plus-PI or just PI.  You can use any controller to solve the &quot;newTask&quot; task.  In each of the three directories, give:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A directory called &quot;results&quot; with the results of your program.&#039;&#039;&#039; This directory should contain three directories:  one titled &quot;best,&quot; one titled &quot;overshoot,&quot; and one titled &quot;newTask.&quot;  The directories &quot;best&quot; and &quot;overshoot&quot; both solve a pick-and-place task where the initial and final configurations of the cube are at the default locations in the capstone CoppeliaSim scene, i.e., the initial block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (1~\text{m}, 0~\text{m}, 0~\text{rad})&amp;lt;/math&amp;gt; and the final block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (0~\text{m},-1~\text{m},-\pi/2~\text{rad})&amp;lt;/math&amp;gt;.  The directory &quot;newTask&quot; should have different initial and final block configurations, which you are free to choose yourself. In all cases, the initial configuration of the end-effector should have at least 30 degrees of orientation error and 0.2 m of position error from the first configuration on the reference trajectory.  The directory &quot;best&quot; should contain results using a well-tuned controller, either feedforward-plus-P or feedforward-plus-PI.  The convergence exhibited by the controller does not necessarily have to be fast (in fact, it is more interesting if the convergence is not too fast, so the transient response is clearly visible), but the motion should be smooth, with no overshoot, and very little error by partway through trajectory segment 1.  The directory &quot;overshoot&quot; should contain the results using a less-well-tuned controller, one that exhibits overshoot and a bit of oscillation.  Nonetheless, the error should be eliminated before the end of trajectory segment 1.  Your controller for &quot;overshoot&quot; will likely be feedforward-plus-PI or just PI.  You can use any controller to solve the &quot;newTask&quot; task.  In each of the three directories, give:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26225&amp;oldid=prev</id>
		<title>Lynch: /* Rigid Bodies in Scene 6 */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26225&amp;oldid=prev"/>
		<updated>2021-11-09T22:11:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Rigid Bodies in Scene 6&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:11, 9 November 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 141:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 141:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;respondable&#039;&#039;&#039;:  The body can make contact and collide with other bodies.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;respondable&#039;&#039;&#039;:  The body can make contact and collide with other bodies.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;non-respondable&#039;&#039;&#039;:  The body can pass through other bodies.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;non-respondable&#039;&#039;&#039;:  The body can pass through other bodies.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;Thus if a respondable body and a non-respondable body overlap, or if two non-respondable bodies overlap, there is no collision.  If two respondable bodies make contact, however, forces will keep them from penetrating each other.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;Thus if a respondable body and a non-respondable body overlap, or if two non-respondable bodies overlap, there is no collision.  If two respondable bodies make contact, however, forces will&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; try to&lt;/ins&gt; keep them from penetrating each other.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;&#039;&#039;&#039;In Scene 6, only the floor, the gripper fingers, and the cube are respondable.  All other bodies are non-respondable.&#039;&#039;&#039; This means, for example, that the robot can drive over the cube, and the cube will never move.  (The chassis and wheels do not interact with the cube.)  This also means that the youBot&#039;s arm can intersect the mobile base, or arm links can intersect each other.  This is unrealistic, of course, but we are focusing on the interaction of the cube with the gripper and the floor.  &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;&#039;In Scene 6, only the floor, the gripper fingers, and the cube are respondable.  All other bodies are non-respondable.&#039;&#039;&#039; This means, for example, that the robot can drive over the cube, and the cube will never move.  (The chassis and wheels do not interact with the cube.)  This also means that the youBot&#039;s arm can intersect the mobile base, or arm links can intersect each other.  This is unrealistic, of course, but we are focusing on the interaction of the cube with the gripper and the floor.  &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26215&amp;oldid=prev</id>
		<title>Lynch: /* Final Step:  Completing the Project and Your Submission */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26215&amp;oldid=prev"/>
		<updated>2021-11-09T18:14:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Final Step:  Completing the Project and Your Submission&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:14, 9 November 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 399:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 399:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;&#039;&#039;&#039;What to submit:&#039;&#039;&#039; You will submit a single .zip file of a directory with the following contents:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;&#039;What to submit:&#039;&#039;&#039; You will submit a single .zip file of a directory with the following contents:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A file called README.txt or README.pdf.&#039;&#039;&#039;  This file should briefly explain your software and your results.  If you needed to follow a different approach to solve the problem than the one described above, explain why and explain your solution method.  If you encountered anything surprising, or if there is something you still don&#039;t understand, or if you think an important point is neglected in the description of the project on this page, explain it.  If you implemented singularity avoidance, joint limit avoidance, or any other enhancement over the basic project description given on this page, explain your method.  You may also wish to include more results in the three results directories described below, showing the results when using your enhancements vs. when you don&#039;t use your enhancements, to highlight the value of your enhancements.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A file called README.txt or README.pdf.&#039;&#039;&#039;  This file should briefly explain your software and your results.  If you needed to follow a different approach to solve the problem than the one described above, explain why and explain your solution method.  If you encountered anything surprising, or if there is something you still don&#039;t understand, or if you think an important point is neglected in the description of the project on this page, explain it.  If you implemented singularity avoidance, joint limit avoidance, or any other enhancement over the basic project description given on this page, explain your method.  You may also wish to include more results in the three results directories described below, showing the results when using your enhancements vs. when you don&#039;t use your enhancements, to highlight the value of your enhancements.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;Your commented code in a directory called &quot;code.&quot;&#039;&#039;&#039; Your code should be commented, so it is clear to the reader what the code is doing&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;. No need to go overboard with too many comments, but keep in mind your reviewer may not be fluent in your programming language&lt;/del&gt;. Your code comments must include an example of how to use the code, and to make the code easy to run, each separate task you solve should have its own script, so by invoking the script, the code runs with all the appropriate inputs. (This makes it easy for others to test your code and modify it to run with other inputs.)  Apart from the scripts, only turn in functions that you wrote or modified; you don&#039;t need to turn in other MR functions that your code uses. If your code is in MATLAB or Python, just turn in the source files (text files) with your functions. If your code is in Mathematica, turn in (a) your .nb notebook file and (b) a .pdf printout of your code, so a reviewer can read your code without having to have the Mathematica software. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;Your commented code in a directory called &quot;code.&quot;&#039;&#039;&#039; Your code should be commented, so it is clear to the reader what the code is doing. Your code comments must include an example of how to use the code, and to make the code easy to run, each separate task you solve should have its own script, so by invoking the script, the code runs with all the appropriate inputs. (This makes it easy for others to test your code and modify it to run with other inputs.)  Apart from the scripts, only turn in functions that you wrote or modified; you don&#039;t need to turn in other MR functions that your code uses. If your code is in MATLAB or Python, just turn in the source files (text files) with your functions. If your code is in Mathematica, turn in (a) your .nb notebook file and (b) a .pdf printout of your code, so a reviewer can read your code without having to have the Mathematica software. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A directory called &quot;results&quot; with the results of your program.&#039;&#039;&#039; This directory should contain three directories:  one titled &quot;best,&quot; one titled &quot;overshoot,&quot; and one titled &quot;newTask.&quot;  The directories &quot;best&quot; and &quot;overshoot&quot; both solve a pick-and-place task where the initial and final configurations of the cube are at the default locations in the capstone CoppeliaSim scene, i.e., the initial block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (1~\text{m}, 0~\text{m}, 0~\text{rad})&amp;lt;/math&amp;gt; and the final block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (0~\text{m},-1~\text{m},-\pi/2~\text{rad})&amp;lt;/math&amp;gt;.  The directory &quot;newTask&quot; should have different initial and final block configurations, which you are free to choose yourself. In all cases, the initial configuration of the end-effector should have at least 30 degrees of orientation error and 0.2 m of position error from the first configuration on the reference trajectory.  The directory &quot;best&quot; should contain results using a well-tuned controller, either feedforward-plus-P or feedforward-plus-PI.  The convergence exhibited by the controller does not necessarily have to be fast (in fact, it is more interesting if the convergence is not too fast, so the transient response is clearly visible), but the motion should be smooth, with no overshoot, and very little error by partway through trajectory segment 1.  The directory &quot;overshoot&quot; should contain the results using a less-well-tuned controller, one that exhibits overshoot and a bit of oscillation.  Nonetheless, the error should be eliminated before the end of trajectory segment 1.  Your controller for &quot;overshoot&quot; will likely be feedforward-plus-PI or just PI.  You can use any controller to solve the &quot;newTask&quot; task.  In each of the three directories, give:&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;A directory called &quot;results&quot; with the results of your program.&#039;&#039;&#039; This directory should contain three directories:  one titled &quot;best,&quot; one titled &quot;overshoot,&quot; and one titled &quot;newTask.&quot;  The directories &quot;best&quot; and &quot;overshoot&quot; both solve a pick-and-place task where the initial and final configurations of the cube are at the default locations in the capstone CoppeliaSim scene, i.e., the initial block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (1~\text{m}, 0~\text{m}, 0~\text{rad})&amp;lt;/math&amp;gt; and the final block configuration is at &amp;lt;math&amp;gt;(x,y,\theta) = (0~\text{m},-1~\text{m},-\pi/2~\text{rad})&amp;lt;/math&amp;gt;.  The directory &quot;newTask&quot; should have different initial and final block configurations, which you are free to choose yourself. In all cases, the initial configuration of the end-effector should have at least 30 degrees of orientation error and 0.2 m of position error from the first configuration on the reference trajectory.  The directory &quot;best&quot; should contain results using a well-tuned controller, either feedforward-plus-P or feedforward-plus-PI.  The convergence exhibited by the controller does not necessarily have to be fast (in fact, it is more interesting if the convergence is not too fast, so the transient response is clearly visible), but the motion should be smooth, with no overshoot, and very little error by partway through trajectory segment 1.  The directory &quot;overshoot&quot; should contain the results using a less-well-tuned controller, one that exhibits overshoot and a bit of oscillation.  Nonetheless, the error should be eliminated before the end of trajectory segment 1.  Your controller for &quot;overshoot&quot; will likely be feedforward-plus-PI or just PI.  You can use any controller to solve the &quot;newTask&quot; task.  In each of the three directories, give:&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;## A very brief README.txt or README.pdf file that indicates the type of controller, the feedback gains, and any other useful information about the results.  For the &quot;newTask&quot; directory, indicate the initial and goal configurations for the cube.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;## A very brief README.txt or README.pdf file that indicates the type of controller, the feedback gains, and any other useful information about the results.  For the &quot;newTask&quot; directory, indicate the initial and goal configurations for the cube.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26214&amp;oldid=prev</id>
		<title>Lynch: /* Other Things to Try */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26214&amp;oldid=prev"/>
		<updated>2021-11-09T18:02:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Other Things to Try&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:02, 9 November 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 421:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 421:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;You could imagine other approaches to solving the mobile manipulator pick-and-place problem, instead of just planning a trajectory for the end-effector and using feedback control to track it.  For example, you could use an obstacle-avoiding motion planner to plan a reference trajectory for the entire robot, not just the end-effector.  You could incorporate joint limits for the robot arm.  You could use a weighted pseudoinverse, instead of the standard pseudoinverse, to indicate a preference to use wheel or joint motions.  You could actively avoid singularities of the arm.  You could decide to keep the mobile base stationary during trajectory segments 2, 4, 6, and 8.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;You could imagine other approaches to solving the mobile manipulator pick-and-place problem, instead of just planning a trajectory for the end-effector and using feedback control to track it.  For example, you could use an obstacle-avoiding motion planner to plan a reference trajectory for the entire robot, not just the end-effector.  You could incorporate joint limits for the robot arm.  You could use a weighted pseudoinverse, instead of the standard pseudoinverse, to indicate a preference to use wheel or joint motions.  You could actively avoid singularities of the arm.  You could decide to keep the mobile base stationary during trajectory segments 2, 4, 6, and 8.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;If you have other ideas on better ways to approach the mobile manipulation problem, feel free to mention them in a discussion prompt or your main README file.&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;If you are interested, you could delve more deeply into CoppeliaSim, for example by changing the respondability or dynamic properties of rigid bodies.  If you make the youBot chassis respondable, the youBot&#039;s chassis can push the block around.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;If you are interested, you could delve more deeply into CoppeliaSim, for example by changing the respondability or dynamic properties of rigid bodies.  If you make the youBot chassis respondable, the youBot&#039;s chassis can push the block around.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26213&amp;oldid=prev</id>
		<title>Lynch: /* Final Step:  Completing the Project and Your Submission */</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2021&amp;diff=26213&amp;oldid=prev"/>
		<updated>2021-11-09T18:01:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Final Step:  Completing the Project and Your Submission&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:01, 9 November 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 416:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 416:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Project grading.&#039;&#039;&#039;  Your project will be graded on the clarity and correctness of your README files and your code.  Your &quot;results&quot; directories will be graded on their correctness, including the quality of your videos and whether your error plots show reasonable convergence to zero.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;&#039;Project grading.&#039;&#039;&#039;  Your project will be graded on the clarity and correctness of your README files and your code.  Your &quot;results&quot; directories will be graded on their correctness, including the quality of your videos and whether your error plots show reasonable convergence to zero.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-deletedline diff-side-deleted&quot;&gt;&lt;div&gt;&#039;&#039;&#039;If you succeed in this project, congratulations!&#039;&#039;&#039;  You have integrated concepts from&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; all five previous&lt;/del&gt; Modern Robotics&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; courses&lt;/del&gt; in a fairly sophisticated piece of software.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-addedline diff-side-added&quot;&gt;&lt;div&gt;&#039;&#039;&#039;If you succeed in this project, congratulations!&#039;&#039;&#039;  You have integrated concepts from Modern Robotics in a fairly sophisticated piece of software.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-deleted&quot;&gt;&lt;div&gt;== Other Things to Try ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-context diff-side-added&quot;&gt;&lt;div&gt;== Other Things to Try ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
</feed>