Skip to content
Snippets Groups Projects
Commit 1dfd285d authored by am0ebe's avatar am0ebe
Browse files

dox: cam linx

parent eee0eebd
No related branches found
No related tags found
No related merge requests found
File moved
../a/hardware/alvium_g1_user_guide.pdf
\ No newline at end of file
File moved
../../a/hardware/alvium_g1_user_guide.pdf
\ No newline at end of file
...@@ -8,162 +8,188 @@ CAMTRON PROCESSING PIPELINE ...@@ -8,162 +8,188 @@ CAMTRON PROCESSING PIPELINE
########################### ###########################
"tackle long-term complex projects from beginning to end" "tackle long-term complex projects from beginning to end"
- keep up new work habit - consistently work 20-30 hw⁻¹
- use copilot more efficiently
- ‼️cam work with VM? (MTU)
read docu, write alliedvision
-- if yes.
test (VV)
set hostname (for fixip)
-- if no
- communicate w sebastian 1rst.
- communicate w uli
- ‼️HPC. store some data. delete rest.
- write mail XX
- write joerdis
- ‼️ mv big ct-data to hdd
B) recorder - camera produces frames and timestamps B) recorder - camera produces frames and timestamps
########################### ###########################
(depends on cam in A)!!! (depends on cam in A)!!!
> use new api VimbaX - use new api VimbaX
> read manual (c++ / vimba) - read manual (c++ / vimba)
============================ ============================
> wait and detect cams - wait and detect cams
> produce frames & timestamps - ‼️ produce frames & timestamps
============================ ============================
> new architecture: console app (later: gui app) + Core. - new architecture: console app (later: gui app) + Core.
CONSOLE APP: CONSOLE APP:
in extra thread to not block main thread! in extra thread to not block main thread!
listen to user keys listen to user keys
CORE APP CORE APP
functions / args: functions / args:
> out_dir: - out_dir:
parse dir arg and create it if it doesnt exist >> finish it / with proper user in/ output >> or cancel if it doesnt exist parse dir arg and create it if it doesnt exist >- finish it / with proper user in/ output >- or cancel if it doesnt exist
>> EASIER: + no userinput which could complicate GUI app later... >> EASIER: + no userinput which could complicate GUI app later...
> list cameras: - list cameras:
> store/load cam settings - store/load cam settings
> calibrate - calibrate
> record - record
> stop recording - stop recording
> consider using app settings in a json-file / QSettings - consider using app settings in a json-file / QSettings
> cam mappings (IP/MAC/ID) - cam mappings (IP/MAC/ID)
> out_dir - out_dir
GUI APP: GUI APP:
> build GUI - build GUI
> ... parse output for -LISTCAMERAS- and put into tablewidget - ... parse output for -LISTCAMERAS- and put into tablewidget
=============================== ===============================
> get pix, using - get pix, using
- laptop - direct connection - laptop - direct connection
- laptop - local network - laptop - local network
- virtual machine - virtual machine
> get video via vimbax-SDK - get video via vimbax-SDK
> cam calibration (Use Viewer? Or own SW?) - cam calibration (Use Viewer? Or own SW?)
> configure cam settings - configure cam settings
* get video for 3 cams simultaneously * get video for 3 cams simultaneously
> what SW? - what SW?
> calculate supported framerate+resolution+codec for hardware (CPU,RAM,HDD...) - calculate supported framerate+resolution+codec for hardware (CPU,RAM,HDD...)
> or do tests and see if frames are dropped - or do tests and see if frames are dropped
> central config - central config
> threads for started recordings [PID] - threads for started recordings [PID]
> storage folder - storage folder
> export settings with viewer - export settings with viewer
> load settings with sw - load settings with sw
> how and where to store frames? - how and where to store frames?
A) A)
########################### ###########################
> VM - VM
> light - light
> 2*LEDs: 1*day + 1*night - 2*LEDs: 1*day + 1*night
> find ecolux hw (Boxes, DMX per unit, DMX splitter/controller) - find ecolux hw (Boxes, DMX per unit, DMX splitter/controller)
> arenas - arenas
> Acrylzylinder in 2 teile gesaegt. - Acrylzylinder in 2 teile gesaegt.
> floor - floor
> gips+color+lack.. - gips+color+lack..
C) background subtraction C) background subtraction
########################### ###########################
eval how much work to, update eval how much work to, update
> opencv - opencv
> bgs-algorithm - bgs-algorithm
ctb - calculates centroid points of all frames in a record ctb - calculates centroid points of all frames in a record
> build - build
> find test data (cp to 00 - ..) - find test data (cp to 00 - ..)
> process - process
----------- -----------
> update bgs alg. opencv4 has its own bgs? - update bgs alg. opencv4 has its own bgs?
D) process scripts D) process scripts
########################### ###########################
ctd - calculated the mean speed in pixel / millisecond ctd - calculated the mean speed in pixel / millisecond
* can i reduce size of data (reduce length|fps|res) * can i reduce size of data (reduce length|fps|res)
>> calc D) for test data set (get data from joerdis?) >- calc D) for test data set (get data from joerdis?)
-> with all frames -- with all frames
-> undersample, shorter length -- undersample, shorter length
-> compare results. same? -- compare results. same?
trajectory trajectory
> figure out concrete steps. harmonize scripts? .. - figure out concrete steps. harmonize scripts? ..
> trajr. - trajr.
> run calcVmeanForID.r on data - run calcVmeanForID.r on data
> calc new values. max speed. angle. ... - calc new values. max speed. angle. ...
X) HPC - High Performance Cluster X) HPC - High Performance Cluster
#################################### ####################################
> gamify > lvl up - gamify - lvl up
> try script to send over data - try script to send over data
> script that copies data once a day from VM to HPC - script that copies data once a day from VM to HPC
> Secure-Shell-ID angepasst - Secure-Shell-ID angepasst
> cron - cron
or > II) vimba-software directly to HPC? or - II) vimba-software directly to HPC?
BACK-BURNER 2D BACK-BURNER 2D
############################### ###############################
> Documentation - Documentation
> sketch - sketch
> chamber: cam height+resolution+arena diameter for pixel to cm/mm ratio - chamber: cam height+resolution+arena diameter for pixel to cm/mm ratio
> lab: chambers+workstations+HPC - lab: chambers+workstations+HPC
> costs. update with what we actually buy! - costs. update with what we actually buy!
> sketch: technical: cam (QuantumEfficiency) + IRLED - sketch: technical: cam (QuantumEfficiency) + IRLED
> sketch: setup plan for a chamber - sketch: setup plan for a chamber
> copy last setup plan from thomas - copy last setup plan from thomas
Done Done
####################### #######################
> start implementing new arch - started working 20-26 hw⁻¹ for 3 weeks now :)
> console app. thread. signal-slot connections. - habit. consistency!
> backup old tibcamtrack VM - started writing C++ again (+bash,+python)
> get video in VV - setup IDE (LSP plugins), QT, codecompletion
> connect VM. ssh and rdp - get copilot
> sort ct a bit: - automate + fix backup script
> folders, files, ... naming convention - get VM
> README + Description - got pictures, tested all 6 cams :)
> merge doc? - bup old camtrack
> b) exclude SDK / examples from repo - start implementing new arch
> attach cam arm to wood (DONE) - console app. thread. signal-slot connections.
> test run 1 cam to estimate hw requirements - backup old tibcamtrack VM
> test bottleneck (CPU,HDD,ethernet,) - get video in VV
> storage: 10s hochrechnen - connect VM. ssh and rdp
> mit 25/17/10 FPS. - sort ct a bit:
> different compression types - folders, files, ... naming convention
- README + Description
> research suitable "fridges" - merge doc?
-> price!, temp-range, electricity inside, size space in lab? - b) exclude SDK / examples from repo
-> more than 2 - attach cam arm to wood (DONE)
- test run 1 cam to estimate hw requirements
- test bottleneck (CPU,HDD,ethernet,)
- storage: 10s hochrechnen
- mit 25/17/10 FPS.
- different compression types
- research suitable "fridges"
-- price!, temp-range, electricity inside, size space in lab?
-- more than 2
Reach In Plant Growth Chambers E-36L1 Reach In Plant Growth Chambers E-36L1
--------------------- ---------------------
> setup stativ, use our lab - setup stativ, use our lab
> how-to connect ETHernet cable? it will have to go outside of fridge?? - how-to connect ETHernet cable? it will have to go outside of fridge??
> how-to control temperature and humidity? (see picture from thomas dox) - how-to control temperature and humidity? (see picture from thomas dox)
> research WS (see hardware_notes.ods for details like specs. CPU, RAM, SSDs, prices) - research WS (see hardware_notes.ods for details like specs. CPU, RAM, SSDs, prices)
> cam aufhaengung - cam aufhaengung
research stativ/tripod: manfrotto arm + clamp + bodenplatte for cams research stativ/tripod: manfrotto arm + clamp + bodenplatte for cams
other stuff to fix cameras > stange other stuff to fix cameras - stange
> sensors for temp+humidity (HOBO) - sensors for temp+humidity (HOBO)
> backup data from towers - backup data from towers
> setup tower (displays,cards,cables) - setup tower (displays,cards,cables)
------------------------------- -------------------------------
> bal: func: list_suffices - bal: func: list_suffices
> bal: function to replace all names to snake_case (upper to lower, space/dash to underscore) - bal: function to replace all names to snake_case (upper to lower, space/dash to underscore)
> opd: works with "name containing spaces.pdf" -> use array for files instead of string concatenation in o_helper() - opd: works with "name containing spaces.pdf" -- use array for files instead of string concatenation in o_helper()
> bug: changed IFS in o_helper broke nav function - bug: changed IFS in o_helper broke nav function
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment