mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-09 14:27:02 +08:00
feat: add support for left and right color streams in camera control services
This commit is contained in:
@@ -263,12 +263,12 @@ void OBCameraNode::setupCameraCtrlServices() {
|
|||||||
});
|
});
|
||||||
set_point_cloud_decimation_srv_ = node_->create_service<SetInt32>(
|
set_point_cloud_decimation_srv_ = node_->create_service<SetInt32>(
|
||||||
"set_point_cloud_decimation", [this](const std::shared_ptr<SetInt32::Request> request,
|
"set_point_cloud_decimation", [this](const std::shared_ptr<SetInt32::Request> request,
|
||||||
std::shared_ptr<SetInt32::Response> response) {
|
std::shared_ptr<SetInt32::Response> response) {
|
||||||
setPointCloudDecimationCallback(request, response);
|
setPointCloudDecimationCallback(request, response);
|
||||||
});
|
});
|
||||||
get_point_cloud_decimation_srv_ = node_->create_service<GetInt32>(
|
get_point_cloud_decimation_srv_ = node_->create_service<GetInt32>(
|
||||||
"get_point_cloud_decimation", [this](const std::shared_ptr<GetInt32::Request> request,
|
"get_point_cloud_decimation", [this](const std::shared_ptr<GetInt32::Request> request,
|
||||||
std::shared_ptr<GetInt32::Response> response) {
|
std::shared_ptr<GetInt32::Response> response) {
|
||||||
getPointCloudDecimationCallback(request, response);
|
getPointCloudDecimationCallback(request, response);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -308,10 +308,10 @@ void OBCameraNode::setPointCloudDecimationCallback(
|
|||||||
try {
|
try {
|
||||||
point_cloud_decimation_filter_factor_ = request->data;
|
point_cloud_decimation_filter_factor_ = request->data;
|
||||||
RCLCPP_INFO_STREAM(logger_, "Set point_cloud_decimation_filter_factor to "
|
RCLCPP_INFO_STREAM(logger_, "Set point_cloud_decimation_filter_factor to "
|
||||||
<< point_cloud_decimation_filter_factor_);
|
<< point_cloud_decimation_filter_factor_);
|
||||||
response->success = true;
|
response->success = true;
|
||||||
response->message = "Point cloud decimation factor updated successfully";
|
response->message = "Point cloud decimation factor updated successfully";
|
||||||
} catch (const std::exception &e) {
|
} catch (const std::exception& e) {
|
||||||
response->success = false;
|
response->success = false;
|
||||||
response->message = std::string("Failed to set decimation factor: ") + e.what();
|
response->message = std::string("Failed to set decimation factor: ") + e.what();
|
||||||
RCLCPP_ERROR_STREAM(logger_, response->message);
|
RCLCPP_ERROR_STREAM(logger_, response->message);
|
||||||
@@ -371,6 +371,8 @@ void OBCameraNode::setExposureCallback(const std::shared_ptr<SetInt32::Request>&
|
|||||||
device_->setIntProperty(OB_PROP_DEPTH_EXPOSURE_INT, request->data);
|
device_->setIntProperty(OB_PROP_DEPTH_EXPOSURE_INT, request->data);
|
||||||
break;
|
break;
|
||||||
case OB_STREAM_COLOR:
|
case OB_STREAM_COLOR:
|
||||||
|
case OB_STREAM_COLOR_LEFT:
|
||||||
|
case OB_STREAM_COLOR_RIGHT:
|
||||||
device_->setIntProperty(OB_PROP_COLOR_EXPOSURE_INT, request->data);
|
device_->setIntProperty(OB_PROP_COLOR_EXPOSURE_INT, request->data);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -407,6 +409,8 @@ void OBCameraNode::getGainCallback(const std::shared_ptr<GetInt32::Request>& req
|
|||||||
response->data = device_->getIntProperty(OB_PROP_DEPTH_GAIN_INT);
|
response->data = device_->getIntProperty(OB_PROP_DEPTH_GAIN_INT);
|
||||||
break;
|
break;
|
||||||
case OB_STREAM_COLOR:
|
case OB_STREAM_COLOR:
|
||||||
|
case OB_STREAM_COLOR_LEFT:
|
||||||
|
case OB_STREAM_COLOR_RIGHT:
|
||||||
response->data = device_->getIntProperty(OB_PROP_COLOR_GAIN_INT);
|
response->data = device_->getIntProperty(OB_PROP_COLOR_GAIN_INT);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -442,6 +446,8 @@ void OBCameraNode::setGainCallback(const std::shared_ptr<SetInt32 ::Request>& re
|
|||||||
prop_id = OB_PROP_DEPTH_GAIN_INT;
|
prop_id = OB_PROP_DEPTH_GAIN_INT;
|
||||||
break;
|
break;
|
||||||
case OB_STREAM_COLOR:
|
case OB_STREAM_COLOR:
|
||||||
|
case OB_STREAM_COLOR_LEFT:
|
||||||
|
case OB_STREAM_COLOR_RIGHT:
|
||||||
prop_id = OB_PROP_COLOR_GAIN_INT;
|
prop_id = OB_PROP_COLOR_GAIN_INT;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -517,6 +523,8 @@ void OBCameraNode::setAeRoiCallback(const std::shared_ptr<SetArrays ::Request>&
|
|||||||
<< ", Top: " << config.y0_top << ", Bottom: " << config.y1_bottom << " ]");
|
<< ", Top: " << config.y0_top << ", Bottom: " << config.y1_bottom << " ]");
|
||||||
break;
|
break;
|
||||||
case OB_STREAM_COLOR:
|
case OB_STREAM_COLOR:
|
||||||
|
case OB_STREAM_COLOR_LEFT:
|
||||||
|
case OB_STREAM_COLOR_RIGHT:
|
||||||
config.x0_left = (static_cast<short int>(request->data_param[0]) < 0)
|
config.x0_left = (static_cast<short int>(request->data_param[0]) < 0)
|
||||||
? 0
|
? 0
|
||||||
: static_cast<short int>(request->data_param[0]);
|
: static_cast<short int>(request->data_param[0]);
|
||||||
@@ -667,6 +675,8 @@ void OBCameraNode::setAutoExposureCallback(
|
|||||||
prop_id = OB_PROP_DEPTH_AUTO_EXPOSURE_BOOL;
|
prop_id = OB_PROP_DEPTH_AUTO_EXPOSURE_BOOL;
|
||||||
break;
|
break;
|
||||||
case OB_STREAM_COLOR:
|
case OB_STREAM_COLOR:
|
||||||
|
case OB_STREAM_COLOR_LEFT:
|
||||||
|
case OB_STREAM_COLOR_RIGHT:
|
||||||
prop_id = OB_PROP_COLOR_AUTO_EXPOSURE_BOOL;
|
prop_id = OB_PROP_COLOR_AUTO_EXPOSURE_BOOL;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -813,6 +823,8 @@ void OBCameraNode::getExposureCallback(const std::shared_ptr<GetInt32::Request>&
|
|||||||
response->data = device_->getIntProperty(OB_PROP_DEPTH_EXPOSURE_INT);
|
response->data = device_->getIntProperty(OB_PROP_DEPTH_EXPOSURE_INT);
|
||||||
break;
|
break;
|
||||||
case OB_STREAM_COLOR:
|
case OB_STREAM_COLOR:
|
||||||
|
case OB_STREAM_COLOR_LEFT:
|
||||||
|
case OB_STREAM_COLOR_RIGHT:
|
||||||
response->data = device_->getIntProperty(OB_PROP_COLOR_EXPOSURE_INT);
|
response->data = device_->getIntProperty(OB_PROP_COLOR_EXPOSURE_INT);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -900,6 +912,12 @@ void OBCameraNode::setMirrorCallback(const std::shared_ptr<SetBool::Request>& re
|
|||||||
case OB_STREAM_COLOR:
|
case OB_STREAM_COLOR:
|
||||||
device_->setBoolProperty(OB_PROP_COLOR_MIRROR_BOOL, request->data);
|
device_->setBoolProperty(OB_PROP_COLOR_MIRROR_BOOL, request->data);
|
||||||
break;
|
break;
|
||||||
|
case OB_STREAM_COLOR_LEFT:
|
||||||
|
device_->setBoolProperty(OB_PROP_COLOR_LEFT_MIRROR_BOOL, request->data);
|
||||||
|
break;
|
||||||
|
case OB_STREAM_COLOR_RIGHT:
|
||||||
|
device_->setBoolProperty(OB_PROP_COLOR_RIGHT_MIRROR_BOOL, request->data);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
RCLCPP_ERROR(logger_, " %s NOT a video stream", __FUNCTION__);
|
RCLCPP_ERROR(logger_, " %s NOT a video stream", __FUNCTION__);
|
||||||
break;
|
break;
|
||||||
@@ -939,6 +957,12 @@ void OBCameraNode::setFlipCallback(const std::shared_ptr<SetBool::Request>& requ
|
|||||||
case OB_STREAM_COLOR:
|
case OB_STREAM_COLOR:
|
||||||
device_->setBoolProperty(OB_PROP_COLOR_FLIP_BOOL, request->data);
|
device_->setBoolProperty(OB_PROP_COLOR_FLIP_BOOL, request->data);
|
||||||
break;
|
break;
|
||||||
|
case OB_STREAM_COLOR_LEFT:
|
||||||
|
device_->setBoolProperty(OB_PROP_COLOR_LEFT_FLIP_BOOL, request->data);
|
||||||
|
break;
|
||||||
|
case OB_STREAM_COLOR_RIGHT:
|
||||||
|
device_->setBoolProperty(OB_PROP_COLOR_RIGHT_FLIP_BOOL, request->data);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
RCLCPP_ERROR(logger_, " %s NOT a video stream", __FUNCTION__);
|
RCLCPP_ERROR(logger_, " %s NOT a video stream", __FUNCTION__);
|
||||||
break;
|
break;
|
||||||
@@ -978,6 +1002,12 @@ void OBCameraNode::setRotationCallback(const std::shared_ptr<SetInt32::Request>&
|
|||||||
case OB_STREAM_COLOR:
|
case OB_STREAM_COLOR:
|
||||||
device_->setIntProperty(OB_PROP_COLOR_ROTATE_INT, request->data);
|
device_->setIntProperty(OB_PROP_COLOR_ROTATE_INT, request->data);
|
||||||
break;
|
break;
|
||||||
|
case OB_STREAM_COLOR_LEFT:
|
||||||
|
device_->setIntProperty(OB_PROP_COLOR_LEFT_ROTATE_INT, request->data);
|
||||||
|
break;
|
||||||
|
case OB_STREAM_COLOR_RIGHT:
|
||||||
|
device_->setIntProperty(OB_PROP_COLOR_RIGHT_ROTATE_INT, request->data);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
RCLCPP_ERROR(logger_, " %s NOT a video stream", __FUNCTION__);
|
RCLCPP_ERROR(logger_, " %s NOT a video stream", __FUNCTION__);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user