<?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_2023</id>
	<title>Mobile Manipulation Capstone 2023 - 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_2023"/>
	<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2023&amp;action=history"/>
	<updated>2026-04-27T18:54:28Z</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_2023&amp;diff=26773&amp;oldid=prev</id>
		<title>Lynch at 17:00, 6 December 2023</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2023&amp;diff=26773&amp;oldid=prev"/>
		<updated>2023-12-06T17:00:46Z</updated>

		<summary type="html">&lt;p&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 17:00, 6 December 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&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;[[Getting_Started_with_the_CoppeliaSim_Simulator|Make sure you have a working CoppeliaSim installation]]&#039;&#039;&#039;.  [[CoppeliaSim_Introduction#Scene_6:_CSV_Mobile_Manipulation_youBot|&#039;&#039;&#039;This project uses Scene 6 (CSV Mobile Manipulation youBot) from the CoppeliaSim Introduction wiki page&#039;&#039;&#039;]].  You should download it and test it with its sample csv file, to see what a solution looks like.  Leave the block&#039;s initial and goal configurations as the default.  The default 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;.&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;[[Getting_Started_with_the_CoppeliaSim_Simulator|Make sure you have a working CoppeliaSim installation]]&#039;&#039;&#039;.  [[CoppeliaSim_Introduction#Scene_6:_CSV_Mobile_Manipulation_youBot|&#039;&#039;&#039;This project uses Scene 6 (CSV Mobile Manipulation youBot) from the CoppeliaSim Introduction wiki page&#039;&#039;&#039;]].  You should download it and test it with its sample csv file, to see what a solution looks like.  Leave the block&#039;s initial and goal configurations as the default.  The default 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;.&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;Unlike previous projects, where we used CoppeliaSim to simply animate the robot&#039;s motion, in this project CoppeliaSim will use a physics simulator to simulate the interaction of the youBot with the block.  In other words, if the gripper closes on the block in the wrong position or orientation, the block may simply slide out of the grasp.  The interaction between the robot and the block is governed by a physics simulator, often called a &quot;physics engine,&quot; which approximately accounts for friction, mass, inertial, and other properties.  CoppeliaSim has different physics engines which you can select, including Bullet and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ODE&lt;/del&gt;, but ODE is the default for Scene 6.&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;Unlike previous projects, where we used CoppeliaSim to simply animate the robot&#039;s motion, in this project CoppeliaSim will use a physics simulator to simulate the interaction of the youBot with the block.  In other words, if the gripper closes on the block in the wrong position or orientation, the block may simply slide out of the grasp.  The interaction between the robot and the block is governed by a physics simulator, often called a &quot;physics engine,&quot; which approximately accounts for friction, mass, inertial, and other properties.  CoppeliaSim has different physics engines which you can select, including Bullet&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, ODE,&lt;/ins&gt; and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;MuJoCo&lt;/ins&gt;, but ODE is the default for Scene 6.&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;The time between each successive configuration in your csv file is 0.01 seconds (10 milliseconds).&#039;&#039;&#039;  This is an important bit of information, since, unlike the previous visualization scenes which simply animated a csv file with no particular notion of time, the notion of time is critical in a dynamic simulation.&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;The time between each successive configuration in your csv file is 0.01 seconds (10 milliseconds).&#039;&#039;&#039;  This is an important bit of information, since, unlike the previous visualization scenes which simply animated a csv file with no particular notion of time, the notion of time is critical in a dynamic simulation.&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 130:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 130:&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 CoppeliaSim scene used for the capstone project (Scene 6, CSV Mobile Manipulation youBot) is the first scene in which we&#039;ve used CoppeliaSim&#039;s ability to simulate bodies in contact.  A &quot;physics engine&quot; (sometimes called a &quot;game engine,&quot; since such simulators are often used in video games) simulates the motions of bodies when forces are applied to them, and when they make contact or collide with each other.  Physics engines also handle articulated bodies with joints and other constraints.&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 CoppeliaSim scene used for the capstone project (Scene 6, CSV Mobile Manipulation youBot) is the first scene in which we&#039;ve used CoppeliaSim&#039;s ability to simulate bodies in contact.  A &quot;physics engine&quot; (sometimes called a &quot;game engine,&quot; since such simulators are often used in video games) simulates the motions of bodies when forces are applied to them, and when they make contact or collide with each other.  Physics engines also handle articulated bodies with joints and other constraints.&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;CoppeliaSim does not have its own physics engine; instead, it bundles and makes available several different physics engines, including Bullet, ODE&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, Vortex&lt;/del&gt;, and &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Newton&lt;/del&gt;.  While these simulators have many features in common, they each have their own strengths and weaknesses, and none is perfect.  A simulator must detect collisions and contacts, simulate restitution (&quot;bounciness&quot;) and friction, employ numerical integration to take timesteps to advance the simulation, etc.  All of these are approximate operations with a variety of &quot;magic numbers&quot; and error tolerances, with the goal of making the simulations physically realistic without consuming too much CPU time.&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;CoppeliaSim does not have its own physics engine; instead, it bundles and makes available several different physics engines, including Bullet, ODE, and &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;MuJoCo&lt;/ins&gt;.  While these simulators have many features in common, they each have their own strengths and weaknesses, and none is perfect.  A simulator must detect collisions and contacts, simulate restitution (&quot;bounciness&quot;) and friction, employ numerical integration to take timesteps to advance the simulation, etc.  All of these are approximate operations with a variety of &quot;magic numbers&quot; and error tolerances, with the goal of making the simulations physically realistic without consuming too much CPU time.&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;As a result of these approximations, you can often observe bizarre behavior, such as an object spontaneously beginning to bounce on the floor.  In this capstone project, the unexpected behavior may be the object slipping out of the grasp.  These are just realities of dynamic simulation, and it is beyond the scope of this project to delve into the details of dynamic simulation.  If you would like to learn more, you can check out the documentation for [http://www.ode.org/ ODE]&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; and&lt;/del&gt; [http://bulletphysics.org/wordpress/ Bullet].&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;As a result of these approximations, you can often observe bizarre behavior, such as an object spontaneously beginning to bounce on the floor.  In this capstone project, the unexpected behavior may be the object slipping out of the grasp.  These are just realities of dynamic simulation, and it is beyond the scope of this project to delve into the details of dynamic simulation.  If you would like to learn more, you can check out the documentation for [http://www.ode.org/ ODE]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;,&lt;/ins&gt; [http://bulletphysics.org/wordpress/ Bullet]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, [https://mujoco.readthedocs.io/en/stable/overview.html MuJoCo], and the others&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;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;For block grasping, we have found ODE to give the best results, so that is the default physics engine when you open Scene 6.&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;For block grasping, we have found ODE to give the best results, so that is the default physics engine when you open Scene 6.&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 369:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 369:&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;Do not move on with the project until your feedforward control works as you expect.  Otherwise the effects of PI feedback control will only further confuse the situation.&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;Do not move on with the project until your feedforward control works as you expect.  Otherwise the effects of PI feedback control will only further confuse the situation.&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;The physics engine in CoppeliaSim:&#039;&#039;&#039;  By default, Scene 6 (the capstone mobile manipulation scene) uses a simulation timestep of dt = 10 ms and the physics engine ODE.  You should keep the timestep at 10 ms for simulated time to be correct, and we have found ODE to yield more easily understood results than Bullet for Scene 6.  But you are welcome to try different physics engines if you&#039;d like; specify your choice in the CoppeliaSim GUI.  Keep in mind that simulation of bodies in contact is computationally intensive, and approximate solution methods could lead to unexpected behavior, like the block slipping in the grasp.  We don&#039;t have a suggested &quot;fix&quot; for this; if you want to learn about how physics engines work, and the various approximations they make, you are encouraged to consult the documentation for [http://www.ode.org/ ODE]&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; and&lt;/del&gt; [http://bulletphysics.org/wordpress/ Bullet].&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;The physics engine in CoppeliaSim:&#039;&#039;&#039;  By default, Scene 6 (the capstone mobile manipulation scene) uses a simulation timestep of dt = 10 ms and the physics engine ODE.  You should keep the timestep at 10 ms for simulated time to be correct, and we have found ODE to yield more easily understood results than Bullet for Scene 6.  But you are welcome to try different physics engines if you&#039;d like; specify your choice in the CoppeliaSim GUI.  Keep in mind that simulation of bodies in contact is computationally intensive, and approximate solution methods could lead to unexpected behavior, like the block slipping in the grasp.  We don&#039;t have a suggested &quot;fix&quot; for this; if you want to learn about how physics engines work, and the various approximations they make, you are encouraged to consult the documentation for [http://www.ode.org/ ODE]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;,&lt;/ins&gt; [http://bulletphysics.org/wordpress/ Bullet&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;], and [https://mujoco.readthedocs.io/en/stable/overview.html MuJoCo&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;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;Review material:&#039;&#039;&#039;  This capstone project builds on material throughout the textbook &quot;Modern Robotics:  Mechanics, Planning, and Control.&quot;  &#039;&#039;&#039;[[Modern Robotics|Click here for links to the preprint version of the textbook and the videos.]]&#039;&#039;&#039;  Particularly relevant to this milestone are the following chapters and their associated videos:&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;Review material:&#039;&#039;&#039;  This capstone project builds on material throughout the textbook &quot;Modern Robotics:  Mechanics, Planning, and Control.&quot;  &#039;&#039;&#039;[[Modern Robotics|Click here for links to the preprint version of the textbook and the videos.]]&#039;&#039;&#039;  Particularly relevant to this milestone are the following chapters and their associated videos:&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_2023&amp;diff=26711&amp;oldid=prev</id>
		<title>Lynch: Created page with &quot;x250px  This page describes the capstone project for ME 449. [https://youtu.be/Q1CekpBW6Js &#039;&#039;&#039;A video summary of this project is given in t...&quot;</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2023&amp;diff=26711&amp;oldid=prev"/>
		<updated>2023-09-17T14:25:10Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&lt;a href=&quot;/index.php/File:Youbot-capstone.png&quot; title=&quot;File:Youbot-capstone.png&quot;&gt;right|x250px&lt;/a&gt;  This page describes the capstone project for ME 449. [https://youtu.be/Q1CekpBW6Js &amp;#039;&amp;#039;&amp;#039;A video summary of this project is given in t...&amp;quot;&lt;/p&gt;
&lt;a href=&quot;https://hades.mech.northwestern.edu//index.php?title=Mobile_Manipulation_Capstone_2023&amp;amp;diff=26711&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Lynch</name></author>
	</entry>
</feed>