Namespace 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 vectork_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 stateang_vel
The initial angular velocitylinear_acc
The initial linear accelerationang_vel2
The final angular velocitylinear_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 velocitydq
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 stepk1
Runge-Kutta first orderk2
Runge-Kutta second orderk3
Runge-Kutta third orderk4
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 quaternionl_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