Virtual Prototyping
  Behzad Samadi
  April 9, 2014
Virtual Prototyping
Behzad Samadi, PhD
Mechatronics3D
DIPECC 2014, Dubai
April 9, 2014
It All Started with LEGO!
LEGO MINDSTORMS NXT
![LEGO MINDSTORMS]()
LEGO®
LEGO MINDSTORMS EV3
![LEGO®]()
LEGO®
Visual Programming
NXT-G
![Geek Dad]()
LEGO®
Open Software
![image]()
Open Hardware
![image]()
Bicycle
![]()
Razyeh Mousavi
Ballbot
![]()
Ball on Plate
![]()
LEGO MINDSTORMS
It was very exciting at first but I had more than 40 students and only 3 sets of LEGO Mindstorms!
Amazing Journey
We realized that before making the robot, there were a lot of things that we needed to learn.
Operating System
![]()
Virtual Robot
![]()
3D Animation
![]()
Controller Design
![]()
How About a Virtual LEGO Set?
- This virtual robot is interesting but what if I want to build another robot?
- How hard is it to build a virtual robot?
Causal Modeling
- Writing the dynamic equations
- Converting the equations to ordinary differential equations
- Creating a signal flow model e.g. a Simulink model
- Building a virtual robot seems to be different from building a real robot
Virtual LEGO Set
What if we had a set of virtual LEGO parts and we could build a robot with them?
Virtual LEGO Set
We made one!
![]()
Alborz Gharraee
Modelica and MapleSim
![]()
- The connections between components are physical connections like position, voltage, flow,…
- Acausal modeling is very similar to building a real system
Electrical Systems
![]()
Mechanical Systems
![]()
Hydraulic Systems
![]()
Thermal Systems
![]()
Chemical Systems
![]()
Acausal Modeling with MapleSim
![]()
Functional Mockup Interface
![]()
- Model Exchange, Co-Simulation, Product Lifecycle Management
- There are over 35 Tools supporting FMI
Courtesy of ITAE
Trial and Error
![]()
Expensive, time consuming, not reliable
Model Based Approach
![]()
Model Based Development
![]()
Saves resources, time, money
Courtesy of ITAE
Old Approach
- Easy: build the model and design the controller in a high level environment like MATLAB
- Hard: rewrite your code for the hardware controller on the physical prototype
- Problem: rewriting the code is time consuming and error prone
Modern Approach
![]()
Software in the Loop
![]()
- The controller and the virtual prototype are two different applications.
- The applications “talk” to each other using a “middleware”.
- The controller doesn’t see the difference between the virtual and physical prototypes.
- Software engineers do not have to wait for the hardware!
Middleware
- Using the same language to exchange messages
- Components can be replaced without affecting the whole system
What is ROS?
- a set of software libraries and tools
- from drivers to state-of-the-art algorithms
- powerful developer tools
- open source.
TurtleBot
![]()
ROS 101
![]()
ROS 101
![]()
OpenCV
![]()
OpenCV
![]()
motion, line, face, feature detection
Depth Estimation with OpenCV
![]()
src
Gesture Detection with OpenCV
![]()
src
CloudSim
![]()