This class is the main interface with the camera and the SDK features, suche as: video, depth, tracking, mapping, and more.
Find more information in the detailed description below.
.
More...
General Functions | |
Camera () | |
Default constructor which creates an empty Camera object. Parameters will be set when calling open(init_param) with the desired InitParameters . More... | |
~Camera () | |
The Camera destructor will call the close() function and clear the memory previously allocated by the object. More... | |
ERROR_CODE | open (InitParameters init_parameters=InitParameters()) |
Opens the ZED camera from the provided InitParameter. This function will also check the hardware requirements and run a self-calibration. More... | |
bool | isOpened () |
Reports if the camera has been successfully opened. It has the same behavior as checking if open() returns SUCCESS. More... | |
void | close () |
If open() has been called, this function will close the connection to the camera (or the SVO file) and free the corresponding memory. More... | |
ERROR_CODE | grab (RuntimeParameters rt_parameters=RuntimeParameters()) |
This function will grab the latest images from the camera, rectify them, and compute the measurements based on the RuntimeParameters provided (depth, point cloud, tracking, etc.) As measures are created in this function, its execution can last a few milliseconds, depending on your parameters and your hardware. The exact duration will mostly depend on the following parameters: More... | |
CameraInformation | getCameraInformation (Resolution image_size=Resolution(0, 0)) |
Returns the calibration parameters, serial number and other information about the camera being used. More... | |
CUcontext | getCUDAContext () |
Gets the Camera-created CUDA context for sharing it with other CUDA-capable libraries. This can be useful for sharing GPU memories. More... | |
ERROR_CODE | findPlaneAtHit (sl::uint2 coord, sl::Plane &plane) |
Checks the plane at the given left image coordinates. More... | |
ERROR_CODE | findFloorPlane (sl::Plane &floorPlane, sl::Transform &resetTrackingFloorFrame, float floor_height_prior=INVALID_VALUE, sl::Rotation world_orientation_prior=sl::Matrix3f::zeros(), float floor_height_prior_tolerance=INVALID_VALUE) |
Detect the floor plane of the scene. More... | |
Camera (const Camera &)=delete | |
The Camera object cannot be copied. Therfore, its copy constructor is disabled. If you need to share a Camera instance across several threads or object, please consider using a pointer. More... | |
Video | |
Resolution | getResolution () |
Returns the size of the grabbed images. More... | |
ERROR_CODE | retrieveImage (Mat &mat, VIEW view=VIEW_LEFT, MEM type=MEM_CPU, int width=0, int height=0) |
Retrieves images from the camera (or SVO file). More... | |
int | getCameraSettings (CAMERA_SETTINGS settings) |
Returns the current value of the requested camera setting. (gain, brightness, hue, exposure, etc.) More... | |
void | setCameraSettings (CAMERA_SETTINGS settings, int value, bool use_default=false) |
Sets the value of the requested camera setting. (gain, brightness, hue, exposure, etc.) More... | |
float | getCameraFPS () |
Returns the framerate of the camera. More... | |
void | setCameraFPS (int desired_fps) |
Sets a new target frame rate for the camera. More... | |
float | getCurrentFPS () |
Returns the current framerate at which the grab() method is successfully called. More... | |
timeStamp | getTimestamp (sl::TIME_REFERENCE reference_time) |
Returns the timestamp in the requested TIME_REFERENCE. More... | |
timeStamp | getCameraTimestamp () |
This function has been deprecated. Please refer to getTimestamp(TIME_REFERENCE_IMAGE) which has the exact same behavior. More... | |
timeStamp | getCurrentTimestamp () |
This function has been deprecated. Please refer to getTimestamp(TIME_REFERENCE_CURRENT) which has the exact same behavior. More... | |
unsigned int | getFrameDroppedCount () |
Returns the number of frames dropped since grab() was called for the first time. More... | |
int | getSVOPosition () |
Returns the current playback position in the SVO file. More... | |
void | setSVOPosition (int frame_number) |
Sets the playback cursor to the desired frame number in the SVO file. More... | |
int | getSVONumberOfFrames () |
Returns the number of frames in the SVO file. More... | |
SELF_CALIBRATION_STATE | getSelfCalibrationState () |
Returns the current status of the self-calibration. More... | |
void | resetSelfCalibration () |
Resets the camera's self calibration. This function can be called at any time after the open() function. More... | |
Depth Sensing | |
ERROR_CODE | retrieveMeasure (Mat &mat, MEASURE measure=MEASURE_DEPTH, MEM type=MEM_CPU, int width=0, int height=0) |
Computed measures, like depth, point cloud, or normals, can be retrieved using this method. More... | |
float | getDepthMaxRangeValue () |
Returns the current maximum distance of depth estimation. More... | |
void | setDepthMaxRangeValue (float depth_max_range) |
Sets the maximum distance of depth estimation (All values beyond this limit will be reported as TOO_FAR). More... | |
float | getDepthMinRangeValue () |
Returns the closest measurable distance by the camera, according to the camera and the depth map parameters. More... | |
int | getConfidenceThreshold () |
Returns the current confidence threshold value applied to the depth map. More... | |
void | setConfidenceThreshold (int conf_threshold_value) |
Sets a threshold to reject depth values based on their confidence. More... | |
Positional Tracking | |
ERROR_CODE | enableTracking (TrackingParameters tracking_parameters=TrackingParameters()) |
Initializes and starts the positional tracking processes. More... | |
TRACKING_STATE | getPosition (Pose &camera_pose, REFERENCE_FRAME reference_frame=REFERENCE_FRAME_WORLD) |
Retrieves the estimated position and orientation of the camera in the specified reference frame. More... | |
ERROR_CODE | saveCurrentArea (String area_file_path) |
Saves the current area learning file. The file will contain spatial memory data generated by the tracking. More... | |
AREA_EXPORT_STATE | getAreaExportState () |
Returns the state of the spatial memory export process. More... | |
ERROR_CODE | resetTracking (const Transform &path) |
Resets the tracking, and re-initializes the position with the given transformation matrix. More... | |
void | disableTracking (String area_file_path="") |
Disables the positional tracking. More... | |
bool | isTrackingEnabled () |
Tells if the tracking module is enabled. More... | |
ERROR_CODE | getIMUData (IMUData &imu_data, TIME_REFERENCE reference_time) |
Retrieves the IMU Data at a specific time reference. More... | |
ERROR_CODE | setIMUPrior (const sl::Transform &transform) |
Set an optionnal IMU orientation hint that will be used to assist the tracking during the next grab(). More... | |
Spatial Mapping | |
ERROR_CODE | enableSpatialMapping (SpatialMappingParameters spatial_mapping_parameters=SpatialMappingParameters()) |
Initializes and starts the spatial mapping processes. More... | |
SPATIAL_MAPPING_STATE | getSpatialMappingState () |
Returns the current spatial mapping state. More... | |
void | requestMeshAsync ()) |
Starts the mesh generation process in a non blocking thread from the spatial mapping process. More... | |
ERROR_CODE | getMeshRequestStatusAsync ()) |
Returns the mesh generation status. Useful after calling requestMeshAsync to know if you can call retrieveMeshAsync. More... | |
ERROR_CODE | retrieveMeshAsync (Mesh &mesh)) |
Retrieves the current generated mesh. More... | |
ERROR_CODE | extractWholeMesh (Mesh &mesh)) |
Extracts the current mesh from the spatial mapping process. More... | |
void | requestSpatialMapAsync () |
Starts the spatial map generation process in a non blocking thread from the spatial mapping process. More... | |
ERROR_CODE | getSpatialMapRequestStatusAsync () |
Returns the spatial map generation status. This status allows to know if the mesh can be retrieved by calling retrieveSpatialMapAsync. More... | |
ERROR_CODE | retrieveSpatialMapAsync (Mesh &mesh) |
Retrieves the current generated spatial map. More... | |
ERROR_CODE | retrieveSpatialMapAsync (FusedPointCloud &fpc) |
Retrieves the current generated spatial map. More... | |
ERROR_CODE | extractWholeSpatialMap (Mesh &mesh) |
Extracts the current spatial map from the spatial mapping process. More... | |
ERROR_CODE | extractWholeSpatialMap (FusedPointCloud &fpc) |
Extracts the current spatial map from the spatial mapping process. More... | |
void | pauseSpatialMapping (bool status) |
Pauses or resumes the spatial mapping processes. More... | |
void | disableSpatialMapping () |
Disables the spatial mapping process. More... | |
Recording | |
ERROR_CODE | enableRecording (String video_filename, SVO_COMPRESSION_MODE compression_mode=SVO_COMPRESSION_MODE_LOSSLESS) |
Creates an SVO file to be filled by record(). More... | |
RecordingState | record () |
Records the current frame provided by grab() into the file. More... | |
bool | isRecordingEnabled () |
Tells if a recording is in progress. More... | |
void | disableRecording () |
Disables the recording initiated by enableRecording() and closes the generated file. More... | |
Streaming | |
ERROR_CODE | enableStreaming (StreamingParameters streaming_parameters=StreamingParameters()) |
Creates a streaming pipeline. More... | |
void | disableStreaming () |
Disables the streaming initiated by enableStreaming() More... | |
bool | isStreamingEnabled () |
Tells if the streaming is running (true) or still initializing (false) More... | |
Static Functions | |
static String | getSDKVersion () |
Returns the version of the currently installed ZED SDK. More... | |
static int | isZEDconnected () |
Returns the number of connected cameras. More... | |
static std::vector< sl::DeviceProperties > | getDeviceList () |
List all the connected devices with their associated information. More... | |
static std::vector< sl::StreamingProperties > | getStreamingDeviceList () |
List all the streaming devices with their associated information. More... | |
static ERROR_CODE | sticktoCPUCore (int cpu_core) |
Only for Nvidia Jetson: Sticks the calling thread to a specific CPU core. More... | |
This class is the main interface with the camera and the SDK features, suche as: video, depth, tracking, mapping, and more.
Find more information in the detailed description below.
.
A standard program will use the Camera class like this:
Camera | ( | ) |
Default constructor which creates an empty Camera object.
Parameters will be set when calling open(init_param) with the desired InitParameters .
The Camera object can be created like this:
or
~Camera | ( | ) |
ERROR_CODE open | ( | InitParameters | init_parameters = InitParameters() | ) |
Opens the ZED camera from the provided InitParameter.
This function will also check the hardware requirements and run a self-calibration.
init_parameters | : a structure containing all the initial parameters. default : a preset of InitParameters. |
Here is the proper way to call this function:
|
inline |
void close | ( | ) |
If open() has been called, this function will close the connection to the camera (or the SVO file) and free the corresponding memory.
If open() wasn't called or failed, this function won't have any effects.
ERROR_CODE grab | ( | RuntimeParameters | rt_parameters = RuntimeParameters() | ) |
This function will grab the latest images from the camera, rectify them, and compute the measurements based on the RuntimeParameters provided (depth, point cloud, tracking, etc.)
As measures are created in this function, its execution can last a few milliseconds, depending on your parameters and your hardware.
The exact duration will mostly depend on the following parameters:
If no images are available yet, ERROR_CODE_NOT_A_NEW_FRAME will be returned.
This function is meant to be called frequently in the main loop of your application.
rt_parameters | : a structure containing all the runtime parameters. default : a preset of RuntimeParameters. |
CameraInformation getCameraInformation | ( | Resolution | image_size = Resolution(0, 0) | ) |
Returns the calibration parameters, serial number and other information about the camera being used.
As calibration parameters depend on the image resolution, you can provide a custom resolution as a parameter to get scaled information.
When reading an SVO file, the parameters will correspond to the camera used for recording.
image_size | : You can specify a size different from default image size to get the scaled camera information. default = (0,0) meaning original image size (aka getResolution() ). |
CUcontext getCUDAContext | ( | ) |
Gets the Camera-created CUDA context for sharing it with other CUDA-capable libraries. This can be useful for sharing GPU memories.
If you're looking for the opposite mechanism, where an existing CUDA context is given to the Camera, please check InitParameters::sdk_cuda_ctx
Resolution getResolution | ( | ) |
Returns the size of the grabbed images.
In live mode it matches InitParameters::camera_resolution.
In SVO mode the recording resolution will be returned.
All the default retrieveImage() and retrieveMeasure() calls will generate an image matching this resolution.
ERROR_CODE retrieveImage | ( | Mat & | mat, |
VIEW | view = VIEW_LEFT , |
||
MEM | type = MEM_CPU , |
||
int | width = 0 , |
||
int | height = 0 |
||
) |
Retrieves images from the camera (or SVO file).
Multiple images are available along with a view of various measures for display purposes.
Available images and views are listed here.
As an example, VIEW_DEPTH can be used to get a grayscale version of the depth map, but the actual depth values can be retrieved using retrieveMeasure().
Memory
By default, images are copied from GPU memory to CPU memory (RAM) when this function is called.
If your application can use GPU images, using the type parameter can increase performance by avoiding this copy.
If the provided Mat object is already allocated and matches the requested image format, memory won't be re-allocated.
Image size
By default, images are returned in the resolution provided by getResolution().
However, you can request custom resolutions. For example, requesting a smaller image can help you speed up your application.
mat | : [out] the Mat to store the image. |
view | : defines the image you want (see VIEW). default : VIEW_LEFT. |
type | : whether the image should be provided in CPU or GPU memory. default : MEM_CPU. |
width | : if specified, define the width of the output mat. If set to 0, the width of the ZED resolution will be taken. default : 0. |
height | : if specified, define the height of the output mat. If set to 0, the height of the ZED resolution will be taken. default : 0. |
int getCameraSettings | ( | CAMERA_SETTINGS | settings | ) |
Returns the current value of the requested camera setting. (gain, brightness, hue, exposure, etc.)
Possible values (range) of each setting are available here.
setting | : the requested setting. |
void setCameraSettings | ( | CAMERA_SETTINGS | settings, |
int | value, | ||
bool | use_default = false |
||
) |
Sets the value of the requested camera setting. (gain, brightness, hue, exposure, etc.)
Possible values (range) of each setting are available here.
settings | : the setting to be set. |
value | : the value to set. |
use_default | : will set default (or automatic) value if set to true. If so, Value parameter will be ignored. default: false. |
float getCameraFPS | ( | ) |
Returns the framerate of the camera.
In live mode, this value should match InitParameters::camera_fps.
When playing an SVO file, this value matches the requested framerate of the recording camera.
void setCameraFPS | ( | int | desired_fps | ) |
Sets a new target frame rate for the camera.
When a live camera is opened, this function allows you to override the value previously set in InitParameters::camera_fps.
It has no effect when playing back an SVO file.
desired_fps | : the new desired frame rate. |
float getCurrentFPS | ( | ) |
Returns the current framerate at which the grab() method is successfully called.
The returned value is based on the difference of camera timestamps between two successful grab() calls.
timeStamp getTimestamp | ( | sl::TIME_REFERENCE | reference_time | ) |
Returns the timestamp in the requested TIME_REFERENCE.
This function can also be used when playing back an SVO file.
reference_time | : The selected TIME_REFERENCE. |
timeStamp getCameraTimestamp | ( | ) |
This function has been deprecated. Please refer to getTimestamp(TIME_REFERENCE_IMAGE) which has the exact same behavior.
timeStamp getCurrentTimestamp | ( | ) |
This function has been deprecated. Please refer to getTimestamp(TIME_REFERENCE_CURRENT) which has the exact same behavior.
unsigned int getFrameDroppedCount | ( | ) |
Returns the number of frames dropped since grab() was called for the first time.
A dropped frame corresponds to a frame that never made it to the grab function.
This can happen if two frames were extracted from the camera when grab() is called. The older frame will be dropped so as to always use the latest (which minimizes latency).
int getSVOPosition | ( | ) |
Returns the current playback position in the SVO file.
The position corresponds to the number of frames already read from the SVO file, starting from 0 to n.
Each grab() call increases this value by one (except when using InitParameters::svo_real_time_mode).
void setSVOPosition | ( | int | frame_number | ) |
Sets the playback cursor to the desired frame number in the SVO file.
This function allows you to move around within a played-back SVO file. After calling, the next call to grab() will read the provided frame number.
frame_number | : the number of the desired frame to be decoded. |
int getSVONumberOfFrames | ( | ) |
Returns the number of frames in the SVO file.
SELF_CALIBRATION_STATE getSelfCalibrationState | ( | ) |
Returns the current status of the self-calibration.
When opening the camera, the ZED will self-calibrate itself to optimize the factory calibration.
As this process can run slightly slower than open(), this function allows you to check its status.
The self-calibration can be disabled using InitParameters::camera_disable_self_calib .
void resetSelfCalibration | ( | ) |
Resets the camera's self calibration. This function can be called at any time after the open() function.
It will reset and optimize the calibration parameters against misalignment, convergence, and color mismatch. It can be called if the calibration file of the current camera has been updated while the application is running.
If the self-calibration didn't succeed, previous parameters will be used.
ERROR_CODE retrieveMeasure | ( | Mat & | mat, |
MEASURE | measure = MEASURE_DEPTH , |
||
MEM | type = MEM_CPU , |
||
int | width = 0 , |
||
int | height = 0 |
||
) |
Computed measures, like depth, point cloud, or normals, can be retrieved using this method.
Multiple measures are available after a grab() call. A full list is available here.
Memory
By default, images are copied from GPU memory to CPU memory (RAM) when this function is called.
If your application can use GPU images, using the type parameter can increase performance by avoiding this copy.
If the provided Mat object is already allocated and matches the requested image format, memory won't be re-allocated.
Measure size
By default, measures are returned in the resolution provided by getResolution().
However, custom resolutions can be requested. For example, requesting a smaller measure can help you speed up your application.
mat | : [out] the Mat to store the measures. |
measure | : defines the measure you want. (see MEASURE), default : MEASURE_DEPTH |
type | : the type of the memory of provided mat that should by used. default : MEM_CPU. |
width | : if specified, define the width of the output mat. If set to 0, the width of the ZED resolution will be taken. default : 0 |
height | : if specified, define the height of the output mat. If set to 0, the height of the ZED resolution will be taken. default : 0 |
float getDepthMaxRangeValue | ( | ) |
Returns the current maximum distance of depth estimation.
When estimating the depth, the SDK uses this upper limit to turn higher values into TOO_FAR ones.
void setDepthMaxRangeValue | ( | float | depth_max_range | ) |
Sets the maximum distance of depth estimation (All values beyond this limit will be reported as TOO_FAR).
This method can be used to extend or reduce the depth perception range. However, the depth accuracy decreases with distance.
depth_max_range | : maximum distance in the defined UNIT. |
float getDepthMinRangeValue | ( | ) |
Returns the closest measurable distance by the camera, according to the camera and the depth map parameters.
When estimating the depth, the SDK uses this lower limit to turn lower values into TOO_CLOSE ones.
int getConfidenceThreshold | ( | ) |
Returns the current confidence threshold value applied to the depth map.
Each depth pixel has a corresponding confidence. (MEASURE_CONFIDENCE)
This function returns the value currently used to reject unconfident depth pixels.
By default, the confidence threshold is set at 100, meaning that no depth pixel will be rejected.
void setConfidenceThreshold | ( | int | conf_threshold_value | ) |
Sets a threshold to reject depth values based on their confidence.
Each depth pixel has a corresponding confidence. (MEASURE_CONFIDENCE)
A low confidence value means more confidence and precision (but less density). A high confidence means more density and less certainty.
- setConfidenceThreshold(100) will allow values from 0 to 100. (no filtering)
- setConfidenceThreshold(90) will allow values from 0 to 90. (filtering out the most unconfident pixels)
- setConfidenceThreshold(30) will allow values from 0 to 30. (keeping most confident pixels and lowering the density of the depth map)
conf_threshold_value | : a value in [1,100]. |
ERROR_CODE enableTracking | ( | TrackingParameters | tracking_parameters = TrackingParameters() | ) |
Initializes and starts the positional tracking processes.
This function allows you to enable the position estimation of the SDK. It only has to be called once in the camera's lifetime.
When enabled, the position will be update at each grab call.
Tracking-specific parameter can be set by providing TrackingParameters to this function.
tracking_parameters | : A structure containing all the TrackingParameters . default : a preset of TrackingParameters. |
TRACKING_STATE getPosition | ( | Pose & | camera_pose, |
REFERENCE_FRAME | reference_frame = REFERENCE_FRAME_WORLD |
||
) |
Retrieves the estimated position and orientation of the camera in the specified reference frame.
Using REFERENCE_FRAME_WORLD, the returned pose relates to the initial position of the camera. (TrackingParameters::initial_world_transform )
Using REFERENCE_FRAME_CAMERA, the returned pose relates to the previous position of the camera.
If the tracking has been initialized with TrackingParameters::enable_spatial_memory to true (default), this function can return TRACKING_STATE_SEARCHING.
This means that the tracking lost its link to the initial referential and is currently trying to relocate the camera. However, it will keep on providing position estimations.
camera_pose | [out]: the pose containing the position of the camera and other information (timestamp, confidence) |
reference_frame | : defines the reference from which you want the pose to be expressed. Default : REFERENCE_FRAME_WORLD. |
Extract Rotation Matrix : camera_pose.getRotation();
Extract Translation Vector: camera_pose.getTranslation();
Convert to Orientation / quaternion : camera_pose.getOrientation();
ERROR_CODE saveCurrentArea | ( | String | area_file_path | ) |
Saves the current area learning file. The file will contain spatial memory data generated by the tracking.
If the tracking has been initialized with TrackingParameters::enable_spatial_memory to true (default), the function allows you to export the spatial memory.
Reloading the exported file in a future session with TrackingParameters::area_file_path initialize the tracking within the same referential.
This function is asynchronous, and only triggers the file generation. You can use getAreaExportState() to get the export state. The positional tracking keeps running while exporting.
area_file_path | : save the spatial memory database in an '.area' file. |
AREA_EXPORT_STATE getAreaExportState | ( | ) |
Returns the state of the spatial memory export process.
As saveCurrentArea() only starts the exportation, this function allows you to know when the exportation finished or if it failed.
ERROR_CODE resetTracking | ( | const Transform & | path | ) |
Resets the tracking, and re-initializes the position with the given transformation matrix.
path | : Position of the camera in the world frame when the function is called. By default, it is set to identity. |
void disableTracking | ( | String | area_file_path = "" | ) |
Disables the positional tracking.
The positional tracking is immediately stopped. If a file path is given, saveCurrentArea(area_file_path) will be called asynchronously. See getAreaExportState() to get the exportation state.
If the tracking has been enabled, this function will automatically be called by close() .
area_file_path | : if set, saves the spatial memory into an '.area' file. default : (empty) area_file_path is the name and path of the database, e.g. "path/to/file/myArea1.area". |
bool isTrackingEnabled | ( | ) |
Tells if the tracking module is enabled.
ERROR_CODE getIMUData | ( | IMUData & | imu_data, |
TIME_REFERENCE | reference_time | ||
) |
Retrieves the IMU Data at a specific time reference.
Calling getIMUData with TIME_REFERENCE_CURRENT gives you the latest IMU data received. Getting all the data requires to call this function at 800Hz in a thread.
Calling getIMUData with TIME_REFERENCE_IMAGE gives you the IMU data at the time of the latest image grabbed.
IMUData object contains 2 category of data:
Time-fused pose estimation that can be accessed using:
Raw values from the IMU sensor:
imu_data | : [out] the IMUData that inherits from sl::Pose, containing the orientation of the IMU (pose in world reference frame) and other information (timestamp, raw imu data) |
reference_time | : defines the time reference from when you want the pose to be extracted. |
Extract Rotation Matrix : imu_data.getRotation();
Extract Orientation / Quaternion: imu_data.getOrientation();
ERROR_CODE setIMUPrior | ( | const sl::Transform & | transform | ) |
Set an optionnal IMU orientation hint that will be used to assist the tracking during the next grab().
This function can be used to assist the positional tracking rotation while using a ZED Mini.
sl::Transform | to be ingested into IMU fusion. Note that only the rotation is used. |
ERROR_CODE enableSpatialMapping | ( | SpatialMappingParameters | spatial_mapping_parameters = SpatialMappingParameters() | ) |
Initializes and starts the spatial mapping processes.
The spatial mapping will create a geometric representation of the scene based on both tracking data and 3D point clouds.
The resulting output can be a Mesh or a FusedPointCloud. It can be be obtained by calling extractWholeSpatialMap() or retrieveSpatialMapAsync(). Note that retrieveSpatialMapAsync() should be called after requestSpatialMapAsync().
spatial_mapping_parameters | : the structure containing all the specific parameters for the spatial mapping. Default: a balanced parameter preset between geometric fidelity and output file size. For more information, see the SpatialMappingParameters documentation. |
SPATIAL_MAPPING_STATE getSpatialMappingState | ( | ) |
Returns the current spatial mapping state.
As the spatial mapping runs asynchronously, this function allows you to get reported errors or status info.
void requestMeshAsync | ( | ) |
Starts the mesh generation process in a non blocking thread from the spatial mapping process.
As Mesh generation can be take a long time depending on the mapping resolution and covered area, this function triggers the generation of a mesh without blocking the program. You can get info about the current mesh generation using getMeshRequestStatusAsync(), and retrieve the mesh using retrieveMeshAsync(...) .
ERROR_CODE getMeshRequestStatusAsync | ( | ) |
Returns the mesh generation status. Useful after calling requestMeshAsync to know if you can call retrieveMeshAsync.
See requestMeshAsync() for an example.
ERROR_CODE retrieveMeshAsync | ( | Mesh & | mesh | ) |
Retrieves the current generated mesh.
After calling requestMeshAsync() , this function allows you to retrieve the generated mesh. The mesh will only be available when getMeshRequestStatusAsync() returned SUCCESS
mesh | : [out] The mesh to be filled. |
See requestMeshAsync() for an example.
ERROR_CODE extractWholeMesh | ( | Mesh & | mesh | ) |
Extracts the current mesh from the spatial mapping process.
If the mesh object to be filled already contains a previous version of the mesh, only changes will be updated, optimizing performance.
mesh | : [out] The mesh to be filled. |
See enableSpatialMapping() for an example.
void requestSpatialMapAsync | ( | ) |
Starts the spatial map generation process in a non blocking thread from the spatial mapping process.
The spatial map generation can take a long time depending on the mapping resolution and covered area. This function will trigger the generation of a mesh without blocking the program. You can get info about the current generation using getSpatialMapRequestStatusAsync(), and retrieve the mesh using retrieveSpatialMapAsync(...) .
ERROR_CODE getSpatialMapRequestStatusAsync | ( | ) |
Returns the spatial map generation status. This status allows to know if the mesh can be retrieved by calling retrieveSpatialMapAsync.
See requestSpatialMapAsync() for an example.
ERROR_CODE retrieveSpatialMapAsync | ( | Mesh & | mesh | ) |
Retrieves the current generated spatial map.
After calling requestSpatialMapAsync , this function allows you to retrieve the generated mesh. The mesh will only be available when getMeshRequestStatusAsync() returns SUCCESS
mesh | : [out] The mesh to be filled with the generated spatial map. |
See requestSpatialMapAsync() for an example.
ERROR_CODE retrieveSpatialMapAsync | ( | FusedPointCloud & | fpc | ) |
Retrieves the current generated spatial map.
After calling requestSpatialMapAsync , this function allows you to retrieve the generated fused point cloud. The fused point cloud will only be available when getMeshRequestStatusAsync() returns SUCCESS
fpc | : [out] The fused point cloud to be filled with the generated spatial map. |
See requestSpatialMapAsync() for an example.
ERROR_CODE extractWholeSpatialMap | ( | Mesh & | mesh | ) |
Extracts the current spatial map from the spatial mapping process.
If the object to be filled already contains a previous version of the mesh, only changes will be updated, optimizing performance.
mesh | : [out] The mesh to be filled with the generated spatial map. |
See enableSpatialMapping() for an example.
ERROR_CODE extractWholeSpatialMap | ( | FusedPointCloud & | fpc | ) |
Extracts the current spatial map from the spatial mapping process.
If the object to be filled already contains a previous version of the fused point cloud, only changes will be updated, optimizing performance.
fpc | : [out] The fused point cloud to be filled with the generated spatial map. |
See enableSpatialMapping() for an example.
void pauseSpatialMapping | ( | bool | status | ) |
Pauses or resumes the spatial mapping processes.
As spatial mapping runs asynchronously, using this function can pause its computation to free some processing power, and resume it again later.
For example, it can be used to avoid mapping a specific area or to pause the mapping when the camera is static.
status | : if true, the integration is paused. If false, the spatial mapping is resumed. |
void disableSpatialMapping | ( | ) |
Disables the spatial mapping process.
The spatial mapping is immediately stopped.
If the mapping has been enabled, this function will automatically be called by close().
ERROR_CODE findPlaneAtHit | ( | sl::uint2 | coord, |
sl::Plane & | plane | ||
) |
Checks the plane at the given left image coordinates.
This function gives the 3D plane corresponding to a given pixel in the latest left image grabbed.
The pixel coordinates are expected to be contained between 0 and getResolution().width-1 and getResolution().height-1 .
coord | : [in] The image coordinate. The coordinate must be taken from the full-size image |
plane | : [out] The detected plane if the function succeeded |
ERROR_CODE findFloorPlane | ( | sl::Plane & | floorPlane, |
sl::Transform & | resetTrackingFloorFrame, | ||
float | floor_height_prior = INVALID_VALUE , |
||
sl::Rotation | world_orientation_prior = sl::Matrix3f::zeros() , |
||
float | floor_height_prior_tolerance = INVALID_VALUE |
||
) |
Detect the floor plane of the scene.
This function analyses the latest image and depth to estimate the floor plane of the scene.
It expects the floor plane to be visible and bigger than other candidate planes, like a table.
floorPlane | : [out] The detected floor plane if the function succeeded |
resetTrackingFloorFrame | : [out] The transform to align the tracking with the floor plane. The initial position will then be at ground height, with the axis align with the gravity. The positional tracking needs to be reset/enabled with this transform as a parameter (TrackingParameters.initial_world_transform) |
floor_height_prior | : [in] Prior set to locate the floor plane depending on the known camera distance to the ground, expressed in the same unit as the ZED. If the prior is too far from the detected floor plane, the function will return ERROR_CODE_PLANE_NOT_FOUND |
world_orientation_prior | : [in] Prior set to locate the floor plane depending on the known camera orientation to the ground. If the prior is too far from the detected floor plane, the function will return ERROR_CODE_PLANE_NOT_FOUND |
floor_height_prior_tolerance | : [in] Prior height tolerance, absolute value. |
ERROR_CODE enableRecording | ( | String | video_filename, |
SVO_COMPRESSION_MODE | compression_mode = SVO_COMPRESSION_MODE_LOSSLESS |
||
) |
Creates an SVO file to be filled by record().
SVO files are custom video files containing the unrectified images from the camera along with some metadata like timestamps or IMU orientation (if applicable).
They can be used to simulate a live ZED and test a sequence with various SDK parameters.
Depending on the application, various compression modes are available. See SVO_COMPRESSION_MODE.
video_filename | : filename of the SVO file. |
compression_mode | : can be one of the SVO_COMPRESSION_MODE enum. default : SVO_COMPRESSION_MODE_LOSSLESS. |
RecordingState record | ( | ) |
Records the current frame provided by grab() into the file.
Calling this function after a successful grab() call saves the images into the video file opened by enableRecording() .
See enableRecording() for an example.
bool isRecordingEnabled | ( | ) |
Tells if a recording is in progress.
void disableRecording | ( | ) |
Disables the recording initiated by enableRecording() and closes the generated file.
See enableRecording() for an example.
ERROR_CODE enableStreaming | ( | StreamingParameters | streaming_parameters = StreamingParameters() | ) |
Creates a streaming pipeline.
streaming_parameters | : the structure containing all the specific parameters for the streaming. #include <sl/Camera.hpp> using namespace sl; int main(int argc, char **argv) { // Create a ZED camera object Camera zed; // Set initial parameters InitParameters init_params; // Open the camera ERROR_CODE err = zed.open(init_params); if (err != SUCCESS) { std::cout << toString(err) << std::endl; exit(-1); } // Enable video recording sl::StreamingParameters stream_params; stream_params.port = 30000; stream_params.bitrate = 8000; err = zed.enableStreaming(stream_params); if (err != SUCCESS) { std::cout << toString(err) << std::endl; exit(-1); } // Grab data during 500 frames int i = 0; while (i < 500) { // Grab a new frame i++; } } zed.disableStreaming(); zed.close(); return 0; } |
void disableStreaming | ( | ) |
Disables the streaming initiated by enableStreaming()
bool isStreamingEnabled | ( | ) |
Tells if the streaming is running (true) or still initializing (false)
|
static |
Returns the version of the currently installed ZED SDK.
|
static |
Returns the number of connected cameras.
|
static |
List all the connected devices with their associated information.
This function lists all the cameras available and provides their serial number, models and other information.
|
static |
List all the streaming devices with their associated information.
|
static |
Only for Nvidia Jetson: Sticks the calling thread to a specific CPU core.
cpuCore | : int that defines the core the thread must be run on. Can be between 0 and 3. (cpu0,cpu1,cpu2,cpu3). |