<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://hades.mech.northwestern.edu//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=TitoFernandez</id>
	<title>Mech - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://hades.mech.northwestern.edu//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=TitoFernandez"/>
	<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php/Special:Contributions/TitoFernandez"/>
	<updated>2026-05-19T13:00:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25897</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25897"/>
		<updated>2020-09-30T15:06:47Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment consists  of the following:&lt;br /&gt;
* A screenshot of the robot at its  final configuration.&lt;br /&gt;
* A list of reported joint angles.&lt;br /&gt;
* A list of rotation matrices giving the orientation of each joint relative to the previous joint (&#039;&#039;R&amp;lt;sub&amp;gt;s1&amp;lt;/sub&amp;gt;&#039;&#039;, &#039;&#039;R&amp;lt;sub&amp;gt;12&amp;lt;/sub&amp;gt;&#039;&#039;, &#039;&#039;R&amp;lt;sub&amp;gt;23&amp;lt;/sub&amp;gt;&#039;&#039;, etc.)&lt;br /&gt;
* Reported value of &#039;&#039;R&amp;lt;sub&amp;gt;se&amp;lt;/sub&amp;gt;&#039;&#039; (Rotation matrix giving the orientation of end-effector frame {&#039;&#039;e&#039;&#039;} relative to the world frame {&#039;&#039;s&#039;&#039;}.&lt;br /&gt;
* Screenshots of the CoppeliaSim UI modifications you performed.&lt;br /&gt;
&lt;br /&gt;
All reported values should be in a single pdf. This pdf  and all screenshots should be submitted in a &#039;&#039;&#039;SINGLE&#039;&#039;&#039; .zip file labeled &amp;quot;lastname_firstname_assignment1.zip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Part 1: Joint Angle Calculations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The UR5 robot in its home configuration is shown. When all of its joints are at 0°, the frames located at the joints and the world frame are parallel (i.e. &#039;&#039;R&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; = I; j ∈ {s,1,2,3,4,5,6}&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
[[File:UR5 Home.PNG]]&lt;br /&gt;
&lt;br /&gt;
The rotation axes of each joint in their own coordinate frames are as follows:&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;1&#039;&#039;&amp;lt;/sub&amp;gt; = (0,0,1)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;2&#039;&#039;&amp;lt;/sub&amp;gt; = (0,1,0)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;3&#039;&#039;&amp;lt;/sub&amp;gt; = (0,1,0)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;4&#039;&#039;&amp;lt;/sub&amp;gt; = (0,1,0)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;5&#039;&#039;&amp;lt;/sub&amp;gt; = (0,0,-1)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;6&#039;&#039;&amp;lt;/sub&amp;gt; = (0,0,1)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At an unkown configuration, the following relations between the joint frames are given:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;13&amp;lt;/sub&amp;gt;&#039;&#039; = {{0,0,-1},{0,1,0},{1,0,0}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;s2&amp;lt;/sub&amp;gt;&#039;&#039; = {{0,-1,0&amp;gt;,{-.5,0,-.866},{.866,0,-.5}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;15&amp;lt;/sub&amp;gt;&#039;&#039; = {{-.3536,-.3536,.866},{-.7071,.7071,0},{-.6124,-.6124,-.5}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;12&amp;lt;/sub&amp;gt;&#039;&#039; = {{-.5,0,-.866},{0,1,0},{.866,0,-.5}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;34&amp;lt;/sub&amp;gt;&#039;&#039; = {{-.866,0,-.5},{0,1,0},{.5,0,-.866}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;s6&amp;lt;/sub&amp;gt;&#039;&#039; = {{-.3536,-.7071,.6124},{-.5732, -.3536,-.7392},{.866,0,-.5}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;6e&amp;lt;/sub&amp;gt;&#039;&#039; = {{-1,0,0},{0,0,1},{0,1,0}}&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;e&#039;&#039; corresponds tothe end-effector frame and is not shown in the figure.&lt;br /&gt;
&lt;br /&gt;
* Find the joint angles in this  configuration.&lt;br /&gt;
** Hint: A joint angle corresponds to the orientation of one joint with respect to the orientation of the previous joint.&lt;br /&gt;
* Input the joint angles you found into Scene1_UR5 in CoppeliaSim and take a screenshot of the robot at that configuration.&lt;br /&gt;
* Find &#039;&#039;R&amp;lt;sub&amp;gt;se&amp;lt;/sub&amp;gt;&#039;&#039; and verify  your result by  comparing it with the  given  &#039;&#039;T&amp;lt;sub&amp;gt;se&amp;lt;/sub&amp;gt;&#039;&#039; under the &amp;quot;Enter Config and SE(3) Value&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Part 2: CoppeliaSim Simulation and Exploration&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
&lt;br /&gt;
[[File:CoppeliaSim_scripts.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Main script and  any child scripts will be displayed. There is a default main script that contains  the basic code the simulation needs to run and usually doesn&#039;t need to be edited. The main script contains the  simulation&#039;s loop code. Each object in the scene has an  associated child script. The child script is typically used to control the model and contains functions written in the Lua programming language. Child scripts can be non-threaded or threaded. Non-threaded child scripts contain system callback functions that happen every step in the simulation. Threaded child scripts  contain system callback functions that are called once at the beginning of the  simulation. Non-threaded child scripts are preferred over threaded since threaded child scripts are more resource-intensive, can waste some processing time, and can be less responsive to the simulation stop command. For more details on non-threaded and threaded child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/childScripts.htm Child Scripts].&lt;br /&gt;
&lt;br /&gt;
For more information about the main script and child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/mainAndChildScripts.htm Main  and Child Scripts]. The simulation must be stopped before you can make any edits to or open a script.&lt;br /&gt;
&lt;br /&gt;
For Scene 1, we will be looking at the &amp;quot;Non-threaded child  script (UI_Script).&amp;quot; Double-click this script and another window containing the code will pop up. You might notice some of the functions look similar to functions written in the Modern Robotics Library. For example, &#039;&#039;so3andp2se3(R,p)&#039;&#039; in this script resembles &#039;&#039;RpToTrans(R,p)&#039;&#039; in the Modern Robotics Library. The code for the Custom UI that appears when the simulation starts is written in XML and starts  on line 251. This XML code controls the appearance of the Custom UI, including the layout and content of text boxes, sliders, tab  titles, and font size. The XML syntax can be found at [https://www.coppeliarobotics.com/helpFiles/en/customUIPluginXMLSyntax.htm Custom UI Plugin XML Syntax]. For this specific scene, the different text boxes and sliders are arranged in different groups. Each group has a layout which determines how the objects inside the group will be displayed and label text which determines what text will be displayed and how it will be displayed. Consult the XML syntax for the attributes each element can have. &lt;br /&gt;
&lt;br /&gt;
More information on CoppeliaSim can  be found in the [https://www.coppeliarobotics.com/helpFiles/index.html CoppeliaSim User Manual]. There is also a [https://forum.coppeliarobotics.com/ CoppeliaSim forum]. You can take a look at the scripts of the included example scenes and  demos  to see how their functions and UIs were defined and to get a better idea of how the  scripts run the  simulation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Task&#039;&#039;&#039;&lt;br /&gt;
Modify the  Non-threaded child script (UI_Script) to change an aspect of the  scene. For example, you can choose  to change  the Custom UI layout, change the titles and words of the Custom UI, or change  font sizes in the Custom UI. Some example changes include:&lt;br /&gt;
&lt;br /&gt;
*Changing the  layout: consult the XML syntax and change &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to another type (hbox,form, grid,  none). Using line 257, changing &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to &amp;lt;group layout=&amp;quot;hbox&amp;quot;&amp;gt; changes the  orientation of the items in the  group containing &amp;quot;Configuration Entry&amp;quot;, &amp;quot;Current configuration&amp;quot;, and &amp;quot;Messages&amp;quot; on the  &amp;quot;Enter Config and SE(3) Value&amp;quot; tab of the Custom UI from vertically arranged to horizontal.&lt;br /&gt;
&lt;br /&gt;
*Changing the  words: Find the text you want to change in the XML code. The text will be surrounded by quotation marks and have &amp;lt;big&amp;gt; and &amp;lt;/big&amp;gt; on its sides. For example, &amp;lt;nowiki&amp;gt;line 258 &amp;quot;label text=&amp;quot;&amp;lt;big&amp;gt; Configuration Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt; controls the  text &amp;quot;Configuration Entry&amp;quot; on the &amp;quot;Enter Config and SE(3) Value&amp;quot; table of the Custom UI. Change the words &amp;quot;Configuration Entry&amp;quot; to change the text displayed in that specific section.&lt;br /&gt;
&lt;br /&gt;
*Changing the font: Using line 258 &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;big&amp;gt;Configuration  Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**The font can be changed to small  using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;small&amp;gt;Configuration Entry:&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** The font can be changed to a specific size using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;font size=20&amp;gt;Configuration Entry:&amp;lt;/font&amp;gt;&amp;lt;/nowiki&amp;gt;, where 20 is the desired font size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a screenshot of the original scene and then a screenshot that shows what was changed. Additionally, you should include a screenshot of the code you modified. For example, if you change the font size of the text in the Custom UI, you would include a screenshot of the Custom UI before any changes were made, a screenshot of the Custom UI with the font size change, and a screenshot of the XML code where you made the modification.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25896</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25896"/>
		<updated>2020-09-30T15:04:27Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment consists  of the following:&lt;br /&gt;
* A screenshot of the robot at its  final configuration.&lt;br /&gt;
* A list of reported joint angles.&lt;br /&gt;
* A list of rotation matrices giving the orientation of each joint relative to the previous joint (RS1, R12, R23, etc.)&lt;br /&gt;
* Reported value of &#039;&#039;Rse&#039;&#039; (Rotation matrix giving the orientation of end-effector frame {&#039;&#039;e&#039;&#039;} relative to the world frame {&#039;&#039;s&#039;&#039;}.&lt;br /&gt;
* Screenshots of the CoppeliaSim UI modifications you performed.&lt;br /&gt;
&lt;br /&gt;
All reported values should be in a single pdf. This pdf  and all screenshots should be submitted in a &#039;&#039;&#039;SINGLE&#039;&#039;&#039; .zip file labeled &amp;quot;lastname_firstname_assignment1.zip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Part 1: Joint Angle Calculations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The UR5 robot in its home configuration is shown. When all of its joints are at 0°, the frames located at the joints and the world frame are parallel (i.e. &#039;&#039;R&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; = I; j ∈ {s,1,2,3,4,5,6}&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
[[File:UR5 Home.PNG]]&lt;br /&gt;
&lt;br /&gt;
The rotation axes of each joint in their own coordinate frames are as follows:&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;1&#039;&#039;&amp;lt;/sub&amp;gt; = (0,0,1)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;2&#039;&#039;&amp;lt;/sub&amp;gt; = (0,1,0)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;3&#039;&#039;&amp;lt;/sub&amp;gt; = (0,1,0)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;4&#039;&#039;&amp;lt;/sub&amp;gt; = (0,1,0)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;5&#039;&#039;&amp;lt;/sub&amp;gt; = (0,0,-1)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;6&#039;&#039;&amp;lt;/sub&amp;gt; = (0,0,1)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At an unkown configuration, the following relations between the joint frames are given:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;13&amp;lt;/sub&amp;gt;&#039;&#039; = {{0,0,-1},{0,1,0},{1,0,0}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;s2&amp;lt;/sub&amp;gt;&#039;&#039; = {{0,-1,0&amp;gt;,{-.5,0,-.866},{.866,0,-.5}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;15&amp;lt;/sub&amp;gt;&#039;&#039; = {{-.3536,-.3536,.866},{-.7071,.7071,0},{-.6124,-.6124,-.5}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;12&amp;lt;/sub&amp;gt;&#039;&#039; = {{-.5,0,-.866},{0,1,0},{.866,0,-.5}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;34&amp;lt;/sub&amp;gt;&#039;&#039; = {{-.866,0,-.5},{0,1,0},{.5,0,-.866}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;s6&amp;lt;/sub&amp;gt;&#039;&#039; = {{-.3536,-.7071,.6124},{-.5732, -.3536,-.7392},{.866,0,-.5}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;6e&amp;lt;/sub&amp;gt;&#039;&#039; = {{-1,0,0},{0,0,1},{0,1,0}}&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;e&#039;&#039; corresponds tothe end-effector frame and is not shown in the figure.&lt;br /&gt;
&lt;br /&gt;
* Find the joint angles in this  configuration.&lt;br /&gt;
** Hint: A joint angle corresponds to the orientation of one joint with respect to the orientation of the previous joint.&lt;br /&gt;
* Input the joint angles you found into Scene1_UR5 in CoppeliaSim and take a screenshot of the robot at that configuration.&lt;br /&gt;
* Find &#039;&#039;R&amp;lt;sub&amp;gt;se&amp;lt;/sub&amp;gt;&#039;&#039; and verify  your result by  comparing it with the  given  &#039;&#039;T&amp;lt;sub&amp;gt;se&amp;lt;/sub&amp;gt;&#039;&#039; under the &amp;quot;Enter Config and SE(3) Value&amp;quot; tab.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Part 2: CoppeliaSim Simulation and Exploration&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
&lt;br /&gt;
[[File:CoppeliaSim_scripts.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Main script and  any child scripts will be displayed. There is a default main script that contains  the basic code the simulation needs to run and usually doesn&#039;t need to be edited. The main script contains the  simulation&#039;s loop code. Each object in the scene has an  associated child script. The child script is typically used to control the model and contains functions written in the Lua programming language. Child scripts can be non-threaded or threaded. Non-threaded child scripts contain system callback functions that happen every step in the simulation. Threaded child scripts  contain system callback functions that are called once at the beginning of the  simulation. Non-threaded child scripts are preferred over threaded since threaded child scripts are more resource-intensive, can waste some processing time, and can be less responsive to the simulation stop command. For more details on non-threaded and threaded child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/childScripts.htm Child Scripts].&lt;br /&gt;
&lt;br /&gt;
For more information about the main script and child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/mainAndChildScripts.htm Main  and Child Scripts]. The simulation must be stopped before you can make any edits to or open a script.&lt;br /&gt;
&lt;br /&gt;
For Scene 1, we will be looking at the &amp;quot;Non-threaded child  script (UI_Script).&amp;quot; Double-click this script and another window containing the code will pop up. You might notice some of the functions look similar to functions written in the Modern Robotics Library. For example, &#039;&#039;so3andp2se3(R,p)&#039;&#039; in this script resembles &#039;&#039;RpToTrans(R,p)&#039;&#039; in the Modern Robotics Library. The code for the Custom UI that appears when the simulation starts is written in XML and starts  on line 251. This XML code controls the appearance of the Custom UI, including the layout and content of text boxes, sliders, tab  titles, and font size. The XML syntax can be found at [https://www.coppeliarobotics.com/helpFiles/en/customUIPluginXMLSyntax.htm Custom UI Plugin XML Syntax]. For this specific scene, the different text boxes and sliders are arranged in different groups. Each group has a layout which determines how the objects inside the group will be displayed and label text which determines what text will be displayed and how it will be displayed. Consult the XML syntax for the attributes each element can have. &lt;br /&gt;
&lt;br /&gt;
More information on CoppeliaSim can  be found in the [https://www.coppeliarobotics.com/helpFiles/index.html CoppeliaSim User Manual]. There is also a [https://forum.coppeliarobotics.com/ CoppeliaSim forum]. You can take a look at the scripts of the included example scenes and  demos  to see how their functions and UIs were defined and to get a better idea of how the  scripts run the  simulation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Task&#039;&#039;&#039;&lt;br /&gt;
Modify the  Non-threaded child script (UI_Script) to change an aspect of the  scene. For example, you can choose  to change  the Custom UI layout, change the titles and words of the Custom UI, or change  font sizes in the Custom UI. Some example changes include:&lt;br /&gt;
&lt;br /&gt;
*Changing the  layout: consult theXML syntax and change &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to another type (hbox,form, grid,  none). Using line 257, changing &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to &amp;lt;group layout=&amp;quot;hbox&amp;quot;&amp;gt; changes the  orientation of the items in the  group containing &amp;quot;Configuration Entry&amp;quot;, &amp;quot;Current configuration&amp;quot;, and &amp;quot;Messages&amp;quot; on the  &amp;quot;Enter Config and SE(3) Value&amp;quot; tab of the Custom UI from vertically arranged to horizontal.&lt;br /&gt;
&lt;br /&gt;
*Changing the  words: Find the text you want to change in the XML code. The text will be surrounded by quotation marks and have &amp;lt;big&amp;gt; and &amp;lt;/big&amp;gt; on its sides. For example, line 258 &amp;quot;label text=&amp;quot;&amp;lt;big&amp;gt; Configuration Entry:&amp;lt;/big&amp;gt;&amp;quot; controls the  text &amp;quot;Configuration Entry&amp;quot; on the &amp;quot;Enter Config and SE(3) Value&amp;quot; table of the Custom UI. Change the words &amp;quot;Configuration Entry&amp;quot; to change the text displayed in that specific section.&lt;br /&gt;
&lt;br /&gt;
*Changing the font: Using line 258 &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;big&amp;gt;Configuration  Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**The font can be changed to small  using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;small&amp;gt;Configuration Entry:&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** The font can be changed to a specific size using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;font size=20&amp;gt;Configuration Entry:&amp;lt;/font&amp;gt;&amp;lt;/nowiki&amp;gt;, where 20 is the desired font size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a screenshot of the original scene and then a screenshot that shows what was changed. Additionally, you should include a screenshot of the code you modified. For example, if you change the font size of the text in the Custom UI, you would include a screenshot of the Custom UI before any changes were made, a screenshot of the Custom UI with the font size change, and a screenshot of the XML code where you made the modification.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25895</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25895"/>
		<updated>2020-09-30T15:01:23Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment consists  of the following:&lt;br /&gt;
* A screenshot of the robot at its  final configuration.&lt;br /&gt;
* A list of reported joint angles.&lt;br /&gt;
* A list of rotation matrices giving the orientation of each joint relative to the previous joint (RS1, R12, R23, etc.)&lt;br /&gt;
* Reported value of &#039;&#039;Rse&#039;&#039; (Rotation matrix giving the orientation of end-effector frame {&#039;&#039;e&#039;&#039;} relative to the world frame {&#039;&#039;s&#039;&#039;}.&lt;br /&gt;
* Screenshots of the CoppeliaSim UI modifications you performed.&lt;br /&gt;
&lt;br /&gt;
All reported values should be in a single pdf. This pdf  and all screenshots should be submitted in a &#039;&#039;&#039;SINGLE&#039;&#039;&#039; .zip file labeled &amp;quot;lastname_firstname_assignment1.zip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Part 1: Joint Angle Calculations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The UR5 robot in its home configuration is shown. When all of its joints are at 0°, the frames located at the joints and the world frame are parallel (i.e. &#039;&#039;R&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; = I; j ∈ {s,1,2,3,4,5,6}&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
[[File:UR5 Home.PNG]]&lt;br /&gt;
&lt;br /&gt;
The rotation axes of each joint in their own coordinate frames are as follows:&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;1&#039;&#039;&amp;lt;/sub&amp;gt; = (0,0,1)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;2&#039;&#039;&amp;lt;/sub&amp;gt; = (0,1,0)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;3&#039;&#039;&amp;lt;/sub&amp;gt; = (0,1,0)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;4&#039;&#039;&amp;lt;/sub&amp;gt; = (0,1,0)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;5&#039;&#039;&amp;lt;/sub&amp;gt; = (0,0,-1)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;\hat{w}&amp;lt;/math&amp;gt;&amp;lt;sub&amp;gt;&#039;&#039;6&#039;&#039;&amp;lt;/sub&amp;gt; = (0,0,1)&amp;lt;sup&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At an unkown configuration, the following relations between the joint frames are given:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;13&amp;lt;/sub&amp;gt;&#039;&#039; = {{0,0,-1},{0,1,0},{1,0,0}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;s2&amp;lt;/sub&amp;gt;&#039;&#039; = {{0,-1,0&amp;gt;,{-.5,0,-.866},{.866,0,-.5}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;15&amp;lt;/sub&amp;gt;&#039;&#039; = {{-.3536,-.3536,.866},{-.7071,.7071,0},{-.6124,-.6124,-.5}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;12&amp;lt;/sub&amp;gt;&#039;&#039; = {{-.5,0,-.866},{0,1,0},{.866,0,-.5}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;34&amp;lt;/sub&amp;gt;&#039;&#039; = {{-.866,0,-.5},{0,1,0},{.5,0,-.866}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;s6&amp;lt;/sub&amp;gt;&#039;&#039; = {{-.3536,-.7071,.6124},{-.5732, -.3536,-.7392},{.866,0,-.5}}&lt;br /&gt;
*&#039;&#039;R&amp;lt;sub&amp;gt;6e&amp;lt;/sub&amp;gt;&#039;&#039; = {{-1,0,0},{0,0,1},{0,1,0}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step-By-Step Assignment Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
&lt;br /&gt;
[[File:CoppeliaSim_scripts.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Main script and  any child scripts will be displayed. There is a default main script that contains  the basic code the simulation needs to run and usually doesn&#039;t need to be edited. The main script contains the  simulation&#039;s loop code. Each object in the scene has an  associated child script. The child script is typically used to control the model and contains functions written in the Lua programming language. Child scripts can be non-threaded or threaded. Non-threaded child scripts contain system callback functions that happen every step in the simulation. Threaded child scripts  contain system callback functions that are called once at the beginning of the  simulation. Non-threaded child scripts are preferred over threaded since threaded child scripts are more resource-intensive, can waste some processing time, and can be less responsive to the simulation stop command. For more details on non-threaded and threaded child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/childScripts.htm Child Scripts].&lt;br /&gt;
&lt;br /&gt;
For more information about the main script and child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/mainAndChildScripts.htm Main  and Child Scripts]. The simulation must be stopped before you can make any edits to or open a script.&lt;br /&gt;
&lt;br /&gt;
For Scene 1, we will be looking at the &amp;quot;Non-threaded child  script (UI_Script).&amp;quot; Double-click this script and another window containing the code will pop up. You might notice some of the functions look similar to functions written in the Modern Robotics Library. For example, &#039;&#039;so3andp2se3(R,p)&#039;&#039; in this script resembles &#039;&#039;RpToTrans(R,p)&#039;&#039; in the Modern Robotics Library. The code for the Custom UI that appears when the simulation starts is written in XML and starts  on line 251. This XML code controls the appearance of the Custom UI, including the layout and content of text boxes, sliders, tab  titles, and font size. The XML syntax can be found at [https://www.coppeliarobotics.com/helpFiles/en/customUIPluginXMLSyntax.htm Custom UI Plugin XML Syntax]. For this specific scene, the different text boxes and sliders are arranged in different groups. Each group has a layout which determines how the objects inside the group will be displayed and label text which determines what text will be displayed and how it will be displayed. Consult the XML syntax for the attributes each element can have. &lt;br /&gt;
&lt;br /&gt;
More information on CoppeliaSim can  be found in the [https://www.coppeliarobotics.com/helpFiles/index.html CoppeliaSim User Manual]. There is also a [https://forum.coppeliarobotics.com/ CoppeliaSim forum]. You can take a look at the scripts of the included example scenes and  demos  to see how their functions and UIs were defined and to get a better idea of how the  scripts run the  simulation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Task&#039;&#039;&#039;&lt;br /&gt;
Modify the  Non-threaded child script (UI_Script) to change an aspect of the  scene. For example, you can choose  to change  the Custom UI layout, change the titles and words of the Custom UI, or change  font sizes in the Custom UI. Some example changes include:&lt;br /&gt;
&lt;br /&gt;
*Changing the  layout: consult theXML syntax and change &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to another type (hbox,form, grid,  none). Using line 257, changing &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to &amp;lt;group layout=&amp;quot;hbox&amp;quot;&amp;gt; changes the  orientation of the items in the  group containing &amp;quot;Configuration Entry&amp;quot;, &amp;quot;Current configuration&amp;quot;, and &amp;quot;Messages&amp;quot; on the  &amp;quot;Enter Config and SE(3) Value&amp;quot; tab of the Custom UI from vertically arranged to horizontal.&lt;br /&gt;
&lt;br /&gt;
*Changing the  words: Find the text you want to change in the XML code. The text will be surrounded by quotation marks and have &amp;lt;big&amp;gt; and &amp;lt;/big&amp;gt; on its sides. For example, line 258 &amp;quot;label text=&amp;quot;&amp;lt;big&amp;gt; Configuration Entry:&amp;lt;/big&amp;gt;&amp;quot; controls the  text &amp;quot;Configuration Entry&amp;quot; on the &amp;quot;Enter Config and SE(3) Value&amp;quot; table of the Custom UI. Change the words &amp;quot;Configuration Entry&amp;quot; to change the text displayed in that specific section.&lt;br /&gt;
&lt;br /&gt;
*Changing the font: Using line 258 &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;big&amp;gt;Configuration  Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**The font can be changed to small  using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;small&amp;gt;Configuration Entry:&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** The font can be changed to a specific size using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;font size=20&amp;gt;Configuration Entry:&amp;lt;/font&amp;gt;&amp;lt;/nowiki&amp;gt;, where 20 is the desired font size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a screenshot of the original scene and then a screenshot that shows what was changed. Additionally, you should include a screenshot of the code you modified. For example, if you change the font size of the text in the Custom UI, you would include a screenshot of the Custom UI before any changes were made, a screenshot of the Custom UI with the font size change, and a screenshot of the XML code where you made the modification.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=File:UR5_Home.PNG&amp;diff=25894</id>
		<title>File:UR5 Home.PNG</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=File:UR5_Home.PNG&amp;diff=25894"/>
		<updated>2020-09-30T14:39:36Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25893</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25893"/>
		<updated>2020-09-30T14:39:02Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment consists  of the following:&lt;br /&gt;
* A screenshot of the robot at its  final configuration.&lt;br /&gt;
* A list of reported joint angles.&lt;br /&gt;
* A list of rotation matrices giving the orientation of each joint relative to the previous joint (RS1, R12, R23, etc.)&lt;br /&gt;
* Reported value of &#039;&#039;Rse&#039;&#039; (Rotation matrix giving the orientation of end-effector frame {&#039;&#039;e&#039;&#039;} relative to the world frame {&#039;&#039;s&#039;&#039;}.&lt;br /&gt;
* Screenshots of the CoppeliaSim UI modifications you performed.&lt;br /&gt;
&lt;br /&gt;
All reported values should be in a single pdf. This pdf  and all screenshots should be submitted in a &#039;&#039;&#039;SINGLE&#039;&#039;&#039; .zip file labeled &amp;quot;lastname_firstname_assignment1.zip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Part 1: Joint Angle Calculations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The UR5 robot in its home configuration is shown. When all of its joints are at 0°, the frames located at the joints and the world frame are parallel (i.e. &#039;&#039;R&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt; = I; j ∈ {s,1,2,3,4,5,6}&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step-By-Step Assignment Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
&lt;br /&gt;
[[File:CoppeliaSim_scripts.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Main script and  any child scripts will be displayed. There is a default main script that contains  the basic code the simulation needs to run and usually doesn&#039;t need to be edited. The main script contains the  simulation&#039;s loop code. Each object in the scene has an  associated child script. The child script is typically used to control the model and contains functions written in the Lua programming language. Child scripts can be non-threaded or threaded. Non-threaded child scripts contain system callback functions that happen every step in the simulation. Threaded child scripts  contain system callback functions that are called once at the beginning of the  simulation. Non-threaded child scripts are preferred over threaded since threaded child scripts are more resource-intensive, can waste some processing time, and can be less responsive to the simulation stop command. For more details on non-threaded and threaded child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/childScripts.htm Child Scripts].&lt;br /&gt;
&lt;br /&gt;
For more information about the main script and child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/mainAndChildScripts.htm Main  and Child Scripts]. The simulation must be stopped before you can make any edits to or open a script.&lt;br /&gt;
&lt;br /&gt;
For Scene 1, we will be looking at the &amp;quot;Non-threaded child  script (UI_Script).&amp;quot; Double-click this script and another window containing the code will pop up. You might notice some of the functions look similar to functions written in the Modern Robotics Library. For example, &#039;&#039;so3andp2se3(R,p)&#039;&#039; in this script resembles &#039;&#039;RpToTrans(R,p)&#039;&#039; in the Modern Robotics Library. The code for the Custom UI that appears when the simulation starts is written in XML and starts  on line 251. This XML code controls the appearance of the Custom UI, including the layout and content of text boxes, sliders, tab  titles, and font size. The XML syntax can be found at [https://www.coppeliarobotics.com/helpFiles/en/customUIPluginXMLSyntax.htm Custom UI Plugin XML Syntax]. For this specific scene, the different text boxes and sliders are arranged in different groups. Each group has a layout which determines how the objects inside the group will be displayed and label text which determines what text will be displayed and how it will be displayed. Consult the XML syntax for the attributes each element can have. &lt;br /&gt;
&lt;br /&gt;
More information on CoppeliaSim can  be found in the [https://www.coppeliarobotics.com/helpFiles/index.html CoppeliaSim User Manual]. There is also a [https://forum.coppeliarobotics.com/ CoppeliaSim forum]. You can take a look at the scripts of the included example scenes and  demos  to see how their functions and UIs were defined and to get a better idea of how the  scripts run the  simulation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Task&#039;&#039;&#039;&lt;br /&gt;
Modify the  Non-threaded child script (UI_Script) to change an aspect of the  scene. For example, you can choose  to change  the Custom UI layout, change the titles and words of the Custom UI, or change  font sizes in the Custom UI. Some example changes include:&lt;br /&gt;
&lt;br /&gt;
*Changing the  layout: consult theXML syntax and change &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to another type (hbox,form, grid,  none). Using line 257, changing &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to &amp;lt;group layout=&amp;quot;hbox&amp;quot;&amp;gt; changes the  orientation of the items in the  group containing &amp;quot;Configuration Entry&amp;quot;, &amp;quot;Current configuration&amp;quot;, and &amp;quot;Messages&amp;quot; on the  &amp;quot;Enter Config and SE(3) Value&amp;quot; tab of the Custom UI from vertically arranged to horizontal.&lt;br /&gt;
&lt;br /&gt;
*Changing the  words: Find the text you want to change in the XML code. The text will be surrounded by quotation marks and have &amp;lt;big&amp;gt; and &amp;lt;/big&amp;gt; on its sides. For example, line 258 &amp;quot;label text=&amp;quot;&amp;lt;big&amp;gt; Configuration Entry:&amp;lt;/big&amp;gt;&amp;quot; controls the  text &amp;quot;Configuration Entry&amp;quot; on the &amp;quot;Enter Config and SE(3) Value&amp;quot; table of the Custom UI. Change the words &amp;quot;Configuration Entry&amp;quot; to change the text displayed in that specific section.&lt;br /&gt;
&lt;br /&gt;
*Changing the font: Using line 258 &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;big&amp;gt;Configuration  Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**The font can be changed to small  using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;small&amp;gt;Configuration Entry:&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** The font can be changed to a specific size using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;font size=20&amp;gt;Configuration Entry:&amp;lt;/font&amp;gt;&amp;lt;/nowiki&amp;gt;, where 20 is the desired font size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a screenshot of the original scene and then a screenshot that shows what was changed. Additionally, you should include a screenshot of the code you modified. For example, if you change the font size of the text in the Custom UI, you would include a screenshot of the Custom UI before any changes were made, a screenshot of the Custom UI with the font size change, and a screenshot of the XML code where you made the modification.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25891</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25891"/>
		<updated>2020-09-30T14:33:10Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment consists  of the following:&lt;br /&gt;
* A screenshot of the robot at its  final configuration.&lt;br /&gt;
* A list of reported joint angles.&lt;br /&gt;
* A list of rotation matrices giving the orientation of each joint relative to the previous joint (RS1, R12, R23, etc.)&lt;br /&gt;
* Reported value of &#039;&#039;Rse&#039;&#039; (Rotation matrix giving the orientation of end-effector frame {&#039;&#039;e&#039;&#039;} relative to the world frame {&#039;&#039;s&#039;&#039;}.&lt;br /&gt;
* Screenshots of the CoppeliaSim UI modifications you performed.&lt;br /&gt;
&lt;br /&gt;
All reported values should be in a single pdf. This pdf  and all screenshots should be submitted in a &#039;&#039;&#039;SINGLE&#039;&#039;&#039; .zip file labeled &amp;quot;lastname_firstname_assignment1.zip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Part 1: Joint Angle Calculations&#039;&#039;&#039;&lt;br /&gt;
The UR5 robot in its home configuration is shown. When all of its joints are at 0°, the frames located at the joints and the world frame are parallel (i.e. &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step-By-Step Assignment Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
&lt;br /&gt;
[[File:CoppeliaSim_scripts.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Main script and  any child scripts will be displayed. There is a default main script that contains  the basic code the simulation needs to run and usually doesn&#039;t need to be edited. The main script contains the  simulation&#039;s loop code. Each object in the scene has an  associated child script. The child script is typically used to control the model and contains functions written in the Lua programming language. Child scripts can be non-threaded or threaded. Non-threaded child scripts contain system callback functions that happen every step in the simulation. Threaded child scripts  contain system callback functions that are called once at the beginning of the  simulation. Non-threaded child scripts are preferred over threaded since threaded child scripts are more resource-intensive, can waste some processing time, and can be less responsive to the simulation stop command. For more details on non-threaded and threaded child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/childScripts.htm Child Scripts].&lt;br /&gt;
&lt;br /&gt;
For more information about the main script and child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/mainAndChildScripts.htm Main  and Child Scripts]. The simulation must be stopped before you can make any edits to or open a script.&lt;br /&gt;
&lt;br /&gt;
For Scene 1, we will be looking at the &amp;quot;Non-threaded child  script (UI_Script).&amp;quot; Double-click this script and another window containing the code will pop up. You might notice some of the functions look similar to functions written in the Modern Robotics Library. For example, &#039;&#039;so3andp2se3(R,p)&#039;&#039; in this script resembles &#039;&#039;RpToTrans(R,p)&#039;&#039; in the Modern Robotics Library. The code for the Custom UI that appears when the simulation starts is written in XML and starts  on line 251. This XML code controls the appearance of the Custom UI, including the layout and content of text boxes, sliders, tab  titles, and font size. The XML syntax can be found at [https://www.coppeliarobotics.com/helpFiles/en/customUIPluginXMLSyntax.htm Custom UI Plugin XML Syntax]. For this specific scene, the different text boxes and sliders are arranged in different groups. Each group has a layout which determines how the objects inside the group will be displayed and label text which determines what text will be displayed and how it will be displayed. Consult the XML syntax for the attributes each element can have. &lt;br /&gt;
&lt;br /&gt;
More information on CoppeliaSim can  be found in the [https://www.coppeliarobotics.com/helpFiles/index.html CoppeliaSim User Manual]. There is also a [https://forum.coppeliarobotics.com/ CoppeliaSim forum]. You can take a look at the scripts of the included example scenes and  demos  to see how their functions and UIs were defined and to get a better idea of how the  scripts run the  simulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Task&#039;&#039;&#039;&lt;br /&gt;
Modify the  Non-threaded child script (UI_Script) to change an aspect of the  scene. For example, you can choose  to cchange  the Custom UI layout, change the titles and words of the Custom UI, or change  font sizes in the Custom UI. Some example changes include:&lt;br /&gt;
&lt;br /&gt;
*Changing the  layout: consult theXML syntax and change &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to another type (hbox,form, grid,  none). Using line 257, changing &amp;lt;group layout-&amp;quot;vbox&amp;quot;&amp;gt; to &amp;lt;group layout=&amp;quot;hbox&amp;quot;&amp;gt; changes the  orientation of the items in the  group containing &amp;quot;Configuration Entry&amp;quot;, &amp;quot;Current configuration&amp;quot;, and &amp;quot;Messages&amp;quot; on the  &amp;quot;Enter Config and SE(3) Value&amp;quot; tab of the Custom UI from vertically arranged to horizontal.&lt;br /&gt;
&lt;br /&gt;
*Changing the  words: Find the text you want to change in the XML code. The text will be surrounded by quotation marks and have &amp;lt;big&amp;gt; and &amp;lt;/big&amp;gt; on its sides. For example, line 258 &amp;quot;label text=&amp;quot;&amp;lt;big&amp;gt; Configuration Entry:&amp;lt;/big&amp;gt;&amp;quot; controls the  text &amp;quot;Configuration Entry&amp;quot; on the &amp;quot;Enter Config and SE(3) Value&amp;quot; table of the Custom UI. Change the words &amp;quot;Configuration Entry&amp;quot; to change the text displayed in that specific section.&lt;br /&gt;
&lt;br /&gt;
*Changing the font: Using line 258 &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;big&amp;gt;Configuration  Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**The font can be changed to small  using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;small&amp;gt;Configuration Entry:&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** The font can be changed to a specific size using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;font size=20&amp;gt;Configuration Entry:&amp;lt;/font&amp;gt;&amp;lt;/nowiki&amp;gt;, where 20 is the desired font size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a screenshot of the original scene and then a screenshot that shows what was changed. Additionally, you should include a screenshot of the code you modified. For example, if you change the font size of the text in the Custom UI, you would include a screenshot of the Custom UI before any changes were made, a screenshot of the Custom UI with the font size change, and a screenshot of the XML code where you made the modification.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25890</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25890"/>
		<updated>2020-09-30T14:31:14Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment consists  of the following:&lt;br /&gt;
* A screenshot of the robot at its  final configuration.&lt;br /&gt;
* A list of reported joint angles.&lt;br /&gt;
* A list of rotation matrices giving the orientation of each joint relative to the previous joint (RS1, R12, R23, etc.)&lt;br /&gt;
* Reported value of &#039;&#039;Rse&#039;&#039; (Rotation matrix giving the orientation of end-effector frame {&#039;&#039;e&#039;&#039;} relative to the world frame {&#039;&#039;s&#039;&#039;}.&lt;br /&gt;
* Screenshots of the CoppeliaSim UI modifications you performed.&lt;br /&gt;
&lt;br /&gt;
All reported values should be in a single pdf. This pdf  and all screenshots should be submitted in a &#039;&#039;&#039;SINGLE&#039;&#039;&#039; .zip file labeled &amp;quot;lastname_firstname_assignment1.zip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Part 1: Joint Angle Calculations&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step-By-Step Assignment Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
&lt;br /&gt;
[[File:CoppeliaSim_scripts.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Main script and  any child scripts will be displayed. There is a default main script that contains  the basic code the simulation needs to run and usually doesn&#039;t need to be edited. The main script contains the  simulation&#039;s loop code. Each object in the scene has an  associated child script. The child script is typically used to control the model and contains functions written in the Lua programming language. Child scripts can be non-threaded or threaded. Non-threaded child scripts contain system callback functions that happen every step in the simulation. Threaded child scripts  contain system callback functions that are called once at the beginning of the  simulation. Non-threaded child scripts are preferred over threaded since threaded child scripts are more resource-intensive, can waste some processing time, and can be less responsive to the simulation stop command. For more details on non-threaded and threaded child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/childScripts.htm Child Scripts].&lt;br /&gt;
&lt;br /&gt;
For more information about the main script and child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/mainAndChildScripts.htm Main  and Child Scripts]. The simulation must be stopped before you can make any edits to or open a script.&lt;br /&gt;
&lt;br /&gt;
For Scene 1, we will be looking at the &amp;quot;Non-threaded child  script (UI_Script).&amp;quot; Double-click this script and another window containing the code will pop up. You might notice some of the functions look similar to functions written in the Modern Robotics Library. For example, &#039;&#039;so3andp2se3(R,p)&#039;&#039; in this script resembles &#039;&#039;RpToTrans(R,p)&#039;&#039; in the Modern Robotics Library. The code for the Custom UI that appears when the simulation starts is written in XML and starts  on line 251. This XML code controls the appearance of the Custom UI, including the layout and content of text boxes, sliders, tab  titles, and font size. The XML syntax can be found at [https://www.coppeliarobotics.com/helpFiles/en/customUIPluginXMLSyntax.htm Custom UI Plugin XML Syntax]. For this specific scene, the different text boxes and sliders are arranged in different groups. Each group has a layout which determines how the objects inside the group will be displayed and label text which determines what text will be displayed and how it will be displayed. Consult the XML syntax for the attributes each element can have. &lt;br /&gt;
&lt;br /&gt;
More information on CoppeliaSim can  be found in the [https://www.coppeliarobotics.com/helpFiles/index.html CoppeliaSim User Manual]. There is also a [https://forum.coppeliarobotics.com/ CoppeliaSim forum]. You can take a look at the scripts of the included example scenes and  demos  to see how their functions and UIs were defined and to get a better idea of how the  scripts run the  simulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Task&#039;&#039;&#039;&lt;br /&gt;
Modify the  Non-threaded child script (UI_Script) to change an aspect of the  scene. For example, you can choose  to cchange  the Custom UI layout, change the titles and words of the Custom UI, or change  font sizes in the Custom UI. Some example changes include:&lt;br /&gt;
&lt;br /&gt;
*Changing the  layout: consult theXML syntax and change &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to another type (hbox,form, grid,  none). Using line 257, changing &amp;lt;group layout-&amp;quot;vbox&amp;quot;&amp;gt; to &amp;lt;group layout=&amp;quot;hbox&amp;quot;&amp;gt; changes the  orientation of the items in the  group containing &amp;quot;Configuration Entry&amp;quot;, &amp;quot;Current configuration&amp;quot;, and &amp;quot;Messages&amp;quot; on the  &amp;quot;Enter Config and SE(3) Value&amp;quot; tab of the Custom UI from vertically arranged to horizontal.&lt;br /&gt;
&lt;br /&gt;
*Changing the  words: Find the text you want to change in the XML code. The text will be surrounded by quotation marks and have &amp;lt;big&amp;gt; and &amp;lt;/big&amp;gt; on its sides. For example, line 258 &amp;quot;label text=&amp;quot;&amp;lt;big&amp;gt; Configuration Entry:&amp;lt;/big&amp;gt;&amp;quot; controls the  text &amp;quot;Configuration Entry&amp;quot; on the &amp;quot;Enter Config and SE(3) Value&amp;quot; table of the Custom UI. Change the words &amp;quot;Configuration Entry&amp;quot; to change the text displayed in that specific section.&lt;br /&gt;
&lt;br /&gt;
*Changing the font: Using line 258 &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;big&amp;gt;Configuration  Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**The font can be changed to small  using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;small&amp;gt;Configuration Entry:&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** The font can be changed to a specific size using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;font size=20&amp;gt;Configuration Entry:&amp;lt;/font&amp;gt;&amp;lt;/nowiki&amp;gt;, where 20 is the desired font size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a screenshot of the original scene and then a screenshot that shows what was changed. Additionally, you should include a screenshot of the code you modified. For example, if you change the font size of the text in the Custom UI, you would include a screenshot of the Custom UI before any changes were made, a screenshot of the Custom UI with the font size change, and a screenshot of the XML code where you made the modification.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25889</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25889"/>
		<updated>2020-09-30T14:27:03Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment consists  of the following:&lt;br /&gt;
* A screenshot of the robot at its  final configuration.&lt;br /&gt;
* A list of reported joint angles.&lt;br /&gt;
* A list of rotation matrices giving the orientation of each joint relative to the previous joint (RS1, R12, R23, etc.)&lt;br /&gt;
* Reported value of &#039;&#039;Rse&#039;&#039; (Rotation matrix giving the orientation of end-effector frame {&#039;&#039;e&#039;&#039;} relative to the world frame {&#039;&#039;s&#039;&#039;}.&lt;br /&gt;
* Screenshots of the CoppeliaSim UI modifications you performed.&lt;br /&gt;
&lt;br /&gt;
All reported values should be in a single pdf. This pdf  and all screenshots should be submitted in a &#039;&#039;&#039;SINGLE&#039;&#039;&#039; .zip file labeled &amp;quot;lastname_firstname_assignment1.zip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step-By-Step Assignment Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
&lt;br /&gt;
[[File:CoppeliaSim_scripts.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Main script and  any child scripts will be displayed. There is a default main script that contains  the basic code the simulation needs to run and usually doesn&#039;t need to be edited. The main script contains the  simulation&#039;s loop code. Each object in the scene has an  associated child script. The child script is typically used to control the model and contains functions written in the Lua programming language. Child scripts can be non-threaded or threaded. Non-threaded child scripts contain system callback functions that happen every step in the simulation. Threaded child scripts  contain system callback functions that are called once at the beginning of the  simulation. Non-threaded child scripts are preferred over threaded since threaded child scripts are more resource-intensive, can waste some processing time, and can be less responsive to the simulation stop command. For more details on non-threaded and threaded child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/childScripts.htm Child Scripts].&lt;br /&gt;
&lt;br /&gt;
For more information about the main script and child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/mainAndChildScripts.htm Main  and Child Scripts]. The simulation must be stopped before you can make any edits to or open a script.&lt;br /&gt;
&lt;br /&gt;
For Scene 1, we will be looking at the &amp;quot;Non-threaded child  script (UI_Script).&amp;quot; Double-click this script and another window containing the code will pop up. You might notice some of the functions look similar to functions written in the Modern Robotics Library. For example, &#039;&#039;so3andp2se3(R,p)&#039;&#039; in this script resembles &#039;&#039;RpToTrans(R,p)&#039;&#039; in the Modern Robotics Library. The code for the Custom UI that appears when the simulation starts is written in XML and starts  on line 251. This XML code controls the appearance of the Custom UI, including the layout and content of text boxes, sliders, tab  titles, and font size. The XML syntax can be found at [https://www.coppeliarobotics.com/helpFiles/en/customUIPluginXMLSyntax.htm Custom UI Plugin XML Syntax]. For this specific scene, the different text boxes and sliders are arranged in different groups. Each group has a layout which determines how the objects inside the group will be displayed and label text which determines what text will be displayed and how it will be displayed. Consult the XML syntax for the attributes each element can have. &lt;br /&gt;
&lt;br /&gt;
More information on CoppeliaSim can  be found in the [https://www.coppeliarobotics.com/helpFiles/index.html CoppeliaSim User Manual]. There is also a [https://forum.coppeliarobotics.com/ CoppeliaSim forum]. You can take a look at the scripts of the included example scenes and  demos  to see how the  functions and  UIs were  defined and to get a better idea of how the  scripts run the  simulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Task&#039;&#039;&#039;&lt;br /&gt;
Modify the  Non-threaded child script (UI_Script) to change an aspect of the  scene. For example, you can choose  to cchange  the Custom UI layout, change the titles and words of the Custom UI, or change  font sizes in the Custom UI. Some example changes include:&lt;br /&gt;
&lt;br /&gt;
*Changing the  layout: consult theXML syntax and change &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to another type (hbox,form, grid,  none). Using line 257, changing &amp;lt;group layout-&amp;quot;vbox&amp;quot;&amp;gt; to &amp;lt;group layout=&amp;quot;hbox&amp;quot;&amp;gt; changes the  orientation of the items in the  group containing &amp;quot;Configuration Entry&amp;quot;, &amp;quot;Current configuration&amp;quot;, and &amp;quot;Messages&amp;quot; on the  &amp;quot;Enter Config and SE(3) Value&amp;quot; tab of the Custom UI from vertically arranged to horizontal.&lt;br /&gt;
&lt;br /&gt;
*Changing the  words: Find the text you want to change in the XML code. The text will be surrounded by quotation marks and have &amp;lt;big&amp;gt; and &amp;lt;/big&amp;gt; on its sides. For example, line 258 &amp;quot;label text=&amp;quot;&amp;lt;big&amp;gt; Configuration Entry:&amp;lt;/big&amp;gt;&amp;quot; controls the  text &amp;quot;Configuration Entry&amp;quot; on the &amp;quot;Enter Config and SE(3) Value&amp;quot; table of the Custom UI. Change the words &amp;quot;Configuration Entry&amp;quot; to change the text displayed in that specific section.&lt;br /&gt;
&lt;br /&gt;
*Changing the font: Using line 258 &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;big&amp;gt;Configuration  Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**The font can be changed to small  using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;small&amp;gt;Configuration Entry:&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** The font can be changed to a specific size using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;font size=20&amp;gt;Configuration Entry:&amp;lt;/font&amp;gt;&amp;lt;/nowiki&amp;gt;, where 20 is the desired font size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a screenshot of the original scene and then a screenshot that shows what was changed. Additionally, you should include a screenshot of the code you modified. For example, if you change the font size of the text in the Custom UI, you would include a screenshot of the Custom UI before any changes were made, a screenshot of the Custom UI with the font size change, and a screenshot of the XML code where you made the modification.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25888</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25888"/>
		<updated>2020-09-30T14:25:44Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment consists  of the following:&lt;br /&gt;
* A screenshot of the robot at its  final configuration.&lt;br /&gt;
* A list of reported joint angles.&lt;br /&gt;
* A list of rotation matrices giving the orientation of each joint relative to the previous joint (RS1, R12, R23, etc.)&lt;br /&gt;
* Reported value of &#039;&#039;Rse&#039;&#039; (Rotation matrix giving the orientation of end-effector frame {&#039;&#039;e&#039;&#039;} relative to the world frame {&#039;&#039;s&#039;&#039;}.&lt;br /&gt;
* Screenshots of the CoppeliaSim UI modifications you performed.&lt;br /&gt;
&lt;br /&gt;
All reported values should be in a single pdf. This pdf  and all screenshots should be submitted in a &#039;&#039;&#039;SINGLE&#039;&#039;&#039; .zip file labeled &amp;quot;lastname_firstname_assignment1.zip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step-By-Step Assignment Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
&lt;br /&gt;
[[File:CoppeliaSim_scripts.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Main script and  any child scripts will be displayed. There is a default main script that contains  the basic code the simulation needs to run and usually doesn&#039;t need to be edited. The main script contains the  simulation&#039;s loop code. Each object in the scene has an  associated child script. The child script is typically used to control the model and contains functions written in the Lua programming language. Child scripts can be non-threaded or threaded. Non-threaded child scripts contain system callback functions that happen every step in the simulation. Threaded child scripts  contain system callback functions that are called once at the beginning of the  simulation. Non-threaded child scripts are preferred over threaded since threaded child scripts are more resource-intensive, can waste some processing time, and can be less responsive to the simulation stop command. For more details on non-threaded and threaded child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/childScripts.htm Child Scripts].&lt;br /&gt;
&lt;br /&gt;
For more information about the main script and child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/mainAndChildScripts.htm Main  and Child Scripts]. The simulation must be stopped before you can make any edits to or open a script.&lt;br /&gt;
&lt;br /&gt;
For Scene 1, we will be looking at the &amp;quot;Non-threaded child  script (UI_Script).&amp;quot; Double-click this script and another window containing the code will pop up. You might noticce some of the functions look similar to functions written in the Modern Robotics Library. For example, &#039;&#039;so3andp2se3(R,p)&#039;&#039; in this script resembles &#039;&#039;RpToTrans(R,p)&#039;&#039; in the Modern Robotics Library. The code for the Custom UI that appears when the simulation starts is written in XML and starts  on line 251. This XML code controls the appearance of the Custom UI, including the layout and content of text boxes, sliders, tab  titles, and font size. The XML syntax can be found at [https://www.coppeliarobotics.com/helpFiles/en/customUIPluginXMLSyntax.htm Custom UI Plugin XML Syntax]. For this specific scene, the different text boxes and sliders are arranged in different groups. Each group has a layout which determines how the objects inside the group will be displayed and label text which determines what text will be displayed and how it will be displayed. Consult the XML syntax for the attributes each element can have. &lt;br /&gt;
&lt;br /&gt;
More information on CoppeliaSim can  be found in the [https://www.coppeliarobotics.com/helpFiles/index.html CoppeliaSim User Manual]. There is also a [https://forum.coppeliarobotics.com/ CoppeliaSim forum]. You can take a look at the scripts of the included example scenes and  demos  to see how the  functions and  UIs were  defined and to get a better idea of how the  scripts run the  simulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Task&#039;&#039;&#039;&lt;br /&gt;
Modify the  Non-threaded child script (UI_Script) to change an aspect of the  scene. For example, you can choose  to cchange  the Custom UI layout, change the titles and words of the Custom UI, or change  font sizes in the Custom UI. Some example changes include:&lt;br /&gt;
&lt;br /&gt;
*Changing the  layout: consult theXML syntax and change &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to another type (hbox,form, grid,  none). Using line 257, changing &amp;lt;group layout-&amp;quot;vbox&amp;quot;&amp;gt; to &amp;lt;group layout=&amp;quot;hbox&amp;quot;&amp;gt; changes the  orientation of the items in the  group containing &amp;quot;Configuration Entry&amp;quot;, &amp;quot;Current configuration&amp;quot;, and &amp;quot;Messages&amp;quot; on the  &amp;quot;Enter Config and SE(3) Value&amp;quot; tab of the Custom UI from vertically arranged to horizontal.&lt;br /&gt;
&lt;br /&gt;
*Changing the  words: Find the text you want to change in the XML code. The text will be surrounded by quotation marks and have &amp;lt;big&amp;gt; and &amp;lt;/big&amp;gt; on its sides. For example, line 258 &amp;quot;label text=&amp;quot;&amp;lt;big&amp;gt; Configuration Entry:&amp;lt;/big&amp;gt;&amp;quot; controls the  text &amp;quot;Configuration Entry&amp;quot; on the &amp;quot;Enter Config and SE(3) Value&amp;quot; table of the Custom UI. Change the words &amp;quot;Configuration Entry&amp;quot; to change the text displayed in that specific section.&lt;br /&gt;
&lt;br /&gt;
*Changing the font: Using line 258 &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;big&amp;gt;Configuration  Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**The font can be changed to small  using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;small&amp;gt;Configuration Entry:&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** The font can be changed to a specific size using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;font size=20&amp;gt;Configuration Entry:&amp;lt;/font&amp;gt;&amp;lt;/nowiki&amp;gt;, where 20 is the desired font size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a screenshot of the original scene and then a screenshot that shows what was changed. Additionally, you should include a screenshot of the code you modified. For example, if you change the font size of the text in the Custom UI, you would include a screenshot of the Custom UI before any changes were made, a screenshot of the Custom UI with the font size change, and a screenshot of the XML code where you made the modification.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25887</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25887"/>
		<updated>2020-09-30T14:24:29Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment consists  of the following:&lt;br /&gt;
* A screenshot of the robot at its  final configuration.&lt;br /&gt;
* A list of reported joint angles.&lt;br /&gt;
* A list of rotation matrices giving the orientation of each joint relative to the previous joint (RS1, R12, R23, etc.)&lt;br /&gt;
* Reported value of &#039;&#039;Rse&#039;&#039; (Rotation matrix giving the orientation of end-effector frame {&#039;&#039;e&#039;&#039;} relative to the world frame {&#039;&#039;s&#039;&#039;}.&lt;br /&gt;
* Screenshots of the CoppeliaSim UI modifications you performed.&lt;br /&gt;
&lt;br /&gt;
All reported values should be in a single pdf. This pdf  and all screenshots should be submitted in a &#039;&#039;&#039;SINGLE&#039;&#039;&#039; .zip file labeled &amp;quot;lastname_firstname_assignment1.zip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step-By-Step Assignment Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
&lt;br /&gt;
[[File:CoppeliaSim_scripts.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Main script and  any child scripts will be displayed. There is a default main script that contains  the basic code the simulation needs to run and usually doesn&#039;t need to be edited. The main script contains the  simulation&#039;s loop code. Each object in the scene has an  associated child script. The child script is typically used to control the model and contains functions written in the Lua programming language. Child scripts can be non-threaded or threaded. Non-threaded child scripts contain system callback functions that happen every step in the simulation. Threaded child scripts  contain system callback functions that are called once at the beginning of the  simulation. Non-threaded child scripts are preferred ovver threaded since threaded child scripts are more resource-intensive, can waste some proccessing time, and can be less responsive to the simulation stop command. For more details on non-threaded and threaded child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/childScripts.htm Child Scripts].&lt;br /&gt;
&lt;br /&gt;
For more information about the main script and child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/mainAndChildScripts.htm Main  and Child Scripts]. The simulation must be stopped before you can make any edits to or open a script.&lt;br /&gt;
&lt;br /&gt;
For Scene 1, we will be looking at the &amp;quot;Non-threaded child  script (UI_Script).&amp;quot; Double-click this script and another window containing the code will pop up. You might noticce some of the functions look similar to functions written in the Modern Robotics Library. For example, &#039;&#039;so3andp2se3(R,p)&#039;&#039; in this script resembles &#039;&#039;RpToTrans(R,p)&#039;&#039; in the Modern Robotics Library. The code for the Custom UI that appears when the simulation starts is written in XML and starts  on line 251. This XML code controls the appearance of the Custom UI, including the layout and content of text boxes, sliders, tab  titles, and font size. The XML syntax can be found at [https://www.coppeliarobotics.com/helpFiles/en/customUIPluginXMLSyntax.htm Custom UI Plugin XML Syntax]. For this specific scene, the different text boxes and sliders are arranged in different groups. Each group has a layout which determines how the objects inside the group will be displayed and label text which determines what text will be displayed and how it will be displayed. Consult the XML syntax for the attributes each element can have. &lt;br /&gt;
&lt;br /&gt;
More information on CoppeliaSim can  be found in the [https://www.coppeliarobotics.com/helpFiles/index.html CoppeliaSim User Manual]. There is also a [https://forum.coppeliarobotics.com/ CoppeliaSim forum]. You can take a look at the scripts of the included example scenes and  demos  to see how the  functions and  UIs were  defined and to get a better idea of how the  scripts run the  simulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Task&#039;&#039;&#039;&lt;br /&gt;
Modify the  Non-threaded child script (UI_Script) to change an aspect of the  scene. For example, you can choose  to cchange  the Custom UI layout, change the titles and words of the Custom UI, or change  font sizes in the Custom UI. Some example changes include:&lt;br /&gt;
&lt;br /&gt;
*Changing the  layout: consult theXML syntax and change &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to another type (hbox,form, grid,  none). Using line 257, changing &amp;lt;group layout-&amp;quot;vbox&amp;quot;&amp;gt; to &amp;lt;group layout=&amp;quot;hbox&amp;quot;&amp;gt; changes the  orientation of the items in the  group containing &amp;quot;Configuration Entry&amp;quot;, &amp;quot;Current configuration&amp;quot;, and &amp;quot;Messages&amp;quot; on the  &amp;quot;Enter Config and SE(3) Value&amp;quot; tab of the Custom UI from vertically arranged to horizontal.&lt;br /&gt;
&lt;br /&gt;
*Changing the  words: Find the text you want to change in the XML code. The text will be surrounded by quotation marks and have &amp;lt;big&amp;gt; and &amp;lt;/big&amp;gt; on its sides. For example, line 258 &amp;quot;label text=&amp;quot;&amp;lt;big&amp;gt; Configuration Entry:&amp;lt;/big&amp;gt;&amp;quot; controls the  text &amp;quot;Configuration Entry&amp;quot; on the &amp;quot;Enter Config and SE(3) Value&amp;quot; table of the Custom UI. Change the words &amp;quot;Configuration Entry&amp;quot; to change the text displayed in that specific section.&lt;br /&gt;
&lt;br /&gt;
*Changing the font: Using line 258 &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;big&amp;gt;Configuration  Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**The font can be changed to small  using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;small&amp;gt;Configuration Entry:&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** The font can be changed to a specific size using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;font size=20&amp;gt;Configuration Entry:&amp;lt;/font&amp;gt;&amp;lt;/nowiki&amp;gt;, where 20 is the desired font size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a screenshot of the original scene and then a screenshot that shows what was changed. Additionally, you should include a screenshot of the code you modified. For example, if you change the font size of the text in the Custom UI, you would include a screenshot of the Custom UI before any changes were made, a screenshot of the Custom UI with the font size change, and a screenshot of the XML code where you made the modification.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25886</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25886"/>
		<updated>2020-09-30T14:23:30Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment consists  of the following:&lt;br /&gt;
* A screenshot of the robot at its  final configuration.&lt;br /&gt;
* A list of reported joint angles.&lt;br /&gt;
* A list of rotation matrices giving the orientation of each joint relative to the previous joint (RS1, R12, R23, etc.)&lt;br /&gt;
* Reported value of &#039;&#039;Rse&#039;&#039; (Rotation matrix giving the orientation of end-effector frame {&#039;&#039;e&#039;&#039;} relative to the world frame {&#039;&#039;s&#039;&#039;}.&lt;br /&gt;
* Screenshots of the CoppeliaSim UI modifications you performed.&lt;br /&gt;
&lt;br /&gt;
All reported values should be in a single pdf. This pdf  and all screenshots should be submitted in a &#039;&#039;&#039;SINGLE&#039;&#039;&#039; .zip file labeled &amp;quot;lastname_firstname_assignment1.zip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step-By-Step Assignment Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
&lt;br /&gt;
[[File:CoppeliaSim_scripts.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Main script and  any child scripts will be displayed. The main script contains the  simulation&#039;s loop code. there is a default main script that contains  the basic code the simulation needs to run and usually doesn&#039;t need to be edited. Each object in the scene has an  associated child script. The child script is typically used to control the model and contains functions written in the Lua programming language. Child scripts can be non-threaded or threaded. Non-threaded child scripts contain system callback functions that happen every step in the simulation. Threaded child scripts  contain system callback functions that are called once at the beginning of the  simulation. Non-threaded child scripts are preferred ovver threaded since threaded child scripts are more resource-intensive, can waste some proccessing time, and can be less responsive to the simulation stop command. For more details on non-threaded and threaded child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/childScripts.htm Child Scripts].&lt;br /&gt;
&lt;br /&gt;
For more information about the main script and child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/mainAndChildScripts.htm Main  and Child Scripts]. The simulation must be stopped before you can make any edits to or open a script.&lt;br /&gt;
&lt;br /&gt;
For Scene 1, we will be looking at the &amp;quot;Non-threaded child  script (UI_Script).&amp;quot; Double-click this script and another window containing the code will pop up. You might noticce some of the functions look similar to functions written in the Modern Robotics Library. For example, &#039;&#039;so3andp2se3(R,p)&#039;&#039; in this script resembles &#039;&#039;RpToTrans(R,p)&#039;&#039; in the Modern Robotics Library. The code for the Custom UI that appears when the simulation starts is written in XML and starts  on line 251. This XML code controls the appearance of the Custom UI, including the layout and content of text boxes, sliders, tab  titles, and font size. The XML syntax can be found at [https://www.coppeliarobotics.com/helpFiles/en/customUIPluginXMLSyntax.htm Custom UI Plugin XML Syntax]. For this specific scene, the different text boxes and sliders are arranged in different groups. Each group has a layout which determines how the objects inside the group will be displayed and label text which determines what text will be displayed and how it will be displayed. Consult the XML syntax for the attributes each element can have. &lt;br /&gt;
&lt;br /&gt;
More information on CoppeliaSim can  be found in the [https://www.coppeliarobotics.com/helpFiles/index.html CoppeliaSim User Manual]. There is also a [https://forum.coppeliarobotics.com/ CoppeliaSim forum]. You can take a look at the scripts of the included example scenes and  demos  to see how the  functions and  UIs were  defined and to get a better idea of how the  scripts run the  simulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Task&#039;&#039;&#039;&lt;br /&gt;
Modify the  Non-threaded child script (UI_Script) to change an aspect of the  scene. For example, you can choose  to cchange  the Custom UI layout, change the titles and words of the Custom UI, or change  font sizes in the Custom UI. Some example changes include:&lt;br /&gt;
&lt;br /&gt;
*Changing the  layout: consult theXML syntax and change &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to another type (hbox,form, grid,  none). Using line 257, changing &amp;lt;group layout-&amp;quot;vbox&amp;quot;&amp;gt; to &amp;lt;group layout=&amp;quot;hbox&amp;quot;&amp;gt; changes the  orientation of the items in the  group containing &amp;quot;Configuration Entry&amp;quot;, &amp;quot;Current configuration&amp;quot;, and &amp;quot;Messages&amp;quot; on the  &amp;quot;Enter Config and SE(3) Value&amp;quot; tab of the Custom UI from vertically arranged to horizontal.&lt;br /&gt;
&lt;br /&gt;
*Changing the  words: Find the text you want to change in the XML code. The text will be surrounded by quotation marks and have &amp;lt;big&amp;gt; and &amp;lt;/big&amp;gt; on its sides. For example, line 258 &amp;quot;label text=&amp;quot;&amp;lt;big&amp;gt; Configuration Entry:&amp;lt;/big&amp;gt;&amp;quot; controls the  text &amp;quot;Configuration Entry&amp;quot; on the &amp;quot;Enter Config and SE(3) Value&amp;quot; table of the Custom UI. Change the words &amp;quot;Configuration Entry&amp;quot; to change the text displayed in that specific section.&lt;br /&gt;
&lt;br /&gt;
*Changing the font: Using line 258 &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;big&amp;gt;Configuration  Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**The font can be changed to small  using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;small&amp;gt;Configuration Entry:&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** The font can be changed to a specific size using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;font size=20&amp;gt;Configuration Entry:&amp;lt;/font&amp;gt;&amp;lt;/nowiki&amp;gt;, where 20 is the desired font size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a screenshot of the original scene and then a screenshot that shows what was changed. Additionally, you should include a screenshot of the code you modified. For example, if you change the font size of the text in the Custom UI, you would include a screenshot of the Custom UI before any changes were made, a screenshot of the Custom UI with the font size change, and a screenshot of the XML code where you made the modification.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25885</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25885"/>
		<updated>2020-09-30T14:22:19Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment consists  of the following:&lt;br /&gt;
* A screenshot of the robot at its  final configuration.&lt;br /&gt;
* A list of reported joint angles.&lt;br /&gt;
* A list of rotation matrices giving the orientation of each joint relative to the previous joint (RS1, R12, R23, etc.)&lt;br /&gt;
* Reported value of &#039;&#039;Rse&#039;&#039; (Rotation matrix giving the orientation of end-effector frame {&#039;&#039;e&#039;&#039;} relative to the world frame {&#039;&#039;s&#039;&#039;}.&lt;br /&gt;
* Screenshots of the CoppeliaSim UI modifications you performed.&lt;br /&gt;
&lt;br /&gt;
All reported values should be in a single pdf. This pdf  and all screenshots should be submitted in a &#039;&#039;&#039;SINGLE&#039;&#039;&#039; .zip file labeled &amp;quot;lastname_firstname_assignment1.zip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step-By-Step Assignment Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
&lt;br /&gt;
[[File:CoppeliaSim_scripts.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Main script and  any child scripts will be displayed. The main script contains the  simulation&#039;s loop code. there is a default main script that contains  the basic code the simulation needs to run and usually doesn&#039;t need to be edited. Each object in the scene has an  associated child script. The child script is typically used to control the model and contains functions written in the Lua programming language. Child scripts can be non-threaded or threaded. Non-threaded child scripts contain system callback functions that happen every step in the simulation. Threaded child scripts  contain system callback functions that are called once at the beginning of the  simulation. Non-threaded child scripts are preferred ovver threaded since threaded child scripts are more resource-intensive, can waste some proccessing time, and can be less responsive to the simulation stop command. For more details on non-threaded and threaded child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/childScripts.htm Child Scripts].&lt;br /&gt;
&lt;br /&gt;
For more information about the main script and child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/mainAndChildScripts.htm Main  and Child Scripts]. The simulation must be stopped before you can make any edits to or open a script.&lt;br /&gt;
&lt;br /&gt;
For Scene 1, we will be looking at the &amp;quot;Non-threaded child  script (UI_Script).&amp;quot; Double-click this script and another window containing the code will pop up. You might noticce some of the functions look similar to functions written in the Modern Robotics Library. For example, &#039;&#039;so3andp2se3(R,p)&#039;&#039; in this script resembles &#039;&#039;RpToTrans(R,p)&#039;&#039; in the Modern Robotics Library. The code for the Custom UI that appears when the simulation starts is written in XML and starts  on line 251. This XML code controls the appearance of the Custom UI, including the layout and content of text boxes, sliders, tab  titles, and font size. The XML syntax can be found at [https://www.coppeliarobotics.com/helpFiles/en/customUIPluginXMLSyntax.htm Custom UI Plugin XML Syntax]. For this specific scene, the different text boxes and sliders are arranged in different groups. Each group has a layout which determines how the objects inside the group will be displayed and label text which determines what text will be displayed and how it will be displayed. Consult the XML syntax for the attributes each element can have. &lt;br /&gt;
&lt;br /&gt;
More information on CoppeliaSim can  be found in the [https://www.coppeliarobotics.com/helpFiles/index.html CoppeliaSim User Manual]. There is also a [https://forum.coppeliarobotics.com/ CoppeliaSim forum]. You can take a look at the scripts of the included example scenes and  demos  to see how the  functions and  UIs were  defined and to get a better idea of how the  scripts run the  simulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Task&#039;&#039;&#039;&lt;br /&gt;
Modify the  Non-threaded child script (UI_Script) to change an aspect of the  scene. For example, you can choose  to cchange  the Custom UI layout, change the titles and words of the Custom UI, or change  font sizes in the Custom UI. Some example changes include:&lt;br /&gt;
&lt;br /&gt;
*Changing the  layout: consult theXML syntax and change &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to another type (hbox,form, grid,  none). Using line 257, changing &amp;lt;group layout-&amp;quot;vbox&amp;quot;&amp;gt; to &amp;lt;group layout=&amp;quot;hbox&amp;quot;&amp;gt; changes the  orientation of the items in the  group containing &amp;quot;Configuration Entry&amp;quot;, &amp;quot;Current configuration&amp;quot;, and &amp;quot;Messages&amp;quot; on the  &amp;quot;Enter Config and SE(3) Value&amp;quot; tab of the Custom UI from vertically arranged to horizontal.&lt;br /&gt;
&lt;br /&gt;
*Changing the  words: Find the text you want to change in the XML code. The text will be surrounded by quotation marks and have &amp;lt;big&amp;gt; and &amp;lt;/big&amp;gt; on its sides. For example, line 258 &amp;quot;label text=&amp;quot;&amp;lt;big&amp;gt; Configuration Entry:&amp;lt;/big&amp;gt;&amp;quot; controls the  text &amp;quot;Configuration Entry&amp;quot; on the &amp;quot;Enter Config and SE(3) Value&amp;quot; table of the Custom UI. Change the words &amp;quot;Configuration Entry&amp;quot; to change the text displayed in that specific section.&lt;br /&gt;
&lt;br /&gt;
*Changing the font: Using line 258 &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;big&amp;gt;Configuration  Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**The font can be changed to small  using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;small&amp;gt;Configuration Entry:&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** The font can be changed to a specific size using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;font size=20&amp;gt;Configuration Entry:&amp;lt;/font&amp;gt;&amp;lt;/nowiki&amp;gt;, where 20 is the desired font size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a screenshot of the original scene and then a screenshot that shows what was changed. Additionally, you should include a screenshot of the code you modified. For example, if you change the font size of the text in the Custom UI, you would include a screenshot of the Custom UI before any changes were made, a screenshot of the Custom UI with the font size change, and a screenshot of the XML code where you made the modification.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25884</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25884"/>
		<updated>2020-09-30T14:21:25Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment consists  of the following:&lt;br /&gt;
* A screenshot of the robot at its  final configuration.&lt;br /&gt;
* A list of reported joint angles.&lt;br /&gt;
* A list of rotation matrices giving the orientation of each joint relative to the previous joint (RS1, R12, R23, etc.)&lt;br /&gt;
* Reported value of &#039;&#039;Rse&#039;&#039; (Rotation matrix giving the orientation of end-effector frame {&#039;&#039;e&#039;&#039;} relative to the world frame {&#039;&#039;s&#039;&#039;}.&lt;br /&gt;
* Screenshots of the CoppeliaSim UI modifications you performed.&lt;br /&gt;
&lt;br /&gt;
All reported values should be in a single pdf. This pdf  and all screenshots should be submitted in a single .zip file labeled with  your name and &amp;quot;Assignment 1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step-By-Step Assignment Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
&lt;br /&gt;
[[File:CoppeliaSim_scripts.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Main script and  any child scripts will be displayed. The main script contains the  simulation&#039;s loop code. there is a default main script that contains  the basic code the simulation needs to run and usually doesn&#039;t need to be edited. Each object in the scene has an  associated child script. The child script is typically used to control the model and contains functions written in the Lua programming language. Child scripts can be non-threaded or threaded. Non-threaded child scripts contain system callback functions that happen every step in the simulation. Threaded child scripts  contain system callback functions that are called once at the beginning of the  simulation. Non-threaded child scripts are preferred ovver threaded since threaded child scripts are more resource-intensive, can waste some proccessing time, and can be less responsive to the simulation stop command. For more details on non-threaded and threaded child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/childScripts.htm Child Scripts].&lt;br /&gt;
&lt;br /&gt;
For more information about the main script and child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/mainAndChildScripts.htm Main  and Child Scripts]. The simulation must be stopped before you can make any edits to or open a script.&lt;br /&gt;
&lt;br /&gt;
For Scene 1, we will be looking at the &amp;quot;Non-threaded child  script (UI_Script).&amp;quot; Double-click this script and another window containing the code will pop up. You might noticce some of the functions look similar to functions written in the Modern Robotics Library. For example, &#039;&#039;so3andp2se3(R,p)&#039;&#039; in this script resembles &#039;&#039;RpToTrans(R,p)&#039;&#039; in the Modern Robotics Library. The code for the Custom UI that appears when the simulation starts is written in XML and starts  on line 251. This XML code controls the appearance of the Custom UI, including the layout and content of text boxes, sliders, tab  titles, and font size. The XML syntax can be found at [https://www.coppeliarobotics.com/helpFiles/en/customUIPluginXMLSyntax.htm Custom UI Plugin XML Syntax]. For this specific scene, the different text boxes and sliders are arranged in different groups. Each group has a layout which determines how the objects inside the group will be displayed and label text which determines what text will be displayed and how it will be displayed. Consult the XML syntax for the attributes each element can have. &lt;br /&gt;
&lt;br /&gt;
More information on CoppeliaSim can  be found in the [https://www.coppeliarobotics.com/helpFiles/index.html CoppeliaSim User Manual]. There is also a [https://forum.coppeliarobotics.com/ CoppeliaSim forum]. You can take a look at the scripts of the included example scenes and  demos  to see how the  functions and  UIs were  defined and to get a better idea of how the  scripts run the  simulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Task&#039;&#039;&#039;&lt;br /&gt;
Modify the  Non-threaded child script (UI_Script) to change an aspect of the  scene. For example, you can choose  to cchange  the Custom UI layout, change the titles and words of the Custom UI, or change  font sizes in the Custom UI. Some example changes include:&lt;br /&gt;
&lt;br /&gt;
*Changing the  layout: consult theXML syntax and change &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to another type (hbox,form, grid,  none). Using line 257, changing &amp;lt;group layout-&amp;quot;vbox&amp;quot;&amp;gt; to &amp;lt;group layout=&amp;quot;hbox&amp;quot;&amp;gt; changes the  orientation of the items in the  group containing &amp;quot;Configuration Entry&amp;quot;, &amp;quot;Current configuration&amp;quot;, and &amp;quot;Messages&amp;quot; on the  &amp;quot;Enter Config and SE(3) Value&amp;quot; tab of the Custom UI from vertically arranged to horizontal.&lt;br /&gt;
&lt;br /&gt;
*Changing the  words: Find the text you want to change in the XML code. The text will be surrounded by quotation marks and have &amp;lt;big&amp;gt; and &amp;lt;/big&amp;gt; on its sides. For example, line 258 &amp;quot;label text=&amp;quot;&amp;lt;big&amp;gt; Configuration Entry:&amp;lt;/big&amp;gt;&amp;quot; controls the  text &amp;quot;Configuration Entry&amp;quot; on the &amp;quot;Enter Config and SE(3) Value&amp;quot; table of the Custom UI. Change the words &amp;quot;Configuration Entry&amp;quot; to change the text displayed in that specific section.&lt;br /&gt;
&lt;br /&gt;
*Changing the font: Using line 258 &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;big&amp;gt;Configuration  Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**The font can be changed to small  using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;small&amp;gt;Configuration Entry:&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** The font can be changed to a specific size using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;font size=20&amp;gt;Configuration Entry:&amp;lt;/font&amp;gt;&amp;lt;/nowiki&amp;gt;, where 20 is the desired font size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a screenshot of the original scene and then a screenshot that shows what was changed. Additionally, you should include a screenshot of the code you modified. For example, if you change the font size of the text in the Custom UI, you would include a screenshot of the Custom UI before any changes were made, a screenshot of the Custom UI with the font size change, and a screenshot of the XML code where you made the modification.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25883</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25883"/>
		<updated>2020-09-30T14:19:11Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment consists  of the following:&lt;br /&gt;
* A screenshot of the robot at its  final configuration.&lt;br /&gt;
* A list of reported joint angles.&lt;br /&gt;
* A list of rotation matrices giving the orientation of each joint relative to the previous joint (R12, R23, etc.)&lt;br /&gt;
* Reported value of &#039;&#039;Rse&#039;&#039; (Rotation matrix giving the orientation of end-effector frame {&#039;&#039;e&#039;&#039;} relative to the world frame {&#039;&#039;s&#039;&#039;}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step-By-Step Assignment Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
&lt;br /&gt;
[[File:CoppeliaSim_scripts.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Main script and  any child scripts will be displayed. The main script contains the  simulation&#039;s loop code. there is a default main script that contains  the basic code the simulation needs to run and usually doesn&#039;t need to be edited. Each object in the scene has an  associated child script. The child script is typically used to control the model and contains functions written in the Lua programming language. Child scripts can be non-threaded or threaded. Non-threaded child scripts contain system callback functions that happen every step in the simulation. Threaded child scripts  contain system callback functions that are called once at the beginning of the  simulation. Non-threaded child scripts are preferred ovver threaded since threaded child scripts are more resource-intensive, can waste some proccessing time, and can be less responsive to the simulation stop command. For more details on non-threaded and threaded child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/childScripts.htm Child Scripts].&lt;br /&gt;
&lt;br /&gt;
For more information about the main script and child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/mainAndChildScripts.htm Main  and Child Scripts]. The simulation must be stopped before you can make any edits to or open a script.&lt;br /&gt;
&lt;br /&gt;
For Scene 1, we will be looking at the &amp;quot;Non-threaded child  script (UI_Script).&amp;quot; Double-click this script and another window containing the code will pop up. You might noticce some of the functions look similar to functions written in the Modern Robotics Library. For example, &#039;&#039;so3andp2se3(R,p)&#039;&#039; in this script resembles &#039;&#039;RpToTrans(R,p)&#039;&#039; in the Modern Robotics Library. The code for the Custom UI that appears when the simulation starts is written in XML and starts  on line 251. This XML code controls the appearance of the Custom UI, including the layout and content of text boxes, sliders, tab  titles, and font size. The XML syntax can be found at [https://www.coppeliarobotics.com/helpFiles/en/customUIPluginXMLSyntax.htm Custom UI Plugin XML Syntax]. For this specific scene, the different text boxes and sliders are arranged in different groups. Each group has a layout which determines how the objects inside the group will be displayed and label text which determines what text will be displayed and how it will be displayed. Consult the XML syntax for the attributes each element can have. &lt;br /&gt;
&lt;br /&gt;
More information on CoppeliaSim can  be found in the [https://www.coppeliarobotics.com/helpFiles/index.html CoppeliaSim User Manual]. There is also a [https://forum.coppeliarobotics.com/ CoppeliaSim forum]. You can take a look at the scripts of the included example scenes and  demos  to see how the  functions and  UIs were  defined and to get a better idea of how the  scripts run the  simulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Task&#039;&#039;&#039;&lt;br /&gt;
Modify the  Non-threaded child script (UI_Script) to change an aspect of the  scene. For example, you can choose  to cchange  the Custom UI layout, change the titles and words of the Custom UI, or change  font sizes in the Custom UI. Some example changes include:&lt;br /&gt;
&lt;br /&gt;
*Changing the  layout: consult theXML syntax and change &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to another type (hbox,form, grid,  none). Using line 257, changing &amp;lt;group layout-&amp;quot;vbox&amp;quot;&amp;gt; to &amp;lt;group layout=&amp;quot;hbox&amp;quot;&amp;gt; changes the  orientation of the items in the  group containing &amp;quot;Configuration Entry&amp;quot;, &amp;quot;Current configuration&amp;quot;, and &amp;quot;Messages&amp;quot; on the  &amp;quot;Enter Config and SE(3) Value&amp;quot; tab of the Custom UI from vertically arranged to horizontal.&lt;br /&gt;
&lt;br /&gt;
*Changing the  words: Find the text you want to change in the XML code. The text will be surrounded by quotation marks and have &amp;lt;big&amp;gt; and &amp;lt;/big&amp;gt; on its sides. For example, line 258 &amp;quot;label text=&amp;quot;&amp;lt;big&amp;gt; Configuration Entry:&amp;lt;/big&amp;gt;&amp;quot; controls the  text &amp;quot;Configuration Entry&amp;quot; on the &amp;quot;Enter Config and SE(3) Value&amp;quot; table of the Custom UI. Change the words &amp;quot;Configuration Entry&amp;quot; to change the text displayed in that specific section.&lt;br /&gt;
&lt;br /&gt;
*Changing the font: Using line 258 &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;big&amp;gt;Configuration  Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**The font can be changed to small  using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;small&amp;gt;Configuration Entry:&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** The font can be changed to a specific size using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;font size=20&amp;gt;Configuration Entry:&amp;lt;/font&amp;gt;&amp;lt;/nowiki&amp;gt;, where 20 is the desired font size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a screenshot of the original scene and then a screenshot that shows what was changed. Additionally, you should include a screenshot of the code you modified. For example, if you change the font size of the text in the Custom UI, you would include a screenshot of the Custom UI before any changes were made, a screenshot of the Custom UI with the font size change, and a screenshot of the XML code where you made the modification.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25882</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25882"/>
		<updated>2020-09-30T14:13:24Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment will be graded according to whether the robot  in the screenshot is clearly and correctly at the desired configuration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step-By-Step Assignment Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
&lt;br /&gt;
[[File:CoppeliaSim_scripts.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Main script and  any child scripts will be displayed. The main script contains the  simulation&#039;s loop code. there is a default main script that contains  the basic code the simulation needs to run and usually doesn&#039;t need to be edited. Each object in the scene has an  associated child script. The child script is typically used to control the model and contains functions written in the Lua programming language. Child scripts can be non-threaded or threaded. Non-threaded child scripts contain system callback functions that happen every step in the simulation. Threaded child scripts  contain system callback functions that are called once at the beginning of the  simulation. Non-threaded child scripts are preferred ovver threaded since threaded child scripts are more resource-intensive, can waste some proccessing time, and can be less responsive to the simulation stop command. For more details on non-threaded and threaded child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/childScripts.htm Child Scripts].&lt;br /&gt;
&lt;br /&gt;
For more information about the main script and child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/mainAndChildScripts.htm Main  and Child Scripts]. The simulation must be stopped before you can make any edits to or open a script.&lt;br /&gt;
&lt;br /&gt;
For Scene 1, we will be looking at the &amp;quot;Non-threaded child  script (UI_Script).&amp;quot; Double-click this script and another window containing the code will pop up. You might noticce some of the functions look similar to functions written in the Modern Robotics Library. For example, &#039;&#039;so3andp2se3(R,p)&#039;&#039; in this script resembles &#039;&#039;RpToTrans(R,p)&#039;&#039; in the Modern Robotics Library. The code for the Custom UI that appears when the simulation starts is written in XML and starts  on line 251. This XML code controls the appearance of the Custom UI, including the layout and content of text boxes, sliders, tab  titles, and font size. The XML syntax can be found at [https://www.coppeliarobotics.com/helpFiles/en/customUIPluginXMLSyntax.htm Custom UI Plugin XML Syntax]. For this specific scene, the different text boxes and sliders are arranged in different groups. Each group has a layout which determines how the objects inside the group will be displayed and label text which determines what text will be displayed and how it will be displayed. Consult the XML syntax for the attributes each element can have. &lt;br /&gt;
&lt;br /&gt;
More information on CoppeliaSim can  be found in the [https://www.coppeliarobotics.com/helpFiles/index.html CoppeliaSim User Manual]. There is also a [https://forum.coppeliarobotics.com/ CoppeliaSim forum]. You can take a look at the scripts of the included example scenes and  demos  to see how the  functions and  UIs were  defined and to get a better idea of how the  scripts run the  simulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Task&#039;&#039;&#039;&lt;br /&gt;
Modify the  Non-threaded child script (UI_Script) to change an aspect of the  scene. For example, you can choose  to cchange  the Custom UI layout, change the titles and words of the Custom UI, or change  font sizes in the Custom UI. Some example changes include:&lt;br /&gt;
&lt;br /&gt;
*Changing the  layout: consult theXML syntax and change &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to another type (hbox,form, grid,  none). Using line 257, changing &amp;lt;group layout-&amp;quot;vbox&amp;quot;&amp;gt; to &amp;lt;group layout=&amp;quot;hbox&amp;quot;&amp;gt; changes the  orientation of the items in the  group containing &amp;quot;Configuration Entry&amp;quot;, &amp;quot;Current configuration&amp;quot;, and &amp;quot;Messages&amp;quot; on the  &amp;quot;Enter Config and SE(3) Value&amp;quot; tab of the Custom UI from vertically arranged to horizontal.&lt;br /&gt;
&lt;br /&gt;
*Changing the  words: Find the text you want to change in the XML code. The text will be surrounded by quotation marks and have &amp;lt;big&amp;gt; and &amp;lt;/big&amp;gt; on its sides. For example, line 258 &amp;quot;label text=&amp;quot;&amp;lt;big&amp;gt; Configuration Entry:&amp;lt;/big&amp;gt;&amp;quot; controls the  text &amp;quot;Configuration Entry&amp;quot; on the &amp;quot;Enter Config and SE(3) Value&amp;quot; table of the Custom UI. Change the words &amp;quot;Configuration Entry&amp;quot; to change the text displayed in that specific section.&lt;br /&gt;
&lt;br /&gt;
*Changing the font: Using line 258 &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;big&amp;gt;Configuration  Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**The font can be changed to small  using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;small&amp;gt;Configuration Entry:&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** The font can be changed to a specific size using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;font size=20&amp;gt;Configuration Entry:&amp;lt;/font&amp;gt;&amp;lt;/nowiki&amp;gt;, where 20 is the desired font size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a screenshot of the original scene and then a screenshot that shows what was changed. Additionally, you should include a screenshot of the code you modified. For example, if you change the font size of the text in the Custom UI, you would include a screenshot of the Custom UI before any changes were made, a screenshot of the Custom UI with the font size change, and a screenshot of the XML code where you made the modification.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25881</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25881"/>
		<updated>2020-09-30T14:12:51Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment will be graded according to whether the robot  in the screenshot is clearly and correctly at the desired configuration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step-By-Step Assignment Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
&lt;br /&gt;
[[File:CoppeliaSim_scripts.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Main script and  any child scripts will be displayed. The main script contains the  simulation&#039;s loop code. there is a default main script that contains  the basic code the simulation needs to run and usually doesn&#039;t need to be edited. Each object in the scene has an  associated child script. The child script is typically used to control the model and contains functions written in the Lua programming language. Child scripts can be non-threaded or threaded. Non-threaded child scripts contain system callback functions that happen every step in the simulation. Threaded child scripts  contain system callback functions that are called once at the beginning of the  simulation. Non-threaded child scripts are preferred ovver threaded since threaded child scripts are more resource-intensive, can waste some proccessing time, and can be less responsive to the simulation stop command. For more details on non-threaded and threaded child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/childScripts.htm Child Scripts].&lt;br /&gt;
&lt;br /&gt;
For more information about the main script and child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/mainAndChildScripts.htm Main  and Child Scripts]. The simulation must be stopped before you can make any edits to or open a script.&lt;br /&gt;
&lt;br /&gt;
For Scene 1, we will be looking at the &amp;quot;Non-threaded child  script (UI_Script).&amp;quot; Double-click this script and another window containing the code will pop up. You might noticce some of the functions look similar to functions written in the Modern Robotics Library. For example, &#039;&#039;so3andp2se3(R,p)&#039;&#039; in this script resembles &#039;&#039;RpToTrans(R,p)&#039;&#039; in the Modern Robotics Library. The code for the Custom UI that appears when the simulation starts is written in XML and starts  on line 251. This XML code controls the appearance of the Custom UI, including the layout and content of text boxes, sliders, tab  titles, and font size. The XML syntax can be found at [https://www.coppeliarobotics.com/helpFiles/en/customUIPluginXMLSyntax.htm Custom UI Plugin XML Syntax]. For this specific scene, the different text boxes and sliders are arranged in different groups. Each group has a layout which determines how the objects inside the group will be displayed and label text which determines what text will be displayed and how it will be displayed. Consult the XML syntax for the attributes each element can have. &lt;br /&gt;
&lt;br /&gt;
More information on CoppeliaSim can  be found in the [https://www.coppeliarobotics.com/helpFiles/index.html CoppeliaSim User Manual]. There is also a [https://forum.coppeliarobotics.com/ CoppeliaSim forum]. You can take a look at the scripts of the included example scenes and  demos  to see how the  functions and  UIs were  defined and to get a better idea of how the  scripts run the  simulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Task&#039;&#039;&#039;&lt;br /&gt;
Modify the  Non-threaded child script (UI_Script) to change an aspect of the  scene. For example, you can choose  to cchange  the Custom UI layout, change the titles and words of the Custom UI, or change  font sizes in the Custom UI. Some example changes include:&lt;br /&gt;
&lt;br /&gt;
*Changing the  layout: consult theXML syntax and change &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to another type (hbox,form, grid,  none). Using line 257, changing &amp;lt;group layout-&amp;quot;vbox&amp;quot;&amp;gt; to &amp;lt;group layout=&amp;quot;hbox&amp;quot;&amp;gt; changes the  orientation of the items in the  group containing &amp;quot;Configuration Entry&amp;quot;, &amp;quot;Current configuration&amp;quot;, and &amp;quot;Messages&amp;quot; on the  &amp;quot;Enter Config and SE(3) Value&amp;quot; tab of the Custom UI from vertically arranged to horizontal.&lt;br /&gt;
&lt;br /&gt;
*Changing the  words: Find the text you want to change in the XML code. The text will be surrounded by quotation marks and have &amp;lt;big&amp;gt; and &amp;lt;/big&amp;gt; on its sides. For example, line 258 &amp;quot;label text=&amp;quot;&amp;lt;big&amp;gt; Configuration Entry:&amp;lt;/big&amp;gt;&amp;quot; controls the  text &amp;quot;Configuration Entry&amp;quot; on the &amp;quot;Enter Config and SE(3) Value&amp;quot; table of the Custom UI. Change the words &amp;quot;Configuration Entry&amp;quot; to change the text displayed in that specific section.&lt;br /&gt;
&lt;br /&gt;
*Changing the font: Using line 258 &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;big&amp;gt;Configuration  Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**The font can be changed to small  using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;small&amp;gt;Configuration Entry:&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** The font can be changed to a specific size using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;font size=20&amp;gt;Configuration Entry:&amp;lt;/font&amp;gt;&amp;lt;/nowiki&amp;gt;, where 20 is the desired font size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a screenshot of the original scene and then a screenshot that shows what was changed. Additionally, you should include a screenshot of the code you modified. For example, if you change the font size of the text in the Custom UI, you would include a screenshot of the Custom UI before any changes were made, a screenshot of the Custom UI with the font size change, and a screenshot of the XML code where you made the modification.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a single screenshot showing, simultaneously,the &amp;quot;Enter Config and SE(3) Value&amp;quot; window with the  matrix &#039;&#039;T(0)&#039;&#039; and the robot arm with the three axes of {&#039;&#039;s&#039;&#039;} and the  three axes of {&#039;&#039;b&#039;&#039;} clearly visible in the main camera view, visually confirming &#039;&#039;T(0)&#039;&#039;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25880</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25880"/>
		<updated>2020-09-30T14:11:07Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment will be graded according to whether the robot  in the screenshot is clearly and correctly at the desired configuration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step-By-Step Assignment Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
&lt;br /&gt;
[[File:CoppeliaSim_scripts.PNG]]&lt;br /&gt;
&lt;br /&gt;
The Main script and  any child scripts will be displayed. The main script contains the  simulation&#039;s loop code. there is a default main script that contains  the basic code the simulation needs to run and usually doesn&#039;t need to be edited. Each object in the scene has an  associated child script. The child script is typically used to control the model and contains functions written in the Lua programming language. Child scripts can be non-threaded or threaded. Non-threaded child scripts contain system callback functions that happen every step in the simulation. Threaded child scripts  contain system callback functions that are called once at the beginning of the  simulation. Non-threaded child scripts are preferred ovver threaded since threaded child scripts are more resource-intensive, can waste some proccessing time, and can be less responsive to the simulation stop command. For more details on non-threaded and threaded child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/childScripts.htm Child Scripts].&lt;br /&gt;
&lt;br /&gt;
For more information about the main script and child scripts, see [https://www.coppeliarobotics.com/helpFiles/en/mainAndChildScripts.htm Main  and Child Scripts]. The simulation must be stopped before you can make any edits to or open a script.&lt;br /&gt;
&lt;br /&gt;
For Scene 1, we will be looking at the &amp;quot;Non-threaded child  script (UI_Script).&amp;quot; Double-click this script and another window containing the code will pop up. You might noticce some of the functions look similar to functions written in the Modern Robotics Library. For example, &#039;&#039;so3andp2se3(R,p)&#039;&#039; in this script resembles &#039;&#039;RpToTrans(R,p)&#039;&#039; in the Modern Robotics Library. The code for the Custom UI that appears when the simulation starts is written in XML and starts  on line 251. This XML code controls the appearance of the Custom UI, including the layout and content of text boxes, sliders, tab  titles, and font size. The XML syntax can be found at [https://www.coppeliarobotics.com/helpFiles/en/customUIPluginXMLSyntax.htm Custom UI Plugin XML Syntax]. For this specific scene, the different text boxes and sliders are arranged in different groups. Each group has a layout which determines how the objects inside the group will be displayed and label text which determines what text will be displayed and how it will be displayed. Consult the XML syntax for the attributes each element can have. &lt;br /&gt;
&lt;br /&gt;
More information on CoppeliaSim can  be found in the [https://www.coppeliarobotics.com/helpFiles/index.html CoppeliaSim User Manual]. There is also a [https://forum.coppeliarobotics.com/ CoppeliaSim forum]. You can take a look at the scripts of the included example scenes and  demos  to see how the  functions and  UIs were  defined and to get a better idea of how the  scripts run the  simulation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your Task&#039;&#039;&#039;&lt;br /&gt;
Modify the  Non-threaded child script (UI_Script) to change an aspect of the  scene. For example, you can choose  to cchange  the Custom UI layout, change the titles and words of the Custom UI, or change  font sizes in the Custom UI. Some example changes include:&lt;br /&gt;
&lt;br /&gt;
*Changing the  layout: consult theXML syntax and change &amp;lt;group layout=&amp;quot;vbox&amp;quot;&amp;gt; to another type (hbox,form, grid,  none). Using line 257, changing &amp;lt;group layout-&amp;quot;vbox&amp;quot;&amp;gt; to &amp;lt;group layout=&amp;quot;hbox&amp;quot;&amp;gt; changes the  orientation of the items in the  group containing &amp;quot;Configuration Entry&amp;quot;, &amp;quot;Current configuration&amp;quot;, and &amp;quot;Messages&amp;quot; on the  &amp;quot;Enter Config and SE(3) Value&amp;quot; tab of the Custom UI from vertically arranged to horizontal.&lt;br /&gt;
&lt;br /&gt;
*Changing the  words: Find the text you want to change in the XML code. The text will be surrounded by quotation marks and have &amp;lt;big&amp;gt; and &amp;lt;/big&amp;gt; on its sides. For example, line 258 &amp;quot;label text=&amp;quot;&amp;lt;big&amp;gt; Configuration Entry:&amp;lt;/big&amp;gt;&amp;quot; controls the  text &amp;quot;Configuration Entry&amp;quot; on the &amp;quot;Enter Config and SE(3) Value&amp;quot; table of the Custom UI. Change the words &amp;quot;Configuration Entry&amp;quot; to change the text displayed in that specific section.&lt;br /&gt;
&lt;br /&gt;
*Changing the font: Using line 258 &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;big&amp;gt;Configuration  Entry:&amp;lt;/big&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
**The font can be changed to small  using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;small&amp;gt;Configuration Entry:&amp;lt;/small&amp;gt;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
** The font can be changed to a specific size using: &amp;lt;nowiki&amp;gt;label text=&amp;quot;&amp;lt;font size=20&amp;gt;Configuration Entry:&amp;lt;/font&amp;gt;&amp;lt;/nowiki&amp;gt;, where 20 is the desired font size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a screenshot of the original scene and then a screenshot that shows what was changed. Additionally, you should include a screenshot of the code you modified. For example, if you change the font size of the text in the Custom UI, you would include a screenshot of the Custom UI before any changes were made, a screenshot of the Custom UI with the font size change, and a screenshot of the XML code where you made the modification.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now go to the other tab, &amp;quot;Enter Config and SE(3) Value,&amp;quot; and set the joint angles to&lt;br /&gt;
&lt;br /&gt;
(0.7854, -0.7854, 0.7854, -1.5708, -1.5708, 0.7854)&lt;br /&gt;
&lt;br /&gt;
by typing these numbers into the text box. &#039;&#039;&#039;Make sure your joint angles are correct, or you will not get credit for the assignment!&#039;&#039;&#039; When you press  enter, you should see the  end-effector frame configuration {&#039;&#039;b&#039;&#039;} relative to the frame at the base of the robot {&#039;&#039;s&#039;&#039;} (i.e. &#039;&#039;Tsb&#039;&#039;) reported as &#039;&#039;T(0) ∈ SE(3)&#039;&#039;. Using the camera positioning controls at the top left of the CoppeliaSim window, position the camera so you can simultaneously see the 3 axes of the {&#039;&#039;s&#039;&#039;} frame and the 3 axes of the {&#039;&#039;b&#039;&#039;} frame in the main camera view. Approximately confirm by visual inspection that the &#039;&#039;T(0)&#039;&#039; reported by the &amp;quot;Enter Config and SE(3) Value&amp;quot; window matches what you see in the camera image. For each frame, the x-axis is &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;red&amp;lt;/span&amp;gt;, the y-axis is &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt;, and the z-axis is &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;blue&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a single screenshot showing, simultaneously,the &amp;quot;Enter Config and SE(3) Value&amp;quot; window with the  matrix &#039;&#039;T(0)&#039;&#039; and the robot arm with the three axes of {&#039;&#039;s&#039;&#039;} and the  three axes of {&#039;&#039;b&#039;&#039;} clearly visible in the main camera view, visually confirming &#039;&#039;T(0)&#039;&#039;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=File:CoppeliaSim_scripts.PNG&amp;diff=25879</id>
		<title>File:CoppeliaSim scripts.PNG</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=File:CoppeliaSim_scripts.PNG&amp;diff=25879"/>
		<updated>2020-09-30T13:36:24Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
	<entry>
		<id>https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25878</id>
		<title>ME 449 Assignment 1</title>
		<link rel="alternate" type="text/html" href="https://hades.mech.northwestern.edu//index.php?title=ME_449_Assignment_1&amp;diff=25878"/>
		<updated>2020-09-30T13:34:45Z</updated>

		<summary type="html">&lt;p&gt;TitoFernandez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Introduction&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the next chapter, we will address the forward kinematics  problem for open-chain robots: finding the configuration of the robot&#039;s end-effector in &#039;&#039;T(0) ∈ SE(3)&#039;&#039; given the vector of joint positions.&lt;br /&gt;
&lt;br /&gt;
The forward kinematics problem is easy to solve using a formula called the &amp;quot;product of exponentials,&amp;quot; which uses the matrix exponential of this chapter.&lt;br /&gt;
&lt;br /&gt;
In this rather simple project, you will let the robot simulation software CoppeliaSim solve the forward kinematics for you. The goal of this project is to gain familiarity with CoppeliaSim and to confirm its calculation of the forward kinematics by visual inspection. You will submit a screenshot of the UR5 robot at a specific configuration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Review Criteria&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The assignment will be graded according to whether the robot  in the screenshot is clearly and correctly at the desired configuration.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step-By-Step Assignment Instructions&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Open the CoppeliaSim scene for interactive manipulation of the Universal Robots UR5 robot, a popular 6-joint robot. (See the instructions about CoppeliaSim in the first module of week 1, or go directly to [http://hades.mech.northwestern.edu/index.php/CoppeliaSim_Introduction CoppeliaSim Introduction] and download Scene 1.)&lt;br /&gt;
&lt;br /&gt;
When  you run this scene you will see a window with 2 tabs:&amp;quot;Enter Config and SE(3) Value&amp;quot; and &amp;quot;Joint Angle Sliders&amp;quot;. Go to the &amp;quot;Joint Angle Sliders&amp;quot; tab, move the sliders corresponding to the 6 joints and watch how the robot moves.&lt;br /&gt;
&lt;br /&gt;
Click the  &amp;quot;Scripts&amp;quot; button  on  the  toolbar  on the  left side of the  screen (shown below) to see the scripts being run  by the scene.&lt;br /&gt;
[[File:Example.jpg]]&lt;br /&gt;
Now go to the other tab, &amp;quot;Enter Config and SE(3) Value,&amp;quot; and set the joint angles to&lt;br /&gt;
&lt;br /&gt;
(0.7854, -0.7854, 0.7854, -1.5708, -1.5708, 0.7854)&lt;br /&gt;
&lt;br /&gt;
by typing these numbers into the text box. &#039;&#039;&#039;Make sure your joint angles are correct, or you will not get credit for the assignment!&#039;&#039;&#039; When you press  enter, you should see the  end-effector frame configuration {&#039;&#039;b&#039;&#039;} relative to the frame at the base of the robot {&#039;&#039;s&#039;&#039;} (i.e. &#039;&#039;Tsb&#039;&#039;) reported as &#039;&#039;T(0) ∈ SE(3)&#039;&#039;. Using the camera positioning controls at the top left of the CoppeliaSim window, position the camera so you can simultaneously see the 3 axes of the {&#039;&#039;s&#039;&#039;} frame and the 3 axes of the {&#039;&#039;b&#039;&#039;} frame in the main camera view. Approximately confirm by visual inspection that the &#039;&#039;T(0)&#039;&#039; reported by the &amp;quot;Enter Config and SE(3) Value&amp;quot; window matches what you see in the camera image. For each frame, the x-axis is &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;red&amp;lt;/span&amp;gt;, the y-axis is &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;green&amp;lt;/span&amp;gt;, and the z-axis is &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;blue&amp;lt;/span&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Your submission should be a single screenshot showing, simultaneously,the &amp;quot;Enter Config and SE(3) Value&amp;quot; window with the  matrix &#039;&#039;T(0)&#039;&#039; and the robot arm with the three axes of {&#039;&#039;s&#039;&#039;} and the  three axes of {&#039;&#039;b&#039;&#039;} clearly visible in the main camera view, visually confirming &#039;&#039;T(0)&#039;&#039;.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should use the screenshot command appropriate for your operating system:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Mac&#039;&#039;: Cmd-Shift-3 and look for the screenshot on your desktop.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Windows&#039;&#039;: Use the PrtScn button (or Windows Key + PrtScn or Alt _ PrtScn, etc.). You can also search for the Snipping Tool.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Linux&#039;&#039;: you can use Screenshot or PrtScrn.&lt;/div&gt;</summary>
		<author><name>TitoFernandez</name></author>
	</entry>
</feed>