Skip to content

Namespace ILLIXR

Namespace List > ILLIXR

RAC_ERRNO_MSG. More...

Namespaces

Type Name
namespace data_format
namespace display
namespace math_util
namespace network
namespace vulkan
namespace zed_capture

Classes

Type Name
struct Dependency
struct DistortionCorrectionVertex
struct DistortionMatrix
struct OpenWarpVertex
struct WarpMatrices
class cancellable_sleep
class data_injection
class data_use_indicator
A helper class that lets one dynamically determine if some data gets used.
class debugview
class depthai
struct display_params
Display parameters.
class dynamic_lib
class event
A boolean condition-variable.
class fauxpose
class fauxpose_impl
Create a "pose_prediction" type service.
class gen_guid
This class generates unique IDs.
class gldemo
class ground_truth_slam
class gtsam_integrator
struct index_params
class lazy_load_image
class lighthouse
class managed_thread
An object that manages a std::thread; it joins and exits when the object gets destructed.
struct model
class native_renderer
class offline_cam
class offline_imu
class offload_data
class offload_reader
class offload_rendering_client
class offload_rendering_server
Main server implementation for offload rendering.
class offload_rendering_server_loader
Plugin loader for the offload rendering server.
class offload_writer
class openni_plugin
class openwarp_vk
class openwarp_vk_plugin
class passthrough_integrator
class phonebook
A service locator forILLIXR .
class plugin
A dynamically-loadable plugin for Spindle.
class pose_lookup_impl
class pose_prediction_impl
struct raw_imu_type
class realsense
class record
This class represents a tuple of fields which get logged by record_logger .
class record_coalescer
Coalesces logs of the same type to be written back as a single-transaction.
class record_header
Schema of each record.
class record_imu_cam
class record_logger
The ILLIXR logging service for structured records.
class record_rgb_depth
class relative_clock
Relative clock for all of ILLIXR .
struct rendering_params
Rendering parameters.
class rk4_integrator
class runtime
struct sensor_types
struct server_params
class server_reader
class server_writer
class sqlite_record_logger
class sqlite_thread
struct state_plus
class stdout_record_logger
class stoplight
Start/stop synchronization for the whole application.
class switchboard
A manager for typesafe, threadsafe, named event-streams (called topics).
class tcp_network_backend
struct texture
class threadloop
A reusable threadloop for plugins.
class time_point
class timewarp_gl
class timewarp_vk
class timewarp_vk_plugin
struct vertex
class video_decoder
class video_encoder
class viewer
class vkdemo
class vkdemo_plugin
class webcam
class xlib_gl_extended_window
class zed_camera
class zed_camera_thread
class zed_imu_thread

Public Types

Type Name
typedef std::chrono::duration< clock_rep_, clock_period_ > clock_duration_
typedef std::nano clock_period_
typedef long clock_rep_
typedef relative_clock::duration duration
typedef plugin *(* plugin_factory
typedef std::size_t plugin_id_t
typedef data_format::pose_type sensor_types
typedef threadloop timewarp_type
typedef std::unique_ptr< void, std::function< void(void *)> > void_ptr

Public Attributes

Type Name
const std::vector< std::string > ENV_VARS = /* multi line expression */
const size_t LOG_PERIOD = 20
const record_header _plugin_start_header = /* multi line expression */
const record_header _switchboard_callback_header = /* multi line expression */
const record_header _switchboard_topic_stop_header = /* multi line expression */
const record_header _threadloop_iteration_header = /* multi line expression */
const data_format::proper_quaterniond dq_0
const std::vector< std::string > ignore_vars = {"plugins"}
size_t log_count_ = 0
constexpr float server_fov = 0.99

Public Static Attributes

Type Name
const bool ENABLE_VERBOSE_ERRORS = /* multi line expression */
std::chrono::milliseconds LOG_BUFFER_DELAY = {1000}

Public Functions

Type Name
const Eigen::Vector3d Gravity (0. 0, 0. 0, 9. 81)
void abort (const std::string & msg="", const int error_val=1)
Exits the application during a fatal error.
GstFlowReturn cb_new_sample (GstElement * appsink, gpointer * user_data)
data_format::proper_quaterniond delta_q (const data_format::proper_quaterniond & k_n)
double duration_to_double (duration dur)
constexpr duration freq_to_period (double fps)
Eigen::Matrix4d makeOmega (const Eigen::Vector3d & w)
Generate the Omega matrix from the input 3-element vector.
bool operator!= (const time_point & lhs, const time_point & rhs)
time_point operator+ (const time_point & pt, const time_point::duration & d)
time_point operator+ (const time_point::duration & d, const time_point & pt)
time_point::duration operator- (const time_point & lhs, const time_point & rhs)
bool operator< (const time_point & lhs, const time_point & rhs)
std::ostream & operator<< (std::ostream & os, const state_plus & sp)
bool operator<= (const time_point & lhs, const time_point & rhs)
bool operator== (const time_point & lhs, const time_point & rhs)
bool operator> (const time_point & lhs, const time_point & rhs)
bool operator>= (const time_point & lhs, const time_point & rhs)
Eigen::Vector3d p_dot (const Eigen::Vector3d & iv, const Eigen::Vector3d & k_n)
f(x) for the position Calculate the new position based on the initial velocity and change in velocity
state_plus predict_mean_rk4 (double dt, const state_plus & sp, const Eigen::Vector3d & ang_vel, const Eigen::Vector3d & linear_acc, const Eigen::Vector3d & ang_vel2, const Eigen::Vector3d & linear_acc2)
data_format::proper_quaterniond q_dot (const Eigen::Vector3d & av, const data_format::proper_quaterniond & dq)
void report_and_clear_errno (const std::string & file, const int & line, const std::string & function, const std::string & msg="")
Support function to report errno values when debugging (NDEBUG).
int run (const cxxopts::ParseResult & options)
runtime * runtime_factory ()
T solve (const T & yn, const T & k1, const T & k2, const T & k3, const T & k4)
Solve for the Runge-Kutta 4th order approximation.
bool str_to_bool (const std::string & var)
Convert a string containing a (python) boolean to the bool type.
Eigen::Matrix3d symmetric_skew (const Eigen::Vector3d & vec)
Generates a skew-symmetric matrix from the given 3-element vector.
Eigen::Vector3d v_dot (const data_format::proper_quaterniond & dq, const data_format::proper_quaterniond & q, const Eigen::Vector3d & l_acc)
f(x) for the velocity Calculate the updated velocity from the acceleration and initial and delta quaternions

Detailed Description

There are many SQLite3 wrapper libraries. List source TODO: this

Public Types Documentation

typedef clock_duration_

using ILLIXR::clock_duration_ = typedef std::chrono::duration<clock_rep_, clock_period_>;

typedef clock_period_

using ILLIXR::clock_period_ = typedef std::nano;

typedef clock_rep_

using ILLIXR::clock_rep_ = typedef long;

Mimic of std::chrono::time_point<Clock, Rep> 1.

Can't use std::chrono::time_point<Clock, Rep>, because the Clock must satisfy the Clock interface 2, but relative_clock cannot satisfy this interface because relative_clock::now() is a stateful (instance method) not pure (class method). Instead, we will mimic the interface of 1 here.


typedef duration

using ILLIXR::duration = typedef relative_clock::duration;

typedef plugin_factory

typedef plugin *(* ILLIXR::plugin_factory) (phonebook *);

typedef plugin_id_t

typedef std::size_t ILLIXR::plugin_id_t;

typedef sensor_types

typedef data_format::pose_type ILLIXR::sensor_types;

typedef timewarp_type

typedef threadloop ILLIXR::timewarp_type;

typedef void_ptr

using ILLIXR::void_ptr = typedef std::unique_ptr<void, std::function<void(void*)> >;

Public Attributes Documentation

variable ENV_VARS

const std::vector<std::string> ILLIXR::ENV_VARS;

variable LOG_PERIOD

const size_t ILLIXR::LOG_PERIOD;

variable _plugin_start_header

const record_header ILLIXR::_plugin_start_header;

variable _switchboard_callback_header

const record_header ILLIXR::_switchboard_callback_header;

@Should be private to Switchboard.


variable _switchboard_topic_stop_header

const record_header ILLIXR::_switchboard_topic_stop_header;

@Should be private to Switchboard.


variable _threadloop_iteration_header

const record_header ILLIXR::_threadloop_iteration_header;

variable dq_0

const data_format::proper_quaterniond ILLIXR::dq_0(1., 0., 0., 0.);

variable ignore_vars

const std::vector<std::string> ILLIXR::ignore_vars;

variable log_count_

size_t ILLIXR::log_count_;

variable server_fov

constexpr float ILLIXR::server_fov;

Public Static Attributes Documentation

variable ENABLE_VERBOSE_ERRORS

const bool ILLIXR::ENABLE_VERBOSE_ERRORS;

variable LOG_BUFFER_DELAY

std::chrono::milliseconds ILLIXR::LOG_BUFFER_DELAY;

Public Functions Documentation

function Gravity

const Eigen::Vector3d ILLIXR::Gravity (
    0. 0,
    0. 0,
    9. 81
) 

Initial quaternion


function abort

Exits the application during a fatal error.

inline void ILLIXR::abort (
    const std::string & msg="",
    const int error_val=1
) 

Switches to using abort during debugging over std::exit so that we can capture SIGABRT for debugging.


function cb_new_sample

GstFlowReturn ILLIXR::cb_new_sample (
    GstElement * appsink,
    gpointer * user_data
) 

function delta_q

inline data_format::proper_quaterniond ILLIXR::delta_q (
    const data_format::proper_quaterniond & k_n
) 

Calculate the change in orientation based on the input Quaternion

Parameters:

  • k_n The input Quaternion

Returns:

The change in orientation


function duration_to_double

template<typename Unit>
double ILLIXR::duration_to_double (
    duration dur
) 

function freq_to_period

constexpr duration ILLIXR::freq_to_period (
    double fps
) 

function makeOmega

Generate the Omega matrix from the input 3-element vector.

inline Eigen::Matrix4d ILLIXR::makeOmega (
    const Eigen::Vector3d & w
) 

Based on equation 48 of http://mars.cs.umn.edu/tr/reports/Trawny05b.pdf


function operator!=

inline bool ILLIXR::operator!= (
    const time_point & lhs,
    const time_point & rhs
) 

function operator+

inline time_point ILLIXR::operator+ (
    const time_point & pt,
    const time_point::duration & d
) 

function operator+

inline time_point ILLIXR::operator+ (
    const time_point::duration & d,
    const time_point & pt
) 

function operator-

inline time_point::duration ILLIXR::operator- (
    const time_point & lhs,
    const time_point & rhs
) 

function operator<

inline bool ILLIXR::operator< (
    const time_point & lhs,
    const time_point & rhs
) 

function operator<<

std::ostream & ILLIXR::operator<< (
    std::ostream & os,
    const state_plus & sp
) 

function operator<=

inline bool ILLIXR::operator<= (
    const time_point & lhs,
    const time_point & rhs
) 

function operator==

inline bool ILLIXR::operator== (
    const time_point & lhs,
    const time_point & rhs
) 

function operator>

inline bool ILLIXR::operator> (
    const time_point & lhs,
    const time_point & rhs
) 

function operator>=

inline bool ILLIXR::operator>= (
    const time_point & lhs,
    const time_point & rhs
) 

function p_dot

f(x) for the position Calculate the new position based on the initial velocity and change in velocity

inline Eigen::Vector3d ILLIXR::p_dot (
    const Eigen::Vector3d & iv,
    const Eigen::Vector3d & k_n
) 

Parameters:

  • iv The initial velocity as a vector
  • k_n The change in velocity as a vector

Returns:

The updated position


function predict_mean_rk4

state_plus ILLIXR::predict_mean_rk4 (
    double dt,
    const state_plus & sp,
    const Eigen::Vector3d & ang_vel,
    const Eigen::Vector3d & linear_acc,
    const Eigen::Vector3d & ang_vel2,
    const Eigen::Vector3d & linear_acc2
) 

Calculate the updated state (orientation, position, and velocity) based on the initial and final velocities and accelerations

Parameters:

  • dt The time between initial and final states (time step)
  • sp The initial state
  • ang_vel The initial angular velocity
  • linear_acc The initial linear acceleration
  • ang_vel2 The final angular velocity
  • linear_acc2 The final angular acceleration

Returns:

The final state


function q_dot

inline data_format::proper_quaterniond ILLIXR::q_dot (
    const Eigen::Vector3d & av,
    const data_format::proper_quaterniond & dq
) 

f(x) for the orientation quaternion

Parameters:

  • av Vector representing the angular velocity
  • dq The current orientation represented by a quaternion

Returns:

The updated quaternion as a new instance


function report_and_clear_errno

Support function to report errno values when debugging (NDEBUG).

inline void ILLIXR::report_and_clear_errno (
    const std::string & file,
    const int & line,
    const std::string & function,
    const std::string & msg=""
) 

If errno is set, this function will report errno's value and the calling context. It will subsequently clear errno (reset value to 0). Otherwise, this function does nothing.


function run

int ILLIXR::run (
    const cxxopts::ParseResult & options
) 

function runtime_factory

runtime * ILLIXR::runtime_factory () 

function solve

Solve for the Runge-Kutta 4th order approximation.

template<typename T>
inline T ILLIXR::solve (
    const T & yn,
    const T & k1,
    const T & k2,
    const T & k3,
    const T & k4
) 

Template parameters:

  • T The data type

Parameters:

  • yn The value at the last time step
  • k1 Runge-Kutta first order
  • k2 Runge-Kutta second order
  • k3 Runge-Kutta third order
  • k4 Runge-Kutta fourth order

Returns:

The approximated value


function str_to_bool

Convert a string containing a (python) boolean to the bool type.

inline bool ILLIXR::str_to_bool (
    const std::string & var
) 


function symmetric_skew

Generates a skew-symmetric matrix from the given 3-element vector.

inline Eigen::Matrix3d ILLIXR::symmetric_skew (
    const Eigen::Vector3d & vec
) 

Gravitational acceleration, at sea level, on Earth

Based on equation 6 from http://mars.cs.umn.edu/tr/reports/Trawny05b.pdf


function v_dot

f(x) for the velocity Calculate the updated velocity from the acceleration and initial and delta quaternions

inline Eigen::Vector3d ILLIXR::v_dot (
    const data_format::proper_quaterniond & dq,
    const data_format::proper_quaterniond & q,
    const Eigen::Vector3d & l_acc
) 

Parameters:

  • dq The delta quaternion (change)
  • q The initial quaternion
  • l_acc The acceleration as a vector

Returns:

The calculated velocity as a vector



The documentation for this class was generated from the following file /home/friedel/devel/ILLIXR/include/illixr/dynamic_lib.hpp