Real-time execution and remote monitoring and tuning of BDSim Block-Diagrams for modelling and control of Dynamical Systems
Project description
BDSim Realtime
Real-time execution and remote monitoring and tuning of BDSim Block-Diagrams for modelling and control of Dynamical Systems. See https://github.com/petercorke/bdsim for the base framework and simulation package.
TODO: more docs
BDSim Web-Tuner
Web-based telemetry and parameter tuning interface for BDSim
Note: Screen-recording lead to low FPS - usual FPS was around 30 on the laptop used (max for webcam).
Note: under heavy development (pre-alpha). These instructions will not fully work at the time of writing, but is supposed to give an idea of the usage once released.
Installation
pip install "bdsim_realtime[opencv]" # opencv optional
Usage
First, start the server and keep it running:
python -m bdsim_realtime.webapp
Then, add and run your bdsim script,
import bdsim, numpy as np
import bdsim_realtime
# setup block-diagram and tuner client
bd = bdsim.BDSim(packages="bdsim_realtime").blockdiagram()
# All TunableBlocks within this context manager will register their parameters swith the Tuner
with bdsim_realtime.tuning.tuners.TcpClientTuner() as tuner:
# use first local camera available
clock = bd.clock(24, unit='Hz')
bgr = bd.CAMERA(0, clock=clock)
# display in web stream
bd.DISPLAY(bgr, name="BGR Stream", web_stream_host=tuner, show_fps=True)
# tune system parameters in the web editor
gain = tuner.param(1, min=0, max=100)
# stream some telemetry data (random for demo)
data = bd.FUNCTION(
lambda _: (gain.val * np.random.rand(3)).tolist(),
nin=1, # unused import required here to use function as a Clocked Source Block
nout=3
)
bd.connect(bgr, data)
bd.TUNERSCOPE(
data[0], data[1], data[2],
nin=3,
labels=['x', 'y', 'z'],
name='Random Data',
tuner=tuner)
bd.compile() # perform verification
bdsim_realtime.run(bd, tuner=tuner) # run forever
Now access the tuner at http://localhost:8080
Development
Setup
python -m venv .venv # create venv
source .venv/bin/activate # activate venv
pip install -e ".[opencv]" # install in editable symlink mode
npm i # install JS deps
Frontend
npm run dev # run hot-reloaded app
Backend
Same as non-development version. Run:
python -m bdsim_realtime.webapp
And then run your example / test script:
python examples/blob_detector_tuner.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file bdsim_realtime-1.0.1-py3.10.egg
.
File metadata
- Download URL: bdsim_realtime-1.0.1-py3.10.egg
- Upload date:
- Size: 230.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5eeb6d3b2c0bd5d8064152ea3aad3e337e5cd3ad804d0b122b818b9fc272d802 |
|
MD5 | da685fa23534f4655adfe4a320d6be86 |
|
BLAKE2b-256 | e76d4605d968fa2313017775812ea41b5ca5506219c2bf850dc40f031e34130b |