-
Notifications
You must be signed in to change notification settings - Fork 0
/
VirtualPrototyping.html
326 lines (320 loc) · 18.4 KB
/
VirtualPrototyping.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<title></title>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link rel="stylesheet" href="reveal.js/css/reveal.min.css"/>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="reveal.js/css/theme/simple.css" id="theme">
<link rel="stylesheet" media="print" href="reveal.js/css/print/pdf.css" />
<!--[if lt IE 9]>
<script src="reveal.js/lib/js/html5shiv.js"></script>
<![endif]-->
<style type="text/css">
.reveal h1 { font-size: 2em; }
.reveal section img { border: none;
box-shadow: none;
-webkit-box-shadow: none;
-moz-box-shadow: none;}
li { font-size: 1em; }
</style>
</head>
<body>
<div class="reveal">
<div class="slides">
<section id="virtual-prototyping" class="slide level2">
<h1>Virtual Prototyping</h1>
<p>Behzad Samadi, PhD<br /><a href="http://www.mechatronics3D.com">Mechatronics3D</a><br />DIPECC 2014, Dubai<br />April 9, 2014</p>
</section>
<section><section id="it-all-started-with-lego" class="titleslide slide level1"><h1>It All Started with LEGO!</h1></section><section id="lego-mindstorms-nxt" class="slide level2">
<h1>LEGO MINDSTORMS NXT</h1>
<p><a href="http://mindstorms.lego.com"><img src="./media/LEGO/LEGOMINDSTORMSNXT.jpg" alt="LEGO MINDSTORMS" /></a><br /><a href="http://mindstorms.lego.com">LEGO<sup>®</sup></a></p>
</section><section id="lego-mindstorms-ev3" class="slide level2">
<h1>LEGO MINDSTORMS EV3</h1>
<p><a href="http://mindstorms.lego.com"><img src="./media/LEGO/EV3brickwMotorsSensors.jpg" alt="LEGO®" /></a><br /><a href="http://mindstorms.lego.com">LEGO<sup>®</sup></a></p>
</section><section id="visual-programming" class="slide level2">
<h1>Visual Programming</h1>
<p>NXT-G<br /><a href="http://geekdad.com/2013/08/hands-on-ev3-mindstorms/"><img src="./media/LEGO/myblocks.png" alt="Geek Dad" /></a><br /><a href="http://mindstorms.lego.com">LEGO<sup>®</sup></a></p>
</section><section id="open-software" class="slide level2">
<h1>Open Software</h1>
<p><a href="./media/LEGO/LEGOsoftware.svg"><img src="./media/LEGO/LEGOsoftware.svg" alt="image" /></a></p>
</section><section id="open-hardware" class="slide level2">
<h1>Open Hardware</h1>
<p><a href="./media/LEGO/LEGOhardware.svg"><img src="./media/LEGO/LEGOhardware.svg" alt="image" /></a></p>
</section><section id="bicycle" class="slide level2">
<h1>Bicycle</h1>
<p><a href="./media/LEGO/LEGObicycle.mp4"><img src="./media/LEGO/LEGObicycle.png" /></a><br />Razyeh Mousavi</p>
</section><section id="ballbot" class="slide level2">
<h1>Ballbot</h1>
<p><a href="https://www.youtube.com/watch?v=f8jxGsg3p0Y"><img src="./media/LEGO/LEGOballbot.jpg" /></a></p>
</section><section id="nxtway" class="slide level2">
<h1>NXTway</h1>
<p><a href="./media/LEGO/LEGOnxtway.mp4"><img src="./media/LEGO/LEGOnxtway.png" /></a><br /><a href="http://engcast.com/main/">Hamid Bazargani</a><br /><a href="http://lejos-osek.sourceforge.net/videos.htm">NXTway-GS</a></p>
</section><section id="ball-on-plate" class="slide level2">
<h1>Ball on Plate</h1>
<p><a href="https://www.youtube.com/watch?v=_YILNkytBjE&list=PLDB2B51106611C1E5"><img src="./media/LEGO/LEGOballonplate.jpg" /></a></p>
</section><section id="electronics-stability-control" class="slide level2">
<h1>Electronics Stability Control</h1>
<p><a href="./media/LEGO/LEGOesc.mp4"><img src="./media/LEGO/LEGOcar.png" /></a><br /><a href="http://brown.edu/research/labs/engineering-man-machine-systems/systems/people/students/razimi">Reza Azimi</a><br /><a href="http://lejos-osek.sourceforge.net/videos.htm#NXT_GT_Hi">NXTway-GT</a></p>
</section><section id="lego-mindstorms" class="slide level2">
<h1>LEGO MINDSTORMS</h1>
<p>It was very exciting at first but I had more than 40 students and only 3 sets of LEGO Mindstorms!</p>
</section><section id="amazing-journey" class="slide level2">
<h1>Amazing Journey</h1>
<p>We realized that before making the robot, there were a lot of things that we needed to learn.</p>
</section><section id="operating-system" class="slide level2">
<h1>Operating System</h1>
<p><a href="http://lejos-osek.sourceforge.net/"><img src="./media/LEGO/LEGOosek.png" /></a></p>
</section><section id="virtual-robot" class="slide level2">
<h1>Virtual Robot</h1>
<p><a href="http://lejos-osek.sourceforge.net/"><img src="./media/LEGO/NXTway-GS.jpg" /></a></p>
</section><section id="d-animation" class="slide level2">
<h1>3D Animation</h1>
<p><a href="http://lejos-osek.sourceforge.net/"><img src="./media/LEGO/NXTway-GS-Viewer.jpg" /></a></p>
</section><section id="controller-design" class="slide level2">
<h1>Controller Design</h1>
<p><a href="http://lejos-osek.sourceforge.net/"><img src="./media/LEGO/NXTway-GS-Controller.jpg" /></a></p>
</section><section id="how-about-a-virtual-lego-set" class="slide level2">
<h1>How About a Virtual LEGO Set?</h1>
<ul>
<li>This virtual robot is interesting but what if I want to build another robot?</li>
<li>How hard is it to build a virtual robot?</li>
</ul>
</section><section id="causal-modeling" class="slide level2">
<h1>Causal Modeling</h1>
<ul>
<li>Writing the dynamic equations</li>
<li>Converting the equations to ordinary differential equations</li>
<li>Creating a signal flow model e.g. a Simulink model</li>
<li>Building a virtual robot seems to be different from building a real robot</li>
</ul>
</section><section id="virtual-lego-set" class="slide level2">
<h1>Virtual LEGO Set</h1>
<p>What if we had a set of virtual LEGO parts and we could build a robot with them?</p>
</section><section id="virtual-lego-set-1" class="slide level2">
<h1>Virtual LEGO Set</h1>
<p>We made one!<br /><img src="./media/LEGO/LEGOvirtual.png" /></p>
<ul>
<li><a href="http://www.ode.org/">ODE</a> (Open Dynamics Engine)</li>
<li><a href="http://irrlicht.sourceforge.net/">IrrLicht</a> (Visualization)</li>
</ul>
<p>Alborz Gharraee</p>
</section></section>
<section><section id="acausal-modeling" class="titleslide slide level1"><h1>Acausal Modeling</h1></section><section id="modelica-and-maplesim" class="slide level2">
<h1>Modelica and MapleSim</h1>
<p><a href="http://www.maplesoft.com/products/maplesim/"><img src="./media/Modelica/DoublePendulum.png" /></a></p>
<ul>
<li>The connections between components are physical connections like position, voltage, flow,...</li>
<li>Acausal modeling is very similar to building a real system</li>
</ul>
</section><section id="electrical-systems" class="slide level2">
<h1>Electrical Systems</h1>
<p><a href="http://www.maplesoft.com/products/maplesim/"><img src="./media/Modelica/Electrical.png" /></a></p>
</section><section id="mechanical-systems" class="slide level2">
<h1>Mechanical Systems</h1>
<p><a href="http://www.maplesoft.com/products/maplesim/"><img src="./media/Modelica/Mechanical.png" /></a></p>
</section><section id="hydraulic-systems" class="slide level2">
<h1>Hydraulic Systems</h1>
<p><a href="http://www.maplesoft.com/products/maplesim/"><img src="./media/Modelica/Hydraulic.png" /></a></p>
</section><section id="thermal-systems" class="slide level2">
<h1>Thermal Systems</h1>
<p><a href="http://www.maplesoft.com/products/maplesim/"><img src="./media/Modelica/Thermal.png" /></a></p>
</section><section id="chemical-systems" class="slide level2">
<h1>Chemical Systems</h1>
<p><a href="http://www.control.lth.se/Research/ResearchComplexSystems/numerical-and-symbolic-algorithms-for-dynamic-optimization.html"><img src="./media/Modelica/Chemical.png" /></a></p>
</section><section id="acausal-modeling-with-maplesim" class="slide level2">
<h1>Acausal Modeling with MapleSim</h1>
<p><a href="http://www.maplesoft.com/products/toolboxes/FMI/index.aspx"><img src="./media/Modelica/MapleSimWorkflow.png" /></a></p>
</section><section id="functional-mockup-interface" class="slide level2">
<h1>Functional Mockup Interface</h1>
<p><a href="https://itea3.org/assets/itea/image/638.jpg"><img src="./media/Modelica/FMI.jpg" /></a></p>
<ul>
<li>Model Exchange, Co-Simulation, Product Lifecycle Management</li>
<li>There are over 35 <a href="https://www.fmi-standard.org/tools">Tools</a> supporting FMI</li>
</ul>
<p>Courtesy of <a href="https://itea3.org/">ITAE</a></p>
</section></section>
<section><section id="model-based-development" class="titleslide slide level1"><h1>Model Based Development</h1></section><section id="the-v-diagram" class="slide level2">
<h1>The V Diagram</h1>
<p><a href="http://www.engineering.com/DesignSoftware/DesignSoftwareArticles/ArticleID/7352/Model-Based-System-Engineering--Beyond-Spreadsheets.aspx"><img src="./media/MBD/Systems_Engineering_V_diagram.jpg" /></a></p>
<p>from <a href="http://www.engineering.com/DesignSoftware/DesignSoftwareArticles/ArticleID/7352/Model-Based-System-Engineering--Beyond-Spreadsheets.aspx">engineering.com</a></p>
</section><section id="trial-and-error" class="slide level2">
<h1>Trial and Error</h1>
<p><img src="./media/MBD/ConventionalApproach.png" /><br />Expensive, time consuming, not reliable</p>
</section><section id="model-based-approach" class="slide level2">
<h1>Model Based Approach</h1>
<figure>
<img src="./media/MBD/ModernApproach.png" />
</figure>
</section><section id="model-based-development-1" class="slide level2">
<h1>Model Based Development</h1>
<p><a href="https://itea3.org/assets/itea/image/639.jpg"><img src="./media/MBD/FMIvalidation.jpg" /></a><br />Saves resources, time, money</p>
<p>Courtesy of <a href="https://itea3.org/">ITAE</a></p>
</section><section id="old-approach" class="slide level2">
<h1>Old Approach</h1>
<ul>
<li>Easy: build the model and design the controller in a high level environment like MATLAB</li>
<li>Hard: rewrite your code for the hardware controller on the physical prototype</li>
<li>Problem: rewriting the code is time consuming and error prone</li>
</ul>
</section><section id="modern-approach" class="slide level2">
<h1>Modern Approach</h1>
<figure>
<img src="./media/MBD/MiLSiLHiL.png" />
</figure>
</section><section id="software-in-the-loop" class="slide level2">
<h1>Software in the Loop</h1>
<figure>
<img src="./media/MBD/SiL.png" />
</figure>
<ul>
<li>The controller and the virtual prototype are two different applications.</li>
<li>The applications "talk" to each other using a "middleware".</li>
<li>The controller doesn't see the difference between the virtual and physical prototypes.</li>
<li>Software engineers do not have to wait for the hardware!</li>
</ul>
</section><section id="middleware" class="slide level2">
<h1>Middleware</h1>
<ul>
<li>Using the same language to exchange messages</li>
<li>Components can be replaced without affecting the whole system</li>
</ul>
</section><section id="section" class="slide level2">
<h1></h1>
<p><a href="http://www.icub.org/"><img src="./media/MBD/Broom.jpg" /></a></p>
</section><section id="section-1" class="slide level2">
<h1></h1>
<p><a href="http://www.icub.org/"><img src="./media/MBD/Ship.jpg" /></a></p>
</section><section id="section-2" class="slide level2">
<h1></h1>
<p><a href="http://www.icub.org/"><img src="./media/MBD/Modular.jpg" /></a></p>
</section></section>
<section><section id="robot-operating-system" class="titleslide slide level1"><h1>Robot Operating System</h1></section><section id="what-is-ros" class="slide level2">
<h1>What is ROS?</h1>
<ul>
<li>a set of software libraries and tools</li>
<li>from drivers to state-of-the-art algorithms</li>
<li>powerful developer tools</li>
<li>open source.</li>
</ul>
</section><section id="section-3" class="slide level2">
<h1></h1>
<p><a href="./media/ROS/ROS-FiveYears.mp4"><img src="./media/ROS/ROS-FiveYears.png" /></a></p>
</section><section id="pr2-by-willow-garage" class="slide level2">
<h1>PR2 by Willow Garage</h1>
<p><a href="http://www.willowgarage.com/"><img src="./media/ROS/PR2.jpg" /></a></p>
<p><a href="http://spectrum.ieee.org/automaton/robotics/robotics-software/willow-garage-to-shut-down">Willow Garage is changing</a></p>
</section><section id="turtlebot" class="slide level2">
<h1>TurtleBot</h1>
<p><a href="http://www.clearpathrobotics.com/turtlebot_2/"><img src="./media/ROS/TurtleBot.jpg" /></a></p>
</section><section id="husky" class="slide level2">
<h1>Husky</h1>
<p><a href="http://www.clearpathrobotics.com/husky/"><img src="./media/ROS/Husky.jpg" /></a></p>
<p><a href="http://www.clearpathrobotics.com/">Clearpath Robotics</a>, Waterloo, Ontario</p>
</section><section id="baxter" class="slide level2">
<h1>Baxter</h1>
<p><a href="http://www.rethinkrobotics.com/"><img src="./media/ROS/Baxter.jpg" /></a></p>
<p><a href="http://wiki.ros.org/Robots">list of robots</a></p>
</section><section id="ros-industrial-and-moveit" class="slide level2">
<h1>ROS Industrial and MoveIt</h1>
<p><a href="http://moveit.ros.org"><img src="./media/ROS/moveit-title-small.png" /></a></p>
<p><a href="./media/ROS/MoveIt!Montage%202013.mp4"><img src="./media/ROS/MoveIt!Montage%202013.png" /></a></p>
<p><a href="http://moveit.ros.org/robots/">list of robots</a></p>
<p><a href="https://www.youtube.com/watch?v=dblCGZzeUqs">src</a></p>
</section><section id="nxt-ros" class="slide level2">
<h1>NXT ROS</h1>
<p><a href="https://code.google.com/p/brown-ros-pkg/wiki/ROSProcessingjsNXT"><img src="./media/ROS/ProcessingNXT.gif" /></a></p>
<p><a href="https://code.google.com/p/brown-ros-pkg/wiki/ROSProcessingjsNXT">brown-ros-pkg</a></p>
</section><section id="ros-101" class="slide level2">
<h1>ROS 101</h1>
<p><a href="http://www.clearpathrobotics.com/blog/how-to-guide-ros-101/"><img src="./media/ROS/ros101-1.png" /></a></p>
</section><section id="ros-101-1" class="slide level2">
<h1>ROS 101</h1>
<p><a href="http://www.clearpathrobotics.com/blog/how-to-guide-ros-101/"><img src="./media/ROS/ros101-2.png" /></a></p>
</section><section id="ros-101-2" class="slide level2">
<h1>ROS 101</h1>
<p><a href="http://www.clearpathrobotics.com/blog/how-to-guide-ros-101/"><img src="./media/ROS/ros101-3.png" /></a></p>
<p><a href="http://www.clearpathrobotics.com/blog/how-to-guide-ros-101/">more</a></p>
</section><section id="camera" class="slide level2">
<h1>Camera</h1>
<p><a href="./media/ROS/OpenCV_Gazebo_ROS.mp4"><img src="./media/ROS/OpenCV_Gazebo_ROS.png" /></a></p>
<p><a href="https://www.youtube.com/watch?v=_8AhNWKzv2k">Mike Charikov</a></p>
</section><section id="opencv" class="slide level2">
<h1>OpenCV</h1>
<p><a href="http://opencv.org/"><img src="./media/ROS/opencv_overview.jpg" /></a></p>
</section><section id="opencv-1" class="slide level2">
<h1>OpenCV</h1>
<p><a href="https://code.google.com/p/opencv-lane-vehicle-track/"><img src="./media/ROS/trackwe.png" /></a></p>
<p>motion, line, face, feature detection</p>
</section><section id="depth-estimation-with-opencv" class="slide level2">
<h1>Depth Estimation with OpenCV</h1>
<p><a href="./media/ROS/DepthEstimation.mp4"><img src="./media/ROS/DepthEstimation.png" /></a></p>
<p><a href="https://www.youtube.com/watch?v=LbtTsKiSQkE">src</a></p>
</section><section id="gesture-detection-with-opencv" class="slide level2">
<h1>Gesture Detection with OpenCV</h1>
<p><a href="./media/ROS/GestureOpenCV.mp4"><img src="./media/ROS/GestureOpenCV.png" /></a></p>
<p><a href="https://www.youtube.com/watch?v=B4dwu3si9x0">src</a></p>
</section><section id="cloudsim" class="slide level2">
<h1>CloudSim</h1>
<p><a href="http://cloudsim.io"><img src="./media/ROS/CloudSim.png" /></a></p>
</section></section>
<section><section id="resources" class="titleslide slide level1"><h1>Resources</h1></section><section id="bookmarks" class="slide level2">
<h1>Bookmarks</h1>
<ul>
<li><a href="http://www.maplesoft.com/products/maplesim/">MapleSim</a></li>
<li><a href="http://www.clearpathrobotics.com/">Clearpath Robotics</a></li>
<li><a href="http://osrfoundation.org/">Open Source Robotics Foundation</a></li>
<li><a href="http://www.ros.org/">ROS</a></li>
<li><a href="http://roscon.ros.org/">ROScon</a></li>
<li><a href="http://www.clearpathrobotics.com/wp-content/uploads/2014/01/ROS-Cheat-Sheet-v1.01.pdf">ROS Cheat Sheet</a></li>
<li><a href="http://gazebosim.org/">Gazebo</a></li>
<li><a href="http://www.orocos.org/">Orocos</a></li>
<li><a href="http://www.openrobots.org/wiki/morse/">MORSE</a></li>
<li><a href="http://jderobot.org/">JdeRobot</a></li>
<li><a href="http://www.theroboticschallenge.org/">The Robotics Challenge</a></li>
<li><a href="http://www.rethinkrobotics.com/">Rethink Robotics</a></li>
<li><a href="http://www.drrobot.com/">Dr. Robot</a></li>
<li><a href="http://www.best-of-robotics.org/">Best practices in robotics</a></li>
</ul>
</section><section id="bookmarks-1" class="slide level2">
<h1>Bookmarks</h1>
<ul>
<li><a href="http://opencv.org/">OpenCV</a></li>
<li><a href="http://www.robotappstore.com/">Robot App Store</a></li>
<li><a href="http://robotwebtools.org/">Robot Web Tools</a></li>
<li><a href="http://robohub.org/">Robohub</a></li>
<li><a href="http://www.svrobo.org/">Silicon Valley Robotics</a></li>
<li><a href="https://www.suitabletech.com/">Suitable Technologies</a></li>
<li><a href="http://www.popsci.com/category/tags/robots">Popular Science</a></li>
<li><a href="http://www.robot-standards.eu/">Robot Standards</a></li>
</ul>
</section></section>
</div>
</div>
<script src="reveal.js/lib/js/head.min.js"></script>
<script src="reveal.js/js/reveal.min.js"></script>
<script>
// Full list of configuration options available here:
// https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: true,
theme: 'simple', // available themes are in /css/theme
transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/zoom/linear/fade/none
// Optional libraries used to extend on reveal.js
dependencies: [
{ src: 'reveal.js/lib/js/classList.js', condition: function() { return !document.body.classList; } },
{ src: 'reveal.js/plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
{ src: 'reveal.js/plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } },
// { src: 'reveal.js/plugin/search/search.js', async: true, condition: function() { return !!document.body.classList; }, }
// { src: 'reveal.js/plugin/remotes/remotes.js', async: true, condition: function() { return !!document.body.classList; } }
]});
</script>
</body>
</html>