Coder Social home page Coder Social logo

pymoskito's People

Contributors

bu-ch avatar cklb avatar jonas-amr avatar riemarc avatar tandro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pymoskito's Issues

Load pymoskito result files

Add a button to load pmr files.
If a file is loaded, delete all regime-files in dockarea "Regimes", create a new one with the settings of the loaded file and fill the dockarea "Properties" and "Data" with the corresponding datasets.
All functionalities stay active.

Write a introductory tutorial for the docs

The usage an work with the toolbox should be explained within a little tutorial.
It should start with the modelling of a simple system an its implementation, enriched with some formulas and code snippets from the related parts of the toolbox.
The next step would be an introduction to the GUI by simulating the freshly created system.
Furthermore, a simple control law can be derived and implemented to show the most basic components of the modular simulation loop.

Other sections would then focus on the simulation system in whole or parts like trajectory generation or observer design.
The result of the tutorial should be a complete example system that should also be added to the examples sub-package.

The introduction should have a lesson-like structure with little hints about the requirements to understand them.

Things that should be explained:

  • What is the difference between the Solver and the Model?
  • Why do the Model outputs do have a name and the Solver and Trajectory outputs only have numbers like .1, .2 etc.
  • Why do strings in the property list do have to be entered with surrounding " "?
  • How does the control loop look like?
  • What does the ModelMixer do and what are its possibly settings?
  • What are Post- and MetaProcessors and what do they do?

Fix plot window behavior

If the results from the most current simulation do not provide results for a certain plot, not only clear it but also delete the tab widget.

Add references to base classes

At the moment, all derived classes of SimulationModule lack a reference to their respective base classes. It should be added.

Provide better debug information

When there is a syntax or runtime error in the simulation thread, the thread gets aborted (SIG_ABRT) and returns exit code 143.
This makes it very hard to find out what exactly went wrong. When running the python interpreter in gdb, the complete backtrace of the underlying exception can be seen. This information should also be available in the log of the main application to make the debugging process easier.
A possible solution would be to catch all exceptions in the simulation thread, exit graceully and forward them to the gui thread.

Fix `get_figure_size`

Either let the user select a custom width or get a reasonable setting from LaTeX.

make vtk an optional dependancy

Since vtk is a problematic dependancy on some systems, the vtk import could be made optional so that the application won't fail if it isn't present. The 3d result display would be disabled in this case.

Crash on invalid controller input source

If the given controller input string is not allowed, the program crashes.
Instead of Assertions, a ModleException or something similar should be thrown be a initializing SimulationModule and caught by the SimulationInterface

Complete docs for the balltube example

The docs should be extended by a short derivation of the system dynamics, a sketch, references and some sentences about the problems that make it interesting for control theory.

Vectorial `SmoothTransition` s

Refactor SmoothTransition to provide transitions for a vector instead of a scalar entry. Create a new class for that.

Complete docs for the car example

The docs should be extended by a short derivation of the system dynamics, a sketch, references and some sentences about the problems that make it interesting for control theory.

Complete the car example

Since the car system is able to maneuver a set of serially attached carts backwards it would be nice to add the actual controller and show its performance.
Furthermore, the example's name and regime names should be updated

Todos:

  • Rename parameters of CarModel._calc_output()

Fix shortcut bug in the regime list

The delete shortcut always removes an entry from the regime list, even if the regime list has no focus.
This results in a quite non-intuitive behavior.

Update changelog

Since a lot has happened between the last minor release and the one to come, the changelog has to be updated.

Add introduction to docs

The docs are still missing a well written introduction about what this toolbox is about, what it is able to do and most important: what not.

Default name of regime files

At the moment there is always a regime file called default, that should be renamed to default_regimes or something more meaningful.

Module blocks should check their input for sane values

If a Module offers tune-able settings like gains or physical parameters, it should make sure that these values cannot cause FloatingPointErrors like division by zero etc.

A more sophisticated check of the data type should be done on another level.

Get rid of the `_postprocessing` method

This error-prone method should be removed as it has been the source of a great amount of discontent in the development.

There are several sub-steps to approach this issue:

  • Move this task somewhere else #19
  • Provide ways to influence its behavior #20

Use pyqtgraph's PropertyList

The current property view that shows the simulation settings for each module does not scale very nicely.
It should be replaced by the one provided by pyqtgraph.

Complete docs for the ballbeam example

The docs should be extended by a short derivation of the system dynamics and some sentences about the problems that make it interesting for control theory.

Build a regime creation wizard

This wizard window would have the same functionalities as the old interactive regime generator scripts from the ballbeam example without the need to build a new script for every new usecase.

Instead of directly assembling the yaml code, the regime should be generated as python dictionary and then exported to yaml.

Complete docs for the pendulum example

The docs should be extended by a short derivation of the system dynamics and some sentences about the problems that make it interesting for control theory.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.