diff --git a/dox/cam_features_reference.pdf b/dox/alvium_features_reference.pdf similarity index 100% rename from dox/cam_features_reference.pdf rename to dox/alvium_features_reference.pdf diff --git a/dox/alvium_g1_user_guide.pdf b/dox/alvium_g1_user_guide.pdf new file mode 120000 index 0000000000000000000000000000000000000000..6be139d31eb3567b6bd3ae12b16d9a81a888c54d --- /dev/null +++ b/dox/alvium_g1_user_guide.pdf @@ -0,0 +1 @@ +../a/hardware/alvium_g1_user_guide.pdf \ No newline at end of file diff --git a/dox/cam_spec.pdf b/dox/alvium_spec.pdf similarity index 100% rename from dox/cam_spec.pdf rename to dox/alvium_spec.pdf diff --git a/dox/cam_user_guide.pdf b/dox/cam_user_guide.pdf deleted file mode 120000 index 30d05bb94dfcdd5e1fef42118c7f3be77303632a..0000000000000000000000000000000000000000 --- a/dox/cam_user_guide.pdf +++ /dev/null @@ -1 +0,0 @@ -../../a/hardware/alvium_g1_user_guide.pdf \ No newline at end of file diff --git a/dox/todo_ct b/dox/todo_ct index 9e33d300e14bbdc746d771cd52e30c8bac66717a..bff9bf63c54e4203c8f6a39c60bfabc771a1b982 100644 --- a/dox/todo_ct +++ b/dox/todo_ct @@ -8,162 +8,188 @@ CAMTRON PROCESSING PIPELINE ########################### "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 ########################### (depends on cam in A)!!! - > use new api VimbaX - > read manual (c++ / vimba) + - use new api VimbaX + - read manual (c++ / vimba) ============================ - > wait and detect cams - > produce frames & timestamps + - wait and detect cams + - â€¼ï¸ produce frames & timestamps ============================ - > new architecture: console app (later: gui app) + Core. + - new architecture: console app (later: gui app) + Core. CONSOLE APP: in extra thread to not block main thread! listen to user keys CORE APP functions / args: - > 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 + - 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 >> EASIER: + no userinput which could complicate GUI app later... - > list cameras: - > store/load cam settings - > calibrate - > record - > stop recording - > consider using app settings in a json-file / QSettings - > cam mappings (IP/MAC/ID) - > out_dir + - list cameras: + - store/load cam settings + - calibrate + - record + - stop recording + - consider using app settings in a json-file / QSettings + - cam mappings (IP/MAC/ID) + - out_dir GUI APP: - > build GUI - > ... parse output for -LISTCAMERAS- and put into tablewidget + - build GUI + - ... parse output for -LISTCAMERAS- and put into tablewidget =============================== - > get pix, using + - get pix, using - laptop - direct connection - laptop - local network - virtual machine - > get video via vimbax-SDK - > cam calibration (Use Viewer? Or own SW?) - > configure cam settings + - get video via vimbax-SDK + - cam calibration (Use Viewer? Or own SW?) + - configure cam settings * get video for 3 cams simultaneously - > what SW? - > calculate supported framerate+resolution+codec for hardware (CPU,RAM,HDD...) - > or do tests and see if frames are dropped + - what SW? + - calculate supported framerate+resolution+codec for hardware (CPU,RAM,HDD...) + - or do tests and see if frames are dropped - > central config - > threads for started recordings [PID] - > storage folder + - central config + - threads for started recordings [PID] + - storage folder - > export settings with viewer - > load settings with sw - > how and where to store frames? + - export settings with viewer + - load settings with sw + - how and where to store frames? A) ########################### - > VM - > light - > 2*LEDs: 1*day + 1*night - > find ecolux hw (Boxes, DMX per unit, DMX splitter/controller) - > arenas - > Acrylzylinder in 2 teile gesaegt. - > floor - > gips+color+lack.. + - VM + - light + - 2*LEDs: 1*day + 1*night + - find ecolux hw (Boxes, DMX per unit, DMX splitter/controller) + - arenas + - Acrylzylinder in 2 teile gesaegt. + - floor + - gips+color+lack.. C) background subtraction ########################### eval how much work to, update - > opencv - > bgs-algorithm + - opencv + - bgs-algorithm ctb - calculates centroid points of all frames in a record - > build - > find test data (cp to 00 - ..) - > process + - build + - find test data (cp to 00 - ..) + - process ----------- - > update bgs alg. opencv4 has its own bgs? + - update bgs alg. opencv4 has its own bgs? D) process scripts ########################### ctd - calculated the mean speed in pixel / millisecond * can i reduce size of data (reduce length|fps|res) - >> calc D) for test data set (get data from joerdis?) - -> with all frames - -> undersample, shorter length - -> compare results. same? + >- calc D) for test data set (get data from joerdis?) + -- with all frames + -- undersample, shorter length + -- compare results. same? trajectory - > figure out concrete steps. harmonize scripts? .. - > trajr. - > run calcVmeanForID.r on data - > calc new values. max speed. angle. ... + - figure out concrete steps. harmonize scripts? .. + - trajr. + - run calcVmeanForID.r on data + - calc new values. max speed. angle. ... X) HPC - High Performance Cluster #################################### - > gamify > lvl up - > try script to send over data - > script that copies data once a day from VM to HPC - > Secure-Shell-ID angepasst - > cron - or > II) vimba-software directly to HPC? + - gamify - lvl up + - try script to send over data + - script that copies data once a day from VM to HPC + - Secure-Shell-ID angepasst + - cron + or - II) vimba-software directly to HPC? BACK-BURNER 2D ############################### -> Documentation - > sketch - > chamber: cam height+resolution+arena diameter for pixel to cm/mm ratio - > lab: chambers+workstations+HPC +- Documentation + - sketch + - chamber: cam height+resolution+arena diameter for pixel to cm/mm ratio + - lab: chambers+workstations+HPC - > costs. update with what we actually buy! - > sketch: technical: cam (QuantumEfficiency) + IRLED - > sketch: setup plan for a chamber - > copy last setup plan from thomas + - costs. update with what we actually buy! + - sketch: technical: cam (QuantumEfficiency) + IRLED + - sketch: setup plan for a chamber + - copy last setup plan from thomas Done ####################### -> start implementing new arch - > console app. thread. signal-slot connections. -> backup old tibcamtrack VM -> get video in VV -> connect VM. ssh and rdp -> sort ct a bit: - > folders, files, ... naming convention - > README + Description - > merge doc? - > b) exclude SDK / examples from repo -> 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 +- started working 20-26 hwâ»Â¹ for 3 weeks now :) + - habit. consistency! +- started writing C++ again (+bash,+python) + - setup IDE (LSP plugins), QT, codecompletion + - get copilot +- automate + fix backup script +- get VM +- got pictures, tested all 6 cams :) +- bup old camtrack +- start implementing new arch + - console app. thread. signal-slot connections. +- backup old tibcamtrack VM +- get video in VV +- connect VM. ssh and rdp +- sort ct a bit: + - folders, files, ... naming convention + - README + Description + - merge doc? + - b) exclude SDK / examples from repo +- 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 --------------------- - > setup stativ, use our lab - > how-to connect ETHernet cable? it will have to go outside of fridge?? - > 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) -> cam aufhaengung + - setup stativ, use our lab + - how-to connect ETHernet cable? it will have to go outside of fridge?? + - 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) +- cam aufhaengung research stativ/tripod: manfrotto arm + clamp + bodenplatte for cams - other stuff to fix cameras > stange -> sensors for temp+humidity (HOBO) -> backup data from towers -> setup tower (displays,cards,cables) + other stuff to fix cameras - stange +- sensors for temp+humidity (HOBO) +- backup data from towers +- setup tower (displays,cards,cables) ------------------------------- -> bal: func: list_suffices -> 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() -> bug: changed IFS in o_helper broke nav function +- bal: func: list_suffices +- 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() +- bug: changed IFS in o_helper broke nav function