Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
ff18bad
rigged global positioning. Not debugged yet
lpanaf Mar 3, 2025
b7a6daf
compilation debugged
lpanaf Mar 6, 2025
66bda42
the rigged GP debugged
lpanaf Mar 10, 2025
4629d9f
debug code
lpanaf Mar 10, 2025
a37fba4
dbugging rig GP
lpanaf Mar 12, 2025
860f07e
Merge branch 'main' of github.com:colmap/glomap into rig_constraint
lpanaf May 6, 2025
e0c5a03
rig rotation averaging implemented
lpanaf May 7, 2025
2e3874b
minor
lpanaf May 7, 2025
8af5894
rigged bundle adjustment
lpanaf May 7, 2025
9d400ea
rigged pipeline
lpanaf May 7, 2025
40edcaa
largest connect componenet establishment with rigs
lpanaf May 7, 2025
eefd1d1
test entry point
lpanaf May 7, 2025
61b348c
remove unnecessary dependency
lpanaf May 8, 2025
c21e8e5
add support for relative pose estimation only
lpanaf May 8, 2025
6a69f5b
change the snapshot logic
lpanaf May 9, 2025
76becc5
minor
lpanaf May 12, 2025
5f292f5
migrate to COLMAP 3..12 (with rig support)
lpanaf Jun 12, 2025
fbe8bbf
refactor rotation averaging. RIGGED version not working yet
lpanaf Jun 19, 2025
8f29bd2
d
lpanaf Jun 19, 2025
f40df52
rigged rotation averaging debugged. The convergence is poor.
lpanaf Jun 20, 2025
75f83c5
rigged global positioning
lpanaf Jun 23, 2025
91ef27d
minor
lpanaf Jun 23, 2025
6b60704
add stratefied rotation averaging for initialization
lpanaf Jun 23, 2025
3612ef6
rotation initializer
lpanaf Jun 27, 2025
e2c3223
gravity refinement with rig support
lpanaf Jul 3, 2025
2bbcab1
unit test for mapper. Include additional non-trivial rig test
lpanaf Jul 3, 2025
2f138be
unit test for RA. Add test for rig support
lpanaf Jul 3, 2025
8428239
add gravity aligned RA for rigs
lpanaf Jul 3, 2025
b7378c5
move the gravity property to frames
lpanaf Jul 3, 2025
cd1d0e1
add frame struct
lpanaf Jul 3, 2025
e9e2c62
pose io with gravity support
lpanaf Jul 3, 2025
1be6193
d
lpanaf Jul 3, 2025
4764d46
remove the old version
lpanaf Jul 3, 2025
8248df4
rename the rigged version back to normal
lpanaf Jul 3, 2025
742b0ef
name back the rigged version to default
lpanaf Jul 3, 2025
864f0a5
normalization with rig support
lpanaf Jul 3, 2025
a287a40
cleanup and add support for cam-to-cam constraints
lpanaf Jul 3, 2025
6387ac4
add reconstruction normalization
lpanaf Jul 3, 2025
68585e8
cleanup
lpanaf Jul 3, 2025
402be69
f
lpanaf Jul 3, 2025
cdb66d5
Merge branch 'main' into lpanaf/migrate_colmap
lpanaf Jul 3, 2025
4a5bba2
d
lpanaf Jul 3, 2025
064632b
d
lpanaf Jul 3, 2025
bbab4a7
f
lpanaf Jul 3, 2025
cba88c2
d
lpanaf Jul 3, 2025
fd5d237
d
lpanaf Jul 3, 2025
fe8dbf8
d
lpanaf Jul 3, 2025
900b7bd
d
lpanaf Jul 3, 2025
5caaf50
d
lpanaf Jul 4, 2025
4694f59
skip unconnected images
lpanaf Jul 4, 2025
7626fc4
f
lpanaf Jul 4, 2025
03ef6b5
Update glomap/controllers/global_mapper.cc
lpanaf Jul 5, 2025
83bf896
Update glomap/controllers/global_mapper.cc
lpanaf Jul 5, 2025
058fc1c
renaming
lpanaf Jul 21, 2025
779eda5
remove redundant files
lpanaf Jul 21, 2025
53da906
temp cam_from_world
lpanaf Jul 21, 2025
c46de0c
change version match to only consider the first two numbers
lpanaf Jul 21, 2025
a14bfb4
changed todo
lpanaf Jul 21, 2025
13404d4
renaming
lpanaf Jul 21, 2025
a6782be
refactor the code so the is_registered is a frame property
lpanaf Jul 21, 2025
ff30dfe
formulate the pruning with respect to frames
lpanaf Jul 21, 2025
6ecce39
Merge branch 'lpanaf/migrate_colmap' of github.com:colmap/glomap into…
lpanaf Jul 21, 2025
eea9594
m
lpanaf Jul 21, 2025
f927627
f
lpanaf Jul 21, 2025
75420c3
d
lpanaf Jul 21, 2025
f56ea3f
d
lpanaf Jul 21, 2025
4e84c8b
Merge branch 'main' into lpanaf/migrate_colmap
ahojnnes Aug 28, 2025
5c0455e
Update to latest colmap and poselib
ahojnnes Aug 28, 2025
7eac006
Update glomap/estimators/cost_function.h
lpanaf Sep 2, 2025
17727ea
Update glomap/estimators/gravity_refinement.cc
lpanaf Sep 2, 2025
68880aa
Update glomap/estimators/gravity_refinement.cc
lpanaf Sep 2, 2025
455b63d
address minor issues
lpanaf Sep 2, 2025
e389d8c
Merge branch 'lpanaf/migrate_colmap' of github.com:colmap/glomap into…
lpanaf Sep 2, 2025
966f7b3
clean up
lpanaf Sep 2, 2025
9b54bf9
f
lpanaf Sep 2, 2025
8880233
d
lpanaf Sep 2, 2025
79af753
cleanup
lpanaf Sep 2, 2025
9fa8c45
expose optimize_rig_poses in cli
lpanaf Sep 8, 2025
969035a
fix the bug for the reconstruction output when there are more than 1 …
lpanaf Sep 28, 2025
2c1c87c
f
lpanaf Sep 28, 2025
8100d69
make pair_id consistent with colmap
lpanaf Sep 28, 2025
09a4d3a
fix the bug for ba with rig calibration
lpanaf Oct 13, 2025
2ec0247
f
lpanaf Oct 13, 2025
4cdfedb
f
lpanaf Oct 13, 2025
3c62436
stablize the reconstruction by removing nearly degenerate points
lpanaf Oct 13, 2025
ccc7d29
d
ahojnnes Oct 23, 2025
8db2970
d
ahojnnes Oct 23, 2025
d02bf8d
d
ahojnnes Oct 23, 2025
eeac505
d
ahojnnes Oct 24, 2025
ece53ee
d
ahojnnes Oct 24, 2025
0ab5f85
d
ahojnnes Oct 24, 2025
8d637c6
d
ahojnnes Oct 26, 2025
a34b979
d
ahojnnes Oct 27, 2025
227de34
d
ahojnnes Oct 27, 2025
3d6d6c6
d
ahojnnes Oct 28, 2025
4a170f8
d
ahojnnes Oct 28, 2025
a84e18d
d
ahojnnes Oct 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@ Checks: >
performance-*,
concurrency-*,
bugprone-*,
-clang-analyzer-security.ArrayBound,
-bugprone-easily-swappable-parameters,
-bugprone-exception-escape,
-bugprone-implicit-widening-of-multiplication-result,
-bugprone-narrowing-conversions,
-bugprone-reserved-identifier,
-bugprone-unchecked-optional-access,
-performance-enum-size,
cppcoreguidelines-virtual-class-destructor,
google-explicit-constructor,
google-build-using-namespace,
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ jobs:

- name: Setup Mac
run: |
brew upgrade cmake || brew install cmake
brew install \
cmake \
ninja \
boost \
eigen \
Expand All @@ -56,6 +56,7 @@ jobs:
cgal \
sqlite3 \
ccache
brew link --force libomp

- name: Configure and build
run: |
Expand Down
35 changes: 24 additions & 11 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,41 +11,46 @@ on:

jobs:
build:
name: ${{ matrix.config.os }} ${{ matrix.config.cmakeBuildType }} ${{ matrix.config.cudaEnabled && 'CUDA' || '' }} ${{ matrix.config.asanEnabled && 'ASan' || '' }}
name: ${{ matrix.config.os }} ${{ matrix.config.cmakeBuildType }} ${{ matrix.config.cudaEnabled && 'CUDA' || '' }} ${{ matrix.config.asanEnabled && 'ASan' || '' }} ${{ matrix.config.coverageEnabled && 'Coverage' || '' }}
runs-on: ${{ matrix.config.os }}
strategy:
matrix:
config: [
{
os: ubuntu-24.04,
qtVersion: 6,
cmakeBuildType: RelWithDebInfo,
asanEnabled: false,
cudaEnabled: false,
checkCodeFormat: true,
},
{
os: ubuntu-22.04,
qtVersion: 6,
cmakeBuildType: Release,
asanEnabled: false,
cudaEnabled: false,
checkCodeFormat: true,
},
{
os: ubuntu-22.04,
qtVersion: 5,
cmakeBuildType: Release,
asanEnabled: false,
cudaEnabled: true,
checkCodeFormat: false,
},
{
os: ubuntu-22.04,
os: ubuntu-24.04,
qtVersion: 6,
cmakeBuildType: Release,
asanEnabled: true,
cudaEnabled: false,
checkCodeFormat: false,
},
{
os: ubuntu-22.04,
os: ubuntu-24.04,
qtVersion: 6,
cmakeBuildType: ClangTidy,
asanEnabled: false,
cudaEnabled: false,
Expand All @@ -59,6 +64,8 @@ jobs:
CCACHE_DIR: ${{ github.workspace }}/compiler-cache/ccache
CCACHE_BASEDIR: ${{ github.workspace }}
CTCACHE_DIR: ${{ github.workspace }}/compiler-cache/ctcache
GLOG_v: 2
GLOG_logtostderr: 1

steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -100,6 +107,12 @@ jobs:

- name: Setup Ubuntu
run: |
if [ "${{ matrix.config.qtVersion }}" == "5" ]; then
qt_packages="qtbase5-dev libqt5opengl5-dev libcgal-qt5-dev"
elif [ "${{ matrix.config.qtVersion }}" == "6" ]; then
qt_packages="qt6-base-dev libqt6opengl6-dev libqt6openglwidgets6"
fi

sudo apt-get update && sudo apt-get install -y \
build-essential \
cmake \
Expand All @@ -117,7 +130,7 @@ jobs:
libgmock-dev \
libsqlite3-dev \
libglew-dev \
qtbase5-dev \
$qt_packages \
libqt5opengl5-dev \
libcgal-dev \
libcgal-qt5-dev \
Expand Down Expand Up @@ -145,15 +158,15 @@ jobs:
fi

if [ "${{ matrix.config.asanEnabled }}" == "true" ]; then
sudo apt-get install -y clang-15 libomp-15-dev
echo "CC=/usr/bin/clang-15" >> $GITHUB_ENV
echo "CXX=/usr/bin/clang++-15" >> $GITHUB_ENV
sudo apt-get install -y clang-18 libomp-18-dev
echo "CC=/usr/bin/clang-18" >> $GITHUB_ENV
echo "CXX=/usr/bin/clang++-18" >> $GITHUB_ENV
fi

if [ "${{ matrix.config.cmakeBuildType }}" == "ClangTidy" ]; then
sudo apt-get install -y clang-15 clang-tidy-15 libomp-15-dev
echo "CC=/usr/bin/clang-15" >> $GITHUB_ENV
echo "CXX=/usr/bin/clang++-15" >> $GITHUB_ENV
sudo apt-get install -y clang-18 clang-tidy-18 libomp-18-dev
echo "CC=/usr/bin/clang-18" >> $GITHUB_ENV
echo "CXX=/usr/bin/clang++-18" >> $GITHUB_ENV
fi

- name: Upgrade CMake
Expand Down Expand Up @@ -183,7 +196,7 @@ jobs:

- name: Run tests
if: ${{ matrix.config.cmakeBuildType != 'ClangTidy' }}
run: |
run: |
export DISPLAY=":99.0"
export QT_QPA_PLATFORM="offscreen"
Xvfb :99 &
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/build
/data
/.vscode
/compile_commands.json
23 changes: 4 additions & 19 deletions cmake/FindDependencies.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ if(NOT TARGET SuiteSparse::CHOLMOD)
endif()
find_package(Ceres REQUIRED COMPONENTS SuiteSparse)
find_package(Boost REQUIRED)
find_package(OpenMP REQUIRED COMPONENTS C CXX)

if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
find_package(Glog REQUIRED)
Expand All @@ -26,7 +27,7 @@ endif()
include(FetchContent)
FetchContent_Declare(PoseLib
GIT_REPOSITORY https://github.com/PoseLib/PoseLib.git
GIT_TAG 0439b2d361125915b8821043fca9376e6cc575b9
GIT_TAG 7e9f5f53372e43f89655040d4dfc4a00e5ace11c # 2.0.5
EXCLUDE_FROM_ALL
SYSTEM
)
Expand All @@ -40,30 +41,14 @@ message(STATUS "Configuring PoseLib... done")

FetchContent_Declare(COLMAP
GIT_REPOSITORY https://github.com/colmap/colmap.git
GIT_TAG 78f1eefacae542d753c2e4f6a26771a0d976227d
GIT_TAG c5f9cefc87e5dd596b638e4cee0ff543c7d14755 # Oct 23 2025
EXCLUDE_FROM_ALL
)
message(STATUS "Configuring COLMAP...")
set(UNINSTALL_ENABLED OFF CACHE INTERNAL "")
set(GUI_ENABLED OFF CACHE INTERNAL "")
if (FETCH_COLMAP)
FetchContent_MakeAvailable(COLMAP)

# Define where to store the patch
set(COLMAP_PATCH_PATH ${CMAKE_BINARY_DIR}/fix_poisson.patch)

# Download the patch from GitHub
file(DOWNLOAD
https://github.com/colmap/colmap/commit/a586e7cb223cc86c609105246ecd3a10e0c55131.patch
${COLMAP_PATCH_PATH}
SHOW_PROGRESS
STATUS PATCH_DOWNLOAD_STATUS
)
# Apply the patch
execute_process(
COMMAND git apply ${COLMAP_PATCH_PATH}
WORKING_DIRECTORY ${colmap_SOURCE_DIR}
RESULT_VARIABLE PATCH_RESULT
)
else()
find_package(COLMAP REQUIRED)
endif()
Expand Down
7 changes: 5 additions & 2 deletions glomap/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ set(SOURCES
estimators/global_rotation_averaging.cc
estimators/gravity_refinement.cc
estimators/relpose_estimation.cc
estimators/rotation_initializer.cc
estimators/view_graph_calibration.cc
io/colmap_converter.cc
io/colmap_io.cc
Expand Down Expand Up @@ -38,8 +39,9 @@ set(HEADERS
estimators/global_positioning.h
estimators/global_rotation_averaging.h
estimators/gravity_refinement.h
estimators/relpose_estimation.h
estimators/optimization_base.h
estimators/relpose_estimation.h
estimators/rotation_initializer.h
estimators/view_graph_calibration.h
io/colmap_converter.h
io/colmap_io.h
Expand All @@ -58,6 +60,7 @@ set(HEADERS
processors/track_filter.h
processors/view_graph_manipulation.h
scene/camera.h
scene/frame.h
scene/image_pair.h
scene/image.h
scene/track.h
Expand All @@ -84,6 +87,7 @@ target_link_libraries(
Eigen3::Eigen
Ceres::ceres
SuiteSparse::CHOLMOD
OpenMP::OpenMP_CXX
${BOOST_LIBRARIES}
)
target_include_directories(glomap PUBLIC ..)
Expand Down Expand Up @@ -112,7 +116,6 @@ target_link_libraries(glomap_main glomap)
set_target_properties(glomap_main PROPERTIES OUTPUT_NAME glomap)
install(TARGETS glomap_main DESTINATION bin)


if(TESTS_ENABLED)
add_executable(glomap_test
controllers/global_mapper_test.cc
Expand Down
Loading
Loading