mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-11 15:09:48 +08:00
add gmsl support
This commit is contained in:
@@ -2,9 +2,9 @@
|
|||||||
depth_registration: false
|
depth_registration: false
|
||||||
enable_point_cloud: false
|
enable_point_cloud: false
|
||||||
enable_colored_point_cloud: false
|
enable_colored_point_cloud: false
|
||||||
device_preset: "High Accuracy"
|
device_preset: "Default"
|
||||||
laser_on_off_mode: 0 # 0: off, 1: on-off, 1: off-on
|
laser_on_off_mode: 0 # 0: off, 1: on-off, 1: off-on
|
||||||
time_domain: "global" # global, device, system
|
time_domain: "device" # global, device, system
|
||||||
enable_sync_host_time: true
|
enable_sync_host_time: true
|
||||||
frames_per_trigger: 1
|
frames_per_trigger: 1
|
||||||
log_level: "warning"
|
log_level: "warning"
|
||||||
|
|||||||
@@ -637,6 +637,7 @@ class OBCameraNode {
|
|||||||
bool interleave_frame_enable_ = false;
|
bool interleave_frame_enable_ = false;
|
||||||
bool interleave_skip_enable_ = false;
|
bool interleave_skip_enable_ = false;
|
||||||
int interleave_skip_index_ = 1;
|
int interleave_skip_index_ = 1;
|
||||||
|
int interleave_skip_color_index_ = 1;
|
||||||
int interleave_skip_depth_index_ = 1;
|
int interleave_skip_depth_index_ = 1;
|
||||||
|
|
||||||
double delta_duration_ = 5000.0;
|
double delta_duration_ = 5000.0;
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ def generate_launch_description():
|
|||||||
DeclareLaunchArgument('color_width', default_value='0'),
|
DeclareLaunchArgument('color_width', default_value='0'),
|
||||||
DeclareLaunchArgument('color_height', default_value='0'),
|
DeclareLaunchArgument('color_height', default_value='0'),
|
||||||
DeclareLaunchArgument('color_fps', default_value='30'),
|
DeclareLaunchArgument('color_fps', default_value='30'),
|
||||||
DeclareLaunchArgument('color_format', default_value='MJPG'),
|
DeclareLaunchArgument('color_format', default_value='YUYV'),
|
||||||
DeclareLaunchArgument('enable_color', default_value='true'),
|
DeclareLaunchArgument('enable_color', default_value='true'),
|
||||||
DeclareLaunchArgument('color_qos', default_value='default'),
|
DeclareLaunchArgument('color_qos', default_value='default'),
|
||||||
DeclareLaunchArgument('color_camera_info_qos', default_value='default'),
|
DeclareLaunchArgument('color_camera_info_qos', default_value='default'),
|
||||||
@@ -191,6 +191,8 @@ def generate_launch_description():
|
|||||||
DeclareLaunchArgument('component_container_name', default_value='shared_orbbec_container'),
|
DeclareLaunchArgument('component_container_name', default_value='shared_orbbec_container'),
|
||||||
DeclareLaunchArgument('delta_duration', default_value='1000.0'),
|
DeclareLaunchArgument('delta_duration', default_value='1000.0'),
|
||||||
DeclareLaunchArgument('delta_fps', default_value='1'),
|
DeclareLaunchArgument('delta_fps', default_value='1'),
|
||||||
|
DeclareLaunchArgument('gmsl_trigger_fps', default_value='3000'),
|
||||||
|
DeclareLaunchArgument('enable_gmsl_trigger', default_value='false'),
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_params(context, args):
|
def get_params(context, args):
|
||||||
|
|||||||
@@ -45,13 +45,17 @@ def generate_launch_description():
|
|||||||
),
|
),
|
||||||
launch_arguments={
|
launch_arguments={
|
||||||
"camera_name": "front_camera",
|
"camera_name": "front_camera",
|
||||||
"usb_port": "2-1",
|
# "usb_port": "2-1",
|
||||||
|
"usb_port": "gmsl2-4",
|
||||||
"device_num": "4",
|
"device_num": "4",
|
||||||
"sync_mode": "primary",
|
# "sync_mode": "primary",
|
||||||
|
"sync_mode": "secondary_synced",
|
||||||
"config_file_path": config_file_path,
|
"config_file_path": config_file_path,
|
||||||
'use_intra_process_comms': LaunchConfiguration("use_intra_process_comms"),
|
'use_intra_process_comms': LaunchConfiguration("use_intra_process_comms"),
|
||||||
'attach_to_shared_component_container': attach_to_shared_component_container_arg,
|
'attach_to_shared_component_container': attach_to_shared_component_container_arg,
|
||||||
'component_container_name': component_container_name_arg,
|
'component_container_name': component_container_name_arg,
|
||||||
|
'gmsl_trigger_fps': "5990",
|
||||||
|
'enable_gmsl_trigger': "true",
|
||||||
}.items(),
|
}.items(),
|
||||||
)
|
)
|
||||||
left_camera = IncludeLaunchDescription(
|
left_camera = IncludeLaunchDescription(
|
||||||
@@ -60,7 +64,8 @@ def generate_launch_description():
|
|||||||
),
|
),
|
||||||
launch_arguments={
|
launch_arguments={
|
||||||
"camera_name": "left_camera",
|
"camera_name": "left_camera",
|
||||||
"usb_port": "2-3.1",
|
# "usb_port": "2-3.1",
|
||||||
|
"usb_port": "gmsl2-3",
|
||||||
"device_num": "4",
|
"device_num": "4",
|
||||||
"sync_mode": "secondary_synced",
|
"sync_mode": "secondary_synced",
|
||||||
"config_file_path": config_file_path,
|
"config_file_path": config_file_path,
|
||||||
@@ -75,7 +80,8 @@ def generate_launch_description():
|
|||||||
),
|
),
|
||||||
launch_arguments={
|
launch_arguments={
|
||||||
"camera_name": "right_camera",
|
"camera_name": "right_camera",
|
||||||
"usb_port": "2-3.3",
|
# "usb_port": "2-3.3",
|
||||||
|
"usb_port": "gmsl2-1",
|
||||||
"device_num": "4",
|
"device_num": "4",
|
||||||
"sync_mode": "secondary_synced",
|
"sync_mode": "secondary_synced",
|
||||||
"config_file_path": config_file_path,
|
"config_file_path": config_file_path,
|
||||||
@@ -90,7 +96,8 @@ def generate_launch_description():
|
|||||||
),
|
),
|
||||||
launch_arguments={
|
launch_arguments={
|
||||||
"camera_name": "rear_camera",
|
"camera_name": "rear_camera",
|
||||||
"usb_port": "2-2",
|
# "usb_port": "2-2",
|
||||||
|
"usb_port": "gmsl2-7",
|
||||||
"device_num": "4",
|
"device_num": "4",
|
||||||
"sync_mode": "secondary_synced",
|
"sync_mode": "secondary_synced",
|
||||||
"config_file_path": config_file_path,
|
"config_file_path": config_file_path,
|
||||||
|
|||||||
@@ -2039,9 +2039,8 @@ void OBCameraNode::updateStreamInfo(const std::shared_ptr<ob::Frame> &frame,
|
|||||||
double dst_duration = 0.0;
|
double dst_duration = 0.0;
|
||||||
int dst_fps = 0;
|
int dst_fps = 0;
|
||||||
stream_index_pair dst_frame_type;
|
stream_index_pair dst_frame_type;
|
||||||
double delta_duration = delta_duration_;
|
|
||||||
int delta_fps = delta_fps_;
|
if (current_timestamp < stream_info.last_frame_time) {
|
||||||
if (current_timestamp <= stream_info.last_frame_time) {
|
|
||||||
RCLCPP_INFO_STREAM(logger_, "[WARNING] current_timestamp "
|
RCLCPP_INFO_STREAM(logger_, "[WARNING] current_timestamp "
|
||||||
<< current_timestamp << " stream_info.last_frame_time "
|
<< current_timestamp << " stream_info.last_frame_time "
|
||||||
<< stream_info.last_frame_time << "\n");
|
<< stream_info.last_frame_time << "\n");
|
||||||
@@ -2123,10 +2122,20 @@ void OBCameraNode::onNewFrameCallback(const std::shared_ptr<ob::Frame> &frame,
|
|||||||
}
|
}
|
||||||
std::shared_ptr<ob::VideoFrame> video_frame;
|
std::shared_ptr<ob::VideoFrame> video_frame;
|
||||||
if (frame->getType() == OB_FRAME_COLOR) {
|
if (frame->getType() == OB_FRAME_COLOR) {
|
||||||
updateStreamInfo(frame, color_stream_info_);
|
// updateStreamInfo(frame, color_stream_info_);
|
||||||
|
if (interleave_skip_enable_) {
|
||||||
|
interleave_skip_color_index_++;
|
||||||
|
RCLCPP_DEBUG(logger_, "interleave filter skip interleave_skip_color_index_: %d",
|
||||||
|
interleave_skip_color_index_);
|
||||||
|
if (interleave_skip_color_index_ % 2 == 0) {
|
||||||
|
RCLCPP_DEBUG(logger_, "interleave filter skip frame type: %d", frame->getType());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
updateStreamInfo(frame, color_stream_info_);
|
||||||
|
}
|
||||||
video_frame = frame->as<ob::ColorFrame>();
|
video_frame = frame->as<ob::ColorFrame>();
|
||||||
} else if (frame->getType() == OB_FRAME_DEPTH) {
|
} else if (frame->getType() == OB_FRAME_DEPTH) {
|
||||||
// interleave filter depth
|
// updateStreamInfo(frame, depth_stream_info_);
|
||||||
if (interleave_skip_enable_) {
|
if (interleave_skip_enable_) {
|
||||||
interleave_skip_depth_index_++;
|
interleave_skip_depth_index_++;
|
||||||
RCLCPP_DEBUG(logger_, "interleave filter skip interleave_skip_index_: %d",
|
RCLCPP_DEBUG(logger_, "interleave filter skip interleave_skip_index_: %d",
|
||||||
|
|||||||
Reference in New Issue
Block a user