MRPT  1.9.9
mrpt::hwdrivers::CCameraSensor Class Referenceabstract

Detailed Description

The central class for camera grabbers in MRPT, implementing the "generic sensor" interface.

This class provides the user with a uniform interface to a variety of other classes which manage only one specific camera "driver" (opencv, ffmpeg, PGR FlyCapture,...)

Following the "generic sensor" interface, all the parameters must be passed int the form of a configuration file, which may be also formed on the fly (without being a real config file) as in this example:

const string str =
"[CONFIG]\n"
"grabber_type=opencv\n";
myCam.loadConfig(cfg,"CONFIG");
myCam.initialize();
CObservation::Ptr obs = myCam.getNextFrame();

Images can be retrieved through the normal "doProcess()" interface, or the specific method "getNextFrame()".

Some notes:

Images can be saved in the "external storage" mode. Detached threads are created for this task. See setPathForExternalImages() and setExternalImageFormat(). These methods are called automatically from the app rawlog-grabber.

These is the list of all accepted parameters:

PARAMETERS IN THE ".INI"-LIKE CONFIGURATION STRINGS:
-------------------------------------------------------
[supplied_section_name]
# Select one of the grabber implementations -----------------------
grabber_type = opencv | dc1394 | bumblebee_dc1394 | ffmpeg | rawlog
| swissranger | svs | kinect | flycap | flycap_stereo | image_dir | duo3d
# Options for any grabber_type ------------------------------------
preview_decimation = 0 // N<=0 (or not present): No preview; N>0,
display 1 out of N captured frames.
preview_reduction = 0 // 0 or 1 (or not present): The preview shows
the actual image. For 2,3,..., reduces the size of the image by that factor,
only for the preview window.
capture_grayscale = 0 // 1:capture in grayscale, whenever the driver
allows it. Default=0
# For externaly stored images, the format of image files (default=jpg)
#external_images_format = jpg
# For externaly stored images: whether to spawn independent threads to
save the image files.
#external_images_own_thread = 1 // 0 or 1
# If external_images_own_thread=1, this changes the number of threads to
launch
# to save image files. The default is determined from
mrpt::system::getNumberOfProcessors()
# and should be OK unless you want to save processor time for other
things.
#external_images_own_thread_count = 2 // >=1
# (Only when external_images_format=jpg): Optional parameter to set the
JPEG compression quality:
#external_images_jpeg_quality = 95 // [1-100]. Default: 95
# Pose of the sensor on the robot:
pose_x=0 ; (meters)
pose_y=0
pose_z=0
pose_yaw=0 ; (Angles in degrees)
pose_pitch=0
pose_roll=0
# Options for grabber_type= opencv ------------------------------------
cv_camera_index = 0 // [opencv] Number of camera to open
cv_camera_type = CAMERA_CV_AUTODETECT
cv_frame_width = 640 // [opencv] Capture width (not present or set
to 0 for default)
cv_frame_height = 480 // [opencv] Capture height (not present or set
to 0 for default)
cv_fps = 15 // [opencv] IEEE1394 cams only: Capture FPS
(not present or 0 for default)
cv_gain = 0 // [opencv] Camera gain, if available (nor
present or set to 0 for default).
# Options for grabber_type= dc1394 -------------------------------------
dc1394_camera_guid = 0 | 0x11223344 // 0 (or not present): the first
camera; A hexadecimal number: The GUID of the camera to open
dc1394_camera_unit = 0 // 0 (or not present): the first
camera; 0,1,2,...: The unit number (within the given GUID) of the camera to
open (Stereo cameras: 0 or 1)
dc1394_frame_width = 640
dc1394_frame_height = 480
dc1394_framerate = 15 // eg: 7.5, 15, 30, 60,
etc... For posibilities see mrpt::hwdrivers::TCaptureOptions_dc1394
dc1394_mode7 = -1 // -1: Ignore, i>=0, set to
MODE7_i
dc1394_color_coding = COLOR_CODING_YUV422 // For posibilities see
# Options for setting feature values: dc1394_<feature> = <n>
# with <feature> = brightness | exposure | sharpness | white_balance |
gamma | shutter | gain
# <n> a value, or -1 (or not present) for not to change this feature
value in the camera, possible values are shown in execution
dc1394_shutter = -1
# Options for setting feature modes: dc1394_<feature>_mode = <n>
# with <feature> = brightness | exposure | sharpness | white_balance |
gamma | shutter | gain
# <n> = -1 (or not present) [not to change] | 0 [manual] | 1 [auto]
| 2 [one_push_auto]
dc1394_shutter_mode = -1
# Options for setting trigger options:
dc1394_trigger_power = -1 // -1 (or not present) for not to change
| 0 [OFF] | 1 [ON]
dc1394_trigger_mode = -1 // -1 (or not present) for not to change |
0..7 corresponding to possible modes 0,1,2,3,4,5,14,15
dc1394_trigger_source= -1 // -1 (or not present) for not to change |
0..4 corresponding to possible sources 0,1,2,3,SOFTWARE
dc1394_trigger_polarity = -1 // -1 (or not present) for not to change | 0
[ACTIVE_LOW] | 1 [ACTIVE_HIGH]
dc1394_ring_buffer_size = 15 // Length of frames ring buffer (internal
to libdc1394)
# Options for grabber_type= bumblebee_dc1394
----------------------------------
bumblebee_dc1394_camera_guid = 0 | 0x11223344 // 0 (or not present):
the first camera; A hexadecimal number: The GUID of the camera to open
bumblebee_dc1394_camera_unit = 0 // 0 (or not present):
the first camera; 0,1,2,...: The unit number (within the given GUID) of the
camera to open (Stereo cameras: 0 or 1)
bumblebee_dc1394_framerate = 15 // eg: 7.5, 15, 30,
60, etc... For posibilities see mrpt::hwdrivers::TCaptureOptions_dc1394
# Options for grabber_type= ffmpeg -------------------------------------
ffmpeg_url = rtsp://127.0.0.1 // [ffmpeg] The video file
or IP camera to open
# Options for grabber_type= rawlog -------------------------------------
rawlog_file = mylog.rawlog // [rawlog] This can be
used to simulate the capture of images already grabbed in the past in the
form of a MRPT rawlog.
rawlog_camera_sensor_label = CAMERA1 // [rawlog] If this field
is not present, all images found in the rawlog will be retrieved. Otherwise,
only those observations with a matching sensor label.
# Options for grabber_type= svs -------------------------------------
svs_camera_index = 0
svs_frame_width = 800
svs_frame_height = 600
svs_framerate = 25.0
svs_NDisp = ...
svs_Corrsize = ...
svs_LR = ...
svs_Thresh = ...
svs_Unique = ...
svs_Horopter = ...
svs_SpeckleSize = ...
svs_procesOnChip = false
svs_calDisparity = true
# Options for grabber_type= swissranger
-------------------------------------
sr_use_usb = true // True: use USB, false: use
ethernet
sr_IP = 192.168.2.14 // If sr_use_usb=false, the camera
IP
sr_grab_grayscale = true // whether to save the intensity
channel
sr_grab_3d = true // whether to save the 3D points
sr_grab_range = true // whether to save the range image
sr_grab_confidence = true // whether to save the confidence
# Options for grabber_type= XBox kinect
-------------------------------------
kinect_grab_intensity = true // whether to save the intensity
(RGB) channel
kinect_grab_3d = true // whether to save the 3D points
kinect_grab_range = true // whether to save the depth
#kinect_video_rgb = true // Optional. If set to "false",
the IR intensity channel will be grabbed instead of the color RGB channel.
# Options for grabber_type= flycap (Point Grey Research's FlyCapture 2
for Monocular and Stereo cameras, e.g. Bumblebee2) --------
flycap_camera_index = 0
#... (all the parameters enumerated in
mrpt::hwdrivers::TCaptureOptions_FlyCapture2 with the prefix "flycap_")
# Options for grabber_type= flycap_stereo (Point Grey Research's
FlyCapture 2, two cameras setup as a stereo pair) ------
# fcs_start_synch_capture = false // *Important*: Only set to true if
using Firewire cameras: the "startSyncCapture()" command is unsupported in
USB3 and GigaE cameras.
fcs_LEFT_camera_index = 0
#... (all the parameters enumerated in
fcs_RIGHT_camera_index = 0
#... (all the parameters enumerated in
mrpt::hwdrivers::TCaptureOptions_FlyCapture2 with the prefix "fcs_RIGHT_")
# Options for grabber_type= image_dir
image_dir_url = // [string] URL of the
directory
left_filename_format = imL_%05d.jpg // [string] Format
including prefix, number of trailing zeros, digits and image format
(extension)
right_filename_format = imR_%05d.jpg // [string] Format
including prefix, number of trailing zeros, digits and image format
(extension). Leave blank if only images from one camera will be used.
start_index = 0 // [int]
Starting index for images
end_index = 100 // [int] End index
for the images
# Options for grabber_type= duo3d
Create a section like this:
[DUO3DOptions]
rawlog-grabber-ignore = true // Instructs rawlog-grabber to ignore
this section (it is not a separate device!)
image_width = 640 // [int] x Resolution
image_height = 480 // [int] y Resolution
fps = 30 // [int] Frames per second
(<= 30)
exposure = 50 // [int] Exposure value (1..100)
led = 0 // [int] Led intensity
(only for some device models) (1..100).
gain = 50 // [int] Camera gain (1..100)
capture_rectified = false // [bool] Rectify
captured images
capture_imu = true // [bool] Capture IMU data
from DUO3D device (if available)
calibration_from_file = true // [bool] Use YML
calibration files provided by calibration application supplied with DUO3D
device
intrinsic_filename = "" // [string] Intrinsic
parameters file. This filename should contain a substring _RWWWxHHH_ with WWW
being the image width and HHH the image height, as provided by the
calibration application.
extrinsic_filename = "" // [string] Extrinsic
parameters file. This filename should contain a substring _RWWWxHHH_ with WWW
being the image width and HHH the image height, as provided by the
calibration application.
rectify_map_filename = "" // [string] Rectification map
file. This filename should contain a substring _RWWWxHHH_ with WWW being the
image width and HHH the image height, as provided by the calibration
application.
// if 'calibration_from_file' = false, three more sections containing the
calibration must be provided:
[DUO3D_LEFT]
rawlog-grabber-ignore = true // Instructs rawlog-grabber to ignore
this section (it is not a separate device!)
resolution = [640 480]
cx = 320
cy = 240
fx = 700
fy = 700
dist = [0 0 0 0 0]
[DUO3D_RIGHT]
rawlog-grabber-ignore = true // Instructs rawlog-grabber to ignore
this section (it is not a separate device!)
resolution = [640 480]
cx = 320
cy = 240
fx = 700
fy = 700
dist = [0 0 0 0 0]
[DUO3D_LEFT2RIGHT_POSE]
rawlog-grabber-ignore = true // Instructs rawlog-grabber to ignore
this section (it is not a separate device!)
pose_quaternion = [0.12 0 0 1 0 0 0]
Note
The execution rate, in rawlog-grabber or the user code calling doProcess(), should be greater than the required capture FPS.
In Linux you may need to execute "chmod 666 /dev/video1394/ * " and "chmod 666 /dev/raw1394" for allowing any user R/W access to firewire cameras.
[New in MRPT 1.4.0] The bumblebee driver has been deleted, use the flycap driver in stereo mode.
See also
mrpt::hwdrivers::CImageGrabber_OpenCV, mrpt::hwdrivers::CImageGrabber_dc1394, CGenericSensor, prepareVideoSourceFromUserSelection()

Definition at line 343 of file CCameraSensor.h.

#include <mrpt/hwdrivers/CCameraSensor.h>

Inheritance diagram for mrpt::hwdrivers::CCameraSensor:

Public Types

using Ptr = std::shared_ptr< CCameraSensor >
 
using TPreSaveUserHook = std::function< void(const mrpt::obs::CObservation::Ptr &obs, void *user_ptr)>
 Functor type. More...
 
enum  TSensorState { ssInitializing = 0, ssWorking, ssError }
 The current state of the sensor. More...
 
using TListObservations = std::multimap< mrpt::system::TTimeStamp, mrpt::serialization::CSerializable::Ptr >
 
using TListObsPair = std::pair< mrpt::system::TTimeStamp, mrpt::serialization::CSerializable::Ptr >
 

Public Member Functions

 CCameraSensor ()
 Constructor. More...
 
 ~CCameraSensor () override
 Destructor. More...
 
void doProcess () override
 This method will be invoked at a minimum rate of "process_rate" (Hz) More...
 
mrpt::obs::CObservation::Ptr getNextFrame ()
 Retrieves the next frame from the video source, raising an exception on any error. More...
 
void getNextFrame (std::vector< mrpt::serialization::CSerializable::Ptr > &out_obs)
 
void initialize () override
 Tries to open the camera, after setting all the parameters with a call to loadConfig. More...
 
void close ()
 Close the camera (if open). More...
 
void setSoftwareTriggerLevel (bool level)
 Set Software trigger level value (ON or OFF) for cameras with this function available. More...
 
void setPathForExternalImages (const std::string &directory) override
 Set the path where to save off-rawlog image files (this class DOES take into account this path). More...
 
void enableLaunchOwnThreadForSavingImages (bool enable=true)
 This must be called before initialize() More...
 
void addPreSaveHook (TPreSaveUserHook user_function, void *user_ptr)
 Provides a "hook" for user-code to be run BEFORE an image is going to be saved to disk if external storage is enabled (e.g. More...
 
virtual const mrpt::hwdrivers::TSensorClassIdGetRuntimeClass () const =0
 
TSensorState getState () const
 The current state of the sensor. More...
 
double getProcessRate () const
 
std::string getSensorLabel () const
 
void setSensorLabel (const std::string &sensorLabel)
 
void enableVerbose (bool enabled=true)
 Enable or disable extra debug info dumped to std::cout during sensor operation. More...
 
bool isVerboseEnabled () const
 
void loadConfig (const mrpt::config::CConfigFileBase &configSource, const std::string &section)
 Loads the generic settings common to any sensor (See CGenericSensor), then call to "loadConfig_sensorSpecific". More...
 
void getObservations (TListObservations &lstObjects)
 Returns a list of enqueued objects, emptying it (thread-safe). More...
 
void setExternalImageFormat (const std::string &ext)
 Set the extension ("jpg","gif","png",...) that determines the format of images saved externally The default is "jpg". More...
 
void setExternalImageJPEGQuality (const unsigned int quality)
 The quality of JPEG compression, when external images is enabled and the format is "jpg". More...
 
unsigned int getExternalImageJPEGQuality () const
 

Static Public Member Functions

static std::array< mrpt::system::TConsoleColor, NUMBER_OF_VERBOSITY_LEVELS > & logging_levels_to_colors ()
 Map from VerbosityLevels to their corresponding mrpt::system::TConsoleColor. More...
 
static std::array< std::string, NUMBER_OF_VERBOSITY_LEVELS > & logging_levels_to_names ()
 Map from VerbosityLevels to their corresponding names. More...
 
static void registerClass (const TSensorClassId *pNewClass)
 Register a class into the internal list of "CGenericSensor" descendents. More...
 
static CGenericSensorcreateSensor (const std::string &className)
 Creates a sensor by a name of the class. More...
 
static CGenericSensor::Ptr createSensorPtr (const std::string &className)
 Just like createSensor, but returning a smart pointer to the newly created sensor object. More...
 

Protected Member Functions

void loadConfig_sensorSpecific (const mrpt::config::CConfigFileBase &configSource, const std::string &iniSection) override
 See the class documentation at the top for expected parameters. More...
 
void appendObservations (const std::vector< mrpt::serialization::CSerializable::Ptr > &obj)
 This method must be called by derived classes to enqueue a new observation in the list to be returned by getObservations. More...
 
void appendObservation (const mrpt::serialization::CSerializable::Ptr &obj)
 Like appendObservations() but for just one observation. More...
 

Protected Attributes

poses::CPose3D m_sensorPose
 
std::string m_grabber_type
 Can be "opencv",... More...
 
bool m_capture_grayscale {false}
 
int m_cv_camera_index {0}
 
std::string m_cv_camera_type
 
TCaptureCVOptions m_cv_options
 
uint64_t m_dc1394_camera_guid {0}
 
int m_dc1394_camera_unit {0}
 
TCaptureOptions_dc1394 m_dc1394_options
 
int m_preview_decimation {0}
 
int m_preview_reduction {1}
 
uint64_t m_bumblebee_dc1394_camera_guid {0}
 
int m_bumblebee_dc1394_camera_unit {0}
 
double m_bumblebee_dc1394_framerate {15}
 
int m_svs_camera_index {0}
 
TCaptureOptions_SVS m_svs_options
 
std::string m_ffmpeg_url
 
std::string m_rawlog_file
 
std::string m_rawlog_camera_sensor_label
 
std::string m_rawlog_detected_images_dir
 
bool m_sr_open_from_usb {true}
 true: USB, false: ETH More...
 
std::string m_sr_ip_address
 
bool m_sr_save_3d {true}
 Save the 3D point cloud (default: true) More...
 
bool m_sr_save_range_img {true}
 Save the 2D range image (default: true) More...
 
bool m_sr_save_intensity_img {true}
 Save the 2D intensity image (default: true) More...
 
bool m_sr_save_confidence {true}
 Save the estimated confidence 2D image (default: false) More...
 
bool m_kinect_save_3d {true}
 Save the 3D point cloud (default: true) More...
 
bool m_kinect_save_range_img {true}
 Save the 2D range image (default: true) More...
 
bool m_kinect_save_intensity_img {true}
 Save the 2D intensity image (default: true) More...
 
bool m_kinect_video_rgb {true}
 Save RGB or IR channels (default:true) More...
 
TCaptureOptions_FlyCapture2 m_flycap_options
 
bool m_fcs_start_synch_capture {false}
 
TCaptureOptions_FlyCapture2 m_flycap_stereo_options [2]
 
std::string m_img_dir_url
 
std::string m_img_dir_left_format
 
std::string m_img_dir_right_format
 
int m_img_dir_start_index {0}
 
int m_img_dir_end_index {100}
 
bool m_img_dir_is_stereo {true}
 
int m_img_dir_counter {0}
 
TCaptureOptions_DUO3D m_duo3d_options
 
bool m_external_images_own_thread {false}
 Whether to launch independent thread. More...
 
VerbosityLevel m_min_verbosity_level {LVL_INFO}
 Provided messages with VerbosityLevel smaller than this value shall be ignored. More...
 
size_t m_grab_decimation_counter {0}
 Used when "m_grab_decimation" is enabled. More...
 
TSensorState m_state {ssInitializing}
 
bool m_verbose {false}
 
std::string m_path_for_external_images
 The path where to save off-rawlog images: empty means save images embedded in the rawlog. More...
 
std::string m_external_images_format
 The extension ("jpg","gif","png",...) that determines the format of images saved externally. More...
 
unsigned int m_external_images_jpeg_quality {95}
 For JPEG images, the quality (default=95%). More...
 
Common settings to any sensor, loaded in "loadConfig"
double m_process_rate {0}
 See CGenericSensor. More...
 
size_t m_max_queue_len {200}
 See CGenericSensor. More...
 
size_t m_grab_decimation {0}
 If set to N>=2, only 1 out of N observations will be saved to m_objList. More...
 
std::string m_sensorLabel
 See CGenericSensor. More...
 

Private Attributes

std::unique_ptr< CImageGrabber_OpenCVm_cap_cv
 The OpenCV capture object. More...
 
std::unique_ptr< CImageGrabber_dc1394m_cap_dc1394
 The dc1394 capture object. More...
 
std::unique_ptr< CImageGrabber_FlyCapture2m_cap_flycap
 The FlyCapture2 object. More...
 
std::unique_ptr< CImageGrabber_FlyCapture2m_cap_flycap_stereo_l
 The FlyCapture2 object for stereo pairs. More...
 
std::unique_ptr< CImageGrabber_FlyCapture2m_cap_flycap_stereo_r
 
std::unique_ptr< CStereoGrabber_Bumblebee_libdc1394m_cap_bumblebee_dc1394
 
std::unique_ptr< CStereoGrabber_SVSm_cap_svs
 The svs capture object. More...
 
std::unique_ptr< CFFMPEG_InputStreamm_cap_ffmpeg
 The FFMPEG capture object. More...
 
std::unique_ptr< mrpt::io::CFileGZInputStreamm_cap_rawlog
 The input file for rawlogs. More...
 
std::unique_ptr< CSwissRanger3DCameram_cap_swissranger
 SR 3D camera object. More...
 
std::unique_ptr< CKinectm_cap_kinect
 Kinect camera object. More...
 
std::unique_ptr< COpenNI2Sensorm_cap_openni2
 OpenNI2 object. More...
 
std::unique_ptr< std::stringm_cap_image_dir
 Read images from directory. More...
 
std::unique_ptr< CDUO3DCameram_cap_duo3d
 The DUO3D capture object. More...
 
int m_camera_grab_decimator {0}
 
int m_camera_grab_decimator_counter {0}
 
int m_preview_counter {0}
 
mrpt::gui::CDisplayWindow::Ptr m_preview_win1
 Normally we'll use only one window, but for stereo images we'll use two of them. More...
 
mrpt::gui::CDisplayWindow::Ptr m_preview_win2
 

Stuff related to working threads to save images to disk

unsigned int m_external_image_saver_count
 Number of working threads. More...
 
std::vector< std::thread > m_threadImagesSaver
 
bool m_threadImagesSaverShouldEnd {false}
 
std::mutex m_csToSaveList
 The critical section for m_toSaveList. More...
 
std::vector< TListObservationsm_toSaveList
 The queues of objects to be returned by getObservations, one for each working thread. More...
 
TPreSaveUserHook m_hook_pre_save
 
voidm_hook_pre_save_param {nullptr}
 
void thread_save_images (unsigned int my_working_thread_index)
 Thread to save images to files. More...
 

Logging methods

void logStr (const VerbosityLevel level, const std::string &msg_str) const
 Main method to add the specified message string to the logger. More...
 
void logFmt (const VerbosityLevel level, const char *fmt,...) const MRPT_printf_format_check(3
 Alternative logging method, which mimics the printf behavior. More...
 
void void logCond (const VerbosityLevel level, bool cond, const std::string &msg_str) const
 Log the given message only if the condition is satisfied. More...
 
void setLoggerName (const std::string &name)
 Set the name of the COutputLogger instance. More...
 
std::string getLoggerName () const
 Return the name of the COutputLogger instance. More...
 
void setMinLoggingLevel (const VerbosityLevel level)
 Set the minimum logging level for which the incoming logs are going to be taken into account. More...
 
void setVerbosityLevel (const VerbosityLevel level)
 alias of setMinLoggingLevel() More...
 
VerbosityLevel getMinLoggingLevel () const
 
bool isLoggingLevelVisible (VerbosityLevel level) const
 
void getLogAsString (std::string &log_contents) const
 Fill the provided string with the contents of the logger's history in std::string representation. More...
 
std::string getLogAsString () const
 Get the history of COutputLogger instance in a string representation. More...
 
void writeLogToFile (const std::string *fname_in=nullptr) const
 Write the contents of the COutputLogger instance to an external file. More...
 
void dumpLogToConsole () const
 Dump the current contents of the COutputLogger instance in the terminal window. More...
 
std::string getLoggerLastMsg () const
 Return the last Tmsg instance registered in the logger history. More...
 
void getLoggerLastMsg (std::string &msg_str) const
 Fill inputtted string with the contents of the last message in history. More...
 
void loggerReset ()
 Reset the contents of the logger instance. More...
 
void logRegisterCallback (output_logger_callback_t userFunc)
 
bool logDeregisterCallback (output_logger_callback_t userFunc)
 
bool logging_enable_console_output {true}
 [Default=true] Set it to false in case you don't want the logged messages to be dumped to the output automatically. More...
 
bool logging_enable_keep_record {false}
 [Default=false] Enables storing all messages into an internal list. More...
 

Member Typedef Documentation

◆ Ptr

◆ TListObservations

◆ TListObsPair

◆ TPreSaveUserHook

Functor type.

Definition at line 404 of file CCameraSensor.h.

Member Enumeration Documentation

◆ TSensorState

The current state of the sensor.

See also
CGenericSensor::getState
Enumerator
ssInitializing 
ssWorking 
ssError 

Definition at line 83 of file CGenericSensor.h.

Constructor & Destructor Documentation

◆ CCameraSensor()

CCameraSensor::CCameraSensor ( )

Constructor.

The camera is not open until "initialize" is called.

Definition at line 45 of file CCameraSensor.cpp.

References mrpt::hwdrivers::CGenericSensor::ssInitializing.

◆ ~CCameraSensor()

CCameraSensor::~CCameraSensor ( )
override

Destructor.

Definition at line 695 of file CCameraSensor.cpp.

Member Function Documentation

◆ addPreSaveHook()

void mrpt::hwdrivers::CCameraSensor::addPreSaveHook ( TPreSaveUserHook  user_function,
void user_ptr 
)
inline

Provides a "hook" for user-code to be run BEFORE an image is going to be saved to disk if external storage is enabled (e.g.

to rectify images, preprocess them, etc.) Notice that this code may be called from detached threads, so it must be thread safe. If used, call this before initialize()

Definition at line 412 of file CCameraSensor.h.

References m_hook_pre_save, and m_hook_pre_save_param.

◆ appendObservation()

void mrpt::hwdrivers::CGenericSensor::appendObservation ( const mrpt::serialization::CSerializable::Ptr obj)
inlineprotectedinherited

Like appendObservations() but for just one observation.

Definition at line 178 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::appendObservations().

Referenced by mrpt::hwdrivers::CIMUXSens_MT4::doProcess(), mrpt::hwdrivers::CIMUXSens::doProcess(), mrpt::hwdrivers::CGyroKVHDSP3000::doProcess(), mrpt::hwdrivers::CSkeletonTracker::doProcess(), mrpt::hwdrivers::CSwissRanger3DCamera::doProcess(), mrpt::hwdrivers::C2DRangeFinderAbstract::doProcess(), mrpt::hwdrivers::CCANBusReader::doProcess(), mrpt::hwdrivers::CVelodyneScanner::doProcess(), and mrpt::hwdrivers::CGPSInterface::flushParsedMessagesNow().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ appendObservations()

void CGenericSensor::appendObservations ( const std::vector< mrpt::serialization::CSerializable::Ptr > &  obj)
protectedinherited

This method must be called by derived classes to enqueue a new observation in the list to be returned by getObservations.

Passed objects must be created in dynamic memory and a smart pointer passed. Example of creation:

mrpt::obs::CObservationGPS::Ptr o = CObservationGPS::Ptr( new
CObservationGPS() );
o-> .... // Set data

If several observations are passed at once in the vector, they'll be considered as a block regarding the grabbing decimation factor.

Definition at line 48 of file CGenericSensor.cpp.

References CLASS_ID, mrpt::hwdrivers::CGenericSensor::m_csObjList, mrpt::hwdrivers::CGenericSensor::m_grab_decimation, mrpt::hwdrivers::CGenericSensor::m_grab_decimation_counter, mrpt::hwdrivers::CGenericSensor::m_objList, and THROW_EXCEPTION.

Referenced by mrpt::hwdrivers::CGenericSensor::appendObservation(), mrpt::hwdrivers::CNationalInstrumentsDAQ::doProcess(), and mrpt::hwdrivers::CKinect::doProcess().

Here is the caller graph for this function:

◆ close()

void CCameraSensor::close ( )

Close the camera (if open).

This method is called automatically on destruction.

Definition at line 374 of file CCameraSensor.cpp.

References mrpt::hwdrivers::CGenericSensor::ssInitializing.

◆ createSensor()

CGenericSensor * CGenericSensor::createSensor ( const std::string className)
staticinherited

Creates a sensor by a name of the class.

Typically the user may want to create a smart pointer around the returned pointer, whis is made with:

Returns
A pointer to a new class, or nullptr if class name is unknown.

Definition at line 97 of file CGenericSensor.cpp.

References mrpt::hwdrivers::CGenericSensor::get_registered_sensor_classes().

Referenced by mrpt::hwdrivers::CGenericSensor::createSensorPtr().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createSensorPtr()

static CGenericSensor::Ptr mrpt::hwdrivers::CGenericSensor::createSensorPtr ( const std::string className)
inlinestaticinherited

Just like createSensor, but returning a smart pointer to the newly created sensor object.

Definition at line 218 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::createSensor().

Here is the call graph for this function:

◆ doProcess()

void CCameraSensor::doProcess ( )
overridevirtual

This method will be invoked at a minimum rate of "process_rate" (Hz)

Exceptions
Thismethod must throw an exception with a descriptive message if some critical error is found.

Implements mrpt::hwdrivers::CGenericSensor.

Definition at line 1351 of file CCameraSensor.cpp.

◆ dumpLogToConsole()

void COutputLogger::dumpLogToConsole ( ) const
inherited

Dump the current contents of the COutputLogger instance in the terminal window.

See also
writeToFile

Definition at line 190 of file COutputLogger.cpp.

◆ enableLaunchOwnThreadForSavingImages()

void mrpt::hwdrivers::CCameraSensor::enableLaunchOwnThreadForSavingImages ( bool  enable = true)
inline

This must be called before initialize()

Definition at line 397 of file CCameraSensor.h.

References m_external_images_own_thread.

◆ enableVerbose()

void mrpt::hwdrivers::CGenericSensor::enableVerbose ( bool  enabled = true)
inlineinherited

Enable or disable extra debug info dumped to std::cout during sensor operation.

Default: disabled unless the environment variable "MRPT_HWDRIVERS_VERBOSE" is set to "1" during object creation.

Definition at line 104 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::m_verbose.

◆ getExternalImageJPEGQuality()

unsigned int mrpt::hwdrivers::CGenericSensor::getExternalImageJPEGQuality ( ) const
inlineinherited

◆ getLogAsString() [1/2]

void COutputLogger::getLogAsString ( std::string log_contents) const
inherited

Fill the provided string with the contents of the logger's history in std::string representation.

Definition at line 154 of file COutputLogger.cpp.

◆ getLogAsString() [2/2]

std::string COutputLogger::getLogAsString ( ) const
inherited

Get the history of COutputLogger instance in a string representation.

Definition at line 159 of file COutputLogger.cpp.

Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::getDescriptiveReport().

Here is the caller graph for this function:

◆ getLoggerLastMsg() [1/2]

std::string COutputLogger::getLoggerLastMsg ( ) const
inherited

Return the last Tmsg instance registered in the logger history.

Definition at line 195 of file COutputLogger.cpp.

References mrpt::system::COutputLogger::TMsg::getAsString().

Here is the call graph for this function:

◆ getLoggerLastMsg() [2/2]

void COutputLogger::getLoggerLastMsg ( std::string msg_str) const
inherited

Fill inputtted string with the contents of the last message in history.

Definition at line 201 of file COutputLogger.cpp.

◆ getLoggerName()

std::string COutputLogger::getLoggerName ( ) const
inherited

Return the name of the COutputLogger instance.

See also
setLoggerName

Definition at line 143 of file COutputLogger.cpp.

◆ getMinLoggingLevel()

VerbosityLevel mrpt::system::COutputLogger::getMinLoggingLevel ( ) const
inlineinherited
See also
setMinLoggingLevel

Definition at line 200 of file system/COutputLogger.h.

References mrpt::system::COutputLogger::m_min_verbosity_level.

Referenced by mrpt::maps::CRandomFieldGridMap2D::isEnabledVerbose(), and mrpt::slam::CMetricMapBuilderRBPF::processActionObservation().

Here is the caller graph for this function:

◆ getNextFrame() [1/2]

CObservation::Ptr CCameraSensor::getNextFrame ( )

Retrieves the next frame from the video source, raising an exception on any error.

Note: The returned observations can be of one of these classes (you can use IS_CLASS(obs,CObservationXXX) to determine it):

Definition at line 705 of file CCameraSensor.cpp.

◆ getNextFrame() [2/2]

◆ getObservations()

void CGenericSensor::getObservations ( TListObservations lstObjects)
inherited

Returns a list of enqueued objects, emptying it (thread-safe).

The objects must be freed by the invoker.

Definition at line 85 of file CGenericSensor.cpp.

References mrpt::hwdrivers::CGenericSensor::m_csObjList, and mrpt::hwdrivers::CGenericSensor::m_objList.

Referenced by TEST().

Here is the caller graph for this function:

◆ getProcessRate()

double mrpt::hwdrivers::CGenericSensor::getProcessRate ( ) const
inlineinherited

Definition at line 92 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::m_process_rate.

◆ GetRuntimeClass()

virtual const mrpt::hwdrivers::TSensorClassId* mrpt::hwdrivers::CGenericSensor::GetRuntimeClass ( ) const
pure virtualinherited

◆ getSensorLabel()

std::string mrpt::hwdrivers::CGenericSensor::getSensorLabel ( ) const
inlineinherited

Definition at line 93 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::m_sensorLabel.

◆ getState()

TSensorState mrpt::hwdrivers::CGenericSensor::getState ( ) const
inlineinherited

The current state of the sensor.

Definition at line 91 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::m_state.

◆ initialize()

void CCameraSensor::initialize ( )
overridevirtual

Tries to open the camera, after setting all the parameters with a call to loadConfig.

Exceptions
Thismethod must throw an exception with a descriptive message if some critical error is found.

Reimplemented from mrpt::hwdrivers::CGenericSensor.

Definition at line 74 of file CCameraSensor.cpp.

References mrpt::format(), mrpt::system::lowerCase(), mrpt::typemeta::TEnumType< ENUMTYPE >::name2value(), mrpt::hwdrivers::CGenericSensor::ssError, mrpt::hwdrivers::CGenericSensor::ssWorking, mrpt::hwdrivers::CImageGrabber_FlyCapture2::startSyncCapture(), thread_save_images(), THROW_EXCEPTION, THROW_EXCEPTION_FMT, trim(), mrpt::system::upperCase(), mrpt::hwdrivers::CKinect::VIDEO_CHANNEL_IR, and mrpt::hwdrivers::CKinect::VIDEO_CHANNEL_RGB.

Here is the call graph for this function:

◆ isLoggingLevelVisible()

bool mrpt::system::COutputLogger::isLoggingLevelVisible ( VerbosityLevel  level) const
inlineinherited

Definition at line 201 of file system/COutputLogger.h.

References mrpt::system::COutputLogger::m_min_verbosity_level.

Referenced by mrpt::slam::CMetricMapBuilderRBPF::processActionObservation(), and mrpt::system::COutputLoggerStreamWrapper::~COutputLoggerStreamWrapper().

Here is the caller graph for this function:

◆ isVerboseEnabled()

bool mrpt::hwdrivers::CGenericSensor::isVerboseEnabled ( ) const
inlineinherited

Definition at line 105 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::m_verbose.

◆ loadConfig()

void CGenericSensor::loadConfig ( const mrpt::config::CConfigFileBase cfg,
const std::string sect 
)
inherited

Loads the generic settings common to any sensor (See CGenericSensor), then call to "loadConfig_sensorSpecific".

Exceptions
Thismethod throws an exception with a descriptive message if some critical parameter is missing or has an invalid value.

Definition at line 126 of file CGenericSensor.cpp.

References mrpt::hwdrivers::CGenericSensor::loadConfig_sensorSpecific(), mrpt::hwdrivers::CGenericSensor::m_grab_decimation, mrpt::hwdrivers::CGenericSensor::m_grab_decimation_counter, mrpt::hwdrivers::CGenericSensor::m_max_queue_len, mrpt::hwdrivers::CGenericSensor::m_process_rate, mrpt::hwdrivers::CGenericSensor::m_sensorLabel, MRPT_END, MRPT_START, mrpt::config::CConfigFileBase::read_double(), mrpt::config::CConfigFileBase::read_int(), and mrpt::config::CConfigFileBase::read_string().

Here is the call graph for this function:

◆ loadConfig_sensorSpecific()

◆ logCond()

void COutputLogger::logCond ( const VerbosityLevel  level,
bool  cond,
const std::string msg_str 
) const
inherited

Log the given message only if the condition is satisfied.

See also
log, logFmt

Definition at line 131 of file COutputLogger.cpp.

◆ logDeregisterCallback()

bool COutputLogger::logDeregisterCallback ( output_logger_callback_t  userFunc)
inherited
Returns
true if an entry was found and deleted.

Definition at line 291 of file COutputLogger.cpp.

References getAddress(), and mrpt::system::COutputLogger::m_listCallbacks.

Here is the call graph for this function:

◆ logFmt()

void COutputLogger::logFmt ( const VerbosityLevel  level,
const char *  fmt,
  ... 
) const
inherited

◆ loggerReset()

void COutputLogger::loggerReset ( )
inherited

Reset the contents of the logger instance.

Called upon construction.

Definition at line 206 of file COutputLogger.cpp.

References mrpt::system::LVL_INFO.

◆ logging_levels_to_colors()

std::array< mrpt::system::TConsoleColor, NUMBER_OF_VERBOSITY_LEVELS > & COutputLogger::logging_levels_to_colors ( )
staticinherited

Map from VerbosityLevels to their corresponding mrpt::system::TConsoleColor.

Handy for coloring the input based on the verbosity of the message

Definition at line 47 of file COutputLogger.cpp.

References logging_levels_to_colors.

Referenced by mrpt::system::COutputLogger::TMsg::dumpToConsole().

Here is the caller graph for this function:

◆ logging_levels_to_names()

std::array< std::string, NUMBER_OF_VERBOSITY_LEVELS > & COutputLogger::logging_levels_to_names ( )
staticinherited

Map from VerbosityLevels to their corresponding names.

Handy for printing the current message VerbosityLevel along with the actual content

Definition at line 60 of file COutputLogger.cpp.

References logging_levels_to_names.

Referenced by mrpt::system::COutputLogger::TMsg::getAsString().

Here is the caller graph for this function:

◆ logRegisterCallback()

void COutputLogger::logRegisterCallback ( output_logger_callback_t  userFunc)
inherited

Definition at line 278 of file COutputLogger.cpp.

References mrpt::system::COutputLogger::m_listCallbacks.

◆ logStr()

void COutputLogger::logStr ( const VerbosityLevel  level,
const std::string msg_str 
) const
inherited

Main method to add the specified message string to the logger.

See also
logCond, logFmt

Definition at line 72 of file COutputLogger.cpp.

References mrpt::system::COutputLogger::TMsg::body, mrpt::system::COutputLogger::TMsg::dumpToConsole(), mrpt::system::COutputLogger::TMsg::level, mrpt::system::COutputLogger::TMsg::name, and mrpt::system::COutputLogger::TMsg::timestamp.

Referenced by mrpt::slam::PF_implementation< mrpt::math::TPose3D, CMonteCarloLocalization3D, mrpt::bayes::particle_storage_mode::VALUE >::PF_SLAM_implementation_pfAuxiliaryPFStandardAndOptimal(), mrpt::nav::CReactiveNavigationSystem::STEP1_InitPTGs(), mrpt::system::COutputLoggerStreamWrapper::~COutputLoggerStreamWrapper(), and mrpt::system::CTimeLoggerSaveAtDtor::~CTimeLoggerSaveAtDtor().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ registerClass()

void CGenericSensor::registerClass ( const TSensorClassId pNewClass)
staticinherited

Register a class into the internal list of "CGenericSensor" descendents.

Used internally in the macros DEFINE_GENERIC_SENSOR, etc...

Can be used as "CGenericSensor::registerClass( SENSOR_CLASS_ID(CMySensor) );" if building custom sensors outside mrpt libraries in user code.

Definition at line 115 of file CGenericSensor.cpp.

References mrpt::hwdrivers::TSensorClassId::className, and mrpt::hwdrivers::CGenericSensor::get_registered_sensor_classes().

Referenced by mrpt::hwdrivers::CGenericSensor::CLASSINIT_GENERIC_SENSOR::CLASSINIT_GENERIC_SENSOR().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setExternalImageFormat()

void mrpt::hwdrivers::CGenericSensor::setExternalImageFormat ( const std::string ext)
inlineinherited

Set the extension ("jpg","gif","png",...) that determines the format of images saved externally The default is "jpg".

See also
setPathForExternalImages, setExternalImageJPEGQuality

Definition at line 277 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::m_external_images_format.

◆ setExternalImageJPEGQuality()

void mrpt::hwdrivers::CGenericSensor::setExternalImageJPEGQuality ( const unsigned int  quality)
inlineinherited

The quality of JPEG compression, when external images is enabled and the format is "jpg".

See also
setExternalImageFormat

Definition at line 284 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::m_external_images_jpeg_quality.

◆ setLoggerName()

void COutputLogger::setLoggerName ( const std::string name)
inherited

Set the name of the COutputLogger instance.

See also
getLoggerName

Definition at line 138 of file COutputLogger.cpp.

Referenced by mrpt::slam::CMetricMapBuilderICP::CMetricMapBuilderICP(), mrpt::slam::CMetricMapBuilderRBPF::CMetricMapBuilderRBPF(), mrpt::slam::CMonteCarloLocalization2D::CMonteCarloLocalization2D(), mrpt::slam::CMonteCarloLocalization3D::CMonteCarloLocalization3D(), and mrpt::graphslam::CWindowManager::initCWindowManager().

Here is the caller graph for this function:

◆ setMinLoggingLevel()

void COutputLogger::setMinLoggingLevel ( const VerbosityLevel  level)
inherited

Set the minimum logging level for which the incoming logs are going to be taken into account.

String messages with specified VerbosityLevel smaller than the min, will not be outputted to the screen and neither will a record of them be stored in by the COutputLogger instance

Definition at line 144 of file COutputLogger.cpp.

Referenced by mrpt::maps::CRandomFieldGridMap2D::enableVerbose(), mrpt::math::CLevenbergMarquardtTempl< VECTORTYPE, USERPARAM >::execute(), mrpt::hwdrivers::CHokuyoURG::initialize(), and mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::loadParams().

Here is the caller graph for this function:

◆ setPathForExternalImages()

void CCameraSensor::setPathForExternalImages ( const std::string directory)
overridevirtual

Set the path where to save off-rawlog image files (this class DOES take into account this path).

An empty string (the default value at construction) means to save images embedded in the rawlog, instead of on separate files.

Exceptions
std::exceptionIf the directory doesn't exists and cannot be created.

Reimplemented from mrpt::hwdrivers::CGenericSensor.

Definition at line 1381 of file CCameraSensor.cpp.

References mrpt::system::createDirectory(), and THROW_EXCEPTION_FMT.

Here is the call graph for this function:

◆ setSensorLabel()

void mrpt::hwdrivers::CGenericSensor::setSensorLabel ( const std::string sensorLabel)
inlineinherited

Definition at line 94 of file CGenericSensor.h.

References mrpt::hwdrivers::CGenericSensor::m_sensorLabel.

◆ setSoftwareTriggerLevel()

void CCameraSensor::setSoftwareTriggerLevel ( bool  level)

Set Software trigger level value (ON or OFF) for cameras with this function available.

Definition at line 1361 of file CCameraSensor.cpp.

References mrpt::hwdrivers::CGenericSensor::ssError, and THROW_EXCEPTION.

◆ setVerbosityLevel()

void COutputLogger::setVerbosityLevel ( const VerbosityLevel  level)
inherited

alias of setMinLoggingLevel()

Definition at line 149 of file COutputLogger.cpp.

Referenced by mrpt::nav::CAbstractNavigator::CAbstractNavigator(), mrpt::slam::CMetricMapBuilderRBPF::CMetricMapBuilderRBPF(), mrpt::comms::CServerTCPSocket::CServerTCPSocket(), mrpt::slam::CMetricMapBuilderRBPF::processActionObservation(), and mrpt::math::ransac_detect_2D_lines().

Here is the caller graph for this function:

◆ thread_save_images()

void CCameraSensor::thread_save_images ( unsigned int  my_working_thread_index)
private

Thread to save images to files.

Definition at line 1545 of file CCameraSensor.cpp.

References mrpt::system::fileNameStripInvalidChars(), mrpt::format(), IS_CLASS, IS_DERIVED, mrpt::system::timestampTotime_t(), and trim().

Referenced by initialize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeLogToFile()

void COutputLogger::writeLogToFile ( const std::string fname_in = nullptr) const
inherited

Write the contents of the COutputLogger instance to an external file.

Upon call to this method, COutputLogger dumps the contents of all the logged commands so far to the specified external file. By default the filename is set to ${LOGGERNAME}.log except if the fname parameter is provided

See also
dumpToConsole, getAsString

Definition at line 165 of file COutputLogger.cpp.

References ASSERTMSG_, and mrpt::format().

Here is the call graph for this function:

Member Data Documentation

◆ logging_enable_console_output

bool mrpt::system::COutputLogger::logging_enable_console_output {true}
inherited

[Default=true] Set it to false in case you don't want the logged messages to be dumped to the output automatically.

Definition at line 239 of file system/COutputLogger.h.

◆ logging_enable_keep_record

bool mrpt::system::COutputLogger::logging_enable_keep_record {false}
inherited

[Default=false] Enables storing all messages into an internal list.

See also
writeLogToFile, getLogAsString

Definition at line 242 of file system/COutputLogger.h.

◆ m_bumblebee_dc1394_camera_guid

uint64_t mrpt::hwdrivers::CCameraSensor::m_bumblebee_dc1394_camera_guid {0}
protected

Definition at line 440 of file CCameraSensor.h.

◆ m_bumblebee_dc1394_camera_unit

int mrpt::hwdrivers::CCameraSensor::m_bumblebee_dc1394_camera_unit {0}
protected

Definition at line 441 of file CCameraSensor.h.

◆ m_bumblebee_dc1394_framerate

double mrpt::hwdrivers::CCameraSensor::m_bumblebee_dc1394_framerate {15}
protected

Definition at line 442 of file CCameraSensor.h.

◆ m_camera_grab_decimator

int mrpt::hwdrivers::CCameraSensor::m_camera_grab_decimator {0}
private

Definition at line 543 of file CCameraSensor.h.

◆ m_camera_grab_decimator_counter

int mrpt::hwdrivers::CCameraSensor::m_camera_grab_decimator_counter {0}
private

Definition at line 544 of file CCameraSensor.h.

◆ m_cap_bumblebee_dc1394

std::unique_ptr<CStereoGrabber_Bumblebee_libdc1394> mrpt::hwdrivers::CCameraSensor::m_cap_bumblebee_dc1394
private

Definition at line 524 of file CCameraSensor.h.

◆ m_cap_cv

std::unique_ptr<CImageGrabber_OpenCV> mrpt::hwdrivers::CCameraSensor::m_cap_cv
private

The OpenCV capture object.

Definition at line 516 of file CCameraSensor.h.

◆ m_cap_dc1394

std::unique_ptr<CImageGrabber_dc1394> mrpt::hwdrivers::CCameraSensor::m_cap_dc1394
private

The dc1394 capture object.

Definition at line 518 of file CCameraSensor.h.

◆ m_cap_duo3d

std::unique_ptr<CDUO3DCamera> mrpt::hwdrivers::CCameraSensor::m_cap_duo3d
private

The DUO3D capture object.

Definition at line 540 of file CCameraSensor.h.

◆ m_cap_ffmpeg

std::unique_ptr<CFFMPEG_InputStream> mrpt::hwdrivers::CCameraSensor::m_cap_ffmpeg
private

The FFMPEG capture object.

Definition at line 528 of file CCameraSensor.h.

◆ m_cap_flycap

std::unique_ptr<CImageGrabber_FlyCapture2> mrpt::hwdrivers::CCameraSensor::m_cap_flycap
private

The FlyCapture2 object.

Definition at line 520 of file CCameraSensor.h.

◆ m_cap_flycap_stereo_l

std::unique_ptr<CImageGrabber_FlyCapture2> mrpt::hwdrivers::CCameraSensor::m_cap_flycap_stereo_l
private

The FlyCapture2 object for stereo pairs.

Definition at line 522 of file CCameraSensor.h.

◆ m_cap_flycap_stereo_r

std::unique_ptr<CImageGrabber_FlyCapture2> mrpt::hwdrivers::CCameraSensor::m_cap_flycap_stereo_r
private

Definition at line 522 of file CCameraSensor.h.

◆ m_cap_image_dir

std::unique_ptr<std::string> mrpt::hwdrivers::CCameraSensor::m_cap_image_dir
private

Read images from directory.

Definition at line 538 of file CCameraSensor.h.

◆ m_cap_kinect

std::unique_ptr<CKinect> mrpt::hwdrivers::CCameraSensor::m_cap_kinect
private

Kinect camera object.

Definition at line 534 of file CCameraSensor.h.

◆ m_cap_openni2

std::unique_ptr<COpenNI2Sensor> mrpt::hwdrivers::CCameraSensor::m_cap_openni2
private

OpenNI2 object.

Definition at line 536 of file CCameraSensor.h.

◆ m_cap_rawlog

std::unique_ptr<mrpt::io::CFileGZInputStream> mrpt::hwdrivers::CCameraSensor::m_cap_rawlog
private

The input file for rawlogs.

Definition at line 530 of file CCameraSensor.h.

◆ m_cap_svs

std::unique_ptr<CStereoGrabber_SVS> mrpt::hwdrivers::CCameraSensor::m_cap_svs
private

The svs capture object.

Definition at line 526 of file CCameraSensor.h.

◆ m_cap_swissranger

std::unique_ptr<CSwissRanger3DCamera> mrpt::hwdrivers::CCameraSensor::m_cap_swissranger
private

SR 3D camera object.

Definition at line 532 of file CCameraSensor.h.

◆ m_capture_grayscale

bool mrpt::hwdrivers::CCameraSensor::m_capture_grayscale {false}
protected

Definition at line 424 of file CCameraSensor.h.

◆ m_csToSaveList

std::mutex mrpt::hwdrivers::CCameraSensor::m_csToSaveList
private

The critical section for m_toSaveList.

Definition at line 559 of file CCameraSensor.h.

◆ m_cv_camera_index

int mrpt::hwdrivers::CCameraSensor::m_cv_camera_index {0}
protected

Definition at line 427 of file CCameraSensor.h.

◆ m_cv_camera_type

std::string mrpt::hwdrivers::CCameraSensor::m_cv_camera_type
protected

Definition at line 428 of file CCameraSensor.h.

◆ m_cv_options

TCaptureCVOptions mrpt::hwdrivers::CCameraSensor::m_cv_options
protected

Definition at line 429 of file CCameraSensor.h.

◆ m_dc1394_camera_guid

uint64_t mrpt::hwdrivers::CCameraSensor::m_dc1394_camera_guid {0}
protected

Definition at line 432 of file CCameraSensor.h.

◆ m_dc1394_camera_unit

int mrpt::hwdrivers::CCameraSensor::m_dc1394_camera_unit {0}
protected

Definition at line 433 of file CCameraSensor.h.

◆ m_dc1394_options

TCaptureOptions_dc1394 mrpt::hwdrivers::CCameraSensor::m_dc1394_options
protected

Definition at line 434 of file CCameraSensor.h.

◆ m_duo3d_options

TCaptureOptions_DUO3D mrpt::hwdrivers::CCameraSensor::m_duo3d_options
protected

Definition at line 502 of file CCameraSensor.h.

◆ m_external_image_saver_count

unsigned int mrpt::hwdrivers::CCameraSensor::m_external_image_saver_count
private

Number of working threads.

Default:1, set to 2 in quad cores.

Definition at line 554 of file CCameraSensor.h.

◆ m_external_images_format

std::string mrpt::hwdrivers::CGenericSensor::m_external_images_format
protectedinherited

The extension ("jpg","gif","png",...) that determines the format of images saved externally.

See also
setPathForExternalImages

Definition at line 156 of file CGenericSensor.h.

Referenced by mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation(), mrpt::hwdrivers::CSwissRanger3DCamera::loadConfig_sensorSpecific(), and mrpt::hwdrivers::CGenericSensor::setExternalImageFormat().

◆ m_external_images_jpeg_quality

unsigned int mrpt::hwdrivers::CGenericSensor::m_external_images_jpeg_quality {95}
protectedinherited

◆ m_external_images_own_thread

bool mrpt::hwdrivers::CCameraSensor::m_external_images_own_thread {false}
protected

Whether to launch independent thread.

Definition at line 506 of file CCameraSensor.h.

Referenced by enableLaunchOwnThreadForSavingImages().

◆ m_fcs_start_synch_capture

bool mrpt::hwdrivers::CCameraSensor::m_fcs_start_synch_capture {false}
protected

Definition at line 487 of file CCameraSensor.h.

◆ m_ffmpeg_url

std::string mrpt::hwdrivers::CCameraSensor::m_ffmpeg_url
protected

Definition at line 449 of file CCameraSensor.h.

◆ m_flycap_options

TCaptureOptions_FlyCapture2 mrpt::hwdrivers::CCameraSensor::m_flycap_options
protected

Definition at line 483 of file CCameraSensor.h.

◆ m_flycap_stereo_options

TCaptureOptions_FlyCapture2 mrpt::hwdrivers::CCameraSensor::m_flycap_stereo_options[2]
protected

Definition at line 489 of file CCameraSensor.h.

◆ m_grab_decimation

size_t mrpt::hwdrivers::CGenericSensor::m_grab_decimation {0}
protectedinherited

If set to N>=2, only 1 out of N observations will be saved to m_objList.

Definition at line 137 of file CGenericSensor.h.

Referenced by mrpt::hwdrivers::CGenericSensor::appendObservations(), and mrpt::hwdrivers::CGenericSensor::loadConfig().

◆ m_grab_decimation_counter

size_t mrpt::hwdrivers::CGenericSensor::m_grab_decimation_counter {0}
protectedinherited

Used when "m_grab_decimation" is enabled.

Definition at line 144 of file CGenericSensor.h.

Referenced by mrpt::hwdrivers::CGenericSensor::appendObservations(), and mrpt::hwdrivers::CGenericSensor::loadConfig().

◆ m_grabber_type

std::string mrpt::hwdrivers::CCameraSensor::m_grabber_type
protected

Can be "opencv",...

Definition at line 423 of file CCameraSensor.h.

◆ m_hook_pre_save

TPreSaveUserHook mrpt::hwdrivers::CCameraSensor::m_hook_pre_save
private

Definition at line 566 of file CCameraSensor.h.

Referenced by addPreSaveHook().

◆ m_hook_pre_save_param

void* mrpt::hwdrivers::CCameraSensor::m_hook_pre_save_param {nullptr}
private

Definition at line 567 of file CCameraSensor.h.

Referenced by addPreSaveHook().

◆ m_img_dir_counter

int mrpt::hwdrivers::CCameraSensor::m_img_dir_counter {0}
protected

Definition at line 499 of file CCameraSensor.h.

◆ m_img_dir_end_index

int mrpt::hwdrivers::CCameraSensor::m_img_dir_end_index {100}
protected

Definition at line 496 of file CCameraSensor.h.

◆ m_img_dir_is_stereo

bool mrpt::hwdrivers::CCameraSensor::m_img_dir_is_stereo {true}
protected

Definition at line 498 of file CCameraSensor.h.

◆ m_img_dir_left_format

std::string mrpt::hwdrivers::CCameraSensor::m_img_dir_left_format
protected

Definition at line 493 of file CCameraSensor.h.

◆ m_img_dir_right_format

std::string mrpt::hwdrivers::CCameraSensor::m_img_dir_right_format
protected

Definition at line 494 of file CCameraSensor.h.

◆ m_img_dir_start_index

int mrpt::hwdrivers::CCameraSensor::m_img_dir_start_index {0}
protected

Definition at line 495 of file CCameraSensor.h.

◆ m_img_dir_url

std::string mrpt::hwdrivers::CCameraSensor::m_img_dir_url
protected

Definition at line 492 of file CCameraSensor.h.

◆ m_kinect_save_3d

bool mrpt::hwdrivers::CCameraSensor::m_kinect_save_3d {true}
protected

Save the 3D point cloud (default: true)

Definition at line 473 of file CCameraSensor.h.

◆ m_kinect_save_intensity_img

bool mrpt::hwdrivers::CCameraSensor::m_kinect_save_intensity_img {true}
protected

Save the 2D intensity image (default: true)

Definition at line 477 of file CCameraSensor.h.

◆ m_kinect_save_range_img

bool mrpt::hwdrivers::CCameraSensor::m_kinect_save_range_img {true}
protected

Save the 2D range image (default: true)

Definition at line 475 of file CCameraSensor.h.

◆ m_kinect_video_rgb

bool mrpt::hwdrivers::CCameraSensor::m_kinect_video_rgb {true}
protected

Save RGB or IR channels (default:true)

Definition at line 479 of file CCameraSensor.h.

◆ m_max_queue_len

size_t mrpt::hwdrivers::CGenericSensor::m_max_queue_len {200}
protectedinherited

See CGenericSensor.

Definition at line 134 of file CGenericSensor.h.

Referenced by mrpt::hwdrivers::CGenericSensor::loadConfig().

◆ m_min_verbosity_level

VerbosityLevel mrpt::system::COutputLogger::m_min_verbosity_level {LVL_INFO}
protectedinherited

Provided messages with VerbosityLevel smaller than this value shall be ignored.

Definition at line 252 of file system/COutputLogger.h.

Referenced by mrpt::system::COutputLogger::getMinLoggingLevel(), and mrpt::system::COutputLogger::isLoggingLevelVisible().

◆ m_path_for_external_images

std::string mrpt::hwdrivers::CGenericSensor::m_path_for_external_images
protectedinherited

The path where to save off-rawlog images: empty means save images embedded in the rawlog.

Definition at line 153 of file CGenericSensor.h.

Referenced by mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation(), and mrpt::hwdrivers::CSwissRanger3DCamera::setPathForExternalImages().

◆ m_preview_counter

int mrpt::hwdrivers::CCameraSensor::m_preview_counter {0}
private

Definition at line 546 of file CCameraSensor.h.

◆ m_preview_decimation

int mrpt::hwdrivers::CCameraSensor::m_preview_decimation {0}
protected

Definition at line 435 of file CCameraSensor.h.

◆ m_preview_reduction

int mrpt::hwdrivers::CCameraSensor::m_preview_reduction {1}
protected

Definition at line 436 of file CCameraSensor.h.

◆ m_preview_win1

mrpt::gui::CDisplayWindow::Ptr mrpt::hwdrivers::CCameraSensor::m_preview_win1
private

Normally we'll use only one window, but for stereo images we'll use two of them.

Definition at line 549 of file CCameraSensor.h.

◆ m_preview_win2

mrpt::gui::CDisplayWindow::Ptr mrpt::hwdrivers::CCameraSensor::m_preview_win2
private

Definition at line 549 of file CCameraSensor.h.

◆ m_process_rate

double mrpt::hwdrivers::CGenericSensor::m_process_rate {0}
protectedinherited

◆ m_rawlog_camera_sensor_label

std::string mrpt::hwdrivers::CCameraSensor::m_rawlog_camera_sensor_label
protected

Definition at line 453 of file CCameraSensor.h.

◆ m_rawlog_detected_images_dir

std::string mrpt::hwdrivers::CCameraSensor::m_rawlog_detected_images_dir
protected

Definition at line 454 of file CCameraSensor.h.

◆ m_rawlog_file

std::string mrpt::hwdrivers::CCameraSensor::m_rawlog_file
protected

Definition at line 452 of file CCameraSensor.h.

◆ m_sensorLabel

std::string mrpt::hwdrivers::CGenericSensor::m_sensorLabel
protectedinherited

See CGenericSensor.

Definition at line 139 of file CGenericSensor.h.

Referenced by mrpt::hwdrivers::CCANBusReader::CCANBusReader(), mrpt::hwdrivers::CGPSInterface::CGPSInterface(), mrpt::hwdrivers::CGyroKVHDSP3000::CGyroKVHDSP3000(), mrpt::hwdrivers::CHokuyoURG::CHokuyoURG(), mrpt::hwdrivers::CIMUXSens::CIMUXSens(), mrpt::hwdrivers::CIMUXSens_MT4::CIMUXSens_MT4(), mrpt::hwdrivers::CKinect::CKinect(), mrpt::hwdrivers::CNationalInstrumentsDAQ::CNationalInstrumentsDAQ(), mrpt::hwdrivers::CRoboPeakLidar::CRoboPeakLidar(), mrpt::hwdrivers::CSickLaserSerial::CSickLaserSerial(), mrpt::hwdrivers::CSickLaserUSB::CSickLaserUSB(), mrpt::hwdrivers::CSkeletonTracker::CSkeletonTracker(), mrpt::hwdrivers::CSwissRanger3DCamera::CSwissRanger3DCamera(), mrpt::hwdrivers::CVelodyneScanner::CVelodyneScanner(), mrpt::hwdrivers::CIMUXSens_MT4::doProcess(), mrpt::hwdrivers::CIMUXSens::doProcess(), mrpt::hwdrivers::CGyroKVHDSP3000::doProcess(), mrpt::hwdrivers::CSkeletonTracker::doProcess(), mrpt::hwdrivers::CRoboPeakLidar::doProcessSimple(), mrpt::hwdrivers::CSickLaserUSB::doProcessSimple(), mrpt::hwdrivers::CCANBusReader::doProcessSimple(), mrpt::hwdrivers::CSickLaserSerial::doProcessSimple(), mrpt::hwdrivers::CHokuyoURG::doProcessSimple(), mrpt::hwdrivers::CGPSInterface::flushParsedMessagesNow(), mrpt::hwdrivers::CSwissRanger3DCamera::getNextObservation(), mrpt::hwdrivers::CKinect::getNextObservation(), mrpt::hwdrivers::CVelodyneScanner::getNextObservation(), mrpt::hwdrivers::CGenericSensor::getSensorLabel(), mrpt::hwdrivers::CNationalInstrumentsDAQ::grabbing_thread(), mrpt::hwdrivers::CGenericSensor::loadConfig(), mrpt::hwdrivers::CSkeletonTracker::processPreview(), mrpt::hwdrivers::C2DRangeFinderAbstract::processPreview(), mrpt::hwdrivers::CSkeletonTracker::processPreviewNone(), and mrpt::hwdrivers::CGenericSensor::setSensorLabel().

◆ m_sensorPose

poses::CPose3D mrpt::hwdrivers::CCameraSensor::m_sensorPose
protected

Definition at line 416 of file CCameraSensor.h.

◆ m_sr_ip_address

std::string mrpt::hwdrivers::CCameraSensor::m_sr_ip_address
protected

Definition at line 460 of file CCameraSensor.h.

◆ m_sr_open_from_usb

bool mrpt::hwdrivers::CCameraSensor::m_sr_open_from_usb {true}
protected

true: USB, false: ETH

Definition at line 459 of file CCameraSensor.h.

◆ m_sr_save_3d

bool mrpt::hwdrivers::CCameraSensor::m_sr_save_3d {true}
protected

Save the 3D point cloud (default: true)

Definition at line 462 of file CCameraSensor.h.

◆ m_sr_save_confidence

bool mrpt::hwdrivers::CCameraSensor::m_sr_save_confidence {true}
protected

Save the estimated confidence 2D image (default: false)

Definition at line 468 of file CCameraSensor.h.

◆ m_sr_save_intensity_img

bool mrpt::hwdrivers::CCameraSensor::m_sr_save_intensity_img {true}
protected

Save the 2D intensity image (default: true)

Definition at line 466 of file CCameraSensor.h.

◆ m_sr_save_range_img

bool mrpt::hwdrivers::CCameraSensor::m_sr_save_range_img {true}
protected

Save the 2D range image (default: true)

Definition at line 464 of file CCameraSensor.h.

◆ m_state

◆ m_svs_camera_index

int mrpt::hwdrivers::CCameraSensor::m_svs_camera_index {0}
protected

Definition at line 445 of file CCameraSensor.h.

◆ m_svs_options

TCaptureOptions_SVS mrpt::hwdrivers::CCameraSensor::m_svs_options
protected

Definition at line 446 of file CCameraSensor.h.

◆ m_threadImagesSaver

std::vector<std::thread> mrpt::hwdrivers::CCameraSensor::m_threadImagesSaver
private

Definition at line 555 of file CCameraSensor.h.

◆ m_threadImagesSaverShouldEnd

bool mrpt::hwdrivers::CCameraSensor::m_threadImagesSaverShouldEnd {false}
private

Definition at line 557 of file CCameraSensor.h.

◆ m_toSaveList

std::vector<TListObservations> mrpt::hwdrivers::CCameraSensor::m_toSaveList
private

The queues of objects to be returned by getObservations, one for each working thread.

Definition at line 562 of file CCameraSensor.h.

◆ m_verbose




Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 363e65e4a Wed Jun 19 01:52:47 2019 +0200 at miƩ jun 19 02:00:17 CEST 2019