|
|
Meetings
This page contains all notes from meetings with prof. Hans Vangheluwe. Additionally, a list of todo items and mindmaps are included.
TODO List -- OUTDATED
This list contains the following step(s) in my research, possibly annotated with additional questions.
- AGV Digital Twin
- Robot Recognition
- Homography: Automatic detection (add fifth point; red color might not be the best choice?)
- Study up on SysML v2
- Create architecture in SysMLv2
- Long Term (maybe out-of-scope): Create docker containers for DTs
- CBD Simulator
- Library and Docs:
- Add tests
- Online hosting of docs
- Plotting
- Fully add Bokeh backend (Close event is not working)
⇒ It appears this is impossible in Bokeh. The session remains active upon closure. Maybe this is due to the periodic call?
- Simulator
- Allow for hybrid simulation
- Add MPI (?)
- Add parallelization + distribution
- Add Memoisation
- Add Checkpointing
- Add FMI
- Structure
- Allow for priorities
- Cleanup: Split simulation from config (?)
- refactor simulator to use internal (graph) structure from ModelverseState (MvS) --> Version will become
2.*
- Add XML Tracer
- Add VCD Tracer
- See also: whishlist.txt
- Logging: Create custom trace plotter w.r.t. Bill Song's DEVS Visual Modeling and Simulation Environment
2021-05
- CBD Simulator
- Library and Docs:
- Data stream blocks?
⇒ CSV Streaming already supported
- Docs for
lib.network module
- Plotting
- Fully add Bokeh backend
- Close event is not working
- Add Seaborn
- Add GGPlot
⇒ While a good way for plotting data, the mismatch between GGPlot and other frameworks is too large.
- Add Label kind to also plot variable text?
- Simulator
- Adaptive/Variable step size
Keep Fixed as an option.
Euler 2-step
- Runge-Kutta-Fehlberg (RKF45) [link to a paper]
⇒ Issues with RKF45: It is defined using y' = f(t, y) , but it is unclear what this means.
- Add Multi-Rate
- Allow for external interrupt events during simulation
⇒ Not useful! The ConstantBlock.setValue() function makes this ineffectual;
i.e. add a ConstantBlock to an input and change the value during runtime! See also the "dashboard" example.
- Structure
- Extracted scheduler
- Add more signals (will allow statistics collection outside of the system)
- Add CBD Tracers (or possibilities thereof)
2021-03-29
No large progress updates. Discussed in this meeting:
- line-following robot using wheels instead of caterpillar tracks
- WSC Methodology Track paper (deadline 30 April): CBD framework (teaching, experimenting with alternative semantics, performance, accuracy)
- MM + conformance checking, including hierarchy (Andrei)
- drawio framework, visual libraries (Joeri)
- (screen and model sharing (Joeri))
- hierarchical, flattening
- LaTeX generation (denotational semantics)
- inline integration (for CT-CBD) vs. export CT-CBD + external solver (*)
- operational semantics (Alg, DT, CT), fixed step-size, multi-rate, _|_ adaptive step-size (Randy)
- optimizations: communication interval vs. integration interval
- DEVS framework (for multiple Xreal-time platforms) (Randy) [realtime module]
- application
- used both for simulation and deployment in DT of line-following robot (Randy) OR
- circle test AND/OR
- bouncing ball AND/OR
- train example (DEVS)
- look at this report
(problem with zero-crossing detector outside numerical solver, discuss quantization)
- future work:
- (neutral) textual language (should follow from MM infrastructure)
- FMU (C) code generation (one, or more?) (*)
- link with OpenModelica (a-causal models)
2021-03-22
- AGV Digital Twin
- Write paper for AMC (SCS)
- Iterate over paper (might become a technical report; add full FTG+PM description)
- Make a presentation (in Draw.IO) on the full process (FTG+PM)
- Remake architecture model using AADL/SysML/UML
⇒ Based on the UML 2.0 Component Diagram, an architecture design metamodel has been created.
- Add deployment model to FTG+PM
- Calibration/Verification
- Use physical system as "accurate" and when the offset is too large, alter the parameter; i.e. build a tracking simulator
⇒ Possible to do this with "jumping back to the line"
⇒ The computation of the valid r and d values for the correct trajectory is flawed
⇒ Temporary solution: Use machine learning to identify the correct values:
- Create a Q-learning algorithm to find the best sequence of parameters for the path
- Solve "future measurements" in data collection for tracking simulator
2021-03-07/08
- AGV Digital Twin
- Calibration/Verification
- Check valitity of used formulas
⇒ The formulas used can be applied to the AGV (by transforming formulas from
this paper.
- Find parameters
⇒ Both r (wheel radius) and d (axis length) are parameters,
yet by keeping d constant, only a single parameter needs to be tracked.
- Find corresponding parameters in virtual world.
⇒ They should match theoretically, but don't in practice.
- Make a presentation (in Draw.IO) on the full process (FTG+PM)
⇒ Do some more iterations! The FTG+PM has some issues.
2021-03-01
- AGV Digital Twin
- Write first version of paper for AMC (SCS)
- Add "gear" icon (⚙) to FTG+PM for automated tasks
⇒ When building the MetaModel for the FTG+PM (future), manual tasks can use the "hand" icon (🖑)
- Change Motor icon in AGV model to "gear" as well
- Add Architecture overview
- Fix figure positions
- Add PID tuning plot
- Add resulting simulation plot (path trace)
⇒ Presumably due to fluctuations of battery level, inconsistent encoders and failing to meet required deadlines,
the experiment used is difficult to precisely reproduce.
- Refer to other papers
- Describe Physical World Analyzer
- CBD Simulator
- Library and Docs:
- Changeable constant block
- Advanced example: change model behaviour based on user input during simulation (tkinter dashboard with CBDs?)
⇒ Can be used for AGV control and communication; i.e. "change the robot's speed"
2021-02-24
- AGV Digital Twin
- Solve mistakes in FTG+PM graph
- Communication
- Communicate data from the robot to the simulation
- Communicate motor speeds to verify validity of the Odometry component
- Communicate sensor data to actually build a Digital Twin (actually a Digital Shadow?)
- Implement communication protocol (OPC-UA?)
⇒ Too much overhead for current implementation.
2021-02-16
This list contains the following step(s) in my research, possibly annotated with additional questions.
- AGV Digital Twin
- Make presentation of work
- Create FTG+PM graph of AGV DT
- Solve FOV error: the robot is on the line, but the camera does not see it like that
- Combine data of simulation and view
- Solve inconsistencies (calibration/verification)
- Identify inconsistencies
⇒ It appears the motors obtained not enough power to do what they thought they did...
Solved by dividing phi by 0.5406
⇒ Something else is wrong, but I can't seem to pinpoint what exactly
⇒ Note from a later deep-dive in this topic: I was using the wrong robot dimensions!
- Make the simulation work again (with same parameters as physical AGV)
⇒ Only works for (model_DELTA_T=0.01, simulation_DELTA_T=0.2, v=0.01, Kp=-0.03, Ki=Kd=0, T=35, line=55, background=5) ,
where the integrator and derivator have been implemented as BaseBlocks to prevent massive computation delays on the hardware.
- Offline: do both simulations, interlace results and plot them
- Online: do both simulations and plot results at same time
- Communication
- Identify how to communicate with the EV3
⇒ Thanks to this comment
(local copy), the EV3 now works with the Edimax EW-7811Un V2
- Research communication protocols
- Add coordination between simulation and tkinter dashboard (i.e. draw the simulated position)
Meeting 2021-01-25
- We discussed the video of the AGV and the image/depth recognition that is happening.
(x, y, omega) should all be sent through the Kalman filter.
|