Classes | Typedefs | Functions
sba Namespace Reference

Classes

class  Con2dP2
 
class  ConP2
 
class  ConP3P
 
class  ConScale
 
class  CSparse
 
class  CSparse2d
 
class  jacobiBPCG
 Let's try templated versions. More...
 
class  JacobProds
 
class  Node
 NODE holds graph nodes corresponding to frames, for use in sparse bundle adjustment. Each node has a 6DOF pose, encoded as a translation vector and rotation unit quaternion (Eigen classes). These represent the pose of the node in the world frame. More...
 
class  Node2d
 
class  Proj
 Proj holds a projection measurement of a point onto a frame. They are a repository for the link between the frame and the point, with auxillary info such as Jacobians. More...
 
class  SysSBA
 SysSBA holds a set of nodes and points for sparse bundle adjustment. More...
 
class  SysSPA
 SysSPA holds a set of nodes and constraints for sparse pose adjustment. More...
 
class  SysSPA2d
 SysSPA2d holds a set of nodes and constraints for sparse pose adjustment. More...
 
class  Track
 

Typedefs

typedef Eigen::Vector3d Keypoint
 Keypoints - subpixel using floats. u,v are pixel coordinates, d is disparity (if stereo) More...
 
typedef Eigen::Vector4d Point
 Point holds 3D points using in world coordinates. Currently we just represent these as 4-vectors, with a final "1.0". More...
 
typedef std::map< const int, Proj, std::less< int >, Eigen::aligned_allocator< Proj > > ProjMap
 

Functions

void drawGraph (const SysSBA &sba, const ros::Publisher &camera_pub, const ros::Publisher &point_pub, int decimation=1, int bicolor=0)
 
static int getind (std::map< int, int > &m, int ind)
 
int ParseBundlerFile (const char *fin, std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > &camp, std::vector< Eigen::Matrix3d, Eigen::aligned_allocator< Eigen::Matrix3d > > &camR, std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > &camt, std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > &ptp, std::vector< Eigen::Vector3i, Eigen::aligned_allocator< Eigen::Vector3i > > &ptc, std::vector< std::vector< Eigen::Vector4d, Eigen::aligned_allocator< Eigen::Vector4d > > > &ptt)
 A low-level parser for bundler files. More...
 
int ParseGraphFile (const char *fin, std::vector< Eigen::Vector5d, Eigen::aligned_allocator< Eigen::Vector5d > > &camps, std::vector< Eigen::Vector4d, Eigen::aligned_allocator< Eigen::Vector4d > > &camqs, std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > &camts, std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > &ptps, std::vector< std::vector< Eigen::Vector11d, Eigen::aligned_allocator< Eigen::Vector11d > > > &ptts)
 A low-level parser for graph files. More...
 
int ParseSPAGraphFile (const char *fin, std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > &ntrans, std::vector< Eigen::Vector4d, Eigen::aligned_allocator< Eigen::Vector4d > > &nqrot, std::vector< Eigen::Vector2i, Eigen::aligned_allocator< Eigen::Vector2i > > &cind, std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > &ctrans, std::vector< Eigen::Vector4d, Eigen::aligned_allocator< Eigen::Vector4d > > &cqrot, std::vector< Eigen::Matrix< double, 6, 6 >, Eigen::aligned_allocator< Eigen::Matrix< double, 6, 6 > > > &cvar)
 A low-level parser for graph files. More...
 
bool read2dP2File (char *fname, SysSPA2d spa)
 constraint files More...
 
int readBundlerFile (const char *filename, sba::SysSBA &sbaout)
 Reads bundle adjustment data from a Bundler file to an instance of SysSBA. More...
 
int readGraphFile (const char *filename, sba::SysSBA &sbaout)
 Reads bundle adjustment data from a graph-type file to an instance of SysSBA. More...
 
bool readP2File (char *fname, SysSPA spa)
 constraint files More...
 
int readSPAGraphFile (const char *filename, SysSPA &spaout)
 Reads 3D pose graph data from a graph-type file to an instance of SysSPA. More...
 
void transformF2W (Eigen::Matrix< double, 3, 4 > &m, const Eigen::Matrix< double, 4, 1 > &trans, const Eigen::Quaternion< double > &qrot)
 
void transformN2N (Eigen::Matrix< double, 4, 1 > &trans, Eigen::Quaternion< double > &qrot, Node &nd0, Node &nd1)
 
void transformW2F (Eigen::Matrix< double, 3, 4 > &m, const Eigen::Matrix< double, 4, 1 > &trans, const Eigen::Quaternion< double > &qrot)
 
void writeA (const char *fname, SysSBA &sba)
 
int writeBundlerFile (const char *filename, sba::SysSBA &sbain)
 Writes bundle adjustment data from an instance of SysSBA to a Bundler file. More...
 
int writeGraphFile (const char *filename, SysSBA &sba, bool mono=false)
 Writes out the current SBA system as an ascii graph file suitable to be read in by the Freiburg HChol system. <mono> is true if only monocular projections are desired. More...
 
void writeLourakisFile (const char *fname, SysSBA &sba)
 write out system in SBA form More...
 
void writeSparseA (const char *fname, SysSBA &sba)
 

Typedef Documentation

typedef Eigen::Vector3d sba::Keypoint

Keypoints - subpixel using floats. u,v are pixel coordinates, d is disparity (if stereo)

Definition at line 37 of file node.h.

typedef Eigen::Vector4d sba::Point

Point holds 3D points using in world coordinates. Currently we just represent these as 4-vectors, with a final "1.0".

Definition at line 43 of file node.h.

typedef std::map<const int, Proj, std::less<int>, Eigen::aligned_allocator<Proj> > sba::ProjMap

Obnoxiously long type def for the map type that holds the point projections in tracks.

Definition at line 48 of file proj.h.

Function Documentation

void sba::drawGraph ( const SysSBA sba,
const ros::Publisher &  camera_pub,
const ros::Publisher &  point_pub,
int  decimation = 1,
int  bicolor = 0 
)

Definition at line 5 of file visualization.cpp.

static int sba::getind ( std::map< int, int > &  m,
int  ind 
)
inlinestatic

Run the LM algorithm that computes a nonlinear SPA estimate. <window> is the number of nodes in the window, the last nodes added <niter> is the max number of iterations to perform; returns the number actually performed. <lambda> is the diagonal augmentation for LM. <useCSParse> = 0 for dense Cholesky, 1 for sparse Cholesky, 2 for sparse PCG

Definition at line 623 of file spa2d.cpp.

int sba::ParseBundlerFile ( const char *  fin,
std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > &  camp,
std::vector< Eigen::Matrix3d, Eigen::aligned_allocator< Eigen::Matrix3d > > &  camR,
std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > &  camt,
std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > &  ptp,
std::vector< Eigen::Vector3i, Eigen::aligned_allocator< Eigen::Vector3i > > &  ptc,
std::vector< std::vector< Eigen::Vector4d, Eigen::aligned_allocator< Eigen::Vector4d > > > &  ptt 
)

A low-level parser for bundler files.

int sba::ParseGraphFile ( const char *  fin,
std::vector< Eigen::Vector5d, Eigen::aligned_allocator< Eigen::Vector5d > > &  camps,
std::vector< Eigen::Vector4d, Eigen::aligned_allocator< Eigen::Vector4d > > &  camqs,
std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > &  camts,
std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > &  ptps,
std::vector< std::vector< Eigen::Vector11d, Eigen::aligned_allocator< Eigen::Vector11d > > > &  ptts 
)

A low-level parser for graph files.

int sba::ParseSPAGraphFile ( const char *  fin,
std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > &  ntrans,
std::vector< Eigen::Vector4d, Eigen::aligned_allocator< Eigen::Vector4d > > &  nqrot,
std::vector< Eigen::Vector2i, Eigen::aligned_allocator< Eigen::Vector2i > > &  cind,
std::vector< Eigen::Vector3d, Eigen::aligned_allocator< Eigen::Vector3d > > &  ctrans,
std::vector< Eigen::Vector4d, Eigen::aligned_allocator< Eigen::Vector4d > > &  cqrot,
std::vector< Eigen::Matrix< double, 6, 6 >, Eigen::aligned_allocator< Eigen::Matrix< double, 6, 6 > > > &  cvar 
)

A low-level parser for graph files.

Definition at line 996 of file sba_file_io.cpp.

bool sba::read2dP2File ( char *  fname,
SysSPA2d  spa 
)

constraint files

reads in a file of pose constraints

int sba::readBundlerFile ( const char *  filename,
sba::SysSBA sbaout 
)

Reads bundle adjustment data from a Bundler file to an instance of SysSBA.

Parameters
filenameThe name of the bundler-formatted file to read from.
sbaoutAn instance of SBA that the file will be written to. It should be noted that the bundler format does not support stereo points; all points read in will be monocular. Note: documentation of the Bundler format can be found at http://phototour.cs.washington.edu/bundler/bundler-v0.3-manual.html .

Definition at line 9 of file sba_file_io.cpp.

int sba::readGraphFile ( const char *  filename,
sba::SysSBA sbaout 
)

Reads bundle adjustment data from a graph-type file to an instance of SysSBA.

Parameters
filenameThe name of the bundler-formatted file to read from.
sbaoutAn instance of SBA that the file will be written to. Note: where is the documentation for this format?

Definition at line 488 of file sba_file_io.cpp.

bool sba::readP2File ( char *  fname,
SysSPA  spa 
)

constraint files

reads in a file of pose constraints

Definition at line 78 of file spa.cpp.

int sba::readSPAGraphFile ( const char *  filename,
SysSPA spaout 
)

Reads 3D pose graph data from a graph-type file to an instance of SysSPA.

Parameters
filenameThe name of the bundler-formatted file to read from.
spaoutAn instance of SPA that the file will be written to. Note: where is the documentation for this format?

Definition at line 929 of file sba_file_io.cpp.

void sba::transformF2W ( Eigen::Matrix< double, 3, 4 > &  m,
const Eigen::Matrix< double, 4, 1 > &  trans,
const Eigen::Quaternion< double > &  qrot 
)

Projection matrix from Frame to World coordinates: [R t]

Definition at line 166 of file node.cpp.

void sba::transformN2N ( Eigen::Matrix< double, 4, 1 > &  trans,
Eigen::Quaternion< double > &  qrot,
Node nd0,
Node nd1 
)

Transform of one node in another's coords

Definition at line 177 of file node.cpp.

void sba::transformW2F ( Eigen::Matrix< double, 3, 4 > &  m,
const Eigen::Matrix< double, 4, 1 > &  trans,
const Eigen::Quaternion< double > &  qrot 
)

Projection matrix from World to Frame coordinates: [R' -R'*t]

Based on translation vector and unit quaternion rotation, which gives the frame's pose in world coordinates. Assumes quaternion is normalized (unit).

Definition at line 157 of file node.cpp.

void sba::writeA ( const char *  fname,
SysSBA sba 
)

Definition at line 401 of file sba_file_io.cpp.

int sba::writeBundlerFile ( const char *  filename,
sba::SysSBA sbain 
)

Writes bundle adjustment data from an instance of SysSBA to a Bundler file.

Parameters
filenameThe name of the bundler-formatted file to write to. The file is created, or if it already exists, truncated.
sbainAn instance of SBA that the file will be written from. It should be noted that the bundler format does not support stereo points; all points written will be monocular. Also, since SBA does not store point color information, all points will be colored white. Note: documentation of the Bundler format can be found at http://phototour.cs.washington.edu/bundler/bundler-v0.3-manual.html .

Definition at line 114 of file sba_file_io.cpp.

int sba::writeGraphFile ( const char *  filename,
SysSBA sba,
bool  mono = false 
)

Writes out the current SBA system as an ascii graph file suitable to be read in by the Freiburg HChol system. <mono> is true if only monocular projections are desired.

Definition at line 783 of file sba_file_io.cpp.

void sba::writeLourakisFile ( const char *  fname,
SysSBA sba 
)

write out system in SBA form

Definition at line 322 of file sba_file_io.cpp.

void sba::writeSparseA ( const char *  fname,
SysSBA sba 
)

Definition at line 418 of file sba_file_io.cpp.



sparse_bundle_adjustment
Author(s):
autogenerated on Fri Apr 3 2020 03:30:54