The python executable for PATMOS is
PATMOS_MIDOM_200324.zip
This alone cannot run ORB_SLAM2 but it can visualize the data and allow the user to hand track the environment. To load the virtual Linux environment that has ORB_SLAM2 and PATMOS already set up use this file.
This is the Virtual Box Appliance file to load this Linux version on your computer.
patmos.ova
The instructions on how to use these and install these files are in “Manual for PATMOS_MIDOM 200414.docx”
You will then have to modify the ProjectMain.xlsx file as discussed in the Manual.
To visualize the data using the PATMOS executable you need to put all these files from Dryad into the same folder that you will specify in ProjectMain.xlsx:
Riparian environment:
Project name in ProjectMain.xlsx: tom_245_jill_189_v1
h5 files
example_GoProJill_187_H.h5
example_GoProJill_189_H.h5
example_GoProTom_243_H.h5
example_GoProTom_245_H.h5
data_tom245_jill189.H5
map files:
tomGP243_ltp0001rgb_topcut.stl
tomGP243_ltp0001rgb_topcut.txt
Marble dropping environment:
Project name in ProjectMain.xlsx: jill_320_tom_376
h5 files:
data_jill_320_tom_376_2.h5
metadata_jill_320_HCO.h5
metadata_tom_376_HCO.h5
map files
ML_ORB_jill_320_tom_376.txt
ML_ORB_jill_320_tom_376.stl
And for running the ORB_SLAM2 in Virtual Box you will need to put these files from Dryad in the same video folder:
Riparian environment:
GoProJill/GOPR0187.MP4
GoProJill/GOPR0189.MP4
goprotom/GOPR0243.MP4
goprotom/GOPR0245.MP4
Marble dropping environment:
GoProJill/GOPR0320.MP4
goprotom/GOPR0376.MP4
There should also be some preloaded map files for some of these projects in the Ubuntu file including this one for the marble drop experiment Map_ORB_jill_320_tom_376.bin
Figure 2
Path data for blender visualization
Amberwing path data:
For visualizing paths over meshes in blender.
filenameq_CSV_MeshLab_rainbowandBlack.txt
This consists of six paths that have been broken up into mirrored and regular counterparts.
The blender file the paths have been rendered in:
Amberwing5Vslam.blend
The OpenMVS mesh file of the environment.
scene_dense_mesh_textureML_AW.obj
The STL was derived from KeyFrameTrajectory_tom_318_jill_261_190115_cleanup3.txt
The waterplane was derived from KeyFrameTrajectory_tom_318_jill_261_190115_water_200522.txt
The ORBSTL is KeyFrameTrajectory_tom_318_jill_261_190115_cleanup3.stl
Damselfish:
The blender file is:
DamselVsOCtRefined2.blend
The OpenMVS mesh is:
scene_dense_mesh_refine_texture_DF.obj
Figure 3:
The data for this figure is in FiducialDistribution.xlsx
Graphed in Graphing_Fiducial_Distribution4BBpaper.py
Distance between cameras:
ORB_SLAM2 measured data in it:
Distance between Cameras.xlsx
The Physical measurements for the measurement rig:
camera distances measured.xlsx
The graphs were made in Graphing_Distance2STL_4Paper.py
Figure 4:
Marble dropping related figure:
Blender file:
marbelsRefined_withGoProSTL4.blend
Marble data statistics:
Statistics from the graph coming from MarblesAngle_vs_g_and_errorDistance201021y.py:
General marble statistics:
marble statisticsBBresub.xlsx
Figure 5:
The distance of paths to STL plots:
The graphs are made in Graphing_Distance2STL_4Paper.py
Amberwing:
Z-direction distance
Amberwing13_INFO.xls
Amberwing43_INFO.xls
Damselfish:
Full Distance to STL.
This is the OpenMVS STL distance without error.
DamselPathsMVSn2_INFO.xls
This is the PATMOS STL distance with error.
DamselPathsn2_INFO.xls
Figure 6:
Data are deposited in Sam_20377RC_Sky_20232RCFR_fh5_MapCovisibilityCharacteriztion_INFO.xls
Sup Figure 1:
The map error graph is meant to give a complete idea of the map's error and reliability.
This graph consists of:
- Map points in percentage levels
- Camera position colored with the same levels and joined together with a line
- The fiducial object with map points
- Color underlay of map errors
- The paths are put in there with the error with the same scaling as the background error estimate.
Amberwing:
tom_319_jill_262_F_MapCharacteriztion_INFO.xls
Marbles:
jill_320_tom_376_2_MapCharacteriztion_INFO.xls
Damselfish:
Sam_20377RC_Sky_20232RCFR_fh5_MapCharacteriztion_INFO.xls
Sup Figure 2:
Difference between openMVS maps and PATMOS maps
Damselfish:
The map is:
scene_dense_mesh_refine_texture_DF.obj
The map is compared with scene_dense_mesh_refine_Damselnew.stl
The disparity information is in a numpy array saved in:
Damseldisparitymap.npy
and in dictionary form, listing a ; separated value with x;y;(distance between STL):
DamseldisparitymapDict.npy
Blender file:
DamselMapComparison3_viridis.blend
Marbles
The map is compared with the OpenMVS map:
scene_dense_mesh_refine_Marbles5Rescale.stl
The disparity information is in a numpy array saved in:
marbledisparitymap.npy
and in dictionary form, listing a ; separated value with x;y;(distance between STL):
MarbledisparitymapDict.npy
Blender file:
marbelsMapComparisonnewcolor_newColor.blend
Amberwing:
Amberdisparitymap.npy
and in dictionary form, listing a ; separated value with x;y;(distance between STL):
AmberdisparitymapDict.npy
The disparity stats calculation is done in Displarity_path_calculation.py
Blender file:
Amberwing7Vslam_viridis.blend
Other Statistical results not in figures:
Mean time and path length of falling marbles
Found in the general info sheet in:
marPathLength_INFO.xls
Maps associated with these projects
Amberwing:
The map for the amber wing data was not very good. It did not refine in OpenMVS, It did not include the water surface where the amberwings were found flying, and it did not give good results of the branches in the water.
The map used for blender was:
scene_dense_mesh_textureML_AW.obj
other versions:
scene_dense_mesh_Amberwing3.stl
and was put in the Red folder Maps and rescaled to:
scene_dense_mesh_Amberwing3Rescale.stl
The stl was derived from KeyFrameTrajectory_tom_318_jill_261_190115_cleanup3.txt
The water plane was derived from KeyFrameTrajectory_tom_318_jill_261_190115_water_200522.txt
Damselfish:
OpenMVS file is:
scene_dense_mesh_refine_Damsel.stl
and is rescaled as:
scene_dense_mesh_refine_Damselnew.stl
The PATMOS STL was derived from KFT_ORB_Sam_20377RC_Sky_20232RC_cut.txt
That has various parts of the point cloud cut.
The PATMOS SLT with error are:
KFT_ORB_Sam_20377RC_Sky_20232RC_cut.stl
KFT_ORB_Sam_20377RC_Sky_20232RC_cut_err.npy
Marbles:
The OpenMVS mesh is scene_dense_mesh_refine_texture_Mar.obj
scene_dense_mesh_refine_Marbles5.stl
rescaled
scene_dense_mesh_refine_Marbles5Rescale.stl
For the ORB_STL:
Use as an input ML_ORB_jill_320_tom_376_2.txt:
The PATMOS SLT with error are:
ML_ORB_jill_320_tom_376_2.stl
ML_ORB_jill_320_tom_376_2_err.npy