OKVIS ROS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
okvis Namespace Reference

okvis Main namespace of this package. More...

Namespaces

 cameras
 cameras Namespace for camera-related functionality.
 
 ceres
 ceres Namespace for ceres-related functionality implemented in okvis.
 
 detail
 
 IdProvider
 Provides IDs.
 
 kinematics
 kinematics Namespace for kinematics functionality, i.e. transformations and stuff.
 
 threadsafe
 Namespace for helper classes for threadsafe operation.
 
 timing
 
 triangulation
 triangulation A namespace for operations related to triangulation.
 

Classes

class  Publisher
 This class handles the publishing to either ROS topics or files. More...
 
class  RosParametersReader
 This class extends the VioParametersReader class in order to use ROS services and topics. More...
 
class  Subscriber
 This class handles all the buffering of incoming data. More...
 
class  Estimator
 The estimator class. More...
 
struct  KeypointIdentifier
 Unique identifier for a keypoint. More...
 
struct  Match
 Type to store the result of matching. More...
 
struct  MapPoint
 A type to store information about a point in the world map. More...
 
struct  Observation
 For convenience to pass associations - also contains the 3d points. More...
 
struct  Measurement
 Generic measurements. More...
 
struct  ImuSensorReadings
 IMU measurements. For now assume they are synchronized: More...
 
struct  DepthCameraData
 Depth camera measurements. For now assume they are synchronized: More...
 
struct  PositionReading
 Position measurement. More...
 
struct  GpsPositionReading
 GPS position measurement. More...
 
struct  MagnetometerReading
 Magnetometer measurement. More...
 
struct  BarometerReading
 Barometer measurement. More...
 
struct  DifferentialPressureReading
 Differential pressure sensor measurement. More...
 
struct  CameraData
 Camera measurement. More...
 
struct  KeypointData
 Keypoint measurement. More...
 
struct  FrameData
 Frame measurement. More...
 
struct  ExtrinsicsEstimationParameters
 Struct to define the behavior of the camera extrinsics. More...
 
struct  ImuParameters
 IMU parameters. More...
 
struct  MagnetometerParameters
 Magnetometer parameters. More...
 
struct  GpsParameters
 GPS parameters. More...
 
struct  PositionSensorParameters
 Position sensor parameters. More...
 
struct  MagneticEnuZParameters
 Magnetic ENU z bias. More...
 
struct  BarometerParameters
 Barometer parameters. More...
 
struct  QffParameters
 QFF parameters. More...
 
struct  DifferentialPressureSensorParameters
 Differential pressure sensor parameters. More...
 
struct  WindParameters
 Wind parameters. More...
 
struct  Optimization
 Parameters for optimization and related things (detection). More...
 
struct  SensorsInformation
 Information on camera and IMU setup. More...
 
struct  Visualization
 Some visualization settings. More...
 
struct  PublishingParameters
 Some publishing parameters. More...
 
struct  VioParameters
 Struct to combine all parameters and settings. More...
 
class  VioBackendInterface
 An abstract interface for backends. More...
 
class  VioFrontendInterface
 The VioFrontendInterface class is an interface for frontends. More...
 
class  VioInterface
 An abstract base class for interfaces between Front- and Backend. More...
 
class  VioParametersReader
 This class reads and parses config file. More...
 
class  Frame
 A single camera frame equipped with keypoint detector / extractor. More...
 
class  MultiFrame
 A multi camera frame that uses okvis::Frame underneath. More...
 
class  Frontend
 A frontend using BRISK features. More...
 
class  VioKeyframeWindowMatchingAlgorithm
 A MatchingAlgorithm implementation. More...
 
class  DenseMatcher
 This class matches keypoints from two frames in parallel. More...
 
class  MatchingAlgorithm
 an interface for 1-1 matching between lists of things. More...
 
class  ThreadPool
 This class manages multiple threads and fills them with work. More...
 
class  FrameSynchronizer
 This class combines multiple frames with the same or similar timestamp into one multiframe. More...
 
class  ImuFrameSynchronizer
 This class is to safely notify different threads whether IMU measurements up to a timestamp (e.g. the one of a camera frame) have already been registered. More...
 
class  ThreadedKFVio
 This class manages the complete data flow in and out of the algorithm, as well as between the processing threads. More...
 
class  VioVisualizer
 This class is responsible to visualize the matching results. More...
 
class  MockVioBackendInterface
 
class  MockVioFrontendInterface
 
class  TestDataGenerator
 
class  DurationBase
 Base class for Duration implementations. Provides storage, common functions and operator overloads. This should not need to be used directly. More...
 
class  Duration
 Duration representation for use with the Time class. More...
 
class  WallDuration
 Duration representation for use with the WallTime class. More...
 
class  NoHighPerformanceTimersException
 Thrown if windoze high perf. timestamping is unavailable. More...
 
class  TimeBase
 Base class for Time implementations. Provides storage, common functions and operator overloads. This should not need to be used directly. More...
 
class  Time
 Time representation. May either represent wall clock time or ROS clock time. More...
 
class  WallTime
 Time representation. Always wall-clock time. More...
 
class  source_file_pos
 

Typedefs

typedef std::vector< MatchMatches
 
typedef std::vector< MapPoint,
Eigen::aligned_allocator
< MapPoint > > 
MapPointVector
 
typedef std::map< uint64_t,
MapPoint, std::less< uint64_t >
, Eigen::aligned_allocator
< MapPoint > > 
PointMap
 
typedef std::map< uint64_t,
okvis::kinematics::Transformation,
std::less< uint64_t >
, Eigen::aligned_allocator
< okvis::kinematics::Transformation > > 
TransformationMap
 
typedef std::vector
< Observation,
Eigen::aligned_allocator
< Observation > > 
ObservationVector
 
typedef Eigen::Matrix< double, 9, 1 > SpeedAndBiases
 
typedef Eigen::Matrix< double, 9, 1 > SpeedAndBias
 
typedef Measurement
< ImuSensorReadings
ImuMeasurement
 
typedef std::deque
< ImuMeasurement,
Eigen::aligned_allocator
< ImuMeasurement > > 
ImuMeasurementDeque
 
typedef Measurement< CameraDataCameraMeasurement
 
typedef Measurement< FrameDataFrameMeasurement
 
typedef Measurement
< DepthCameraData
DepthCameraMeasurement
 
typedef Measurement
< PositionReading
PositionMeasurement
 
typedef std::deque
< PositionMeasurement,
Eigen::aligned_allocator
< PositionMeasurement > > 
PositionMeasurementDeque
 
typedef Measurement
< GpsPositionReading
GpsPositionMeasurement
 
typedef std::deque
< GpsPositionMeasurement,
Eigen::aligned_allocator
< GpsPositionMeasurement > > 
GpsPositionMeasurementDeque
 
typedef Measurement
< MagnetometerReading
MagnetometerMeasurement
 
typedef std::deque
< MagnetometerMeasurement,
Eigen::aligned_allocator
< MagnetometerMeasurement > > 
MagnetometerMeasurementDeque
 
typedef Measurement
< BarometerReading
BarometerMeasurement
 
typedef Measurement
< DifferentialPressureReading
DifferentialPressureMeasurement
 
typedef Eigen::Matrix< double, 3, 1 > Speed
 
typedef Eigen::Matrix< double, 3, 1 > GyroBias
 
typedef Eigen::Matrix< double, 3, 1 > AccBias
 
typedef Eigen::Matrix< double, 6, 1 > ImuBias
 
typedef Eigen::Matrix< double, 3, 1 > MagnetometerBias
 
typedef Eigen::Matrix< double, 1, 1 > MagnetometerWorldZBias
 
typedef Eigen::Matrix< double, 3, 1 > Wind
 
typedef Eigen::Matrix< double, 1, 1 > Qff
 
typedef std::shared_ptr
< MultiFrame
MultiFramePtr
 For convenience. More...
 

Enumerations

enum  FrameName { FrameName::B, FrameName::S, FrameName::W, FrameName::Wc }
 

Functions

template<class T >
bool vectorContains (const std::vector< T > &vector, const T &query)
 Does a vector contain a certain element. More...
 
void normalizeSecNSecSigned (int64_t &sec, int64_t &nsec)
 
void normalizeSecNSecSigned (int32_t &sec, int32_t &nsec)
 
std::ostream & operator<< (std::ostream &os, const Duration &rhs)
 
std::ostream & operator<< (std::ostream &os, const WallDuration &rhs)
 
void normalizeSecNSec (uint64_t &sec, uint64_t &nsec)
 
void normalizeSecNSec (uint32_t &sec, uint32_t &nsec)
 
void normalizeSecNSecUnsigned (int64_t &sec, int64_t &nsec)
 
std::ostream & operator<< (std::ostream &os, const Time &rhs)
 
std::ostream & operator<< (std::ostream &os, const WallTime &rhs)
 
const Duration DURATION_MAX (std::numeric_limits< int32_t >::max(), 999999999)
 
const Duration DURATION_MIN (std::numeric_limits< int32_t >::min(), 0)
 
const Time TIME_MAX (std::numeric_limits< uint32_t >::max(), 999999999)
 
const Time TIME_MIN (0, 1)
 
void okvis_walltime (uint32_t &sec, uint32_t &nsec) throw (NoHighPerformanceTimersException)
 
int okvis_nanosleep (const uint32_t &sec, const uint32_t &nsec)
 Simple representation of the rt library nanosleep function. More...
 
bool okvis_wallsleep (uint32_t sec, uint32_t nsec)
 Go to the wall! More...
 
template<typename OKVIS_EXCEPTION_T >
void okvis_assert_throw (bool assert_condition, std::string message, okvis::source_file_pos sfp)
 

Variables

const Duration DURATION_MAX
 
const Duration DURATION_MIN
 
const Time TIME_MAX
 
const Time TIME_MIN
 

Detailed Description

okvis Main namespace of this package.

Typedef Documentation

typedef Eigen::Matrix<double,3,1> okvis::AccBias
typedef std::deque<GpsPositionMeasurement, Eigen::aligned_allocator<GpsPositionMeasurement> > okvis::GpsPositionMeasurementDeque
typedef Eigen::Matrix<double,3,1> okvis::GyroBias
typedef Eigen::Matrix<double,6,1> okvis::ImuBias
typedef std::deque<ImuMeasurement, Eigen::aligned_allocator<ImuMeasurement> > okvis::ImuMeasurementDeque
typedef Eigen::Matrix<double,3,1> okvis::MagnetometerBias
typedef Eigen::Matrix<double,1,1> okvis::MagnetometerWorldZBias
typedef std::vector<MapPoint, Eigen::aligned_allocator<MapPoint> > okvis::MapPointVector
typedef std::vector<Match> okvis::Matches
typedef std::shared_ptr<MultiFrame> okvis::MultiFramePtr

For convenience.

typedef std::vector<Observation, Eigen::aligned_allocator<Observation> > okvis::ObservationVector
typedef std::map<uint64_t, MapPoint, std::less<uint64_t>, Eigen::aligned_allocator<MapPoint> > okvis::PointMap
typedef std::deque<PositionMeasurement, Eigen::aligned_allocator<PositionMeasurement> > okvis::PositionMeasurementDeque
typedef Eigen::Matrix<double,1,1> okvis::Qff
typedef Eigen::Matrix<double,3,1> okvis::Speed
typedef Eigen::Matrix< double, 9, 1 > okvis::SpeedAndBias
typedef Eigen::Matrix<double, 9, 1> okvis::SpeedAndBiases
typedef std::map<uint64_t, okvis::kinematics::Transformation, std::less<uint64_t>, Eigen::aligned_allocator<okvis::kinematics::Transformation> > okvis::TransformationMap
typedef Eigen::Matrix<double,3,1> okvis::Wind

Enumeration Type Documentation

enum okvis::FrameName
strong
Enumerator
B 
S 
W 
Wc 

Function Documentation

const Duration okvis::DURATION_MAX ( std::numeric_limits< int32_t >::  max(),
999999999   
)
const Duration okvis::DURATION_MIN ( std::numeric_limits< int32_t >::  min(),
 
)
void okvis::normalizeSecNSec ( uint64_t &  sec,
uint64_t &  nsec 
)
void okvis::normalizeSecNSec ( uint32_t &  sec,
uint32_t &  nsec 
)
void okvis::normalizeSecNSecSigned ( int64_t &  sec,
int64_t &  nsec 
)
void okvis::normalizeSecNSecSigned ( int32_t &  sec,
int32_t &  nsec 
)
void okvis::normalizeSecNSecUnsigned ( int64_t &  sec,
int64_t &  nsec 
)
template<typename OKVIS_EXCEPTION_T >
void okvis::okvis_assert_throw ( bool  assert_condition,
std::string  message,
okvis::source_file_pos  sfp 
)
inline
int okvis::okvis_nanosleep ( const uint32_t &  sec,
const uint32_t &  nsec 
)

Simple representation of the rt library nanosleep function.

bool okvis::okvis_wallsleep ( uint32_t  sec,
uint32_t  nsec 
)

Go to the wall!

Todo:
Fully implement the win32 parts, currently just like a regular sleep.
void okvis::okvis_walltime ( uint32_t &  sec,
uint32_t &  nsec 
)
throw (NoHighPerformanceTimersException
)
std::ostream & okvis::operator<< ( std::ostream &  os,
const Duration &  rhs 
)
std::ostream & okvis::operator<< ( std::ostream &  os,
const WallDuration &  rhs 
)
std::ostream & okvis::operator<< ( std::ostream &  os,
const Time &  rhs 
)
std::ostream & okvis::operator<< ( std::ostream &  os,
const WallTime &  rhs 
)
const Time okvis::TIME_MAX ( std::numeric_limits< uint32_t >::  max(),
999999999   
)
const Time okvis::TIME_MIN ( ,
 
)
template<class T >
bool okvis::vectorContains ( const std::vector< T > &  vector,
const T &  query 
)

Does a vector contain a certain element.

Template Parameters
Classof a vector element.
Parameters
vectorVector to search element in.
queryElement to search for.
Returns
True if query is an element of vector.

Variable Documentation

const Duration okvis::DURATION_MAX
const Duration okvis::DURATION_MIN
const Time okvis::TIME_MAX
const Time okvis::TIME_MIN(0, 1)