Intel® RealSense™ Cross Platform API
Intel Realsense Cross-platform API
Loading...
Searching...
No Matches
rs_sensor.h
Go to the documentation of this file.
1/* License: Apache 2.0. See LICENSE file in root directory.
2 Copyright(c) 2017 Intel Corporation. All Rights Reserved. */
3
8
9
10#ifndef LIBREALSENSE_RS2_SENSOR_H
11#define LIBREALSENSE_RS2_SENSOR_H
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17#include "rs_types.h"
18
41
58const char* rs2_stream_to_string(rs2_stream stream);
59
99const char* rs2_format_to_string(rs2_format format);
100
102typedef struct rs2_extrinsics
103{
104 float rotation[9];
105 float translation[3];
107
110{
111 struct { double x, y, z, w; } orientation;
112 struct { double x, y, z; } angular_velocity;
113 struct { double x, y, z; } linear_acceleration;
115
121
128int rs2_get_sensors_count(const rs2_sensor_list* info_list, rs2_error** error);
129
135
142rs2_sensor* rs2_create_sensor(const rs2_sensor_list* list, int index, rs2_error** error);
143
151
159const char* rs2_get_sensor_info(const rs2_sensor* sensor, rs2_camera_info info, rs2_error** error);
160
168
176int rs2_is_sensor_extendable_to(const rs2_sensor* sensor, rs2_extension extension, rs2_error** error);
177
184
191
198
208void rs2_set_region_of_interest(const rs2_sensor* sensor, int min_x, int min_y, int max_x, int max_y, rs2_error** error);
209
219void rs2_get_region_of_interest(const rs2_sensor* sensor, int* min_x, int* min_y, int* max_x, int* max_y, rs2_error** error);
220
227void rs2_open(rs2_sensor* device, const rs2_stream_profile* profile, rs2_error** error);
228
237void rs2_open_multiple(rs2_sensor* device, const rs2_stream_profile** profiles, int count, rs2_error** error);
238
244void rs2_close(const rs2_sensor* sensor, rs2_error** error);
245
253void rs2_start(const rs2_sensor* sensor, rs2_frame_callback_ptr on_frame, void* user, rs2_error** error);
254
261void rs2_start_cpp(const rs2_sensor* sensor, rs2_frame_callback* callback, rs2_error** error);
262
269void rs2_start_queue(const rs2_sensor* sensor, rs2_frame_queue* queue, rs2_error** error);
270
276void rs2_stop(const rs2_sensor* sensor, rs2_error** error);
277
284void rs2_set_notifications_callback(const rs2_sensor* sensor, rs2_notification_callback_ptr on_notification, void* user, rs2_error** error);
285
293
301
309
317
325
333
341
349
357
365
376void rs2_get_stream_profile_data(const rs2_stream_profile* mode, rs2_stream* stream, rs2_format* format, int* index, int* unique_id, int* framerate, rs2_error** error);
377
386void rs2_set_stream_profile_data(rs2_stream_profile* mode, rs2_stream stream, int index, rs2_format format, rs2_error** error);
387
398
411rs2_stream_profile* rs2_clone_video_stream_profile(const rs2_stream_profile* mode, rs2_stream stream, int index, rs2_format format, int width, int height, const rs2_intrinsics* intr, rs2_error** error);
412
413
420
429
437void rs2_get_video_stream_resolution(const rs2_stream_profile* mode, int* width, int* height, rs2_error** error);
438
446
455
463
469
477 const rs2_stream_profile* to,
478 rs2_extrinsics* extrin, rs2_error** error);
479
487 const rs2_stream_profile* to,
488 rs2_extrinsics extrin, rs2_error** error);
489
499void rs2_override_extrinsics( const rs2_sensor* sensor, const rs2_extrinsics* extrinsics, rs2_error** error );
500
508
517
526
534
540
549int rs2_import_localization_map(const rs2_sensor* sensor, const unsigned char* lmap_blob, unsigned int blob_size, rs2_error** error);
550
558//void rs2_export_localization_map(const rs2_sensor* sensor, const char* lmap_fname, rs2_error** error);
560
570int rs2_set_static_node(const rs2_sensor* sensor, const char* guid, const rs2_vector pos, const rs2_quaternion orient, rs2_error** error);
571
581int rs2_get_static_node(const rs2_sensor* sensor, const char* guid, rs2_vector *pos, rs2_quaternion *orient, rs2_error** error);
582
590int rs2_remove_static_node(const rs2_sensor* sensor, const char* guid, rs2_error** error);
591
596int rs2_load_wheel_odometry_config(const rs2_sensor* sensor, const unsigned char* odometry_config_buf, unsigned int blob_size, rs2_error** error);
597
604int rs2_send_wheel_odometry(const rs2_sensor* sensor, char wo_sensor_id, unsigned int frame_num,
605 const rs2_vector translational_velocity, rs2_error** error);
606
614void rs2_set_intrinsics(const rs2_sensor* sensor, const rs2_stream_profile* profile , const rs2_intrinsics* intrinsics, rs2_error** error);
615
625void rs2_override_intrinsics( const rs2_sensor* sensor, const rs2_intrinsics* intrinsics, rs2_error** error );
626
636void rs2_set_extrinsics(const rs2_sensor* from_sensor, const rs2_stream_profile* from_profile, rs2_sensor* to_sensor, const rs2_stream_profile* to_profile, const rs2_extrinsics* extrinsics, rs2_error** error);
637
644void rs2_reset_sensor_calibration( rs2_sensor const * sensor, rs2_error** error );
645
653void rs2_set_motion_device_intrinsics(const rs2_sensor* sensor, const rs2_stream_profile* profile, const rs2_motion_device_intrinsic* intrinsics, rs2_error** error);
654
661
662#ifdef __cplusplus
663}
664#endif
665#endif // LIBREALSENSE_RS2_SENSOR_H
void rs2_override_extrinsics(const rs2_sensor *sensor, const rs2_extrinsics *extrinsics, rs2_error **error)
Override extrinsics of a given sensor that supports calibrated_sensor.
rs2_stream
Streams are different types of data provided by RealSense devices.
Definition rs_sensor.h:44
@ RS2_STREAM_DEPTH
Definition rs_sensor.h:46
@ RS2_STREAM_CONFIDENCE
Definition rs_sensor.h:54
@ RS2_STREAM_ANY
Definition rs_sensor.h:45
@ RS2_STREAM_GYRO
Definition rs_sensor.h:50
@ RS2_STREAM_INFRARED
Definition rs_sensor.h:48
@ RS2_STREAM_MOTION
Definition rs_sensor.h:55
@ RS2_STREAM_COUNT
Definition rs_sensor.h:56
@ RS2_STREAM_GPIO
Definition rs_sensor.h:52
@ RS2_STREAM_COLOR
Definition rs_sensor.h:47
@ RS2_STREAM_ACCEL
Definition rs_sensor.h:51
@ RS2_STREAM_POSE
Definition rs_sensor.h:53
@ RS2_STREAM_FISHEYE
Definition rs_sensor.h:49
rs2_processing_block_list * rs2_get_recommended_processing_blocks(rs2_sensor *sensor, rs2_error **error)
void rs2_get_motion_intrinsics(const rs2_stream_profile *mode, rs2_motion_device_intrinsic *intrinsics, rs2_error **error)
float rs2_depth_stereo_frame_get_baseline(const rs2_frame *frame_ref, rs2_error **error)
int rs2_get_recommended_processing_blocks_count(const rs2_processing_block_list *list, rs2_error **error)
void rs2_override_intrinsics(const rs2_sensor *sensor, const rs2_intrinsics *intrinsics, rs2_error **error)
Override intrinsics of a given sensor that supports calibrated_sensor.
void rs2_delete_stream_profile(rs2_stream_profile *mode)
float rs2_get_depth_scale(rs2_sensor *sensor, rs2_error **error)
int rs2_set_static_node(const rs2_sensor *sensor, const char *guid, const rs2_vector pos, const rs2_quaternion orient, rs2_error **error)
rs2_time_t rs2_get_notification_timestamp(rs2_notification *notification, rs2_error **error)
const char * rs2_stream_to_string(rs2_stream stream)
int rs2_supports_sensor_info(const rs2_sensor *sensor, rs2_camera_info info, rs2_error **error)
rs2_notification_category rs2_get_notification_category(rs2_notification *notification, rs2_error **error)
void rs2_start(const rs2_sensor *sensor, rs2_frame_callback_ptr on_frame, void *user, rs2_error **error)
void rs2_delete_sensor_list(rs2_sensor_list *info_list)
int rs2_stream_profile_is(const rs2_stream_profile *mode, rs2_extension type, rs2_error **error)
void rs2_start_queue(const rs2_sensor *sensor, rs2_frame_queue *queue, rs2_error **error)
rs2_device * rs2_create_device_from_sensor(const rs2_sensor *sensor, rs2_error **error)
void rs2_set_region_of_interest(const rs2_sensor *sensor, int min_x, int min_y, int max_x, int max_y, rs2_error **error)
sets the active region of interest to be used by auto-exposure algorithm
const char * rs2_get_sensor_info(const rs2_sensor *sensor, rs2_camera_info info, rs2_error **error)
void rs2_get_video_stream_resolution(const rs2_stream_profile *mode, int *width, int *height, rs2_error **error)
void rs2_stop(const rs2_sensor *sensor, rs2_error **error)
void rs2_set_extrinsics(const rs2_sensor *from_sensor, const rs2_stream_profile *from_profile, rs2_sensor *to_sensor, const rs2_stream_profile *to_profile, const rs2_extrinsics *extrinsics, rs2_error **error)
void rs2_set_stream_profile_data(rs2_stream_profile *mode, rs2_stream stream, int index, rs2_format format, rs2_error **error)
void rs2_start_cpp(const rs2_sensor *sensor, rs2_frame_callback *callback, rs2_error **error)
const char * rs2_camera_info_to_string(rs2_camera_info info)
const char * rs2_get_notification_serialized_data(rs2_notification *notification, rs2_error **error)
int rs2_load_wheel_odometry_config(const rs2_sensor *sensor, const unsigned char *odometry_config_buf, unsigned int blob_size, rs2_error **error)
const rs2_raw_data_buffer * rs2_export_localization_map(const rs2_sensor *sensor, rs2_error **error)
void rs2_reset_sensor_calibration(rs2_sensor const *sensor, rs2_error **error)
int rs2_send_wheel_odometry(const rs2_sensor *sensor, char wo_sensor_id, unsigned int frame_num, const rs2_vector translational_velocity, rs2_error **error)
const rs2_stream_profile * rs2_get_stream_profile(const rs2_stream_profile_list *list, int index, rs2_error **error)
rs2_stream_profile * rs2_clone_video_stream_profile(const rs2_stream_profile *mode, rs2_stream stream, int index, rs2_format format, int width, int height, const rs2_intrinsics *intr, rs2_error **error)
rs2_log_severity rs2_get_notification_severity(rs2_notification *notification, rs2_error **error)
const char * rs2_get_notification_description(rs2_notification *notification, rs2_error **error)
int rs2_is_stream_profile_default(const rs2_stream_profile *mode, rs2_error **error)
void rs2_get_stream_profile_data(const rs2_stream_profile *mode, rs2_stream *stream, rs2_format *format, int *index, int *unique_id, int *framerate, rs2_error **error)
void rs2_get_extrinsics(const rs2_stream_profile *from, const rs2_stream_profile *to, rs2_extrinsics *extrin, rs2_error **error)
int rs2_is_sensor_extendable_to(const rs2_sensor *sensor, rs2_extension extension, rs2_error **error)
void rs2_get_video_stream_intrinsics(const rs2_stream_profile *mode, rs2_intrinsics *intrinsics, rs2_error **error)
void rs2_delete_sensor(rs2_sensor *sensor)
void rs2_close(const rs2_sensor *sensor, rs2_error **error)
rs2_sensor * rs2_create_sensor(const rs2_sensor_list *list, int index, rs2_error **error)
int rs2_get_sensors_count(const rs2_sensor_list *info_list, rs2_error **error)
rs2_stream_profile_list * rs2_get_debug_stream_profiles(rs2_sensor *sensor, rs2_error **error)
void rs2_set_notifications_callback_cpp(const rs2_sensor *sensor, rs2_notifications_callback *callback, rs2_error **error)
rs2_stream_profile_list * rs2_get_active_streams(rs2_sensor *sensor, rs2_error **error)
rs2_camera_info
Read-only strings that can be queried from the device. Not all information attributes are available o...
Definition rs_sensor.h:22
@ RS2_CAMERA_INFO_ASIC_SERIAL_NUMBER
Definition rs_sensor.h:34
@ RS2_CAMERA_INFO_DFU_DEVICE_PATH
Definition rs_sensor.h:37
@ RS2_CAMERA_INFO_PRODUCT_LINE
Definition rs_sensor.h:33
@ RS2_CAMERA_INFO_PRODUCT_ID
Definition rs_sensor.h:30
@ RS2_CAMERA_INFO_SERIAL_NUMBER
Definition rs_sensor.h:24
@ RS2_CAMERA_INFO_USB_TYPE_DESCRIPTOR
Definition rs_sensor.h:32
@ RS2_CAMERA_INFO_CAMERA_LOCKED
Definition rs_sensor.h:31
@ RS2_CAMERA_INFO_FIRMWARE_VERSION
Definition rs_sensor.h:25
@ RS2_CAMERA_INFO_COUNT
Definition rs_sensor.h:38
@ RS2_CAMERA_INFO_RECOMMENDED_FIRMWARE_VERSION
Definition rs_sensor.h:26
@ RS2_CAMERA_INFO_FIRMWARE_UPDATE_ID
Definition rs_sensor.h:35
@ RS2_CAMERA_INFO_DEBUG_OP_CODE
Definition rs_sensor.h:28
@ RS2_CAMERA_INFO_ADVANCED_MODE
Definition rs_sensor.h:29
@ RS2_CAMERA_INFO_NAME
Definition rs_sensor.h:23
@ RS2_CAMERA_INFO_IP_ADDRESS
Definition rs_sensor.h:36
@ RS2_CAMERA_INFO_PHYSICAL_PORT
Definition rs_sensor.h:27
void rs2_set_motion_device_intrinsics(const rs2_sensor *sensor, const rs2_stream_profile *profile, const rs2_motion_device_intrinsic *intrinsics, rs2_error **error)
void rs2_set_notifications_callback(const rs2_sensor *sensor, rs2_notification_callback_ptr on_notification, void *user, rs2_error **error)
const char * rs2_format_to_string(rs2_format format)
rs2_stream_profile_list * rs2_get_stream_profiles(rs2_sensor *sensor, rs2_error **error)
float rs2_get_max_usable_depth_range(rs2_sensor const *sensor, rs2_error **error)
float rs2_get_stereo_baseline(rs2_sensor *sensor, rs2_error **error)
rs2_processing_block * rs2_get_processing_block(const rs2_processing_block_list *list, int index, rs2_error **error)
void rs2_delete_stream_profiles_list(rs2_stream_profile_list *list)
void rs2_set_intrinsics(const rs2_sensor *sensor, const rs2_stream_profile *profile, const rs2_intrinsics *intrinsics, rs2_error **error)
int rs2_get_stream_profiles_count(const rs2_stream_profile_list *list, rs2_error **error)
int rs2_import_localization_map(const rs2_sensor *sensor, const unsigned char *lmap_blob, unsigned int blob_size, rs2_error **error)
void rs2_open_multiple(rs2_sensor *device, const rs2_stream_profile **profiles, int count, rs2_error **error)
int rs2_remove_static_node(const rs2_sensor *sensor, const char *guid, rs2_error **error)
void rs2_delete_recommended_processing_blocks(rs2_processing_block_list *list)
rs2_format
A stream's format identifies how binary data is encoded within a frame.
Definition rs_sensor.h:62
@ RS2_FORMAT_MJPEG
Definition rs_sensor.h:85
@ RS2_FORMAT_W10
Definition rs_sensor.h:90
@ RS2_FORMAT_DISPARITY16
Definition rs_sensor.h:65
@ RS2_FORMAT_MOTION_XYZ32F
Definition rs_sensor.h:79
@ RS2_FORMAT_6DOF
Definition rs_sensor.h:81
@ RS2_FORMAT_Y16I
Definition rs_sensor.h:94
@ RS2_FORMAT_M420
Definition rs_sensor.h:95
@ RS2_FORMAT_Y8
Definition rs_sensor.h:72
@ RS2_FORMAT_COUNT
Definition rs_sensor.h:97
@ RS2_FORMAT_DISPARITY32
Definition rs_sensor.h:82
@ RS2_FORMAT_DISTANCE
Definition rs_sensor.h:84
@ RS2_FORMAT_Y12I
Definition rs_sensor.h:87
@ RS2_FORMAT_UYVY
Definition rs_sensor.h:77
@ RS2_FORMAT_RAW10
Definition rs_sensor.h:74
@ RS2_FORMAT_YUYV
Definition rs_sensor.h:67
@ RS2_FORMAT_RGB8
Definition rs_sensor.h:68
@ RS2_FORMAT_FG
Definition rs_sensor.h:92
@ RS2_FORMAT_Y411
Definition rs_sensor.h:93
@ RS2_FORMAT_RGBA8
Definition rs_sensor.h:70
@ RS2_FORMAT_Y16
Definition rs_sensor.h:73
@ RS2_FORMAT_BGR8
Definition rs_sensor.h:69
@ RS2_FORMAT_Y10BPACK
Definition rs_sensor.h:83
@ RS2_FORMAT_GPIO_RAW
Definition rs_sensor.h:80
@ RS2_FORMAT_MOTION_RAW
Definition rs_sensor.h:78
@ RS2_FORMAT_BGRA8
Definition rs_sensor.h:71
@ RS2_FORMAT_Y8I
Definition rs_sensor.h:86
@ RS2_FORMAT_RAW8
Definition rs_sensor.h:76
@ RS2_FORMAT_Z16H
Definition rs_sensor.h:91
@ RS2_FORMAT_RAW16
Definition rs_sensor.h:75
@ RS2_FORMAT_INZI
Definition rs_sensor.h:88
@ RS2_FORMAT_XYZ32F
Definition rs_sensor.h:66
@ RS2_FORMAT_COMBINED_MOTION
Definition rs_sensor.h:96
@ RS2_FORMAT_Z16
Definition rs_sensor.h:64
@ RS2_FORMAT_INVI
Definition rs_sensor.h:89
@ RS2_FORMAT_ANY
Definition rs_sensor.h:63
void rs2_open(rs2_sensor *device, const rs2_stream_profile *profile, rs2_error **error)
int rs2_get_static_node(const rs2_sensor *sensor, const char *guid, rs2_vector *pos, rs2_quaternion *orient, rs2_error **error)
void rs2_register_extrinsics(const rs2_stream_profile *from, const rs2_stream_profile *to, rs2_extrinsics extrin, rs2_error **error)
rs2_stream_profile * rs2_clone_stream_profile(const rs2_stream_profile *mode, rs2_stream stream, int index, rs2_format format, rs2_error **error)
void rs2_get_region_of_interest(const rs2_sensor *sensor, int *min_x, int *min_y, int *max_x, int *max_y, rs2_error **error)
gets the active region of interest to be used by auto-exposure algorithm
Exposes RealSense structs.
struct rs2_sensor rs2_sensor
Definition rs_types.h:254
rs2_log_severity
Severity of the librealsense logger.
Definition rs_types.h:123
struct rs2_stream_profile rs2_stream_profile
Definition rs_types.h:241
rs2_notification_category
Category of the librealsense notification.
Definition rs_types.h:19
struct rs2_processing_block_list rs2_processing_block_list
Definition rs_types.h:240
struct rs2_sensor_list rs2_sensor_list
Definition rs_types.h:253
void(* rs2_notification_callback_ptr)(rs2_notification *, void *)
Definition rs_types.h:266
struct rs2_device rs2_device
Definition rs_types.h:229
rs2_extension
Specifies advanced interfaces (capabilities) objects may implement.
Definition rs_types.h:137
double rs2_time_t
Definition rs_types.h:274
struct rs2_notification rs2_notification
Definition rs_types.h:259
void(* rs2_frame_callback_ptr)(rs2_frame *, void *)
Definition rs_types.h:269
struct rs2_stream_profile_list rs2_stream_profile_list
Definition rs_types.h:239
struct rs2_error rs2_error
Definition rs_types.h:230
struct rs2_raw_data_buffer rs2_raw_data_buffer
Definition rs_types.h:232
struct rs2_frame_queue rs2_frame_queue
Definition rs_types.h:234
struct rs2_frame rs2_frame
Definition rs_types.h:233
struct rs2_processing_block rs2_processing_block
Definition rs_types.h:247
RS2_STREAM_MOTION / RS2_FORMAT_COMBINED_MOTION content is similar to ROS2's Imu message.
Definition rs_sensor.h:110
struct rs2_combined_motion::@131345325033372200136251276234061217104035206147 angular_velocity
double w
Definition rs_sensor.h:111
struct rs2_combined_motion::@360253361240230033315165006360362311027067155172 orientation
struct rs2_combined_motion::@101132204103333135146337177222310240134262105331 linear_acceleration
double z
Definition rs_sensor.h:111
double x
Definition rs_sensor.h:111
double y
Definition rs_sensor.h:111
Cross-stream extrinsics: encodes the topology describing how the different devices are oriented.
Definition rs_sensor.h:103
float translation[3]
Definition rs_sensor.h:105
float rotation[9]
Definition rs_sensor.h:104
Definition rs_types.hpp:27
Video stream intrinsics.
Definition rs_types.h:61
Motion device intrinsics: scale, bias, and variances.
Definition rs_types.h:74
Definition rs_types.hpp:43
Quaternion used to represent rotation.
Definition rs_types.h:106
3D vector in Euclidean coordinate space
Definition rs_types.h:100