1. Updated High Power PiVR BOM to address discontinued LED (#106).
2. Simplify code to improve readability: common.system_utils to find OS/Raspberry.
3. Added 'Select analysis area (Circle)' which allows user to interactively to
exclude part of the trajectory of an animal of a given experiment. The idea is
that when the animal is very close to the edge of the arena it's hard to faithfully
track the animal and it might be safer to discard those timepoints.
4. Video conversion: if 'Save *.npy' file or 'Save *.mat' file selected it will be
saved as 'all_images.npy' and 'all_images.mat', respectively. Previous behavior was
to save with original video name.
5. Addresses #108. cleaned up discrepancy in data.csv between video recording and tracking
where the first would save columns as 'Time [s]' and the later as 'Time'. Now both are
'Time [s]'. This change will break downstream code which is why the next release will be 1.8.0
6. Hind Al Ali fixed a new bug in "Display tracked experiment" -> "Video" by swapping `draw.circle`
with `draw.disk` (!124)(#121).
This merge also makes the circles indicating body parts a bit smaller, makes colors for head/tail
consistent with GUI colors, removes whitespace and increments video.mp4 filename to not
overwrite older videos.
Thank you, Hind!
7. Fixed a bug that made it impossible to use animal detection method 3. It's still hard to use
because the animal must stand out clearly from the background during detection, though. So
mode 1 will likely be the easiest to use for most users! Also - it might not be working as well
as expected. To be tested with larvae.
8. Added 'macro editor' to video recording (#113) - tested and seems to works on PiVR.
9. Added macro editor info to pivr.org website.
10. Allow ignore error message during posthoc tracking #115.
11. Display tracked experiment now shows time taken from data.csv (and not only frame number). Addresses #118.
12. Display tracked experiment will now present the experienced stimulus at each timepoints. Addressed #118.
13. Animal specific head/tail classification (work in progress!)
14. Changed how to deal with the high-powered setup. Philosophy is still to avoid letting the user
know that there is any difference. Addresses #116 and should automatically address #112 (work in progress, to be tested!)
15. Added 'Recording type' in experiment_settings.json which directly indicates for example if this was
a video recording or real-time tracking.
16. Distance to Source and Distance to VR max analysis: Column with distance to centroid is named
'Centroid distance to source [mm]' (addresses #75). Also added 'Frame' and 'Time [s]' column. In addition,
data.csv file gets a new column named 'Centroid distance to source [mm]'.
17. Had to update skimage for regionprops.weighted_centroid using `pip install scikit-image==0.22.0`
-> provide a new image file after updating to v1.8.0
18. Added option to show trace of centroid/head/tail in visualize tracked experiment #129
19. Added PiVR naming option: Give name to PiVR which is then saved in 'experiment_settings.json' when running
an experiment. This should help keep track of where experiments were run and not all setups are exactly
identical when it comes to light stimulus intensity #136.
20. #131 code written by Hind to decrease size of experimental folder significantly: After the experiment check
which of the pixels is 0 in all frames of the experiments and remove them to get the smallest possible image.
Thank you, Hind!
21. #137 online undistort when tracking yields floating point numbers for:
centroids, midpoints, tails, heads, endpoints.
22. #132 added column to indicate failed head/tail assignment.
23. #135: tripwire to alert the user that there's not a lot of space left:
It's quite annyoing to completely fill up the disk as PiVR will be unable
to boot. When saving tracking experiment, alert user when not enough space
to write numpy file.
Also added a new widget next to the recording time indicating space left
in folder selected next to 'Save in'
24. #144 BIG change! In order to address the flickering, the way the GPIOs are set is changed
significantly: Instead of using the in-built 'set_PWM_dutycycle' function the PWM is now
constructed as desired and then synchronized with the already running wave.
In addition, the way the HP setup address the GPIO has been changed significantly. I
checked (with my eyes) what settings lead to these light flashes I saw sporadically. See
discussion in #144 for limits. PiVR now uses a lookup table with pre-calculated ON/OFF
settings. Importantly, it's not possible to use light intensities going from 0.01-4.99%
and 98.01-99.99%!
If user tries to load a VR arena or time dependent stimulus file with those values they
are shown an error (i.e. it won't load).
Added a comparison table on the website to highlight this disadvantage of the HP version.
Added new HP compatible VR arenas. Also re-did the standard gaussian center arenas for
1024x768 and 1295x972 to have identical scaling of sigma relative to size.
25. When exiting PiVR, all LEDs, including background, turn off automatically.
26. Got rid of annoying flickering when starting the HP setup.