RealSense Cross Platform API
RealSense Cross-platform API
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 RealSense, Inc. All Rights Reserved. */
3 
10 #ifndef LIBREALSENSE_RS2_SENSOR_H
11 #define LIBREALSENSE_RS2_SENSOR_H
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
17 #include "rs_types.h"
18 
22 typedef enum rs2_camera_info {
45 
47 typedef enum rs2_stream
48 {
65 } rs2_stream;
66 const char* rs2_stream_to_string(rs2_stream stream);
67 
69 typedef enum rs2_format
70 {
108 } rs2_format;
109 const char* rs2_format_to_string(rs2_format format);
110 
112 typedef struct rs2_extrinsics
113 {
114  float rotation[9];
115  float translation[3];
117 
119 typedef struct rs2_combined_motion
120 {
121  struct { double x, y, z, w; } orientation;
122  struct { double x, y, z; } angular_velocity;
123  struct { double x, y, z; } linear_acceleration;
125 
130 void rs2_delete_sensor_list(rs2_sensor_list* info_list);
131 
138 int rs2_get_sensors_count(const rs2_sensor_list* info_list, rs2_error** error);
139 
144 void rs2_delete_sensor(rs2_sensor* sensor);
145 
152 rs2_sensor* rs2_create_sensor(const rs2_sensor_list* list, int index, rs2_error** error);
153 
161 
169 const char* rs2_get_sensor_info(const rs2_sensor* sensor, rs2_camera_info info, rs2_error** error);
170 
177 int rs2_supports_sensor_info(const rs2_sensor* sensor, rs2_camera_info info, rs2_error** error);
178 
186 int rs2_is_sensor_extendable_to(const rs2_sensor* sensor, rs2_extension extension, rs2_error** error);
187 
193 float rs2_get_depth_scale(rs2_sensor* sensor, rs2_error** error);
194 
200 float rs2_depth_stereo_frame_get_baseline(const rs2_frame* frame_ref, rs2_error** error);
201 
207 float rs2_get_stereo_baseline(rs2_sensor* sensor, rs2_error** error);
208 
218 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);
219 
229 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);
230 
237 void rs2_open(rs2_sensor* device, const rs2_stream_profile* profile, rs2_error** error);
238 
247 void rs2_open_multiple(rs2_sensor* device, const rs2_stream_profile** profiles, int count, rs2_error** error);
248 
254 void rs2_close(const rs2_sensor* sensor, rs2_error** error);
255 
263 void rs2_start(const rs2_sensor* sensor, rs2_frame_callback_ptr on_frame, void* user, rs2_error** error);
264 
271 void rs2_start_cpp(const rs2_sensor* sensor, rs2_frame_callback* callback, rs2_error** error);
272 
279 void rs2_start_queue(const rs2_sensor* sensor, rs2_frame_queue* queue, rs2_error** error);
280 
286 void rs2_stop(const rs2_sensor* sensor, rs2_error** error);
287 
294 void rs2_set_notifications_callback(const rs2_sensor* sensor, rs2_notification_callback_ptr on_notification, void* user, rs2_error** error);
295 
303 
310 const char* rs2_get_notification_description(rs2_notification* notification, rs2_error** error);
311 
319 
327 
335 
342 const char* rs2_get_notification_serialized_data(rs2_notification* notification, rs2_error** error);
343 
351 
359 
367 
373 
381 
388 const rs2_stream_profile* rs2_get_stream_profile(const rs2_stream_profile_list* list, int index, rs2_error** error);
389 
400 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);
401 
410 void rs2_set_stream_profile_data(rs2_stream_profile* mode, rs2_stream stream, int index, rs2_format format, rs2_error** error);
411 
421 rs2_stream_profile* rs2_clone_stream_profile(const rs2_stream_profile* mode, rs2_stream stream, int index, rs2_format format, rs2_error** error);
422 
435 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);
436 
437 
444 
452 int rs2_stream_profile_is(const rs2_stream_profile* mode, rs2_extension type, rs2_error** error);
453 
461 void rs2_get_video_stream_resolution(const rs2_stream_profile* mode, int* width, int* height, rs2_error** error);
462 
470 
479 
487 
493 
500 void rs2_get_extrinsics(const rs2_stream_profile* from,
501  const rs2_stream_profile* to,
502  rs2_extrinsics* extrin, rs2_error** error);
503 
511  const rs2_stream_profile* to,
512  rs2_extrinsics extrin, rs2_error** error);
513 
523 void rs2_override_extrinsics( const rs2_sensor* sensor, const rs2_extrinsics* extrinsics, rs2_error** error );
524 
531 void rs2_get_video_stream_intrinsics(const rs2_stream_profile* mode, rs2_intrinsics* intrinsics, rs2_error** error);
532 
541 
550 
558 
564 
573 int rs2_import_localization_map(const rs2_sensor* sensor, const unsigned char* lmap_blob, unsigned int blob_size, rs2_error** error);
574 
582 //void rs2_export_localization_map(const rs2_sensor* sensor, const char* lmap_fname, rs2_error** error);
584 
594 int rs2_set_static_node(const rs2_sensor* sensor, const char* guid, const rs2_vector pos, const rs2_quaternion orient, rs2_error** error);
595 
605 int rs2_get_static_node(const rs2_sensor* sensor, const char* guid, rs2_vector *pos, rs2_quaternion *orient, rs2_error** error);
606 
614 int rs2_remove_static_node(const rs2_sensor* sensor, const char* guid, rs2_error** error);
615 
620 int rs2_load_wheel_odometry_config(const rs2_sensor* sensor, const unsigned char* odometry_config_buf, unsigned int blob_size, rs2_error** error);
621 
628 int rs2_send_wheel_odometry(const rs2_sensor* sensor, char wo_sensor_id, unsigned int frame_num,
629  const rs2_vector translational_velocity, rs2_error** error);
630 
638 void rs2_set_intrinsics(const rs2_sensor* sensor, const rs2_stream_profile* profile , const rs2_intrinsics* intrinsics, rs2_error** error);
639 
649 void rs2_override_intrinsics( const rs2_sensor* sensor, const rs2_intrinsics* intrinsics, rs2_error** error );
650 
660 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);
661 
668 void rs2_reset_sensor_calibration( rs2_sensor const * sensor, rs2_error** error );
669 
677 void rs2_set_motion_device_intrinsics(const rs2_sensor* sensor, const rs2_stream_profile* profile, const rs2_motion_device_intrinsic* intrinsics, rs2_error** error);
678 
684 float rs2_get_max_usable_depth_range(rs2_sensor const * sensor, rs2_error** error);
685 
686 #ifdef __cplusplus
687 }
688 #endif
689 #endif // LIBREALSENSE_RS2_SENSOR_H
Definition: rs_sensor.h:33
Definition: rs_sensor.h:60
Definition: rs_sensor.h:86
struct rs2_processing_block_list rs2_processing_block_list
Definition: rs_types.h:306
void rs2_register_extrinsics(const rs2_stream_profile *from, const rs2_stream_profile *to, rs2_extrinsics extrin, rs2_error **error)
int rs2_get_sensors_count(const rs2_sensor_list *info_list, 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
Definition: rs_types.hpp:26
const char * rs2_format_to_string(rs2_format format)
Definition: rs_sensor.h:77
struct rs2_raw_data_buffer rs2_raw_data_buffer
Definition: rs_types.h:298
Definition: rs_sensor.h:90
float rs2_get_depth_scale(rs2_sensor *sensor, rs2_error **error)
Definition: rs_sensor.h:39
Definition: rs_sensor.h:27
Definition: rs_sensor.h:41
Definition: rs_sensor.h:100
Definition: rs_sensor.h:28
Definition: rs_types.hpp:42
Definition: rs_sensor.h:59
struct rs2_frame_queue rs2_frame_queue
Definition: rs_types.h:300
void rs2_get_video_stream_resolution(const rs2_stream_profile *mode, int *width, int *height, rs2_error **error)
void rs2_set_intrinsics(const rs2_sensor *sensor, const rs2_stream_profile *profile, const rs2_intrinsics *intrinsics, rs2_error **error)
rs2_sensor * rs2_create_sensor(const rs2_sensor_list *list, int index, rs2_error **error)
Definition: rs_sensor.h:24
int rs2_get_static_node(const rs2_sensor *sensor, const char *guid, rs2_vector *pos, rs2_quaternion *orient, rs2_error **error)
float translation[3]
Definition: rs_sensor.h:115
float rs2_get_max_usable_depth_range(rs2_sensor const *sensor, rs2_error **error)
double x
Definition: rs_sensor.h:121
Definition: rs_sensor.h:38
Definition: rs_sensor.h:30
void rs2_get_extrinsics(const rs2_stream_profile *from, const rs2_stream_profile *to, rs2_extrinsics *extrin, rs2_error **error)
rs2_device * rs2_create_device_from_sensor(const rs2_sensor *sensor, rs2_error **error)
Definition: rs_sensor.h:89
struct rs2_combined_motion::@3 angular_velocity
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
Definition: rs_sensor.h:31
Definition: rs_sensor.h:72
Definition: rs_sensor.h:53
Definition: rs_sensor.h:92
int rs2_import_localization_map(const rs2_sensor *sensor, const unsigned char *lmap_blob, unsigned int blob_size, rs2_error **error)
Definition: rs_sensor.h:97
struct rs2_sensor_list rs2_sensor_list
Definition: rs_types.h:319
Definition: rs_sensor.h:57
void rs2_stop(const rs2_sensor *sensor, rs2_error **error)
Definition: rs_sensor.h:75
void rs2_start_queue(const rs2_sensor *sensor, rs2_frame_queue *queue, rs2_error **error)
int rs2_stream_profile_is(const rs2_stream_profile *mode, rs2_extension type, rs2_error **error)
Definition: rs_sensor.h:103
const char * rs2_get_notification_serialized_data(rs2_notification *notification, rs2_error **error)
Definition: rs_sensor.h:23
Definition: rs_sensor.h:56
rs2_log_severity rs2_get_notification_severity(rs2_notification *notification, rs2_error **error)
Definition: rs_sensor.h:34
Definition: rs_sensor.h:73
Definition: rs_sensor.h:54
rs2_stream_profile * rs2_clone_stream_profile(const rs2_stream_profile *mode, rs2_stream stream, int index, rs2_format format, rs2_error **error)
Definition: rs_sensor.h:101
rs2_stream_profile_list * rs2_get_active_streams(rs2_sensor *sensor, rs2_error **error)
struct rs2_combined_motion::@2 orientation
struct rs2_sensor rs2_sensor
Definition: rs_types.h:320
float rotation[9]
Definition: rs_sensor.h:114
Definition: rs_sensor.h:51
rs2_stream_profile_list * rs2_get_stream_profiles(rs2_sensor *sensor, rs2_error **error)
void rs2_open(rs2_sensor *device, const rs2_stream_profile *profile, rs2_error **error)
void rs2_set_stream_profile_data(rs2_stream_profile *mode, rs2_stream stream, int index, rs2_format format, rs2_error **error)
Definition: rs_sensor.h:76
Quaternion used to represent rotation.
Definition: rs_types.h:105
rs2_stream_profile_list * rs2_get_debug_stream_profiles(rs2_sensor *sensor, rs2_error **error)
Definition: rs_sensor.h:74
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)
Definition: rs_sensor.h:93
struct rs2_notification rs2_notification
Definition: rs_types.h:328
int rs2_is_stream_profile_default(const rs2_stream_profile *mode, rs2_error **error)
double w
Definition: rs_sensor.h:121
Exposes RealSense structs.
void rs2_start(const rs2_sensor *sensor, rs2_frame_callback_ptr on_frame, void *user, rs2_error **error)
void rs2_set_notifications_callback(const rs2_sensor *sensor, rs2_notification_callback_ptr on_notification, void *user, rs2_error **error)
float rs2_get_stereo_baseline(rs2_sensor *sensor, rs2_error **error)
int rs2_get_recommended_processing_blocks_count(const rs2_processing_block_list *list, rs2_error **error)
void rs2_delete_sensor(rs2_sensor *sensor)
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
Definition: rs_sensor.h:64
rs2_time_t rs2_get_notification_timestamp(rs2_notification *notification, rs2_error **error)
Definition: rs_sensor.h:32
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)
RS2_STREAM_MOTION / RS2_FORMAT_COMBINED_MOTION content is similar to ROS2's Imu message.
Definition: rs_sensor.h:119
int rs2_remove_static_node(const rs2_sensor *sensor, const char *guid, rs2_error **error)
Definition: rs_sensor.h:58
Definition: rs_sensor.h:91
void rs2_delete_stream_profile(rs2_stream_profile *mode)
struct rs2_stream_profile_list rs2_stream_profile_list
Definition: rs_types.h:305
const rs2_stream_profile * rs2_get_stream_profile(const rs2_stream_profile_list *list, int index, rs2_error **error)
Definition: rs_sensor.h:98
void rs2_set_notifications_callback_cpp(const rs2_sensor *sensor, rs2_notifications_callback *callback, rs2_error **error)
void rs2_reset_sensor_calibration(rs2_sensor const *sensor, rs2_error **error)
Definition: rs_sensor.h:96
struct rs2_stream_profile rs2_stream_profile
Definition: rs_types.h:307
Definition: rs_sensor.h:71
Definition: rs_sensor.h:106
Definition: rs_sensor.h:102
rs2_format
A stream's format identifies how binary data is encoded within a frame.
Definition: rs_sensor.h:69
int rs2_supports_sensor_info(const rs2_sensor *sensor, rs2_camera_info info, rs2_error **error)
Definition: rs_sensor.h:61
Definition: rs_sensor.h:25
void rs2_delete_recommended_processing_blocks(rs2_processing_block_list *list)
Definition: rs_sensor.h:85
Definition: rs_sensor.h:42
Definition: rs_sensor.h:107
Definition: rs_sensor.h:87
Definition: rs_sensor.h:36
Definition: rs_sensor.h:50
rs2_stream
Streams are different types of data provided by RealSense devices.
Definition: rs_sensor.h:47
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.
struct rs2_combined_motion rs2_combined_motion
RS2_STREAM_MOTION / RS2_FORMAT_COMBINED_MOTION content is similar to ROS2's Imu message.
Definition: rs_sensor.h:63
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_get_video_stream_intrinsics(const rs2_stream_profile *mode, rs2_intrinsics *intrinsics, rs2_error **error)
Definition: rs_sensor.h:52
Definition: rs_sensor.h:55
Definition: rs_sensor.h:83
Cross-stream extrinsics: encodes the topology describing how the different devices are oriented...
Definition: rs_sensor.h:112
Definition: rs_sensor.h:104
struct rs2_combined_motion::@4 linear_acceleration
const char * rs2_camera_info_to_string(rs2_camera_info info)
int rs2_is_sensor_extendable_to(const rs2_sensor *sensor, rs2_extension extension, rs2_error **error)
3D vector in Euclidean coordinate space
Definition: rs_types.h:99
struct rs2_embedded_filter_list rs2_embedded_filter_list
Definition: rs_types.h:322
struct rs2_processing_block rs2_processing_block
Definition: rs_types.h:313
const char * rs2_stream_to_string(rs2_stream stream)
rs2_extension
Specifies advanced interfaces (capabilities) objects may implement.
Definition: rs_types.h:153
double z
Definition: rs_sensor.h:121
rs2_notification_category
Category of the librealsense notification.
Definition: rs_types.h:19
Definition: rs_sensor.h:49
void(* rs2_notification_callback_ptr)(rs2_notification *, void *)
Definition: rs_types.h:335
Definition: rs_sensor.h:37
void rs2_delete_stream_profiles_list(rs2_stream_profile_list *list)
void rs2_close(const rs2_sensor *sensor, rs2_error **error)
double y
Definition: rs_sensor.h:121
struct rs2_device rs2_device
Definition: rs_types.h:295
Video stream intrinsics.
Definition: rs_types.h:60
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)
void rs2_open_multiple(rs2_sensor *device, const rs2_stream_profile **profiles, int count, rs2_error **error)
void rs2_start_cpp(const rs2_sensor *sensor, rs2_frame_callback *callback, rs2_error **error)
Definition: rs_sensor.h:79
rs2_notification_category rs2_get_notification_category(rs2_notification *notification, rs2_error **error)
rs2_processing_block * rs2_get_processing_block(const rs2_processing_block_list *list, int index, rs2_error **error)
Definition: rs_sensor.h:105
Motion device intrinsics: scale, bias, and variances.
Definition: rs_types.h:73
struct rs2_extrinsics rs2_extrinsics
Cross-stream extrinsics: encodes the topology describing how the different devices are oriented...
void rs2_delete_sensor_list(rs2_sensor_list *info_list)
Definition: rs_sensor.h:35
int rs2_set_static_node(const rs2_sensor *sensor, const char *guid, const rs2_vector pos, const rs2_quaternion orient, rs2_error **error)
void(* rs2_frame_callback_ptr)(rs2_frame *, void *)
Definition: rs_types.h:338
Definition: rs_sensor.h:88
const rs2_raw_data_buffer * rs2_export_localization_map(const rs2_sensor *sensor, rs2_error **error)
float rs2_depth_stereo_frame_get_baseline(const rs2_frame *frame_ref, rs2_error **error)
rs2_embedded_filter_list * rs2_query_embedded_filters(const rs2_sensor *sensor, rs2_error **error)
const char * rs2_get_sensor_info(const rs2_sensor *sensor, rs2_camera_info info, rs2_error **error)
const char * rs2_get_notification_description(rs2_notification *notification, rs2_error **error)
int rs2_get_stream_profiles_count(const rs2_stream_profile_list *list, rs2_error **error)
Definition: rs_sensor.h:40
struct rs2_error rs2_error
Definition: rs_types.h:296
double rs2_time_t
Definition: rs_types.h:343
int rs2_load_wheel_odometry_config(const rs2_sensor *sensor, const unsigned char *odometry_config_buf, unsigned int blob_size, rs2_error **error)
Definition: rs_sensor.h:99
rs2_log_severity
Severity of the librealsense logger.
Definition: rs_types.h:139
Definition: rs_sensor.h:81
rs2_processing_block_list * rs2_get_recommended_processing_blocks(rs2_sensor *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)
void rs2_get_motion_intrinsics(const rs2_stream_profile *mode, rs2_motion_device_intrinsic *intrinsics, 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.
Definition: rs_sensor.h:84
void rs2_delete_embedded_filter_list(rs2_embedded_filter_list *embedded_filter_list)
Definition: rs_sensor.h:29
Definition: rs_sensor.h:62
Definition: rs_sensor.h:95
struct rs2_frame rs2_frame
Definition: rs_types.h:299
Definition: rs_sensor.h:78
Definition: rs_sensor.h:80
Definition: rs_sensor.h:94
Definition: rs_sensor.h:82