Skip to content

Commit df16ecc

Browse files
committedJul 22, 2020
Added code
1 parent 5379f55 commit df16ecc

File tree

472 files changed

+7849953
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

472 files changed

+7849953
-0
lines changed
 

‎CMakeLists.txt

+194
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
cmake_minimum_required(VERSION 2.8)
2+
project(ORB_SLAM3)
3+
4+
IF(NOT CMAKE_BUILD_TYPE)
5+
SET(CMAKE_BUILD_TYPE Release)
6+
ENDIF()
7+
8+
MESSAGE("Build type: " ${CMAKE_BUILD_TYPE})
9+
10+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O3")
11+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O3")
12+
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -march=native")
13+
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=native")
14+
15+
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-deprecated -O3 -march=native ")
16+
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-deprecated -O3 -march=native")
17+
18+
# Check C++11 or C++0x support
19+
include(CheckCXXCompilerFlag)
20+
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
21+
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
22+
if(COMPILER_SUPPORTS_CXX11)
23+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
24+
add_definitions(-DCOMPILEDWITHC11)
25+
message(STATUS "Using flag -std=c++11.")
26+
elseif(COMPILER_SUPPORTS_CXX0X)
27+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
28+
add_definitions(-DCOMPILEDWITHC0X)
29+
message(STATUS "Using flag -std=c++0x.")
30+
else()
31+
message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
32+
endif()
33+
34+
LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)
35+
36+
find_package(OpenCV 3)
37+
if(NOT OpenCV_FOUND)
38+
find_package(OpenCV 2.4.3 QUIET)
39+
if(NOT OpenCV_FOUND)
40+
message(FATAL_ERROR "OpenCV > 2.4.3 not found.")
41+
endif()
42+
endif()
43+
44+
MESSAGE("OPENCV VERSION:")
45+
MESSAGE(${OpenCV_VERSION})
46+
47+
find_package(Eigen3 3.1.0 REQUIRED)
48+
find_package(Pangolin REQUIRED)
49+
50+
include_directories(
51+
${PROJECT_SOURCE_DIR}
52+
${PROJECT_SOURCE_DIR}/include
53+
${PROJECT_SOURCE_DIR}/include/CameraModels
54+
${EIGEN3_INCLUDE_DIR}
55+
${Pangolin_INCLUDE_DIRS}
56+
)
57+
58+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)
59+
60+
add_library(${PROJECT_NAME} SHARED
61+
src/System.cc
62+
src/Tracking.cc
63+
src/LocalMapping.cc
64+
src/LoopClosing.cc
65+
src/ORBextractor.cc
66+
src/ORBmatcher.cc
67+
src/FrameDrawer.cc
68+
src/Converter.cc
69+
src/MapPoint.cc
70+
src/KeyFrame.cc
71+
src/Atlas.cc
72+
src/Map.cc
73+
src/MapDrawer.cc
74+
src/Optimizer.cc
75+
src/PnPsolver.cc
76+
src/Frame.cc
77+
src/KeyFrameDatabase.cc
78+
src/Sim3Solver.cc
79+
src/Initializer.cc
80+
src/Viewer.cc
81+
src/ImuTypes.cc
82+
src/G2oTypes.cc
83+
src/CameraModels/Pinhole.cpp
84+
src/CameraModels/KannalaBrandt8.cpp
85+
src/OptimizableTypes.cpp
86+
src/MLPnPsolver.cpp
87+
include/System.h
88+
include/Tracking.h
89+
include/LocalMapping.h
90+
include/LoopClosing.h
91+
include/ORBextractor.h
92+
include/ORBmatcher.h
93+
include/FrameDrawer.h
94+
include/Converter.h
95+
include/MapPoint.h
96+
include/KeyFrame.h
97+
include/Atlas.h
98+
include/Map.h
99+
include/MapDrawer.h
100+
include/Optimizer.h
101+
include/PnPsolver.h
102+
include/Frame.h
103+
include/KeyFrameDatabase.h
104+
include/Sim3Solver.h
105+
include/Initializer.h
106+
include/Viewer.h
107+
include/ImuTypes.h
108+
include/G2oTypes.h
109+
include/CameraModels/GeometricCamera.h
110+
include/CameraModels/Pinhole.h
111+
include/CameraModels/KannalaBrandt8.h
112+
include/OptimizableTypes.h
113+
include/MLPnPsolver.h
114+
include/TwoViewReconstruction.h
115+
src/TwoViewReconstruction.cc)
116+
117+
add_subdirectory(Thirdparty/g2o)
118+
119+
target_link_libraries(${PROJECT_NAME}
120+
${OpenCV_LIBS}
121+
${EIGEN3_LIBS}
122+
${Pangolin_LIBRARIES}
123+
${PROJECT_SOURCE_DIR}/Thirdparty/DBoW2/lib/libDBoW2.so
124+
${PROJECT_SOURCE_DIR}/Thirdparty/g2o/lib/libg2o.so
125+
-lboost_serialization
126+
-lcrypto
127+
)
128+
129+
130+
# Build examples
131+
132+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/RGB-D)
133+
add_executable(rgbd_tum
134+
Examples/RGB-D/rgbd_tum.cc)
135+
target_link_libraries(rgbd_tum ${PROJECT_NAME})
136+
137+
138+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/Stereo)
139+
140+
add_executable(stereo_kitti
141+
Examples/Stereo/stereo_kitti.cc)
142+
target_link_libraries(stereo_kitti ${PROJECT_NAME})
143+
144+
add_executable(stereo_euroc
145+
Examples/Stereo/stereo_euroc.cc)
146+
target_link_libraries(stereo_euroc ${PROJECT_NAME})
147+
148+
add_executable(stereo_tum_vi
149+
Examples/Stereo/stereo_tum_vi.cc)
150+
target_link_libraries(stereo_tum_vi ${PROJECT_NAME})
151+
152+
153+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/Monocular)
154+
155+
add_executable(mono_tum
156+
Examples/Monocular/mono_tum.cc)
157+
target_link_libraries(mono_tum ${PROJECT_NAME})
158+
159+
add_executable(mono_kitti
160+
Examples/Monocular/mono_kitti.cc)
161+
target_link_libraries(mono_kitti ${PROJECT_NAME})
162+
163+
add_executable(mono_euroc
164+
Examples/Monocular/mono_euroc.cc)
165+
target_link_libraries(mono_euroc ${PROJECT_NAME})
166+
167+
add_executable(mono_tum_vi
168+
Examples/Monocular/mono_tum_vi.cc)
169+
target_link_libraries(mono_tum_vi ${PROJECT_NAME})
170+
171+
172+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/Monocular-Inertial)
173+
174+
add_executable(mono_inertial_euroc
175+
Examples/Monocular-Inertial/mono_inertial_euroc.cc)
176+
target_link_libraries(mono_inertial_euroc ${PROJECT_NAME})
177+
178+
add_executable(mono_inertial_tum_vi
179+
Examples/Monocular-Inertial/mono_inertial_tum_vi.cc)
180+
target_link_libraries(mono_inertial_tum_vi ${PROJECT_NAME})
181+
182+
183+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/Stereo-Inertial)
184+
185+
add_executable(stereo_inertial_euroc
186+
Examples/Stereo-Inertial/stereo_inertial_euroc.cc)
187+
target_link_libraries(stereo_inertial_euroc ${PROJECT_NAME})
188+
189+
190+
add_executable(stereo_inertial_tum_vi
191+
Examples/Stereo-Inertial/stereo_inertial_tum_vi.cc)
192+
target_link_libraries(stereo_inertial_tum_vi ${PROJECT_NAME})
193+
194+
+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
%YAML:1.0
2+
3+
#--------------------------------------------------------------------------------------------
4+
# Camera Parameters. Adjust them!
5+
#--------------------------------------------------------------------------------------------
6+
Camera.type: "PinHole"
7+
8+
# Camera calibration and distortion parameters (OpenCV)
9+
Camera.fx: 458.654
10+
Camera.fy: 457.296
11+
Camera.cx: 367.215
12+
Camera.cy: 248.375
13+
14+
Camera.k1: -0.28340811
15+
Camera.k2: 0.07395907
16+
Camera.p1: 0.00019359
17+
Camera.p2: 1.76187114e-05
18+
19+
# Camera resolution
20+
Camera.width: 752
21+
Camera.height: 480
22+
23+
# Camera frames per second
24+
Camera.fps: 20.0
25+
26+
# Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
27+
Camera.RGB: 1
28+
29+
# Transformation from camera to body-frame (imu)
30+
Tbc: !!opencv-matrix
31+
rows: 4
32+
cols: 4
33+
dt: f
34+
data: [0.0148655429818, -0.999880929698, 0.00414029679422, -0.0216401454975,
35+
0.999557249008, 0.0149672133247, 0.025715529948, -0.064676986768,
36+
-0.0257744366974, 0.00375618835797, 0.999660727178, 0.00981073058949,
37+
0.0, 0.0, 0.0, 1.0]
38+
39+
# IMU noise
40+
IMU.NoiseGyro: 1.7e-4 #1.6968e-04
41+
IMU.NoiseAcc: 2.0000e-3 #2.0e-3
42+
IMU.GyroWalk: 1.9393e-05
43+
IMU.AccWalk: 3.0000e-03 # 3e-03
44+
IMU.Frequency: 200
45+
46+
#--------------------------------------------------------------------------------------------
47+
# ORB Parameters
48+
#--------------------------------------------------------------------------------------------
49+
50+
# ORB Extractor: Number of features per image
51+
ORBextractor.nFeatures: 1000 # 1000
52+
53+
# ORB Extractor: Scale factor between levels in the scale pyramid
54+
ORBextractor.scaleFactor: 1.2
55+
56+
# ORB Extractor: Number of levels in the scale pyramid
57+
ORBextractor.nLevels: 8
58+
59+
# ORB Extractor: Fast threshold
60+
# Image is divided in a grid. At each cell FAST are extracted imposing a minimum response.
61+
# Firstly we impose iniThFAST. If no corners are detected we impose a lower value minThFAST
62+
# You can lower these values if your images have low contrast
63+
ORBextractor.iniThFAST: 20
64+
ORBextractor.minThFAST: 7
65+
66+
#--------------------------------------------------------------------------------------------
67+
# Viewer Parameters
68+
#--------------------------------------------------------------------------------------------
69+
Viewer.KeyFrameSize: 0.05
70+
Viewer.KeyFrameLineWidth: 1
71+
Viewer.GraphLineWidth: 0.9
72+
Viewer.PointSize:2
73+
Viewer.CameraSize: 0.08
74+
Viewer.CameraLineWidth: 3
75+
Viewer.ViewpointX: 0
76+
Viewer.ViewpointY: -0.7
77+
Viewer.ViewpointZ: -3.5 # -1.8
78+
Viewer.ViewpointF: 500
79+

0 commit comments

Comments
 (0)
Please sign in to comment.