cython wrap unstable
parent
a6281e1932
commit
d18e638b08
|
@ -1 +1,2 @@
|
||||||
from gtsam import *
|
from gtsam import *
|
||||||
|
from gtsam_unstable import *
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
from distutils.core import setup
|
||||||
|
from distutils.extension import Extension
|
||||||
|
from Cython.Build import cythonize
|
||||||
|
import eigency
|
||||||
|
|
||||||
|
setup(
|
||||||
|
ext_modules=cythonize(Extension(
|
||||||
|
"gtsam_unstable",
|
||||||
|
sources=["gtsam_unstable.pyx"],
|
||||||
|
include_dirs = ["${CMAKE_SOURCE_DIR}", "${CMAKE_BINARY_DIR}",
|
||||||
|
"${CMAKE_SOURCE_DIR}/gtsam/3rdparty/Eigen"
|
||||||
|
] + eigency.get_includes(include_eigen=False),
|
||||||
|
libraries=['gtsam', 'gtsam_unstable'],
|
||||||
|
library_dirs=["${GTSAM_DIR}/../../"],
|
||||||
|
language="c++",
|
||||||
|
extra_compile_args=["-std=c++11"])),
|
||||||
|
)
|
||||||
|
|
|
@ -118,6 +118,20 @@ if (GTSAM_INSTALL_MATLAB_TOOLBOX)
|
||||||
wrap_and_install_library(gtsam_unstable.h "gtsam" "" "${mexFlags}")
|
wrap_and_install_library(gtsam_unstable.h "gtsam" "" "${mexFlags}")
|
||||||
endif(GTSAM_INSTALL_MATLAB_TOOLBOX)
|
endif(GTSAM_INSTALL_MATLAB_TOOLBOX)
|
||||||
|
|
||||||
|
# Cython wrap for gtsam_unstable
|
||||||
|
# Create the matlab toolbox for the gtsam library
|
||||||
|
if (GTSAM_INSTALL_CYTHON_TOOLBOX)
|
||||||
|
# Set up codegen
|
||||||
|
include(GtsamCythonWrap)
|
||||||
|
|
||||||
|
# Wrap
|
||||||
|
wrap_and_install_library_cython("../gtsam_unstable/gtsam_unstable.h" # interface_header
|
||||||
|
"from gtsam.gtsam cimport *" # extra imports
|
||||||
|
"../cython/gtsam_unstable" # path to setup.py.in
|
||||||
|
"${GTSAM_CYTHON_INSTALL_PATH}/gtsam" # install path
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
|
||||||
# Build examples
|
# Build examples
|
||||||
add_subdirectory(examples)
|
add_subdirectory(examples)
|
||||||
|
|
||||||
|
|
|
@ -276,7 +276,7 @@ class SimPolygon2D {
|
||||||
// Nonlinear factors from gtsam, for our Value types
|
// Nonlinear factors from gtsam, for our Value types
|
||||||
#include <gtsam/slam/PriorFactor.h>
|
#include <gtsam/slam/PriorFactor.h>
|
||||||
template<T = {gtsam::PoseRTV}>
|
template<T = {gtsam::PoseRTV}>
|
||||||
virtual class PriorFactor : gtsam::NonlinearFactor {
|
virtual class PriorFactor : gtsam::NoiseModelFactor {
|
||||||
PriorFactor(size_t key, const T& prior, const gtsam::noiseModel::Base* noiseModel);
|
PriorFactor(size_t key, const T& prior, const gtsam::noiseModel::Base* noiseModel);
|
||||||
|
|
||||||
void serializable() const; // enabling serialization functionality
|
void serializable() const; // enabling serialization functionality
|
||||||
|
@ -285,7 +285,7 @@ virtual class PriorFactor : gtsam::NonlinearFactor {
|
||||||
|
|
||||||
#include <gtsam/slam/BetweenFactor.h>
|
#include <gtsam/slam/BetweenFactor.h>
|
||||||
template<T = {gtsam::PoseRTV}>
|
template<T = {gtsam::PoseRTV}>
|
||||||
virtual class BetweenFactor : gtsam::NonlinearFactor {
|
virtual class BetweenFactor : gtsam::NoiseModelFactor {
|
||||||
BetweenFactor(size_t key1, size_t key2, const T& relativePose, const gtsam::noiseModel::Base* noiseModel);
|
BetweenFactor(size_t key1, size_t key2, const T& relativePose, const gtsam::noiseModel::Base* noiseModel);
|
||||||
|
|
||||||
void serializable() const; // enabling serialization functionality
|
void serializable() const; // enabling serialization functionality
|
||||||
|
@ -363,13 +363,13 @@ virtual class SmartRangeFactor : gtsam::NoiseModelFactor {
|
||||||
|
|
||||||
void addRange(size_t key, double measuredRange);
|
void addRange(size_t key, double measuredRange);
|
||||||
gtsam::Point2 triangulate(const gtsam::Values& x) const;
|
gtsam::Point2 triangulate(const gtsam::Values& x) const;
|
||||||
void print(string s) const;
|
//void print(string s) const;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#include <gtsam/sam/RangeFactor.h>
|
#include <gtsam/sam/RangeFactor.h>
|
||||||
template<POSE, POINT>
|
template<POSE, POINT>
|
||||||
virtual class RangeFactor : gtsam::NonlinearFactor {
|
virtual class RangeFactor : gtsam::NoiseModelFactor {
|
||||||
RangeFactor(size_t key1, size_t key2, double measured, const gtsam::noiseModel::Base* noiseModel);
|
RangeFactor(size_t key1, size_t key2, double measured, const gtsam::noiseModel::Base* noiseModel);
|
||||||
|
|
||||||
void serializable() const; // enabling serialization functionality
|
void serializable() const; // enabling serialization functionality
|
||||||
|
@ -380,7 +380,7 @@ typedef gtsam::RangeFactor<gtsam::PoseRTV, gtsam::PoseRTV> RangeFactorRTV;
|
||||||
|
|
||||||
#include <gtsam/nonlinear/NonlinearEquality.h>
|
#include <gtsam/nonlinear/NonlinearEquality.h>
|
||||||
template<T = {gtsam::PoseRTV}>
|
template<T = {gtsam::PoseRTV}>
|
||||||
virtual class NonlinearEquality : gtsam::NonlinearFactor {
|
virtual class NonlinearEquality : gtsam::NoiseModelFactor {
|
||||||
// Constructor - forces exact evaluation
|
// Constructor - forces exact evaluation
|
||||||
NonlinearEquality(size_t j, const T& feasible);
|
NonlinearEquality(size_t j, const T& feasible);
|
||||||
// Constructor - allows inexact evaluation
|
// Constructor - allows inexact evaluation
|
||||||
|
@ -391,7 +391,7 @@ virtual class NonlinearEquality : gtsam::NonlinearFactor {
|
||||||
|
|
||||||
#include <gtsam_unstable/dynamics/IMUFactor.h>
|
#include <gtsam_unstable/dynamics/IMUFactor.h>
|
||||||
template<POSE = {gtsam::PoseRTV}>
|
template<POSE = {gtsam::PoseRTV}>
|
||||||
virtual class IMUFactor : gtsam::NonlinearFactor {
|
virtual class IMUFactor : gtsam::NoiseModelFactor {
|
||||||
/** Standard constructor */
|
/** Standard constructor */
|
||||||
IMUFactor(Vector accel, Vector gyro,
|
IMUFactor(Vector accel, Vector gyro,
|
||||||
double dt, size_t key1, size_t key2, const gtsam::noiseModel::Base* model);
|
double dt, size_t key1, size_t key2, const gtsam::noiseModel::Base* model);
|
||||||
|
@ -409,7 +409,7 @@ virtual class IMUFactor : gtsam::NonlinearFactor {
|
||||||
|
|
||||||
#include <gtsam_unstable/dynamics/FullIMUFactor.h>
|
#include <gtsam_unstable/dynamics/FullIMUFactor.h>
|
||||||
template<POSE = {gtsam::PoseRTV}>
|
template<POSE = {gtsam::PoseRTV}>
|
||||||
virtual class FullIMUFactor : gtsam::NonlinearFactor {
|
virtual class FullIMUFactor : gtsam::NoiseModelFactor {
|
||||||
/** Standard constructor */
|
/** Standard constructor */
|
||||||
FullIMUFactor(Vector accel, Vector gyro,
|
FullIMUFactor(Vector accel, Vector gyro,
|
||||||
double dt, size_t key1, size_t key2, const gtsam::noiseModel::Base* model);
|
double dt, size_t key1, size_t key2, const gtsam::noiseModel::Base* model);
|
||||||
|
@ -425,13 +425,11 @@ virtual class FullIMUFactor : gtsam::NonlinearFactor {
|
||||||
size_t key2() const;
|
size_t key2() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#include <gtsam_unstable/dynamics/DynamicsPriors.h>
|
#include <gtsam_unstable/dynamics/DynamicsPriors.h>
|
||||||
virtual class DHeightPrior : gtsam::NonlinearFactor {
|
virtual class DHeightPrior : gtsam::NonlinearFactor {
|
||||||
DHeightPrior(size_t key, double height, const gtsam::noiseModel::Base* model);
|
DHeightPrior(size_t key, double height, const gtsam::noiseModel::Base* model);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
virtual class DRollPrior : gtsam::NonlinearFactor {
|
virtual class DRollPrior : gtsam::NonlinearFactor {
|
||||||
/** allows for explicit roll parameterization - uses canonical coordinate */
|
/** allows for explicit roll parameterization - uses canonical coordinate */
|
||||||
DRollPrior(size_t key, double wx, const gtsam::noiseModel::Base* model);
|
DRollPrior(size_t key, double wx, const gtsam::noiseModel::Base* model);
|
||||||
|
@ -439,12 +437,10 @@ virtual class DRollPrior : gtsam::NonlinearFactor {
|
||||||
DRollPrior(size_t key, const gtsam::noiseModel::Base* model);
|
DRollPrior(size_t key, const gtsam::noiseModel::Base* model);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
virtual class VelocityPrior : gtsam::NonlinearFactor {
|
virtual class VelocityPrior : gtsam::NonlinearFactor {
|
||||||
VelocityPrior(size_t key, Vector vel, const gtsam::noiseModel::Base* model);
|
VelocityPrior(size_t key, Vector vel, const gtsam::noiseModel::Base* model);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
virtual class DGroundConstraint : gtsam::NonlinearFactor {
|
virtual class DGroundConstraint : gtsam::NonlinearFactor {
|
||||||
// Primary constructor allows for variable height of the "floor"
|
// Primary constructor allows for variable height of the "floor"
|
||||||
DGroundConstraint(size_t key, double height, const gtsam::noiseModel::Base* model);
|
DGroundConstraint(size_t key, double height, const gtsam::noiseModel::Base* model);
|
||||||
|
@ -470,6 +466,7 @@ virtual class PendulumFactor1 : gtsam::NonlinearFactor {
|
||||||
Vector evaluateError(const gtsam::LieScalar& qk1, const gtsam::LieScalar& qk, const gtsam::LieScalar& v) const;
|
Vector evaluateError(const gtsam::LieScalar& qk1, const gtsam::LieScalar& qk, const gtsam::LieScalar& v) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#include <gtsam_unstable/dynamics/Pendulum.h>
|
||||||
virtual class PendulumFactor2 : gtsam::NonlinearFactor {
|
virtual class PendulumFactor2 : gtsam::NonlinearFactor {
|
||||||
/** Standard constructor */
|
/** Standard constructor */
|
||||||
PendulumFactor2(size_t vk1, size_t vk, size_t qKey, double dt, double L, double g);
|
PendulumFactor2(size_t vk1, size_t vk, size_t qKey, double dt, double L, double g);
|
||||||
|
@ -492,18 +489,17 @@ virtual class PendulumFactorPk1 : gtsam::NonlinearFactor {
|
||||||
};
|
};
|
||||||
|
|
||||||
#include <gtsam_unstable/dynamics/SimpleHelicopter.h>
|
#include <gtsam_unstable/dynamics/SimpleHelicopter.h>
|
||||||
|
virtual class Reconstruction : gtsam::NoiseModelFactor {
|
||||||
virtual class Reconstruction : gtsam::NonlinearFactor {
|
|
||||||
Reconstruction(size_t gKey1, size_t gKey, size_t xiKey, double h);
|
Reconstruction(size_t gKey1, size_t gKey, size_t xiKey, double h);
|
||||||
|
|
||||||
Vector evaluateError(const gtsam::Pose3& gK1, const gtsam::Pose3& gK, const gtsam::Vector6& xiK) const;
|
Vector evaluateError(const gtsam::Pose3& gK1, const gtsam::Pose3& gK, Vector xiK) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual class DiscreteEulerPoincareHelicopter : gtsam::NonlinearFactor {
|
virtual class DiscreteEulerPoincareHelicopter : gtsam::NoiseModelFactor {
|
||||||
DiscreteEulerPoincareHelicopter(size_t xiKey, size_t xiKey_1, size_t gKey,
|
DiscreteEulerPoincareHelicopter(size_t xiKey, size_t xiKey_1, size_t gKey,
|
||||||
double h, Matrix Inertia, Vector Fu, double m);
|
double h, Matrix Inertia, Vector Fu, double m);
|
||||||
|
|
||||||
Vector evaluateError(const gtsam::Vector6& xiK, const gtsam::Vector6& xiK_1, const gtsam::Pose3& gK) const;
|
Vector evaluateError(Vector xiK, Vector xiK_1, const gtsam::Pose3& gK) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
//*************************************************************************
|
//*************************************************************************
|
||||||
|
@ -640,13 +636,13 @@ virtual class DiscreteEulerPoincareHelicopter : gtsam::NonlinearFactor {
|
||||||
// slam
|
// slam
|
||||||
//*************************************************************************
|
//*************************************************************************
|
||||||
#include <gtsam_unstable/slam/RelativeElevationFactor.h>
|
#include <gtsam_unstable/slam/RelativeElevationFactor.h>
|
||||||
virtual class RelativeElevationFactor: gtsam::NonlinearFactor {
|
virtual class RelativeElevationFactor: gtsam::NoiseModelFactor {
|
||||||
RelativeElevationFactor();
|
RelativeElevationFactor();
|
||||||
RelativeElevationFactor(size_t poseKey, size_t pointKey, double measured,
|
RelativeElevationFactor(size_t poseKey, size_t pointKey, double measured,
|
||||||
const gtsam::noiseModel::Base* model);
|
const gtsam::noiseModel::Base* model);
|
||||||
|
|
||||||
double measured() const;
|
double measured() const;
|
||||||
void print(string s) const;
|
//void print(string s) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#include <gtsam_unstable/slam/DummyFactor.h>
|
#include <gtsam_unstable/slam/DummyFactor.h>
|
||||||
|
@ -655,20 +651,20 @@ virtual class DummyFactor : gtsam::NonlinearFactor {
|
||||||
};
|
};
|
||||||
|
|
||||||
#include <gtsam_unstable/slam/InvDepthFactorVariant1.h>
|
#include <gtsam_unstable/slam/InvDepthFactorVariant1.h>
|
||||||
virtual class InvDepthFactorVariant1 : gtsam::NonlinearFactor {
|
virtual class InvDepthFactorVariant1 : gtsam::NoiseModelFactor {
|
||||||
InvDepthFactorVariant1(size_t poseKey, size_t landmarkKey, const gtsam::Point2& measured, const gtsam::Cal3_S2* K, const gtsam::noiseModel::Base* model);
|
InvDepthFactorVariant1(size_t poseKey, size_t landmarkKey, const gtsam::Point2& measured, const gtsam::Cal3_S2* K, const gtsam::noiseModel::Base* model);
|
||||||
};
|
};
|
||||||
|
|
||||||
#include <gtsam_unstable/slam/InvDepthFactorVariant2.h>
|
#include <gtsam_unstable/slam/InvDepthFactorVariant2.h>
|
||||||
virtual class InvDepthFactorVariant2 : gtsam::NonlinearFactor {
|
virtual class InvDepthFactorVariant2 : gtsam::NoiseModelFactor {
|
||||||
InvDepthFactorVariant2(size_t poseKey, size_t landmarkKey, const gtsam::Point2& measured, const gtsam::Cal3_S2* K, const gtsam::Point3& referencePoint, const gtsam::noiseModel::Base* model);
|
InvDepthFactorVariant2(size_t poseKey, size_t landmarkKey, const gtsam::Point2& measured, const gtsam::Cal3_S2* K, const gtsam::Point3& referencePoint, const gtsam::noiseModel::Base* model);
|
||||||
};
|
};
|
||||||
|
|
||||||
#include <gtsam_unstable/slam/InvDepthFactorVariant3.h>
|
#include <gtsam_unstable/slam/InvDepthFactorVariant3.h>
|
||||||
virtual class InvDepthFactorVariant3a : gtsam::NonlinearFactor {
|
virtual class InvDepthFactorVariant3a : gtsam::NoiseModelFactor {
|
||||||
InvDepthFactorVariant3a(size_t poseKey, size_t landmarkKey, const gtsam::Point2& measured, const gtsam::Cal3_S2* K, const gtsam::noiseModel::Base* model);
|
InvDepthFactorVariant3a(size_t poseKey, size_t landmarkKey, const gtsam::Point2& measured, const gtsam::Cal3_S2* K, const gtsam::noiseModel::Base* model);
|
||||||
};
|
};
|
||||||
virtual class InvDepthFactorVariant3b : gtsam::NonlinearFactor {
|
virtual class InvDepthFactorVariant3b : gtsam::NoiseModelFactor {
|
||||||
InvDepthFactorVariant3b(size_t poseKey1, size_t poseKey2, size_t landmarkKey, const gtsam::Point2& measured, const gtsam::Cal3_S2* K, const gtsam::noiseModel::Base* model);
|
InvDepthFactorVariant3b(size_t poseKey1, size_t poseKey2, size_t landmarkKey, const gtsam::Point2& measured, const gtsam::Cal3_S2* K, const gtsam::noiseModel::Base* model);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -685,7 +681,7 @@ class Mechanization_bRn2 {
|
||||||
static gtsam::Mechanization_bRn2 initialize(Matrix U, Matrix F, double g_e);
|
static gtsam::Mechanization_bRn2 initialize(Matrix U, Matrix F, double g_e);
|
||||||
gtsam::Mechanization_bRn2 correct(Vector dx) const;
|
gtsam::Mechanization_bRn2 correct(Vector dx) const;
|
||||||
gtsam::Mechanization_bRn2 integrate(Vector u, double dt) const;
|
gtsam::Mechanization_bRn2 integrate(Vector u, double dt) const;
|
||||||
void print(string s) const;
|
//void print(string s) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#include <gtsam_unstable/slam/AHRS.h>
|
#include <gtsam_unstable/slam/AHRS.h>
|
||||||
|
@ -695,19 +691,17 @@ class AHRS {
|
||||||
pair<gtsam::Mechanization_bRn2, gtsam::GaussianDensity*> integrate(const gtsam::Mechanization_bRn2& mech, gtsam::GaussianDensity* state, Vector u, double dt);
|
pair<gtsam::Mechanization_bRn2, gtsam::GaussianDensity*> integrate(const gtsam::Mechanization_bRn2& mech, gtsam::GaussianDensity* state, Vector u, double dt);
|
||||||
pair<gtsam::Mechanization_bRn2, gtsam::GaussianDensity*> aid(const gtsam::Mechanization_bRn2& mech, gtsam::GaussianDensity* state, Vector f, bool Farrel);
|
pair<gtsam::Mechanization_bRn2, gtsam::GaussianDensity*> aid(const gtsam::Mechanization_bRn2& mech, gtsam::GaussianDensity* state, Vector f, bool Farrel);
|
||||||
pair<gtsam::Mechanization_bRn2, gtsam::GaussianDensity*> aidGeneral(const gtsam::Mechanization_bRn2& mech, gtsam::GaussianDensity* state, Vector f, Vector f_expected, const gtsam::Rot3& increment);
|
pair<gtsam::Mechanization_bRn2, gtsam::GaussianDensity*> aidGeneral(const gtsam::Mechanization_bRn2& mech, gtsam::GaussianDensity* state, Vector f, Vector f_expected, const gtsam::Rot3& increment);
|
||||||
void print(string s) const;
|
//void print(string s) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Tectonic SAM Factors
|
// Tectonic SAM Factors
|
||||||
|
|
||||||
#include <gtsam_unstable/slam/TSAMFactors.h>
|
#include <gtsam_unstable/slam/TSAMFactors.h>
|
||||||
#include <gtsam/nonlinear/NonlinearFactor.h>
|
|
||||||
|
|
||||||
//typedef gtsam::NoiseModelFactor2<gtsam::Pose2, gtsam::Point2> NLPosePose;
|
//typedef gtsam::NoiseModelFactor2<gtsam::Pose2, gtsam::Point2> NLPosePose;
|
||||||
virtual class DeltaFactor : gtsam::NoiseModelFactor {
|
virtual class DeltaFactor : gtsam::NoiseModelFactor {
|
||||||
DeltaFactor(size_t i, size_t j, const gtsam::Point2& measured,
|
DeltaFactor(size_t i, size_t j, const gtsam::Point2& measured,
|
||||||
const gtsam::noiseModel::Base* noiseModel);
|
const gtsam::noiseModel::Base* noiseModel);
|
||||||
void print(string s) const;
|
//void print(string s) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
//typedef gtsam::NoiseModelFactor4<gtsam::Pose2, gtsam::Pose2, gtsam::Pose2,
|
//typedef gtsam::NoiseModelFactor4<gtsam::Pose2, gtsam::Pose2, gtsam::Pose2,
|
||||||
|
@ -715,7 +709,7 @@ virtual class DeltaFactor : gtsam::NoiseModelFactor {
|
||||||
virtual class DeltaFactorBase : gtsam::NoiseModelFactor {
|
virtual class DeltaFactorBase : gtsam::NoiseModelFactor {
|
||||||
DeltaFactorBase(size_t b1, size_t i, size_t b2, size_t j,
|
DeltaFactorBase(size_t b1, size_t i, size_t b2, size_t j,
|
||||||
const gtsam::Point2& measured, const gtsam::noiseModel::Base* noiseModel);
|
const gtsam::Point2& measured, const gtsam::noiseModel::Base* noiseModel);
|
||||||
void print(string s) const;
|
//void print(string s) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
//typedef gtsam::NoiseModelFactor4<gtsam::Pose2, gtsam::Pose2, gtsam::Pose2,
|
//typedef gtsam::NoiseModelFactor4<gtsam::Pose2, gtsam::Pose2, gtsam::Pose2,
|
||||||
|
@ -723,7 +717,7 @@ virtual class DeltaFactorBase : gtsam::NoiseModelFactor {
|
||||||
virtual class OdometryFactorBase : gtsam::NoiseModelFactor {
|
virtual class OdometryFactorBase : gtsam::NoiseModelFactor {
|
||||||
OdometryFactorBase(size_t b1, size_t i, size_t b2, size_t j,
|
OdometryFactorBase(size_t b1, size_t i, size_t b2, size_t j,
|
||||||
const gtsam::Pose2& measured, const gtsam::noiseModel::Base* noiseModel);
|
const gtsam::Pose2& measured, const gtsam::noiseModel::Base* noiseModel);
|
||||||
void print(string s) const;
|
//void print(string s) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#include <gtsam/geometry/Cal3DS2.h>
|
#include <gtsam/geometry/Cal3DS2.h>
|
||||||
|
|
Loading…
Reference in New Issue