Skip to content

Commit d083947

Browse files
committed
bump to v2.3.4
1 parent d816345 commit d083947

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+1649
-715
lines changed

README.MD

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,7 @@ The following launch parameters are available:
345345
save in `~/.ros/Log`. For file logging, adjust `<FileLogLevel>` in `config/OrbbecSDKConfig_v1.0.xml`.
346346
- `ordered_pc`: Whether the point cloud should be organized in an ordered grid (`true`) or as an unordered set of
347347
points (`false`).
348+
- `preset_firmware_path` : The input parameter is the perset firmware path. If multiple paths are input, each path needs to be separated by `,`and a maximum of 3 firmware paths can be input
348349
- `device_preset`: The default value is `Default`. Only the G330 series is supported. For more information, refer to
349350
the [G330 documentation](https://www.orbbec.com/docs/g330-use-depth-presets/). Please refer to the table below to set
350351
the `device_preset` value based on your use case. The value should be one of the preset names
@@ -380,9 +381,7 @@ The following launch parameters are available:
380381
- `preset_firmware_path`: Burn customized preset firmware by passing in the customized preset firmware path
381382

382383
* `color_ae_roi_[left|right|top|bottom]`,`depth_ae_roi_[left|right|top|bottom]`:Set Color and Depth auto exposure ROI.
383-
384384
* `color_ae_roi_[left|right|top|bottom]`,`depth_ae_roi_[left|right|top|bottom]`:Set Color and Depth auto exposure ROI.
385-
386385
* `color_ae_roi_[left|right|top|bottom]`,`depth_ae_roi_[left|right|top|bottom]`:Set Color and Depth auto exposure ROI.
387386

388387
**IMPORTANT**: *Please carefully read the instructions regarding software filtering settings at [this link](https://www.orbbec.com/docs/g330-use-depth-post-processing-blocks/). If you are uncertain, do not modify these settings.*
@@ -529,7 +528,7 @@ For optimal performance, we strongly recommend updating to the latest firmware v
529528

530529
The following devices are supported by the OrbbecSDK ROS2 Wrapper.
531530

532-
| Product List | Minimal Firmware Version | **Launch File** |
531+
| Product List | Minimal Firmware Version | **Launch File** |
533532
| :----------- | :----------------------- | :----------------------- |
534533
| Gemini 330 | 1.2.20 | gemini_330_series.launch |
535534
| Gemini 330L | 1.2.20 | gemini_330_series.launch |

SDK/include/libobsensor/ObSensor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@
2020
#include <libobsensor/h/StreamProfile.h>
2121
#include <libobsensor/h/Version.h>
2222
#include <libobsensor/h/TypeHelper.h>
23-
23+
#include <libobsensor/h/RecordPlayback.h>

SDK/include/libobsensor/ObSensor.hpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@
1414
#include <libobsensor/hpp/Filter.hpp>
1515
#include <libobsensor/hpp/Frame.hpp>
1616
#include <libobsensor/hpp/Pipeline.hpp>
17-
// #include <libobsensor/hpp/RecordPlayback.hpp>
17+
#include <libobsensor/hpp/RecordPlayback.hpp>
1818
#include <libobsensor/hpp/Sensor.hpp>
1919
#include <libobsensor/hpp/StreamProfile.hpp>
2020
#include <libobsensor/hpp/Version.hpp>
2121
#include <libobsensor/hpp/TypeHelper.hpp>
22-

SDK/include/libobsensor/h/Context.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ OB_EXPORT void ob_set_logger_to_console(ob_log_severity severity, ob_error **err
155155

156156
/**
157157
* @brief Set the extensions directory
158-
* @brief The extensions directory is used to search for dynamic libraries that provide additional functionality to the SDK such as the Frame filters.
158+
* @brief The extensions directory is used to search for dynamic libraries that provide additional functionality to the SDK, such as the Frame filters.
159159
*
160160
* @attention Should be called before creating the context and pipeline, otherwise the default extensions directory (./extensions) will be used.
161161
*

SDK/include/libobsensor/h/Device.h

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ OB_EXPORT const char *ob_device_info_get_firmware_version(const ob_device_info *
388388
*
389389
* @param[in] info Device Information
390390
* @param[out] error Pointer to an error object that will be set if an error occurs.
391-
* @return const char* The connection typecurrently supports"USB", "USB1.0", "USB1.1", "USB2.0", "USB2.1", "USB3.0", "USB3.1", "USB3.2", "Ethernet"
391+
* @return const char* The connection type, currently supports: "USB", "USB1.0", "USB1.1", "USB2.0", "USB2.1", "USB3.0", "USB3.1", "USB3.2", "Ethernet"
392392
*/
393393
OB_EXPORT const char *ob_device_info_get_connection_type(const ob_device_info *info, ob_error **error);
394394

@@ -399,7 +399,7 @@ OB_EXPORT const char *ob_device_info_get_connection_type(const ob_device_info *i
399399
*
400400
* @param info Device Information
401401
* @param error Pointer to an error object that will be set if an error occurs.
402-
* @return const char* The IP addresssuch as "192.168.1.10"
402+
* @return const char* The IP address, such as "192.168.1.10"
403403
*/
404404
OB_EXPORT const char *ob_device_info_get_ip_address(const ob_device_info *info, ob_error **error);
405405

@@ -533,7 +533,7 @@ OB_EXPORT const char *ob_device_list_get_device_serial_number(const ob_device_li
533533
* @param[in] list Device list object
534534
* @param[in] index Device index
535535
* @param[out] error Pointer to an error object that will be set if an error occurs.
536-
* @return const char* returns the device connection typecurrently supports"USB", "USB1.0", "USB1.1", "USB2.0", "USB2.1", "USB3.0", "USB3.1", "USB3.2",
536+
* @return const char* returns the device connection type, currently supports: "USB", "USB1.0", "USB1.1", "USB2.0", "USB2.1", "USB3.0", "USB3.1", "USB3.2",
537537
* "Ethernet"
538538
*/
539539
OB_EXPORT const char *ob_device_list_get_device_connection_type(const ob_device_list *list, uint32_t index, ob_error **error);
@@ -546,10 +546,22 @@ OB_EXPORT const char *ob_device_list_get_device_connection_type(const ob_device_
546546
* @param list Device list object
547547
* @param index Device index
548548
* @param error Pointer to an error object that will be set if an error occurs.
549-
* @return const char* returns the device ip addresssuch as "192.168.1.10"
549+
* @return const char* returns the device ip address, such as "192.168.1.10"
550550
*/
551551
OB_EXPORT const char *ob_device_list_get_device_ip_address(const ob_device_list *list, uint32_t index, ob_error **error);
552552

553+
/**
554+
* @brief Get device local mac address
555+
*
556+
* @attention Only valid for network devices, otherwise it will return "0:0:0:0:0:0".
557+
*
558+
* @param list Device list object
559+
* @param index Device index
560+
* @param error Pointer to an error object that will be set if an error occurs.
561+
* @return const char* returns the device mac address
562+
*/
563+
OB_EXPORT const char *ob_device_list_get_device_local_mac(const ob_device_list *list, uint32_t index, ob_error **error);
564+
553565
/**
554566
* @brief Create a device.
555567
*
@@ -580,7 +592,7 @@ OB_EXPORT ob_device *ob_device_list_get_device_by_serial_number(const ob_device_
580592
* @brief On Linux platform, for usb device, the uid of the device is composed of bus-port-dev, for example 1-1.2-1. But the SDK will remove the dev number and
581593
* only keep the bus-port as the uid to create the device, for example 1-1.2, so that we can create a device connected to the specified USB port. Similarly,
582594
* users can also directly pass in bus-port as uid to create device.
583-
* @brief For GMSL devicethe uid is GMSL port with gmsl2- prefix, for example gmsl2-1.
595+
* @brief For GMSL device, the uid is GMSL port with "gmsl2-" prefix, for example gmsl2-1.
584596
*
585597
* @attention If the device has already been acquired and created elsewhere, repeated acquisitions will return an error.
586598
*

SDK/include/libobsensor/h/Error.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ OB_EXPORT ob_exception_type ob_error_get_exception_type(const ob_error *error);
6868
/**
6969
* @brief Delete the error object.
7070
*
71-
* @param[in] error The error object to delete.
71+
* @param[in] error The error object to delete, you should set the pointer to NULL after calling this function.
7272
*/
7373
OB_EXPORT void ob_delete_error(ob_error *error);
7474

SDK/include/libobsensor/h/Frame.h

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ OB_EXPORT void ob_delete_frame(const ob_frame *frame, ob_error **error);
148148

149149
/**
150150
* @brief Copy the information of the source frame object to the destination frame object.
151-
* @brief Including the indextimestampsystem timestampglobal timestamp and metadata will be copied.
151+
* @brief Including the index, timestamp, system timestamp, global timestamp and metadata will be copied.
152152
*
153153
* @param[in] src_frame Source frame object to copy the information from.
154154
* @param[in] dst_frame Destination frame object to copy the information to.
@@ -224,7 +224,7 @@ OB_EXPORT void ob_frame_set_system_timestamp_us(ob_frame *frame, uint64_t system
224224

225225
/**
226226
* @brief Get the global timestamp of the frame in microseconds.
227-
* @brief The global timestamp is the time point when the frame was was captured by the device, and has been converted to the host clock domain. The
227+
* @brief The global timestamp is the time point when the frame was captured by the device, and has been converted to the host clock domain. The
228228
* conversion process base on the frame timestamp and can eliminate the timer drift of the device
229229
*
230230
* @attention The global timestamp is disabled by default. If global timestamp is not enabled, the function will return 0. To enable it, call @ref
@@ -603,6 +603,24 @@ OB_EXPORT ob_frame *ob_frameset_get_frame_by_index(const ob_frame *frameset, uin
603603
*/
604604
OB_EXPORT void ob_frameset_push_frame(ob_frame *frameset, const ob_frame *frame, ob_error **error);
605605

606+
/**
607+
* @brief Get point cloud frame width
608+
*
609+
* @param[in] frame point cloud Frame object
610+
* @param[out] error Pointer to an error object that will be set if an error occurs.
611+
* @return uint32_t return the point cloud frame width
612+
*/
613+
OB_EXPORT uint32_t ob_point_cloud_frame_get_width(const ob_frame *frame, ob_error **error);
614+
615+
/**
616+
* @brief Get point cloud frame height
617+
*
618+
* @param[in] frame point cloud Frame object
619+
* @param[out] error Pointer to an error object that will be set if an error occurs.
620+
* @return uint32_t return the point cloud frame height
621+
*/
622+
OB_EXPORT uint32_t ob_point_cloud_frame_get_height(const ob_frame *frame, ob_error **error);
623+
606624
// The following interfaces are deprecated and are retained here for compatibility purposes.
607625
#define ob_frame_index ob_frame_get_index
608626
#define ob_frame_format ob_frame_get_format

SDK/include/libobsensor/h/MultipleDevices.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ OB_EXPORT ob_multi_device_sync_config ob_device_get_multi_device_sync_config(con
6262
*
6363
* @attention The frequency of the user call this function multiplied by the number of frames per trigger should be less than the frame rate of the stream. The
6464
* number of frames per trigger can be set by @ref framesPerTrigger.
65-
* @attention For some modelsreceive and execute the capture command will have a certain delay and performance consumption, so the frequency of calling this
65+
* @attention For some models, receive and execute the capture command will have a certain delay and performance consumption, so the frequency of calling this
6666
* function should not be too high, please refer to the product manual for the specific supported frequency.
6767
* @attention If the device is not in the @ref OB_MULTI_DEVICE_SYNC_MODE_HARDWARE_TRIGGERING mode, device will ignore the capture command.
6868
*

SDK/include/libobsensor/h/ObTypes.h

Lines changed: 41 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ typedef struct ob_context_t ob_context;
2323
typedef struct ob_device_t ob_device;
2424
typedef struct ob_device_info_t ob_device_info;
2525
typedef struct ob_device_list_t ob_device_list;
26+
typedef struct ob_record_device_t ob_record_device;
27+
typedef struct ob_playback_device_t ob_playback_device;
2628
typedef struct ob_camera_param_list_t ob_camera_param_list;
2729
typedef struct ob_sensor_t ob_sensor;
2830
typedef struct ob_sensor_list_t ob_sensor_list;
@@ -495,6 +497,15 @@ typedef enum {
495497
} OBAlignMode,
496498
ob_align_mode;
497499

500+
/**
501+
* @brief Camera performance mode
502+
*/
503+
typedef enum {
504+
ADAPTIVE_PERFORMANCE_MODE, /**< Camera adaptive mode */
505+
HIGH_PERFORMANCE_MODE, /**< High Performance Mode */
506+
} OBCameraPerformanceMode,
507+
ob_camera_performance_mode;
508+
498509
/**
499510
* @brief Rectangle
500511
*/
@@ -714,14 +725,14 @@ typedef struct {
714725
double zpps; // zpps=z0/fx
715726
float baseline; // baseline length, for monocular camera,it means the distance of laser to the center of IR-CMOS
716727
double fx; // focus
717-
uint8_t bitSize; // disparity bit sizeraw disp bit sizefor example: MX6000 is 12, MX6600 is 14
718-
float unit; // reference unitsunit=10 denote 1cm; unit=1 denote 1mm; unit=0.5 denote 0.5mm; and so on
728+
uint8_t bitSize; // disparity bit size (raw disp bit size, for example: MX6000 is 12, MX6600 is 14)
729+
float unit; // reference units: unit=10 denote 1cm; unit=1 denote 1mm; unit=0.5 denote 0.5mm; and so on
719730
float minDisparity; // dual disparity coefficient
720731
uint8_t packMode; // data pack mode
721-
float dispOffset; // disparity offsetactual disp=chip disp + disp_offset
722-
int32_t invalidDisp; // invalid disparityusually is 0dual IR add a auxiliary value.
723-
int32_t dispIntPlace; // disp integer digitsdefault is 8Gemini2 XL is 10
724-
uint8_t isDualCamera; // 0 monocular camera1 dual camera
732+
float dispOffset; // disparity offset, actual disp=chip disp + disp_offset
733+
int32_t invalidDisp; // invalid disparity, usually is 0, dual IR add a auxiliary value.
734+
int32_t dispIntPlace; // disp integer digits, default is 8, Gemini2 XL is 10
735+
uint8_t isDualCamera; // 0 monocular camera, 1 dual camera
725736
} OBDisparityParam, ob_disparity_param;
726737

727738
/**
@@ -826,7 +837,7 @@ typedef enum {
826837
/**
827838
* @brief Secondary synchronize mode
828839
* @brief Secondary device. Both process input trigger signal and output trigger signal to other devices.
829-
* @brief Different sensors in a single devices receive trigger signals respectivelyext trigger -> RGB && ext trigger -> IR/Depth/TOF
840+
* @brief Different sensors in a single devices receive trigger signals respectively: ext trigger -> RGB && ext trigger -> IR/Depth/TOF
830841
*
831842
* @attention With the current Gemini 2 device set to this mode, each Sensor receives the first external trigger signal
832843
* after the stream is turned on and starts timing self-triggering at the set frame rate until the stream is turned off
@@ -860,7 +871,7 @@ typedef enum {
860871
* @brief Software trigger synchronize mode as secondary device
861872
* @brief The slave receives the external trigger signal (the external trigger signal comes from the soft trigger host) and outputs the trigger signal to
862873
* the external relay.
863-
* @brief Different sensors in a single machine receive trigger signals respectivelyext trigger -> RGB && ext trigger -> IR/Depth/TOF
874+
* @brief Different sensors in a single machine receive trigger signals respectively: ext trigger -> RGB && ext trigger -> IR/Depth/TOF
864875
*/
865876
OB_SYNC_MODE_SECONDARY_SOFT_TRIGGER = 0x07,
866877

@@ -1295,14 +1306,14 @@ typedef struct {
12951306
/**
12961307
* @brief The delay time of the depth image capture after receiving the capture command or trigger signal in microseconds.
12971308
*
1298-
* @attention This parameter is only valid for some models please refer to the product manual for details.
1309+
* @attention This parameter is only valid for some models, please refer to the product manual for details.
12991310
*/
13001311
int depthDelayUs;
13011312

13021313
/**
13031314
* @brief The delay time of the color image capture after receiving the capture command or trigger signal in microseconds.
13041315
*
1305-
* @attention This parameter is only valid for some models please refer to the product manual for details.
1316+
* @attention This parameter is only valid for some models, please refer to the product manual for details.
13061317
*/
13071318
int colorDelayUs;
13081319

@@ -1548,14 +1559,14 @@ typedef enum {
15481559

15491560
/**
15501561
* @brief Power line frequency
1551-
* @brief For anti-flickering, 0:Close, 1: 50Hz, 2: 60Hz, 3: Auto
1562+
* @brief For anti-flickering, 0: Close, 1: 50Hz, 2: 60Hz, 3: Auto
15521563
*/
15531564
OB_FRAME_METADATA_TYPE_POWER_LINE_FREQUENCY = 15,
15541565

15551566
/**
15561567
* @brief Low light compensation
15571568
*
1558-
* @attention The low light compensation is a feature inside the deviceand can not manually control it.
1569+
* @attention The low light compensation is a feature inside the device, and can not manually control it.
15591570
*/
15601571
OB_FRAME_METADATA_TYPE_LOW_LIGHT_COMPENSATION = 16,
15611572

@@ -1678,9 +1689,26 @@ typedef enum {
16781689
*
16791690
*/
16801691
OB_UVC_BACKEND_TYPE_V4L2,
1692+
1693+
/**
1694+
* @brief Use MSMF backend to access the UVC device
1695+
*/
1696+
OB_UVC_BACKEND_TYPE_MSMF,
16811697
} ob_uvc_backend_type,
16821698
OBUvcBackendType;
16831699

1700+
1701+
/**
1702+
* @brief The playback status of the media
1703+
*/
1704+
typedef enum {
1705+
OB_PLAYBACK_UNKNOWN ,
1706+
OB_PLAYBACK_PLAYING, /**< The media is playing */
1707+
OB_PLAYBACK_PAUSED, /**< The media is paused */
1708+
OB_PLAYBACK_STOPPED, /**< The media is stopped */
1709+
OB_PLAYBACK_COUNT,
1710+
} ob_playback_status, OBPlaybackStatus;
1711+
16841712
// For compatibility
16851713
#define OB_FRAME_METADATA_TYPE_LASER_POWER_MODE OB_FRAME_METADATA_TYPE_LASER_POWER_LEVEL
16861714
#define OB_FRAME_METADATA_TYPE_EMITTER_MODE OB_FRAME_METADATA_TYPE_LASER_STATUS
@@ -1787,6 +1815,7 @@ typedef void(ob_frame_destroy_callback)(uint8_t *buffer, void *user_data);
17871815
*/
17881816
typedef void(ob_log_callback)(ob_log_severity severity, const char *message, void *user_data);
17891817

1818+
typedef void(*ob_playback_status_changed_callback)(ob_playback_status status, void *user_data);
17901819
/**
17911820
* @brief Check if the sensor_type is a video sensor
17921821
*

SDK/include/libobsensor/h/Property.h

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ typedef enum {
306306
OB_PROP_DEPTH_ROTATE_INT = 118,
307307

308308
/**
309-
* @brief Get hardware laser power actual level which real state of laser element. OB_PROP_LASER_POWER_LEVEL_CONTROL_INT99will effect this command
309+
* @brief Get hardware laser power actual level which real state of laser element. OB_PROP_LASER_POWER_LEVEL_CONTROL_INT99 will effect this command
310310
* which it setting and changed the hardware laser energy level.
311311
*/
312312
OB_PROP_LASER_POWER_ACTUAL_LEVEL_INT = 119,
@@ -501,6 +501,14 @@ typedef enum {
501501
* @brief hardware noise remove filter threshold ,range [0.0 - 1.0]
502502
*/
503503
OB_PROP_HW_NOISE_REMOVE_FILTER_THRESHOLD_FLOAT = 212,
504+
/**
505+
* @brief soft trigger auto capture enable, use in OB_MULTI_DEVICE_SYNC_MODE_SOFTWARE_TRIGGERING mode
506+
*/
507+
OB_DEVICE_AUTO_CAPTURE_ENABLE_BOOL = 216,
508+
/**
509+
* @brief soft trigger auto capture interval time, use in OB_MULTI_DEVICE_SYNC_MODE_SOFTWARE_TRIGGERING mode
510+
*/
511+
OB_DEVICE_AUTO_CAPTURE_INTERVAL_TIME_INT = 217,
504512
/**
505513
* @brief Baseline calibration parameters
506514
*/
@@ -553,7 +561,7 @@ typedef enum {
553561

554562
/**
555563
* @brief Device network static ip config record
556-
* @brief Using for get last static ip configwitch is record in device flash when user set static ip config
564+
* @brief Using for get last static ip config, witch is record in device flash when user set static ip config
557565
*
558566
* @attention read only
559567
*/
@@ -800,6 +808,11 @@ typedef enum {
800808
*/
801809
OB_PROP_NETWORK_BANDWIDTH_TYPE_INT = 3027,
802810

811+
/**
812+
* @brief Switch device performance mode, currently available in Adaptive Mode and High Performance Mode, such as G335LE.
813+
*/
814+
OB_PROP_DEVICE_PERFORMANCE_MODE_INT = 3028,
815+
803816
/**
804817
* @brief Calibration JSON file read from device (Femto Mega, read only)
805818
*/

0 commit comments

Comments
 (0)