mrs_lib
Various reusable classes, functions and utilities for use in MRS projects
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 123]
 NDynamicPublisher
 Cimpl
 Nmrs_libAll mrs_lib functions, classes, variables and definitions are contained in this namespace
 Ngeometry
 CConeGeometric representaiton of a cone
 CCuboidGeometric representation of a cuboid
 CcyclicImplementation of the a general cyclic value (such as angles in radians/degrees etc)
 CCylinderGeometric representation of a cylinder
 CdegreesConvenience specialization of the cyclic class for unsigned degrees (from $0$ to $360$)
 CEllipseGeometric representation of an ellipse
 CradiansConvenience specialization of the cyclic class for unsigned radians (from $0$ to $2\pi$)
 CRayGeometric representation of a ray. Instantiate it by two input Vector3. Use static methods for from-to raycast, or a point-direction raycast
 CRectangleGeometric representation of a rectangle (can represent any quadrilateral)
 CsdegreesConvenience specialization of the cyclic class for signed degrees (from $-180$ to $180$)
 CsradiansConvenience specialization of the cyclic class for signed radians (from $-\pi$ to $\pi$)
 CTriangleGeometric representation of a triangle. Instantiate a new triangle by providing three vertices
 Nquadratic_throttle_model
 CMotorParams_t
 CAtomicScopeFlagConvenience class for automatically setting and unsetting an atomic boolean based on the object's scope. Useful e.g. for indicating whether a thread is running or not
 CAttitudeConverterThe main convertor class. Instantiate with any type in constructor and get the value in any other type by assigning the instance to your variable, as: tf::Quaternion tf1_quaternion = AttitudeConverter(roll, pitch, yaw); All the default Euler angles are in the extrinsic RPY notation
 CEulerFormatExceptionThrown when the Euler angle format is set wrongly
 CGetHeadingExceptionThrown when calculating of heading is not possible due to atan2 exception
 CInvalidAttitudeExceptionThrown when the internal attitude becomes invalid
 CMathErrorExceptionThrown when math breaks
 CSetHeadingExceptionThrown when the heading cannot be set to an existing attitude
 CBatchVisualizerLibrary for drawing large amounts of geometric objects in RVIZ at the same time
 CDKFImplementation of the Degenerate measurement Linear Kalman filter
 CDynamicPublisherA helper class for easy publishing of ROS messages for debugging purposes
 CDynamicReconfigureMgr
 Ceigenvector_exceptionThis exception may be thrown when solving the generalized eigenvalue problem with the M and N matrices
 CEulerAttitudeA small class for storing the Euler angles
 CIirFilter
 CImagePubliserData
 CImagePublisher
 CIntersection
 CJLKF
 Cinverse_exceptionThis exception is thrown when taking the inverse of a matrix fails
 CKalmanFilterThis abstract class defines common interfaces and types for a generic Kalman filter
 Cstatecov_tHelper struct for passing around the state and its covariance in one variable
 CKalmanFilterAloamGarmThis abstract class defines common interfaces and types for a generic Kalman filter
 Cstatecov_tHelper struct for passing around the state and its covariance in one variable
 CLKFImplementation of the Linear Kalman filter [3]
 Cinverse_exceptionThis exception is thrown when taking the inverse of a matrix fails
 CLKF_MRS_odom
 CMedianFilterImplementation of a median filter with a fixed-length buffer
 CMRSTimerCommon wrapper representing the functionality of the ros::Timer
 CNCLKFThis class implements the norm-constrained linear Kalman filter [5]
 CNCLKF_partialThis class implements the partially norm-constrained linear Kalman filter [5]
 CNCUKF
 CNotchFilter
 CParamLoaderConvenience class for loading parameters from rosparam server
 CParamProviderHelper class for ParamLoader
 CPolygon
 CExtraVertices
 CWrongNumberOfColumns
 CWrongNumberOfVertices
 CProfiler
 CPublisherHandlerUser wrapper of the publisher handler implementation
 CPublisherHandler_implImplementation of the publisher handler
 CRepredictorImplementation of the Repredictor for fusing measurements with variable delays
 CRepredictorAloamgarmImplementation of the RepredictorAloamgarm for fusing measurements with variable delays
 CRHEIVImplementation of the Reduced Heteroscedastic Errors In Variables surface fitting algorithm [2]
 CROSTimerRos::Timer wrapper. The interface is the same as with ros::Timer, except for the initialization method
 CRoutine
 CSafetyZone
 CBorderError
 CScopeTimerSimple timer which will time a duration of a scope and checkpoints inside the scope in ros time and std::chrono time
 Ctime_point
 CScopeTimerLoggerSimple file logger of scope timer and its checkpoints
 CServiceClientHandlerUser wrapper of the service client handler implementation
 CServiceClientHandler_implImplementation of the service client handler
 CSubscribeHandlerThe main class for ROS topic subscription, message timeout handling etc
 CImpl
 CImplThreadsafe
 CSubscribeHandlerOptionsA helper class to simplify setup of SubscribeHandler construction. This class is passed to the SubscribeHandler constructor and specifies its common options
 CThreadTimerCustom thread-based Timers with the same interface as mrs_lib::ROSTimer
 CTimeoutManagerTODO
 CTransformBroadcasterWrapper for the tf2_ros::TransformBroadcaster. With each sendTransform() command, the message is checked against the last message with the same frame IDs. If the transform was already published in this ros::Time step, then the transform is skipped. Prevents endless stream of warnings from spamming the console output
 CTransformerA convenience wrapper class for ROS's native TF2 API to simplify transforming of various messages
 CUKFImplementation of the Unscented Kalman filter [4]
 Cinverse_exceptionThrown when taking the inverse of a matrix fails during kalman gain calculation
 Csquare_root_exceptionThrown when taking the square root of a matrix fails during sigma generation
 CvarstepLKF
 CVector3ConverterConverter of Vector3 representations. Instantiate it with any type of vector3 in constructor and convert it by assigning it to any other type of vector3 variable
 CVisualObject
 Nstd
 Ctuple_element< 0, mrs_lib::AttitudeConverter >
 Ctuple_element< 1, mrs_lib::AttitudeConverter >
 Ctuple_element< 2, mrs_lib::AttitudeConverter >
 Ctuple_size< mrs_lib::AttitudeConverter >
 NThreadTimer
 CImpl
 Cdegrees
 CMyPoint
 Cobj_t
 Cobs_t
 CSubObject
 CVectorConverterTest