Merge branch 'develop' into feature/frobeniusfactor
commit
1c9f429d9c
|
@ -63,7 +63,7 @@ function configure()
|
||||||
-DGTSAM_BUILD_EXAMPLES_ALWAYS=${GTSAM_BUILD_EXAMPLES_ALWAYS:-ON} \
|
-DGTSAM_BUILD_EXAMPLES_ALWAYS=${GTSAM_BUILD_EXAMPLES_ALWAYS:-ON} \
|
||||||
-DGTSAM_ALLOW_DEPRECATED_SINCE_V4=${GTSAM_ALLOW_DEPRECATED_SINCE_V4:-OFF} \
|
-DGTSAM_ALLOW_DEPRECATED_SINCE_V4=${GTSAM_ALLOW_DEPRECATED_SINCE_V4:-OFF} \
|
||||||
-DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF \
|
-DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF \
|
||||||
-DCMAKE_VERBOSE_MAKEFILE=ON
|
-DCMAKE_VERBOSE_MAKEFILE=OFF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,8 @@ addons:
|
||||||
- clang-9
|
- clang-9
|
||||||
- build-essential pkg-config
|
- build-essential pkg-config
|
||||||
- cmake
|
- cmake
|
||||||
- libpython-dev python-numpy
|
- python3-dev libpython-dev
|
||||||
|
- python3-numpy
|
||||||
- libboost-all-dev
|
- libboost-all-dev
|
||||||
|
|
||||||
# before_install:
|
# before_install:
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
Cython>=0.25.2
|
Cython>=0.25.2
|
||||||
backports_abc>=0.5
|
backports_abc>=0.5
|
||||||
numpy>=1.12.0
|
numpy>=1.11.0
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
#include <boost/assign/list_inserter.hpp>
|
#include <boost/assign/list_inserter.hpp>
|
||||||
#include <boost/filesystem/operations.hpp>
|
#include <boost/filesystem/operations.hpp>
|
||||||
#include <boost/filesystem/path.hpp>
|
#include <boost/filesystem/path.hpp>
|
||||||
|
#include <boost/optional.hpp>
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
@ -541,10 +542,16 @@ std::map<Key, Pose3> parse3DPoses(const string& filename) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
BetweenFactorPose3s parse3DFactors(const string& filename) {
|
BetweenFactorPose3s parse3DFactors(const string& filename,
|
||||||
|
const noiseModel::Diagonal::shared_ptr& corruptingNoise) {
|
||||||
ifstream is(filename.c_str());
|
ifstream is(filename.c_str());
|
||||||
if (!is) throw invalid_argument("parse3DFactors: can not find file " + filename);
|
if (!is) throw invalid_argument("parse3DFactors: can not find file " + filename);
|
||||||
|
|
||||||
|
boost::optional<Sampler> sampler;
|
||||||
|
if (corruptingNoise) {
|
||||||
|
sampler = Sampler(corruptingNoise);
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<BetweenFactor<Pose3>::shared_ptr> factors;
|
std::vector<BetweenFactor<Pose3>::shared_ptr> factors;
|
||||||
while (!is.eof()) {
|
while (!is.eof()) {
|
||||||
char buf[LINESIZE];
|
char buf[LINESIZE];
|
||||||
|
@ -585,8 +592,13 @@ BetweenFactorPose3s parse3DFactors(const string& filename) {
|
||||||
mgtsam.block<3, 3>(3, 0) = m.block<3, 3>(3, 0); // off diagonal
|
mgtsam.block<3, 3>(3, 0) = m.block<3, 3>(3, 0); // off diagonal
|
||||||
|
|
||||||
SharedNoiseModel model = noiseModel::Gaussian::Information(mgtsam);
|
SharedNoiseModel model = noiseModel::Gaussian::Information(mgtsam);
|
||||||
|
auto R12 = Rot3::Quaternion(qw, qx, qy, qz);
|
||||||
|
if (sampler) {
|
||||||
|
R12 = R12.retract(sampler->sample());
|
||||||
|
}
|
||||||
|
|
||||||
factors.emplace_back(new BetweenFactor<Pose3>(
|
factors.emplace_back(new BetweenFactor<Pose3>(
|
||||||
id1, id2, Pose3(Rot3::Quaternion(qw, qx, qy, qz), {x, y, z}), model));
|
id1, id2, Pose3(R12, {x, y, z}), model));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return factors;
|
return factors;
|
||||||
|
|
|
@ -159,7 +159,8 @@ GTSAM_EXPORT void writeG2o(const NonlinearFactorGraph& graph,
|
||||||
|
|
||||||
/// Parse edges in 3D TORO graph file into a set of BetweenFactors.
|
/// Parse edges in 3D TORO graph file into a set of BetweenFactors.
|
||||||
using BetweenFactorPose3s = std::vector<gtsam::BetweenFactor<Pose3>::shared_ptr>;
|
using BetweenFactorPose3s = std::vector<gtsam::BetweenFactor<Pose3>::shared_ptr>;
|
||||||
GTSAM_EXPORT BetweenFactorPose3s parse3DFactors(const std::string& filename);
|
GTSAM_EXPORT BetweenFactorPose3s parse3DFactors(const std::string& filename,
|
||||||
|
const noiseModel::Diagonal::shared_ptr& corruptingNoise=nullptr);
|
||||||
|
|
||||||
/// Parse vertices in 3D TORO graph file into a map of Pose3s.
|
/// Parse vertices in 3D TORO graph file into a map of Pose3s.
|
||||||
GTSAM_EXPORT std::map<Key, Pose3> parse3DPoses(const std::string& filename);
|
GTSAM_EXPORT std::map<Key, Pose3> parse3DPoses(const std::string& filename);
|
||||||
|
|
|
@ -9,5 +9,6 @@ set (GTSAM_USE_TBB @GTSAM_USE_TBB@)
|
||||||
set (GTSAM_DEFAULT_ALLOCATOR @GTSAM_DEFAULT_ALLOCATOR@)
|
set (GTSAM_DEFAULT_ALLOCATOR @GTSAM_DEFAULT_ALLOCATOR@)
|
||||||
|
|
||||||
if("@GTSAM_INSTALL_CYTHON_TOOLBOX@")
|
if("@GTSAM_INSTALL_CYTHON_TOOLBOX@")
|
||||||
|
list(APPEND GTSAM_CYTHON_INSTALL_PATH "@GTSAM_CYTHON_INSTALL_PATH@")
|
||||||
list(APPEND GTSAM_EIGENCY_INSTALL_PATH "@GTSAM_EIGENCY_INSTALL_PATH@")
|
list(APPEND GTSAM_EIGENCY_INSTALL_PATH "@GTSAM_EIGENCY_INSTALL_PATH@")
|
||||||
endif()
|
endif()
|
||||||
|
|
Loading…
Reference in New Issue