Skip to content

Commit e7cb35c

Browse files
committed
Implemented suggested bug fixes
1 parent e898504 commit e7cb35c

File tree

6 files changed

+57
-58
lines changed

6 files changed

+57
-58
lines changed

CMakeLists.txt

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set(CMAKE_BUILD_TYPE None)
66

77
# Set our own specific flags. Want something like RelWithDebInfo but without the
88
# -DNDEBUG flag that disables asserts
9-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++0x -march=core2 -msse3 -O1 -g")
9+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++0x -march=core2 -msse3 -O3 -g -fopenmp")
1010

1111
# Find various packages in order to set up environment variables
1212
find_package(catkin REQUIRED COMPONENTS roscpp image_transport sensor_msgs cv_bridge geometry_msgs tf message_filters std_msgs
@@ -19,12 +19,13 @@ find_package(OpenCV REQUIRED)
1919
find_package(GLUT REQUIRED)
2020
find_package(G2O REQUIRED)
2121
find_package(GVars3 REQUIRED)
22-
find_package(OpenCV REQUIRED)
22+
find_package(BLAS REQUIRED)
23+
find_package(LAPACK REQUIRED)
2324

2425
include_directories(include ${catkin_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${SUITESPARSE_INCLUDE_DIRS} ${CVD_INCLUDE_DIR}
2526
${GVars3_INCLUDE_DIR} ${OpenCV_INCLUDE_DIRS})
2627

27-
link_directories(${catkin_LIBRARY_DIRS} ${Boost_LIBRARY_DIRS} ${SUITESPARSE_LIBRARY_DIRS} ${OpenCV_LIB_DIR})
28+
link_directories(${catkin_LIBRARY_DIRS} ${Boost_LIBRARY_DIRS} ${SUITESPARSE_LIBRARY_DIRS} ${OpenCV_LIB_DIR} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
2829

2930
add_message_files(
3031
DIRECTORY msg
@@ -52,30 +53,32 @@ add_executable(mcptam src/Main.cc src/GLWindow2.cc src/GLWindowMenu.cc src/Video
5253
src/PatchFinder.cc src/Relocaliser.cc src/Tracker.cc src/KeyFrameViewer.cc
5354
src/BundleAdjusterBase.cc src/MiniPatch.cc src/BundleAdjusterMulti.cc src/ChainBundle.cc)
5455
add_dependencies(mcptam ${PROJECT_NAME}_gencpp)
55-
target_link_libraries(mcptam ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${SUITESPARSE_LIBRARIES} ${CVD_LIBRARY} ${OPENGL_gl_LIBRARY} ${GVars3_LIBRARIES}
56-
${G2O_STUFF_LIBRARY} ${G2O_CORE_LIBRARY} ${G2O_SOLVER_CHOLMOD} ${OpenCV_LIBS})
56+
target_link_libraries(mcptam ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${SUITESPARSE_LIBRARIES} ${CVD_LIBRARY} ${OPENGL_gl_LIBRARY} ${OpenCV_LIBS} ${GVars3_LIBRARIES}
57+
${G2O_STUFF_LIBRARY} ${G2O_CORE_LIBRARY} ${G2O_SOLVER_CHOLMOD} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
5758

5859
add_executable(mcptam_client src/MainClient.cc src/GLWindow2.cc src/GLWindowMenu.cc src/VideoSourceMulti.cc src/CameraGroupSubscriber.cc
5960
src/SystemBase.cc src/SystemFrontendBase.cc src/SystemClient.cc src/TaylorCamera.cc src/KeyFrame.cc src/MapPoint.cc src/Map.cc
6061
src/SmallBlurryImage.cc src/ShiTomasi.cc src/MapMakerClient.cc src/MapMakerBase.cc src/MapMakerClientBase.cc
6162
src/NetworkManager.cc src/PatchFinder.cc src/Relocaliser.cc src/MiniPatch.cc
6263
src/Tracker.cc src/KeyFrameViewer.cc)
6364
add_dependencies(mcptam_client ${PROJECT_NAME}_gencpp)
64-
target_link_libraries(mcptam_client ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${SUITESPARSE_LIBRARIES} ${CVD_LIBRARY} ${OPENGL_gl_LIBRARY} ${GVars3_LIBRARIES} ${OpenCV_LIBS})
65+
target_link_libraries(mcptam_client ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${SUITESPARSE_LIBRARIES} ${CVD_LIBRARY} ${OPENGL_gl_LIBRARY} ${OpenCV_LIBS} ${GVars3_LIBRARIES}
66+
${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
6567

6668
add_executable(mcptam_server src/MainServer.cc src/GLWindow2.cc src/GLWindowMenu.cc src/VideoSourceMulti.cc src/CameraGroupSubscriber.cc
6769
src/SystemBase.cc src/SystemServer.cc src/TaylorCamera.cc src/KeyFrame.cc src/MapPoint.cc src/Map.cc
6870
src/SmallBlurryImage.cc src/ShiTomasi.cc src/MapMakerServer.cc src/MapMakerBase.cc src/MapMakerServerBase.cc
6971
src/NetworkManager.cc src/PatchFinder.cc src/KeyFrameViewer.cc src/MiniPatch.cc
7072
src/BundleAdjusterBase.cc src/BundleAdjusterMulti.cc src/ChainBundle.cc)
7173
add_dependencies(mcptam_server ${PROJECT_NAME}_gencpp)
72-
target_link_libraries(mcptam_server ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${SUITESPARSE_LIBRARIES} ${CVD_LIBRARY} ${OPENGL_gl_LIBRARY} ${GVars3_LIBRARIES}
73-
${G2O_STUFF_LIBRARY} ${G2O_CORE_LIBRARY} ${G2O_SOLVER_CHOLMOD} ${OpenCV_LIBS})
74+
target_link_libraries(mcptam_server ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${SUITESPARSE_LIBRARIES} ${CVD_LIBRARY} ${OPENGL_gl_LIBRARY} ${OpenCV_LIBS} ${GVars3_LIBRARIES}
75+
${G2O_STUFF_LIBRARY} ${G2O_CORE_LIBRARY} ${G2O_SOLVER_CHOLMOD} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
7476

7577
add_executable(camera_calibrator src/MainCameraCalibrator.cc src/GLWindow2.cc src/GLWindowMenu.cc src/VideoSourceSingle.cc
7678
src/CameraCalibrator.cc src/CalibImageTaylor.cc src/CalibCornerPatch.cc src/TaylorCamera.cc src/CalibGridCorner.cc)
7779
add_dependencies(camera_calibrator ${PROJECT_NAME}_gencpp)
78-
target_link_libraries(camera_calibrator ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${SUITESPARSE_LIBRARIES} ${CVD_LIBRARY} ${OPENGL_gl_LIBRARY} ${GVars3_LIBRARIES} ${OpenCV_LIBS})
80+
target_link_libraries(camera_calibrator ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${SUITESPARSE_LIBRARIES} ${CVD_LIBRARY} ${OPENGL_gl_LIBRARY} ${OpenCV_LIBS} ${GVars3_LIBRARIES}
81+
${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
7982

8083
add_executable(pose_calibrator src/MainPoseCalibrator.cc src/GLWindow2.cc src/GLWindowMenu.cc src/VideoSourceMulti.cc src/CameraGroupSubscriber.cc
8184
src/SystemBase.cc src/PoseCalibrator.cc src/CalibImageTaylor.cc src/CalibCornerPatch.cc src/CalibGridCorner.cc
@@ -84,8 +87,8 @@ add_executable(pose_calibrator src/MainPoseCalibrator.cc src/GLWindow2.cc src/GL
8487
src/PatchFinder.cc src/Relocaliser.cc src/Tracker.cc src/KeyFrameViewer.cc
8588
src/BundleAdjusterBase.cc src/BundleAdjusterSingle.cc src/BundleAdjusterCalib.cc src/ChainBundle.cc src/MiniPatch.cc)
8689
add_dependencies(pose_calibrator ${PROJECT_NAME}_gencpp)
87-
target_link_libraries(pose_calibrator ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${SUITESPARSE_LIBRARIES} ${CVD_LIBRARY} ${OPENGL_gl_LIBRARY} ${GVars3_LIBRARIES}
88-
${G2O_STUFF_LIBRARY} ${G2O_CORE_LIBRARY} ${G2O_SOLVER_CHOLMOD} ${OpenCV_LIBS})
90+
target_link_libraries(pose_calibrator ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${SUITESPARSE_LIBRARIES} ${CVD_LIBRARY} ${OPENGL_gl_LIBRARY} ${OpenCV_LIBS} ${GVars3_LIBRARIES}
91+
${G2O_STUFF_LIBRARY} ${G2O_CORE_LIBRARY} ${G2O_SOLVER_CHOLMOD} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
8992

9093
install(TARGETS mcptam mcptam_client mcptam_server camera_calibrator pose_calibrator
9194
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}

cmake_modules/FindSUITESPARSE.cmake

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -38,67 +38,62 @@ if( WIN32 )
3838
ENDIF( SUITESPARSE_LIBRARY_DIRS )
3939

4040
else( WIN32 )
41-
IF( APPLE)
41+
IF(APPLE)
4242
FIND_PATH( CHOLMOD_INCLUDE_DIR cholmod.h
43-
PATHS /opt/local/include/ufsparse )
43+
PATHS /opt/local/include/ufsparse
44+
/usr/local/include )
4445

4546
FIND_PATH( SUITESPARSE_LIBRARY_DIR
46-
NAMES libSuiteSparse.dylib
47-
PATHS /opt/local/lib )
48-
49-
list ( APPEND SUITESPARSE_LIBRARY_DIRS ${SUITESPARSE_LIBRARY_DIR} )
50-
51-
list ( APPEND SUITESPARSE_LIBRARIES SuiteSparse)
52-
47+
NAMES libcholmod.a
48+
PATHS /opt/local/lib
49+
/usr/local/lib )
5350
ELSE(APPLE)
5451
FIND_PATH( CHOLMOD_INCLUDE_DIR cholmod.h
5552
PATHS /usr/local/include
5653
/usr/include
5754
/usr/include/suitesparse/
5855
${CMAKE_SOURCE_DIR}/MacOS/Libs/cholmod
5956
PATH_SUFFIXES cholmod/ CHOLMOD/ )
60-
6157

6258
FIND_PATH( SUITESPARSE_LIBRARY_DIR
63-
NAMES libcholmod.so
59+
NAMES libcholmod.so libcholmod.a
6460
PATHS /usr/lib
65-
/usr/lib64
61+
/usr/lib64
62+
/usr/lib/x86_64-linux-gnu
63+
/usr/lib/i386-linux-gnu
6664
/usr/local/lib )
67-
68-
6965
ENDIF(APPLE)
7066

7167
# Add cholmod include directory to collection include directories
7268
IF ( CHOLMOD_INCLUDE_DIR )
7369
list ( APPEND SUITESPARSE_INCLUDE_DIRS ${CHOLMOD_INCLUDE_DIR} )
7470
ENDIF( CHOLMOD_INCLUDE_DIR )
7571

76-
7772
# if we found the library, add it to the defined libraries
7873
IF ( SUITESPARSE_LIBRARY_DIR )
7974

80-
# Skipped, as this is set for apple in the block above
81-
if (NOT APPLE)
82-
list ( APPEND SUITESPARSE_LIBRARIES amd)
83-
list ( APPEND SUITESPARSE_LIBRARIES btf)
84-
list ( APPEND SUITESPARSE_LIBRARIES camd)
85-
list ( APPEND SUITESPARSE_LIBRARIES ccolamd)
86-
list ( APPEND SUITESPARSE_LIBRARIES cholmod)
87-
list ( APPEND SUITESPARSE_LIBRARIES colamd)
88-
# list ( APPEND SUITESPARSE_LIBRARIES csparse)
89-
list ( APPEND SUITESPARSE_LIBRARIES cxsparse)
90-
list ( APPEND SUITESPARSE_LIBRARIES klu)
91-
# list ( APPEND SUITESPARSE_LIBRARIES spqr)
92-
list ( APPEND SUITESPARSE_LIBRARIES umfpack)
93-
list ( APPEND SUITESPARSE_LIBRARIES lapack)
94-
endif()
95-
75+
list ( APPEND SUITESPARSE_LIBRARIES amd)
76+
list ( APPEND SUITESPARSE_LIBRARIES btf)
77+
list ( APPEND SUITESPARSE_LIBRARIES camd)
78+
list ( APPEND SUITESPARSE_LIBRARIES ccolamd)
79+
list ( APPEND SUITESPARSE_LIBRARIES cholmod)
80+
list ( APPEND SUITESPARSE_LIBRARIES colamd)
81+
# list ( APPEND SUITESPARSE_LIBRARIES csparse)
82+
list ( APPEND SUITESPARSE_LIBRARIES cxsparse)
83+
list ( APPEND SUITESPARSE_LIBRARIES klu)
84+
# list ( APPEND SUITESPARSE_LIBRARIES spqr)
85+
list ( APPEND SUITESPARSE_LIBRARIES umfpack)
86+
87+
IF (APPLE)
88+
list ( APPEND SUITESPARSE_LIBRARIES suitesparseconfig)
89+
ENDIF (APPLE)
90+
9691
# Metis and spqr are optional
9792
FIND_LIBRARY( SUITESPARSE_METIS_LIBRARY
9893
NAMES metis
9994
PATHS ${SUITESPARSE_LIBRARY_DIR} )
10095
IF (SUITESPARSE_METIS_LIBRARY)
101-
list ( APPEND SUITESPARSE_LIBRARIES ${SUITESPARSE_METIS_LIBRARY})
96+
list ( APPEND SUITESPARSE_LIBRARIES metis)
10297
ENDIF(SUITESPARSE_METIS_LIBRARY)
10398

10499
if(EXISTS "${CHOLMOD_INCLUDE_DIR}/SuiteSparseQR.hpp")
@@ -120,11 +115,14 @@ else( WIN32 )
120115

121116
endif( WIN32 )
122117

118+
123119
IF (SUITESPARSE_INCLUDE_DIRS AND SUITESPARSE_LIBRARIES)
124120
IF(WIN32)
125121
list (APPEND SUITESPARSE_INCLUDE_DIRS ${CHOLMOD_INCLUDE_DIR}/../../UFconfig )
126122
ENDIF(WIN32)
127123
SET(SUITESPARSE_FOUND TRUE)
124+
MESSAGE(STATUS "Found SuiteSparse")
128125
ELSE (SUITESPARSE_INCLUDE_DIRS AND SUITESPARSE_LIBRARIES)
129126
SET( SUITESPARSE_FOUND FALSE )
127+
MESSAGE(FATAL_ERROR "Unable to find SuiteSparse")
130128
ENDIF (SUITESPARSE_INCLUDE_DIRS AND SUITESPARSE_LIBRARIES)

launch/mcptam.launch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@
2121
<param name="camera_pose_file" type="string" value="$(find mcptam)/poses/poses.dat" />
2222
-->
2323

24+
<!--
2425
<rosparam command="load" file="$(find mcptam)/masks/masks_1,2,3,4.yaml" />
2526
<param name="masks_dir" type="string" value="$(find mcptam)/masks" />
27+
-->
2628

2729
<param name="mm_init_point_mode" type="string" value="$(arg init_mode)" />
2830
<param name="mm_init_point_max_num" type="int" value="200" />
@@ -38,9 +40,7 @@
3840
<param name="headless" type="bool" value="$(arg headless)" />
3941
</node>
4042

41-
<!--
4243
<node pkg="tf" type="static_transform_publisher" name="world_tf" args="0 0 0 0 0 3.14159 world vision_world 100" />
43-
-->
4444

4545
</launch>
4646

launch/pose_calibrator.launch

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,20 @@
1717
<param name="kf_adaptive_thresh" type="bool" value="false" />
1818
<param name="mm_large_point_test" type="bool" value="false" />
1919

20+
<!--
2021
<rosparam command="load" file="$(find mcptam)/masks/masks_1,2,3,4.yaml" />
2122
<param name="masks_dir" type="string" value="$(find mcptam)/masks" />
23+
-->
2224

25+
<!--
2326
<param name="pose_out_file" type="string" value="$(find mcptam)/poses/poses.dat" />
27+
-->
2428

2529
</node>
2630

31+
<!--
2732
<node pkg="tf" type="static_transform_publisher" name="world_tf" args="0 0 0 -0.5 0.5 -0.5 0.5 world vision_world 100" />
33+
-->
2834

2935
</launch>
3036

package.xml

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<package>
22
<name>mcptam</name>
3-
<version>0.1.1</version>
3+
<version>0.1.2</version>
44
<description>
55
MCPTAM
66
</description>
77
<author>Adam Harmat, Michael Tribou</author>
88
<maintainer email="adam.harmat@mail.mcgill.ca">Adam Harmat</maintainer>
9-
<license>see http://www.robots.ox.ac.uk/~gk/PTAM/download.html</license>
10-
<url>http://ros.org/wiki/mcptam</url>
9+
<license>GPV v3 http://www.gnu.org/licenses/gpl-3.0.html</license>
10+
<url>https://github.com/aharmat/mcptam/wiki</url>
1111

1212
<buildtool_depend>catkin</buildtool_depend>
1313

@@ -23,10 +23,6 @@
2323
<build_depend>visualization_msgs</build_depend>
2424
<build_depend>dynamic_reconfigure</build_depend>
2525
<build_depend>pcl_ros</build_depend>
26-
<build_depend>suitesparse</build_depend>
27-
<build_depend>cvd</build_depend>
28-
<build_depend>GVars3</build_depend>
29-
<build_depend>OpenGL</build_depend>
3026
<build_depend>message_generation</build_depend>
3127
<build_depend>libg2o</build_depend>
3228

@@ -42,10 +38,6 @@
4238
<run_depend>visualization_msgs</run_depend>
4339
<run_depend>dynamic_reconfigure</run_depend>
4440
<run_depend>pcl_ros</run_depend>
45-
<run_depend>suitesparse</run_depend>
46-
<run_depend>cvd</run_depend>
47-
<run_depend>GVars3</run_depend>
48-
<run_depend>OpenGL</run_depend>
4941
<run_depend>message_runtime</run_depend>
5042
<run_depend>libg2o</run_depend>
5143

src/ChainBundle.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -436,11 +436,11 @@ class EdgeChainMeas : public g2o::BaseMultiEdge<2, TooN::Vector<2> >
436436

437437
/*
438438
// Option 1:
439-
std::vector<JacobianType, g2o::aligned_allocator<JacobianType> > _jacobianOplusTemp(_vertices.size());
439+
std::vector<JacobianType, Eigen::aligned_allocator<JacobianType> > _jacobianOplusTemp(_vertices.size());
440440
*/
441441

442442
// Option 2:
443-
std::vector<JacobianType, g2o::aligned_allocator<JacobianType> >& _jacobianOplusTemp = _jacobianOplus;
443+
std::vector<JacobianType, Eigen::aligned_allocator<JacobianType> >& _jacobianOplusTemp = _jacobianOplus;
444444

445445
const VertexRelPoint* pPointVertex = dynamic_cast<const VertexRelPoint*>(_vertices.back());
446446
ROS_ASSERT(pPointVertex);

0 commit comments

Comments
 (0)