From 021b14b387df0792a66f2ee65771863da42b0ee4 Mon Sep 17 00:00:00 2001 From: lgv Date: Fri, 27 Feb 2026 14:49:54 +0800 Subject: [PATCH] feat: add ibvs real robot test --- README.md | 2 +- cmvr-es/CMakeLists.txt | 3 +- cmvr-es/controller/CMakeLists.txt | 2 +- cmvr-es/controller/include/ibvs_controller.h | 24 +- cmvr-es/controller/src/controller_test.cpp | 4 +- cmvr-es/controller/src/ibvs_controller.cpp | 50 +- cmvr-es/data_center/CMakeLists.txt | 3 + cmvr-es/device_manager/CMakeLists.txt | 1 + .../camera/realsense_camera/CMakeLists.txt | 9 +- .../realsense_camera/src/realsense_camera.cpp | 183 +++-- .../src/realsense_camera_test.cpp | 175 ++++ cmvr-es/devices/robot/abstract_robot.h | 51 ++ .../robot/humanoid_robot/CMakeLists.txt | 1 + .../src/humanoid_robot_test.cpp | 756 ++++-------------- cmvr-es/ik_solver/CMakeLists.txt | 3 +- cmvr-es/perception/CMakeLists.txt | 30 + .../include/tag_relative_target_3d.h | 215 +++++ .../perception/src/tag_relative_target_3d.cpp | 356 +++++++++ .../src/tag_relative_target_3d_test.cpp | 524 ++++++++++++ .../opencv/4.13.0/bin/opencv_annotation | Bin 34368 -> 34368 bytes .../4.13.0/bin/opencv_interactive-calibration | Bin 178384 -> 178384 bytes .../4.13.0/bin/opencv_model_diagnostics | Bin 42792 -> 42792 bytes .../opencv/4.13.0/bin/opencv_version | Bin 42736 -> 42736 bytes .../opencv/4.13.0/bin/opencv_visualisation | Bin 55256 -> 55256 bytes .../4.13.0/include/opencv4/opencv2/cvconfig.h | 2 +- .../cmake/opencv4/OpenCVModules-release.cmake | 1 + .../4.13.0/lib/libopencv_calib3d.so.4.13.0 | Bin 2973416 -> 2973416 bytes .../4.13.0/lib/libopencv_core.so.4.13.0 | Bin 16562960 -> 16490072 bytes .../opencv/4.13.0/lib/libopencv_dnn.so.4.13.0 | Bin 9384472 -> 9388568 bytes .../4.13.0/lib/libopencv_features2d.so.4.13.0 | Bin 1083824 -> 1083824 bytes .../4.13.0/lib/libopencv_flann.so.4.13.0 | Bin 727488 -> 727488 bytes .../4.13.0/lib/libopencv_gapi.so.4.13.0 | Bin 6263240 -> 6263240 bytes .../4.13.0/lib/libopencv_highgui.so.4.13.0 | Bin 265128 -> 346144 bytes .../4.13.0/lib/libopencv_imgcodecs.so.4.13.0 | Bin 4650560 -> 1578944 bytes .../4.13.0/lib/libopencv_imgproc.so.4.13.0 | Bin 31129464 -> 31129464 bytes .../opencv/4.13.0/lib/libopencv_ml.so.4.13.0 | Bin 691352 -> 691352 bytes .../4.13.0/lib/libopencv_objdetect.so.4.13.0 | Bin 1475216 -> 1475216 bytes .../4.13.0/lib/libopencv_photo.so.4.13.0 | Bin 770088 -> 770088 bytes .../4.13.0/lib/libopencv_stitching.so.4.13.0 | Bin 761136 -> 765232 bytes .../4.13.0/lib/libopencv_video.so.4.13.0 | Bin 716952 -> 716952 bytes .../4.13.0/lib/libopencv_videoio.so.4.13.0 | Bin 700032 -> 700032 bytes .../opencv/4.13.0/lib/pkgconfig/opencv4.pc | 13 + 42 files changed, 1748 insertions(+), 660 deletions(-) create mode 100644 cmvr-es/perception/CMakeLists.txt create mode 100644 cmvr-es/perception/include/tag_relative_target_3d.h create mode 100644 cmvr-es/perception/src/tag_relative_target_3d.cpp create mode 100644 cmvr-es/perception/src/tag_relative_target_3d_test.cpp create mode 100644 dependency/x86/third_party/opencv/4.13.0/lib/pkgconfig/opencv4.pc diff --git a/README.md b/README.md index e9f13ade..2b54e6e8 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ sudo apt install -y \ libjpeg-dev libpng-dev libtiff-dev \ libavcodec-dev libavformat-dev libswscale-dev \ libv4l-dev libxvidcore-dev libx264-dev \ - libgtk-3-dev + libgtk-3-dev # PulseAudio diff --git a/cmvr-es/CMakeLists.txt b/cmvr-es/CMakeLists.txt index 5e60afdd..13bc765b 100644 --- a/cmvr-es/CMakeLists.txt +++ b/cmvr-es/CMakeLists.txt @@ -7,8 +7,9 @@ add_subdirectory(monitor_manager) add_subdirectory(service) add_subdirectory(controller) add_subdirectory(planner) +add_subdirectory(perception) add_subdirectory(ik_solver) add_subdirectory(data_center) add_subdirectory(simulate) -add_subdirectory(common) \ No newline at end of file +add_subdirectory(common) diff --git a/cmvr-es/controller/CMakeLists.txt b/cmvr-es/controller/CMakeLists.txt index d11e0bc7..f8d327cb 100644 --- a/cmvr-es/controller/CMakeLists.txt +++ b/cmvr-es/controller/CMakeLists.txt @@ -39,7 +39,7 @@ target_link_libraries(controller PUBLIC add_library(cmvr_es::controller ALIAS controller) - +install(TARGETS controller LIBRARY DESTINATION lib) # -------------------------------------------------------- diff --git a/cmvr-es/controller/include/ibvs_controller.h b/cmvr-es/controller/include/ibvs_controller.h index 7997cf06..904cdfb2 100644 --- a/cmvr-es/controller/include/ibvs_controller.h +++ b/cmvr-es/controller/include/ibvs_controller.h @@ -47,6 +47,7 @@ public: INVALID_INPUT, /**< 输入参数异常。 */ NO_DEPTH, /**< 需要深度但深度不可用。 */ NO_TAG, /**< 未检测到 AprilTag。 */ + TAG_MISMATCH, /**< 检测到 AprilTag,但与指定 id 不匹配。 */ IK_FAILED /**< 速度 IK 求解失败。 */ }; @@ -116,7 +117,12 @@ public: */ void setTagSize(double tag_size_m); /** - * @brief 设置期望目标位姿(`cMo_des`)。 + * @brief 设置要跟踪的 tag id(必填)。 + * @param tag_id 指定 tag id,必须 >= 0。 + */ + void setTrackedTagId(int tag_id); + /** + * @brief 设置期望目标位姿(`cMo_des tag 坐标系相对于VISP相机的期望位姿`)。 * @param x 期望平移 x(米)。 * @param y 期望平移 y(米)。 * @param z 期望平移 z(米)。 @@ -167,7 +173,7 @@ public: void setAlignCameraToUrdf(const Eigen::Matrix3d& R_camera_urdf); /** - * @brief 最近一帧是否检测到 tag。 + * @brief 最近一帧是否检测到“指定 id 的 tag”。 * @return 检测到返回 `true`。 */ bool isTagDetected() const { return last_tag_detected_; } @@ -198,6 +204,16 @@ public: * @return tag 平移向量。 */ const Eigen::Vector3d& lastTagPositionVisp() const { return last_tag_pos_visp_; } + /** + * @brief 获取当前指定的 tag id。 + * @return 指定的 tag id;若未设置返回 `-1`。 + */ + int trackedTagId() const { return tracked_tag_id_; } + /** + * @brief 获取最近一次用于控制的 tag id。 + * @return 最近使用的 tag id;若本帧未成功使用返回 `-1`。 + */ + int lastUsedTagId() const { return last_used_tag_id_; } /** * @brief 获取最近输出的相机 twist(ViSP 相机坐标系)。 * @return 六维 twist 向量。 @@ -279,9 +295,13 @@ private: vpFeaturePoint s_star_[4]; // AprilTag 检测器。 vpDetectorAprilTag detector_; + // 指定跟踪的 tag id(必填);<0 表示未设置。 + int tracked_tag_id_{-1}; // 速度 IK 求解器。 std::unique_ptr dls_solver_{nullptr}; + // 最近一次用于控制的 tag id。 + int last_used_tag_id_{-1}; // 内部积分得到的关节位置命令缓存。 std::vector q_cmd_; diff --git a/cmvr-es/controller/src/controller_test.cpp b/cmvr-es/controller/src/controller_test.cpp index 8d2cc4eb..aeb9686f 100644 --- a/cmvr-es/controller/src/controller_test.cpp +++ b/cmvr-es/controller/src/controller_test.cpp @@ -539,7 +539,8 @@ protected: ibvs_controller_->setDepthMode(IbvsController::DepthMode::MONOCULAR); ibvs_controller_->setDepthZGain(1.0); ibvs_controller_->setVelocityLimit6(vmax6_); - ibvs_controller_->setTarget(0.0,0.0,0.15); + ibvs_controller_->setTrackedTagId(tracked_tag_id_); + ibvs_controller_->setTarget(0.0,0.0,0.35); const Eigen::Matrix3d R_align = (Eigen::Matrix3d() << 1, 0, 0, @@ -695,6 +696,7 @@ private: std::string urdf_path_for_check_{ "/home/lgv/cmvr/0-workspace/cmvr-es/model/xiaoyan_description/dual_arm.urdf"}; std::string camera_frame_name_for_check_{"R_CAM"}; + int tracked_tag_id_{0}; std::unique_ptr ibvs_controller_{nullptr}; std::shared_ptr mujoco_camera_{nullptr}; diff --git a/cmvr-es/controller/src/ibvs_controller.cpp b/cmvr-es/controller/src/ibvs_controller.cpp index ed8f1fca..c378f198 100644 --- a/cmvr-es/controller/src/ibvs_controller.cpp +++ b/cmvr-es/controller/src/ibvs_controller.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -29,6 +30,7 @@ const char* IbvsController::statusToString(ComputeStatus status) { case ComputeStatus::INVALID_INPUT: return "invalid_input"; case ComputeStatus::NO_DEPTH: return "no_depth"; case ComputeStatus::NO_TAG: return "no_tag"; + case ComputeStatus::TAG_MISMATCH: return "tag_mismatch"; case ComputeStatus::IK_FAILED: return "ik_failed"; default: return "unknown"; } @@ -91,6 +93,7 @@ void IbvsController::reset(const std::vector& q_init) { q_cmd_ = q_init; } last_tag_detected_ = false; + last_used_tag_id_ = -1; last_compute_status_ = initialized_ ? ComputeStatus::OK : ComputeStatus::NOT_READY; last_depth_usage_ = DepthUsage::NONE; last_tag_pos_visp_.setZero(); @@ -161,16 +164,53 @@ bool IbvsController::computeInternal(const std::vector& joints_angle, std::memcpy(I[y], gray.ptr(y), static_cast(width)); } + if (tracked_tag_id_ < 0) { + last_tag_detected_ = false; + last_used_tag_id_ = -1; + last_tag_pos_visp_.setZero(); + last_compute_status_ = ComputeStatus::INVALID_INPUT; + return false; + } + std::vector cMo_vec; const bool detected = detector_.detect(I, tag_size_m_, cam, cMo_vec); - last_tag_detected_ = (detected && !cMo_vec.empty()); - if (!last_tag_detected_) { + if (!detected || cMo_vec.empty()) { + last_tag_detected_ = false; + last_used_tag_id_ = -1; last_tag_pos_visp_.setZero(); last_compute_status_ = ComputeStatus::NO_TAG; return false; } - vpHomogeneousMatrix cMo = cMo_vec[0]; + // 只允许使用指定 id 的 tag,不再回退到“第一个检测结果”。 + const std::vector tag_ids = detector_.getTagsId(); + const size_t pair_size = std::min(tag_ids.size(), cMo_vec.size()); + int selected_idx = -1; + for (size_t i = 0; i < pair_size; ++i) { + if (tag_ids[i] == tracked_tag_id_) { + selected_idx = static_cast(i); + break; + } + } + if (selected_idx < 0) { + std::cout << "[IbvsController] TAG_MISMATCH target_tag_id=" << tracked_tag_id_ + << ", detected_tag_ids=["; + for (size_t i = 0; i < tag_ids.size(); ++i) { + if (i > 0) std::cout << ","; + std::cout << tag_ids[i]; + } + std::cout << "]\n"; + + last_tag_detected_ = false; + last_used_tag_id_ = -1; + last_tag_pos_visp_.setZero(); + last_compute_status_ = ComputeStatus::TAG_MISMATCH; + return false; + } + + last_tag_detected_ = true; + last_used_tag_id_ = tracked_tag_id_; + vpHomogeneousMatrix cMo = cMo_vec[static_cast(selected_idx)]; last_tag_pos_visp_ << cMo[0][3], cMo[1][3], cMo[2][3]; // 深度控制点定义在 tag 平面(object frame): @@ -309,6 +349,10 @@ void IbvsController::setTagSize(double tag_size_m) { initTask(); } +void IbvsController::setTrackedTagId(int tag_id) { + tracked_tag_id_ = tag_id; +} + void IbvsController::setTarget(double x, double y, double z, diff --git a/cmvr-es/data_center/CMakeLists.txt b/cmvr-es/data_center/CMakeLists.txt index 5f3112d7..d0fda580 100644 --- a/cmvr-es/data_center/CMakeLists.txt +++ b/cmvr-es/data_center/CMakeLists.txt @@ -14,3 +14,6 @@ target_link_libraries(data_center PRIVATE protobuf glog ) + + +install(TARGETS data_center LIBRARY DESTINATION lib) \ No newline at end of file diff --git a/cmvr-es/device_manager/CMakeLists.txt b/cmvr-es/device_manager/CMakeLists.txt index e53622b7..2944ba2f 100644 --- a/cmvr-es/device_manager/CMakeLists.txt +++ b/cmvr-es/device_manager/CMakeLists.txt @@ -20,3 +20,4 @@ target_link_libraries(device_manager PRIVATE ) add_library(cmvr_es::device_manager ALIAS device_manager) +install(TARGETS device_manager LIBRARY DESTINATION lib) diff --git a/cmvr-es/devices/camera/realsense_camera/CMakeLists.txt b/cmvr-es/devices/camera/realsense_camera/CMakeLists.txt index f5fd8ba9..9ea7b21e 100644 --- a/cmvr-es/devices/camera/realsense_camera/CMakeLists.txt +++ b/cmvr-es/devices/camera/realsense_camera/CMakeLists.txt @@ -5,7 +5,14 @@ target_include_directories(realsense_camera PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) add_library(cmvr_es::device::realsense_camera ALIAS realsense_camera) # ✅ 命名空间别名 OK # 链接 librealsense2 -target_link_libraries(realsense_camera PRIVATE realsense2) +target_link_libraries(realsense_camera PRIVATE + realsense2 + avcodec + avformat + avutil + swscale + swresample +) install(TARGETS realsense_camera LIBRARY DESTINATION lib) # -------------------------------------------------------- diff --git a/cmvr-es/devices/camera/realsense_camera/src/realsense_camera.cpp b/cmvr-es/devices/camera/realsense_camera/src/realsense_camera.cpp index fbd7574a..43aa315d 100644 --- a/cmvr-es/devices/camera/realsense_camera/src/realsense_camera.cpp +++ b/cmvr-es/devices/camera/realsense_camera/src/realsense_camera.cpp @@ -151,23 +151,41 @@ RealsenseCamera::RealsenseCamera(const config::RealSenseCameraConfig& camera):ca auto stream_mode = camera_.stream_mode(); if (stream_mode == config::STREAM_MODE_RGB) { - stream_mode_ = RGBD_MODE; + stream_mode_ = COLOR_MODE; } else if (stream_mode == config::STREAM_MODE_RGBD) { - stream_mode_ = COLOR_MODE; + stream_mode_ = RGBD_MODE; } else if (stream_mode == config::STREAM_MODE_DEPTH) { stream_mode_ = DEPTH_MODE; } + else { + stream_mode_ = RGBD_MODE; + } + + const auto align_mode = camera_.align_mode(); + if (align_mode == config::ALIGN_MODE_COLOR) { + align_mode_ = "color"; + } else if (align_mode == config::ALIGN_MODE_DEPTH) { + align_mode_ = "depth"; + } else { + align_mode_ = "color"; + } codec_ = camera_.codec(); } RealsenseCamera::~RealsenseCamera() { - // 停止采集线程,释放资源 - stop(); + // 析构阶段禁止抛异常,避免 terminate。 + try { + stop(); + } catch (const std::exception& e) { + LOG(WARNING) << "[RealsenseCamera] (~RealsenseCamera): " << e.what(); + } catch (...) { + LOG(WARNING) << "[RealsenseCamera] (~RealsenseCamera): unknown exception"; + } } void RealsenseCamera::init() { @@ -222,78 +240,110 @@ void RealsenseCamera::start() { throw runtime_error("Camera not initialized"); } - try{ - if (state_.is_opened) { - LOG(WARNING) << "[RealsenseCamera] (start): camera already started"; + if (state_.is_opened) { + LOG(WARNING) << "[RealsenseCamera] (start): camera already started"; + return; + } + + constexpr int kStartMaxRetry = 3; + constexpr int kRetrySleepMs = 300; + constexpr unsigned int kProbeTimeoutMs = 2000; + std::string last_error; + state_.is_opened = false; + for (int attempt = 1; attempt <= kStartMaxRetry; ++attempt) { + try { + // 每次尝试前重建 pipeline,避免复用异常状态。 + pipe_ = rs2::pipeline(); + + // 使用相同的同步策略启动 + profile_ = pipe_.start(rs_cfg_); + + if (stream_mode_ == RGBD_MODE){ + auto sp_depth = profile_.get_stream(RS2_STREAM_DEPTH).as(); + auto sp_color = profile_.get_stream(RS2_STREAM_COLOR).as(); + Kd_ = sp_depth.get_intrinsics(); + Kc_ = sp_color.get_intrinsics(); + Ec2d_ = sp_color.get_extrinsics_to(sp_depth); + Ed2c_ = sp_depth.get_extrinsics_to(sp_color); + + intrinsics_ = Kc_; + } + else if (stream_mode_ == COLOR_MODE) { + auto sp_color = profile_.get_stream(RS2_STREAM_COLOR).as(); + Kc_ = sp_color.get_intrinsics(); + + intrinsics_ = Kc_; + } + else if (stream_mode_ == DEPTH_MODE) { + auto sp_depth = profile_.get_stream(RS2_STREAM_DEPTH).as(); + Kd_ = sp_depth.get_intrinsics(); + + intrinsics_ = Kd_; + } + + if (align_mode_ == "color") { + align_ = std::make_shared(RS2_STREAM_COLOR); + } + else if (align_mode_ == "depth") { + align_ = std::make_shared(RS2_STREAM_DEPTH); + } + + // 启动后做一次首帧探测,避免“start 成功但长期无帧”假阳性。 + rs2::frameset probe = pipe_.wait_for_frames(kProbeTimeoutMs); + if (!probe.get_color_frame()) { + throw runtime_error("no color frame after start"); + } + if (stream_mode_ == RGBD_MODE && !probe.get_depth_frame()) { + throw runtime_error("no depth frame after start"); + } + + state_.is_opened = true; + LOG(INFO) << "realsense start streaming successfully"; return; } - // 使用相同的同步策略启动 - profile_ = pipe_.start(rs_cfg_); - - - if (stream_mode_ == RGBD_MODE){ - auto sp_depth = profile_.get_stream(RS2_STREAM_DEPTH).as(); - auto sp_color = profile_.get_stream(RS2_STREAM_COLOR).as(); - Kd_ = sp_depth.get_intrinsics(); - Kc_ = sp_color.get_intrinsics(); - Ec2d_ = sp_color.get_extrinsics_to(sp_depth); - Ed2c_ = sp_depth.get_extrinsics_to(sp_color); - - intrinsics_ = Kc_; + catch (const exception &error) { + last_error = error.what(); + state_.is_opened = false; + LOG(WARNING) << "[RealsenseCamera] (start): attempt " + << attempt << "/" << kStartMaxRetry + << " failed: " << last_error; + try { + pipe_.stop(); + } catch (...) { + // ignore stop exceptions during retry cleanup + } + align_.reset(); + std::this_thread::sleep_for(std::chrono::milliseconds(kRetrySleepMs)); } - else if (stream_mode_ == COLOR_MODE) { - auto sp_color = profile_.get_stream(RS2_STREAM_COLOR).as(); - Kc_ = sp_color.get_intrinsics(); - - intrinsics_ = Kc_; - } - else if (stream_mode_ == DEPTH_MODE) { - auto sp_depth = profile_.get_stream(RS2_STREAM_DEPTH).as(); - Kd_ = sp_depth.get_intrinsics(); - - intrinsics_ = Kd_; - } - - if (align_mode_ == "color") { - align_ = std::make_shared(RS2_STREAM_COLOR); - } - else if (align_mode_ == "depth") { - align_ = std::make_shared(RS2_STREAM_DEPTH); - } - - // auto frames = get_frameset(true); - // rs2::frame color_frame = frames.get_color_frame(); - // auto profile = color_frame.get_profile(); - // auto color_profile = frames.get_color_frame().get_profile(); - // intrinsics_ = color_profile.as().get_intrinsics(); - - state_.is_opened = true; - LOG(INFO) << "realsense start streaming successfully"; - } - catch (const exception &error) { - state_.is_opened = false; - LOG(ERROR) << "realsense start streaming error: " << error.what(); } + + LOG(ERROR) << "realsense start streaming error: " << last_error; + throw runtime_error("realsense start streaming error: " + last_error); } void RealsenseCamera::stop() { //先停止录制再关闭摄像头 if (state_.is_recording) { - stopRecording(); + try { + stopRecording(); + } catch (const std::exception& e) { + LOG(WARNING) << "[RealsenseCamera] (stop): stopRecording failed: " << e.what(); + } } std::lock_guard lock(ctrl_mtx_); clear_error_(); - try { - if (!state_.is_opened || !state_.is_initialized) { - throw runtime_error("Camera already closed"); - } - pipe_.stop(); + if (!state_.is_opened || !state_.is_initialized) { state_.is_opened = false; + return; } - catch (exception &e) { - LOG(ERROR) << "[RealsenseCamera] (stop): " << e.what(); - throw runtime_error(e.what()); + try { + pipe_.stop(); + } catch (const std::exception& e) { + LOG(WARNING) << "[RealsenseCamera] (stop): " << e.what(); } + align_.reset(); + pipe_ = rs2::pipeline(); + state_.is_opened = false; } void RealsenseCamera::getRGBImage(cv::Mat& color, Rs2Intrinsics& intrinsics) { @@ -337,7 +387,7 @@ void RealsenseCamera::getRGBImage(cv::Mat& color, Rs2Intrinsics& intrinsics) { latest_depth_ = depth; } } - LOG(INFO) << "realsense get rgb frame successfully"; + // LOG(INFO) << "realsense get rgb frame successfully"; } catch (const std::exception& e) { throw std::runtime_error("[RealsenseCamera] (getRGBImage): Failed to get image: " + std::string(e.what())); @@ -619,7 +669,8 @@ void RealsenseCamera::resumeRecording() { rs2::frameset RealsenseCamera::get_frameset(bool align) { std::lock_guard lock(frame_mtx_); - rs2::frameset frames = pipe_.wait_for_frames(); + constexpr unsigned int kWaitTimeoutMs = 300; + rs2::frameset frames = pipe_.wait_for_frames(kWaitTimeoutMs); // 如果需要对齐,添加对齐逻辑 if (align_ && align && stream_mode_ == RGBD_MODE) { frames = align_->process(frames); @@ -842,9 +893,8 @@ bool RealsenseCamera::initSingleEncoder(std::shared_ptr& enco av_opt_set(ctx->priv_data, "repeat-headers", "1", 0); av_opt_set(ctx->priv_data, "annexb", "1", 0); } else if (codec->id == AV_CODEC_ID_HEVC) { - // 直接使用默认参数,不自定义 - // av_opt_set(ctx->priv_data, "preset", "ultrafast", 0); - // av_opt_set(ctx->priv_data, "tune", "zerolatency", 0); + // 降低 x265 控制台日志噪声(如 "encoded 0 frames")。 + av_opt_set(ctx->priv_data, "x265-params", "log-level=none", 0); } // 6. 设置像素格式(不变) @@ -1124,4 +1174,3 @@ Eigen::Vector3f RealsenseCamera::get3DPointFromPixel(int u, int v) { return { point[0], point[1], point[2] }; } - diff --git a/cmvr-es/devices/camera/realsense_camera/src/realsense_camera_test.cpp b/cmvr-es/devices/camera/realsense_camera/src/realsense_camera_test.cpp index ed7e645d..803ee75a 100644 --- a/cmvr-es/devices/camera/realsense_camera/src/realsense_camera_test.cpp +++ b/cmvr-es/devices/camera/realsense_camera/src/realsense_camera_test.cpp @@ -3,8 +3,12 @@ // #include #include "../../abstract_camera.h" +#include "../include/realsense_camera.h" #include #include "../../../../device_manager/include/device_manager.h" +#include +#include +#include using namespace cmvr::device; // 测试: 实时显示 RGB + Depth TEST(RealsenseCameraRealDeviceTest, SaveFrames) { @@ -35,3 +39,174 @@ TEST(RealsenseCameraRealDeviceTest, SaveFrames) { LOG(INFO) << "Pose : " << pose ; cam->stop(); } + +namespace { + +constexpr const char* kRsSerialForHealthCheck = "243122074587"; +constexpr int kRsWidth = 640; +constexpr int kRsHeight = 480; +constexpr int kRsFps = 30; +constexpr int kWarmupMaxTries = 80; +constexpr int kWarmupSleepMs = 30; + +cmvr::config::RealSenseCameraConfig makeRsConfig() { + cmvr::config::RealSenseCameraConfig cfg; + cfg.set_id("realsense_health_check"); + cfg.set_serialnumber(kRsSerialForHealthCheck); + cfg.set_width(kRsWidth); + cfg.set_height(kRsHeight); + cfg.set_fps(kRsFps); + cfg.set_codec("H265"); + cfg.set_camera_mode(cmvr::config::CAMERA_MODE_PHOTO); + cfg.set_stream_mode(cmvr::config::STREAM_MODE_RGBD); + cfg.set_align_mode(cmvr::config::ALIGN_MODE_COLOR); + cfg.set_buffer_size(30); + cfg.set_sync(true); + cfg.set_enable(true); + return cfg; +} + +bool tryGetFirstFrame(const std::shared_ptr& camera, + cv::Mat& color, + cv::Mat& depth, + Rs2Intrinsics& intrinsics, + int& exception_count, + std::string* last_error = nullptr) { + exception_count = 0; + if (last_error) { + last_error->clear(); + } + for (int i = 0; i < kWarmupMaxTries; ++i) { + try { + camera->getRGBDImages(color, depth, intrinsics); + if (!color.empty() && !depth.empty()) { + return true; + } + } catch (const std::exception& e) { + ++exception_count; + if (last_error) { + *last_error = e.what(); + } + } + std::this_thread::sleep_for(std::chrono::milliseconds(kWarmupSleepMs)); + } + return false; +} + +struct RealsenseStopGuard { + std::shared_ptr camera; + ~RealsenseStopGuard() { + if (!camera) return; + try { + camera->stop(); + } catch (...) { + } + } +}; + +} // namespace + +TEST(RealsenseCameraHealthCheck, StartAndGetFirstFrame) { + if (std::string(kRsSerialForHealthCheck).empty()) { + GTEST_SKIP() << "kRsSerialForHealthCheck is empty"; + } + + auto camera = std::make_shared(makeRsConfig()); + ASSERT_NO_THROW(camera->init()); + ASSERT_NO_THROW(camera->start()); + RealsenseStopGuard stop_guard{camera}; + + CameraState state{}; + camera->getState(state); + EXPECT_TRUE(state.is_initialized); + EXPECT_TRUE(state.is_opened); + + cv::Mat color, depth; + Rs2Intrinsics intrinsics{}; + int exception_count = 0; + std::string last_error; + const auto t0 = std::chrono::steady_clock::now(); + const bool ok = tryGetFirstFrame(camera, color, depth, intrinsics, exception_count, &last_error); + const auto t1 = std::chrono::steady_clock::now(); + const auto first_frame_ms = std::chrono::duration_cast(t1 - t0).count(); + + std::cout << "[RealsenseCameraHealthCheck] first_frame_ok=" << ok + << " first_frame_ms=" << first_frame_ms + << " exceptions=" << exception_count + << " last_error=" << last_error << "\n"; + + ASSERT_TRUE(ok) << "Failed to get first RGBD frame after start"; + EXPECT_EQ(color.type(), CV_8UC3); + EXPECT_TRUE(depth.type() == CV_16UC1 || depth.type() == CV_32FC1); +} + +TEST(RealsenseCameraHealthCheck, RGBDReadLoopStability) { + if (std::string(kRsSerialForHealthCheck).empty()) { + GTEST_SKIP() << "kRsSerialForHealthCheck is empty"; + } + + auto camera = std::make_shared(makeRsConfig()); + ASSERT_NO_THROW(camera->init()); + ASSERT_NO_THROW(camera->start()); + RealsenseStopGuard stop_guard{camera}; + + cv::Mat color, depth; + Rs2Intrinsics intrinsics{}; + int warmup_exceptions = 0; + ASSERT_TRUE(tryGetFirstFrame(camera, color, depth, intrinsics, warmup_exceptions)) + << "Warmup failed before stability loop"; + + constexpr int kReadLoopFrames = 150; + int success = 0; + int fail = 0; + int exceptions = 0; + for (int i = 0; i < kReadLoopFrames; ++i) { + try { + camera->getRGBDImages(color, depth, intrinsics); + if (!color.empty() && !depth.empty()) { + ++success; + } else { + ++fail; + } + } catch (const std::exception&) { + ++fail; + ++exceptions; + } + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + } + + std::cout << "[RealsenseCameraHealthCheck] read_loop success=" << success + << " fail=" << fail + << " exceptions=" << exceptions << "\n"; + + EXPECT_GT(success, 0); + EXPECT_GE(success, fail); +} + +TEST(RealsenseCameraHealthCheck, RestartWithoutReplug) { + if (std::string(kRsSerialForHealthCheck).empty()) { + GTEST_SKIP() << "kRsSerialForHealthCheck is empty"; + } + + auto camera = std::make_shared(makeRsConfig()); + ASSERT_NO_THROW(camera->init()); + RealsenseStopGuard stop_guard{camera}; + + for (int cycle = 0; cycle < 2; ++cycle) { + ASSERT_NO_THROW(camera->start()) << "start failed at cycle " << cycle; + + cv::Mat color, depth; + Rs2Intrinsics intrinsics{}; + int exception_count = 0; + std::string last_error; + const bool ok = tryGetFirstFrame(camera, color, depth, intrinsics, exception_count, &last_error); + std::cout << "[RealsenseCameraHealthCheck] cycle=" << cycle + << " first_frame_ok=" << ok + << " exceptions=" << exception_count + << " last_error=" << last_error << "\n"; + EXPECT_TRUE(ok) << "Failed to get frame at cycle " << cycle; + + EXPECT_NO_THROW(camera->stop()) << "stop failed at cycle " << cycle; + std::this_thread::sleep_for(std::chrono::milliseconds(200)); + } +} diff --git a/cmvr-es/devices/robot/abstract_robot.h b/cmvr-es/devices/robot/abstract_robot.h index 392e8f38..dc39eb2f 100644 --- a/cmvr-es/devices/robot/abstract_robot.h +++ b/cmvr-es/devices/robot/abstract_robot.h @@ -68,9 +68,32 @@ namespace cmvr::device{ virtual void eStop() { throw std::runtime_error("Not implemented"); } + /** + * @brief 关节空间 point-to-point 运动(内部轨迹规划)。 + * @details 控制器会在内部生成满足速度/加速度约束的关节轨迹,并做多关节时间同步,使关节协调到达目标点。 + * @param joints 目标关节角,单位 rad。 + * @param max_vel 主导轴最大速度,单位 rad/s。 + * @param max_acc 主导轴最大加速度,单位 rad/s^2。 + */ virtual void moveJ(std::vector &joints, double max_vel=0.5, double max_acc=0.1) { throw std::runtime_error("Not implemented"); } + /** + * @brief 按关节命令执行关节空间运动(内部轨迹规划)。 + * @param cmd 目标关节命令(关节名 + 角度,`vel` 字段可由具体实现决定是否使用)。 + * @param vel 主导轴最大速度,单位 rad/s。 + * @param acc 主导轴最大加速度,单位 rad/s^2。 + */ virtual void moveJ(std::vector &cmd, double vel=0.5, double acc=0.1) { throw std::runtime_error("Not implemented"); } + + /** + * @brief 末端位姿目标的关节空间运动。 + * @details 典型实现为先做 IK 求解关节目标,再按 `moveJ` 语义执行(关节空间规划与同步)。 + * @param base_link 基坐标系 link 名称。 + * @param ee_link 末端 link 名称。 + * @param pose 目标末端位姿。 + * @param vel 主导轴最大速度,单位 rad/s。 + * @param acc 主导轴最大加速度,单位 rad/s^2。 + */ virtual void moveJ(const std::string &base_link, const std::string &ee_link, msgs::Pose3d pose,double vel = 0.5, double acc = 0.1) { throw std::runtime_error("Not implemented"); } virtual void moveDeltaJ(const std::string &base_link, const std::string &ee_link, msgs::Pose3d delta_pose,double vel = 0.5, double acc = 0.1) { throw std::runtime_error("Not implemented"); } @@ -97,10 +120,38 @@ namespace cmvr::device{ virtual void followPoseTrajectory(std::string &base_link, std::vector> &targets, double dt) { throw std::runtime_error("Not implemented"); } + /** + * @brief 关节空间周期伺服(无整段轨迹规划)。 + * @details 每次调用只在一个控制周期内跟踪当前目标,需外部循环持续下发;是否稳定由外部更新频率和目标序列决定。 + * @param joints 当前周期目标关节角,单位 rad。 + * @param dt 当前伺服命令生效时长(控制周期),单位 s。 + */ virtual void servoJ(std::vector &joints, double dt) { throw std::runtime_error("Not implemented"); } + /** + * @brief 按关节命令执行周期伺服(无整段轨迹规划)。 + * @param joints 当前周期关节目标命令。 + * @param dt 当前伺服命令生效时长(控制周期),单位 s。 + */ virtual void servoJ(std::vector &joints, double dt) { throw std::runtime_error("Not implemented"); } + + /** + * @brief 带速度参数的关节空间周期伺服。 + * @param joints 当前周期关节目标命令。 + * @param vel 速度参数(语义由具体驱动实现决定)。 + * @param dt 当前伺服命令生效时长(控制周期),单位 s。 + */ virtual void servoJ(std::vector &joints, double vel, double dt) { throw std::runtime_error("Not implemented"); } + + /** + * @brief 基于末端位姿目标的周期伺服。 + * @details 典型实现为每周期执行 IK 并下发关节伺服目标;属于实时闭环接口,不等价于一次性到位的 `moveJ`。 + * @param base_link 基坐标系 link 名称。 + * @param ee_link 末端 link 名称。 + * @param pose 当前周期目标末端位姿。 + * @param vel 速度参数(语义由具体驱动实现决定)。 + * @param acc 加速度参数(语义由具体驱动实现决定)。 + */ virtual void servoJ(const std::string &base_link, const std::string &ee_link, msgs::Pose3d pose,double vel = 0.1, double acc = 0.1) { throw std::runtime_error("Not implemented"); } virtual void servoDeltaJ(const std::string &base_link, const std::string &ee_link, msgs::Pose3d delta_pose,double vel = 0.1, double acc = 0.1) { throw std::runtime_error("Not implemented"); } diff --git a/cmvr-es/devices/robot/humanoid_robot/CMakeLists.txt b/cmvr-es/devices/robot/humanoid_robot/CMakeLists.txt index e80f5d7e..d3b3e717 100644 --- a/cmvr-es/devices/robot/humanoid_robot/CMakeLists.txt +++ b/cmvr-es/devices/robot/humanoid_robot/CMakeLists.txt @@ -29,6 +29,7 @@ add_executable(humanoid_robot_test target_link_libraries(humanoid_robot_test PRIVATE cmvr_es::device_manager + cmvr_es::controller cmvr_es::common cmvr_es::data_center osqp diff --git a/cmvr-es/devices/robot/humanoid_robot/src/humanoid_robot_test.cpp b/cmvr-es/devices/robot/humanoid_robot/src/humanoid_robot_test.cpp index 1cbf38d4..89827d41 100644 --- a/cmvr-es/devices/robot/humanoid_robot/src/humanoid_robot_test.cpp +++ b/cmvr-es/devices/robot/humanoid_robot/src/humanoid_robot_test.cpp @@ -10,21 +10,57 @@ #include #include #include +#include +#include +#include +#include #include "gtest/gtest.h" #include #include "../../../../device_manager/include/device_manager.h" #include +#include "controller/include/ibvs_controller.h" #include "cmvr/msgs/can_card_parameter.grpc.pb.h" #include "../include/humanoid_robot.h" #include "motor/ti5_motor/canopen/ti5_motor_canopen_protocol.h" #include "../../../../utils/base/include/abstract_interpolation.h" -// 定义一个命令行参数 --config_path -DEFINE_string(config_path, "../config/cabin_robot.xml", "Path to the robot config XML file"); using namespace cmvr::device; +namespace { + +constexpr std::array kRightArmJointNames = { + "R_SHOULDER_P", + "R_SHOULDER_R", + "R_SHOULDER_Y", + "R_ELBOW_R", + "R_WRIST_P", + "R_WRIST_Y", + "R_WRIST_R" +}; + +std::vector buildRightArmJointCmd(const std::vector& q_cmd, + double vel) { + std::vector cmd; + cmd.reserve(kRightArmJointNames.size()); + for (size_t i = 0; i < kRightArmJointNames.size(); ++i) { + cmd.emplace_back(kRightArmJointNames[i], q_cmd[i], vel); + } + return cmd; +} + +std::unordered_map makeRightArmQMap() { + std::unordered_map q_map; + q_map.reserve(kRightArmJointNames.size()); + for (const auto* name : kRightArmJointNames) { + q_map.emplace(name, 0.0); + } + return q_map; +} + +} // namespace + TEST(HumanoidRobotTest,GetState) { std::string config_path = "/home/lgv/cmvr/cmvr-es/config/cabin_robot.xml"; const XmlNode config(config_path); @@ -71,616 +107,176 @@ TEST(HumanoidRobotTest,MyRobotTest) { } - -TEST(HumanoidRobotTest,FollowJointTrajectoryTest) { - std::string config_path = "/home/lgv/cmvr/cmvr-es/config/cabin_robot.xml"; - const XmlNode config(config_path); - - if (!config.hasChild("DeviceManager")){ - LOG(ERROR) << "Device Manager node not found"; - } +TEST(HumanoidRobotTest,ServoJAndGetJointQSmokeTest) { + const XmlNode config("/home/lgv/cmvr/cmvr-es/config/cabin_robot.xml"); + ASSERT_TRUE(config.hasChild("DeviceManager")) << "DeviceManager node not found"; auto dmgr_cfg = config.getChild("DeviceManager"); - auto &dmgr = DeviceManager::getInstance(dmgr_cfg); + auto& dmgr = DeviceManager::getInstance(dmgr_cfg); auto robot = dmgr.getDevice("hc01"); - - // 读取轨迹 - std::ifstream file("/home/lgv/cmvr/cmvr-es/src/devices/robot/humanoid_robot/joint_positions_1.csv"); - if (!file.is_open()) { - LOG(ERROR) << "无法打开文件" ; - - } - - std::string line; - - // 读取标题行,获取关节名称(除去第一列 idx) - if (!std::getline(file, line)) { - LOG(ERROR) << "文件为空或格式错误" ; - } - - std::vector joint_names; - { - std::stringstream ss(line); - std::string cell; - // 第一列是 idx,跳过 - std::getline(ss, cell, ','); - // 读取关节名称列 - while (std::getline(ss, cell, ',')) { - joint_names.push_back(cell); + auto q_map_now = makeRightArmQMap(); + std::vector q_now(kRightArmJointNames.size(), 0.0); + auto refreshRightArmQ = [&]() -> bool { + robot->getJointQ(q_map_now); + for (size_t i = 0; i < kRightArmJointNames.size(); ++i) { + const auto it = q_map_now.find(kRightArmJointNames[i]); + if (it == q_map_now.end()) return false; + q_now[i] = it->second; } - } + return true; + }; - std::vector> traj; - - // 读取后续每行数据 - while (std::getline(file, line)) { - std::stringstream ss(line); - std::string cell; - - // 读取第一列 idx,暂时不使用 - std::getline(ss, cell, ','); - - std::vector joints; - - // 读取每个关节角度 - for (size_t i = 0; i < joint_names.size(); ++i) { - if (!std::getline(ss, cell, ',')) { - LOG(ERROR) << "数据列不足,格式错误"; - } - double angle = std::stod(cell); // 字符串转 double - - JointPoint cmd; - cmd.joint_name = joint_names[i]; - cmd.rad = angle; - joints.push_back(cmd); - } - traj.push_back(joints); - } - - file.close(); + ASSERT_TRUE(refreshRightArmQ()) << "Failed to read right-arm joint q"; - // 计算速度 - double dt = 0.01; // 采样周期(s) - size_t N = traj.size(); - - for (size_t i = 0; i < N; ++i) { - if (i == 0) { - // 第一个点没有前一帧,速度设为 0 - for (auto &cmd : traj[i]) { - cmd.vel = 0.0; - } - } else { - // 后向差分 - for (size_t j = 0; j < traj[i].size(); ++j) { - double pos_prev = traj[i - 1][j].rad; - double pos_curr = traj[i][j].rad; - traj[i][j].vel = (pos_curr - pos_prev) / dt; - } - } - } - - - - // // 测试打印读取结果 - // for (size_t i = 0; i < traj.size(); ++i) { - // std::cout << "Index " << i << ":" << std::endl; - // for (const auto& cmd : traj[i]) { - // std::cout << cmd.joint_name - // << " = " << cmd.rad << " rad, " - // << cmd.vel << " rad/s; "; - // } - // std::cout << std::endl; - // } - - - // 1: - - - // // std::vector cmd{}; // cmd = { - // // {"L_SHOULDER_P", 0.0}, - // // {"L_SHOULDER_R", 0.0}, - // // {"L_SHOULDER_Y", 0.0}, - // // {"L_ELBOW_R", 0.0}, - // // {"L_WRIST_P", 0.0}, - // // {"L_WRIST_Y", 0.0}, - // // {"L_WRIST_R", 0.0}, - // // {"R_SHOULDER_P", 0.0}, // {"R_SHOULDER_R", 0.0}, // {"R_SHOULDER_Y", 0.0}, // {"R_ELBOW_R", 0.0}, // {"R_WRIST_P", 0.0}, // {"R_WRIST_Y", 0.0}, - // {"R_WRIST_R", 0.0} + // {"R_WRIST_R", 0.0}, // }; - // robot->moveJ(cmd,0.8); - - // // // 先到达轨迹起点 - // LOG(INFO) << "Moving to trajectory start..."; - // robot->moveJ(traj[0],0.8); - // - // - // - // // 再移动 - // LOG(INFO) << "Reached trajectory start point"; - // robot->followJointTrajectory(traj,dt * 1000); - // LOG(INFO) << "Trajectory execution completed"; - - - - // std::vector cmd1{ - // {"L_SHOULDER_P", -0.747573}, - // {"L_SHOULDER_R", -1.26911}, - // {"L_SHOULDER_Y", -1.20811}, - // {"L_ELBOW_R", -1.51221}, - // {"L_WRIST_P", 2.64099}, - // {"L_WRIST_Y", 0.417608}, - // {"L_WRIST_R", -0.518287}, - // - // {"R_SHOULDER_P", -0.344938}, - // {"R_SHOULDER_R", 0.935147}, - // {"R_SHOULDER_Y", 2.27031}, - // {"R_ELBOW_R", 1.68959}, - // {"R_WRIST_P", -2.32841}, - // {"R_WRIST_Y", 0.460145}, - // {"R_WRIST_R", 0.300996} - // }; - // - // std::vector cmd2{ - // {"L_SHOULDER_P", -0.747573}, - // {"L_SHOULDER_R", -1.26911}, - // {"L_SHOULDER_Y", -1.20811}, - // {"L_ELBOW_R", -1.51221}, - // {"L_WRIST_P", 2.64099}, - // {"L_WRIST_Y", 0.417608}, - // {"L_WRIST_R", -0.518287}, - // - // {"R_SHOULDER_P", 0.239368}, - // {"R_SHOULDER_R", 0.871341}, - // {"R_SHOULDER_Y", 1.86052}, - // {"R_ELBOW_R", 1.28044}, - // {"R_WRIST_P", -2.49436}, - // {"R_WRIST_Y", 0.404731}, - // {"R_WRIST_R", 0.280016} - // }; - - // - // std::vector cmd1{ - // {"L_SHOULDER_P", -0.747573}, - // {"L_SHOULDER_R", -1.26911}, - // {"L_SHOULDER_Y", -1.20811}, - // {"L_ELBOW_R", -1.51221}, - // {"L_WRIST_P", 2.64099}, - // {"L_WRIST_Y", 0.417608}, - // {"L_WRIST_R", -0.518287}, - // - // {"R_SHOULDER_P", -0.956276}, - // {"R_SHOULDER_R", 1.0244}, - // {"R_SHOULDER_Y", 2.70621}, - // {"R_ELBOW_R", 2.02276}, - // {"R_WRIST_P", -1.99653}, - // {"R_WRIST_Y", 0.68523}, - // {"R_WRIST_R", 0.477066} - // }; - // - // std::vector cmd2{ - // {"L_SHOULDER_P", -0.747573}, - // {"L_SHOULDER_R", -1.26911}, - // {"L_SHOULDER_Y", -1.20811}, - // {"L_ELBOW_R", -1.51221}, - // {"L_WRIST_P", 2.64099}, - // {"L_WRIST_Y", 0.417608}, - // {"L_WRIST_R", -0.518287}, - // - // {"R_SHOULDER_P", 0.226871}, - // {"R_SHOULDER_R", 0.624717}, - // {"R_SHOULDER_Y", 1.15086}, - // {"R_ELBOW_R", 1.30365}, - // {"R_WRIST_P", -2.14683}, - // {"R_WRIST_Y", 0.196003}, - // {"R_WRIST_R", 0.106678} - // }; - // - // - // - // while (true) { - // robot->moveJ(cmd1,0.8); - // robot->moveJ(cmd2,0.8); - // std::this_thread::sleep_for(std::chrono::milliseconds(500)); - // } + auto joint_cmd = buildRightArmJointCmd(q_now, 0.8); + ASSERT_NO_THROW(robot->servoJ(joint_cmd, 0.8, 0.01)); + while (true) { + std::this_thread::sleep_for(std::chrono::milliseconds(10000)); + } } - -TEST(HumanoidRobotTest,MoveDeltaTest) { - std::string config_path = "/home/lgv/cmvr/cmvr-es/config/cabin_robot.xml"; - const XmlNode config(config_path); - - if (!config.hasChild("DeviceManager")){ - LOG(ERROR) << "Device Manager node not found"; - } - auto dmgr_cfg = config.getChild("DeviceManager"); - auto &dmgr = DeviceManager::getInstance(dmgr_cfg); - - auto robot = dmgr.getDevice("hc01"); - - cmvr::msgs::Pose3d pose; - pose.mutable_position()->set_x( 0); - pose.mutable_position()->set_y(0); - pose.mutable_position()->set_z(0); - - pose.mutable_euler()->set_rx(0); - pose.mutable_euler()->set_ry(0); - pose.mutable_euler()->set_rz(-0.7854); - - try { - // robot->servoDeltaJ("PELVIS_S","R_FINGER_TIP",pose,0.1); - // robot->servoDeltaJ("PELVIS_S","R_FINGER_TIP",pose,0.01); - robot->moveDeltaJ("PELVIS_S","R_FINGER_TIP",pose,0.05); - }catch (std::exception &e) { - LOG(INFO) << e.what(); - robot->torqueOff(); - LOG(INFO) << e.what(); - } -} - -TEST(HumanoidRobotTest,AngleToTest) { - double rx = 0.9497; - double ry = 1.6082; - double rz = -2.4832; - - Eigen::Matrix3d R = HumanoidRobot<7>::eulerZYXToRotationMatrix(rx, ry, rz); - Eigen::Vector3d euler = HumanoidRobot<7>::rotationMatrixToEulerZYX(R); - - std::cout << "Original Euler angles (rad):\n" << Eigen::Vector3d(rx, ry, rz).transpose() << "\n"; - std::cout << "Recovered Euler angles (rad):\n" << euler.transpose() << "\n"; - -} - - -std::atomic running{true}; - -// 信号处理函数 -void signalHandler(int signum) { - std::cout << "\nInterrupt signal (" << signum << ") received. Stopping..." << std::endl; - running = false; -} -TEST(HumanoidRobotTest, MoveIKTest) { - // 注册信号处理 - std::signal(SIGINT, signalHandler); - - std::string config_path = "/home/lgv/cmvr/cmvr-es/config/cabin_robot.xml"; - const XmlNode config(config_path); - - if (!config.hasChild("DeviceManager")) { - LOG(ERROR) << "Device Manager node not found"; - return; - } - - auto dmgr_cfg = config.getChild("DeviceManager"); - auto &dmgr = DeviceManager::getInstance(dmgr_cfg); - auto robot = dmgr.getDevice("hc01"); - - auto cur_pose = robot->fk("PELVIS_S","R_FINGER_TIP"); - - cmvr::msgs::Pose3d pose; - pose.mutable_position()->set_x(0.047436); - pose.mutable_position()->set_y(-0.2884); - pose.mutable_position()->set_z(-0.605183); - pose.mutable_euler()->set_rx(-1.191976); - pose.mutable_euler()->set_ry(1.397317); - pose.mutable_euler()->set_rz(2.721208); - // Pose: {'x': 0.047436, 'y': -0.2884, 'z': -0.605183, 'rx': -1.191976, 'ry': 1.397317, 'rz': 2.721208} - - - // 打印关节状态线程 - std::thread joint_state_thread([&]() { - while (running) { - auto joint_state = robot->getJointQ(); - if (auto it = joint_state.find("WAIST_P"); it != joint_state.end()) { - LOG(INFO) << "WAIST_P POS = " << it->second; - } else { - LOG(WARNING) << "WAIST_P not found in joint_state"; - } - std::this_thread::sleep_for(std::chrono::milliseconds(5)); - } - }); - - // 动作控制线程 - std::thread motion_thread([&]() { - while (running) { - robot->moveJ("PELVIS_S","R_FINGER_TIP",pose,0.5); - std::this_thread::sleep_for(std::chrono::milliseconds(1000)); - robot->moveJ("PELVIS_S","R_FINGER_TIP",cur_pose,0.5); - std::this_thread::sleep_for(std::chrono::milliseconds(1000)); - } - }); - - // 等待线程结束 - if (motion_thread.joinable()) motion_thread.join(); - if (joint_state_thread.joinable()) joint_state_thread.join(); - - LOG(INFO) << "Test finished gracefully."; -} - - -TEST(HumanoidRobotTest,MoveLTest) { - std::string config_path = "/home/linbo/newProject/cmvr-es/config/cabin_robot.xml"; - const XmlNode config(config_path); - - if (!config.hasChild("DeviceManager")){ - LOG(ERROR) << "Device Manager node not found"; - } - auto dmgr_cfg = config.getChild("DeviceManager"); - auto &dmgr = DeviceManager::getInstance(dmgr_cfg); - - auto robot = dmgr.getDevice("hc01"); - - - try { - // 定义基座和末端链路名(需与URDF模型中的链路名一致) - std::string base_link = "PELVIS_S"; // 基座坐标系 - std::string ee_link = "R_WRIST_R_S"; // 末端执行器坐标系 - - // 定义目标位姿(直线运动的终点与当前的差值) - cmvr::msgs::Pose3d delta_pose; - delta_pose.mutable_position()->set_x(0.2); - delta_pose.mutable_position()->set_y(0); - delta_pose.mutable_position()->set_z(0); - delta_pose.mutable_euler()->set_rx(0); - delta_pose.mutable_euler()->set_ry(0); - delta_pose.mutable_euler()->set_rz(0); - - // 4. 设置运动参数(速度单位:m/s,加速度单位:m/s²) - double vel = 0.1; // 最大线速度 0.1m/s - - - - - double acc = 0.05; // 加速度 0.05m/s² - - // 调用moveL执行直线运动 - robot->moveDeltaL(base_link, ee_link, delta_pose, vel, acc); - LOG(INFO) << "直线运动完成!"; - - } catch (const std::exception& e) { - // 捕获异常(如IK解算失败、状态非法等) - LOG(ERROR) << "moveL调用失败:" << e.what(); - } -} - - -TEST(HumanoidRobotTest, SpeedJTest) { - // 配置文件路径 - std::string config_path = "/home/tankaitao/cmvr-es/config/cabin_robot.xml"; - const XmlNode config(config_path); - - // 检查配置文件是否包含 DeviceManager 节点 - if (!config.hasChild("DeviceManager")) { - LOG(ERROR) << "Device Manager node not found"; - } - - // 获取 DeviceManager 配置并初始化设备管理器 +TEST(HumanoidRobotTest,IBVSWithRealRobot) { + const XmlNode config("/home/lgv/cmvr/cmvr-es/config/cabin_robot.xml"); + ASSERT_TRUE(config.hasChild("DeviceManager")) << "DeviceManager node not found"; auto dmgr_cfg = config.getChild("DeviceManager"); auto& dmgr = DeviceManager::getInstance(dmgr_cfg); - // 获取机器人实例 auto robot = dmgr.getDevice("hc01"); + auto camera = dmgr.getDevice("cam4"); + ASSERT_NE(robot, nullptr); + ASSERT_NE(camera, nullptr); - // 设置目标关节和相关参数 - std::string joint_name = "L_WRIST_R"; // 目标关节名 - RobotJointIndexDirection dir = RobotJointIndexDirection::Y_NEGATIVE; // 方向 - double vel = -0.1; // 速度 (rad/s) - double acc = 1; // 加速度 (rad/s²) - - try { - // 调用 speedJ 函数进行关节运动 - robot->speedJ(joint_name, dir, vel, acc); - - } catch (const std::exception& e) { - LOG(ERROR) << "speedJ test failed: " << e.what(); - FAIL() << "Exception thrown during speedJ test: " << e.what(); - } -} - - - -TEST(HumanoidRobotTest, SpeedLTest) { - std::string config_path = "/home/linbo/newProject/cmvr-es/config/cabin_robot.xml"; - const XmlNode config(config_path); - - if (!config.hasChild("DeviceManager")) { - LOG(ERROR) << "Device Manager node not found"; - } - auto dmgr_cfg = config.getChild("DeviceManager"); - auto &dmgr = DeviceManager::getInstance(dmgr_cfg); - - auto robot = dmgr.getDevice("hc01"); - - try { - - // std::unordered_map joint_qs; - // joint_qs.insert(std::make_pair("R_SHOULDER_P",0)); - // joint_qs.insert(std::make_pair("R_SHOULDER_R",0)); - // joint_qs.insert(std::make_pair("R_SHOULDER_Y",0)); - // joint_qs.insert(std::make_pair("R_ELBOW_R",0)); - // joint_qs.insert(std::make_pair("R_WRIST_P",0)); - // joint_qs.insert(std::make_pair("R_WRIST_Y",0)); - // joint_qs.insert(std::make_pair("R_WRIST_R",0)); - // - // robot->getJointQ(joint_qs); - // LOG(INFO) << "======================================"; - // LOG(INFO) << "获取到的关节位置信息 (单位: 弧度)"; - // LOG(INFO) << "--------------------------------------"; - // - // for (const auto& pair : joint_qs) { - // LOG(INFO) << "关节 " << pair.first - // << ": " << pair.second - // << " (" << pair.second * 180 / M_PI << "°)"; - // } - // LOG(INFO) << "======================================"; - // return ; - - // 先运动到一个合适的位置 - std::vector cmd{ - {"R_SHOULDER_P", -0.348663}, - {"R_SHOULDER_R", 1.1512}, - {"R_SHOULDER_Y", 1.64856}, - {"R_ELBOW_R", 1.8978}, - {"R_WRIST_P", -2.8002}, - {"R_WRIST_Y", -0.0262979}, - {"R_WRIST_R", 0.0449828} - }; - robot->moveJ(cmd); - // 定义运动方向(笛卡尔坐标系) - RobotCartesian cart_direction = RobotCartesian::Y; // 沿X轴移动 - - // 定义运动方向(正向或反向) - RobotJointIndexDirection move_direction = RobotJointIndexDirection::ROTATE_Y; // 正向 - - // 设置运动参数(速度单位:m/s,加速度单位:m/s²) - double vel = 0.02; // 速度 0.1m/s - double acc = 0.05; // 加速度 0.05m/s² - - LOG(INFO) << "开始执行速度控制,方向:X轴正向,速度:" << vel << "m/s,加速度:" << acc << "m/s²"; - - // 调用speedL执行速度控制 - robot->speedL(cart_direction, move_direction, vel, acc); - - // 等待一段时间让机器人运动 - std::this_thread::sleep_for(std::chrono::seconds(5)); - - // 停止运动(假设有停止函数) - // robot->stopSpeedL(); - - LOG(INFO) << "速度控制完成!"; - - } catch (const std::exception& e) { - // 捕获异常(如IK解算失败、状态非法等) - LOG(ERROR) << "speedL调用失败:" << e.what(); - } -} - -TEST(HumanoidRobotTest, followPoseTest) { - // 1. 配置文件与设备初始化 - std::string config_path = "/home/linbo/newProject/cmvr-es/config/cabin_robot.xml"; - const XmlNode config(config_path); - - if (!config.hasChild("DeviceManager")) { - LOG(ERROR) << "Device Manager node not found in config file"; - return; // 配置错误,直接退出测试 - } - auto dmgr_cfg = config.getChild("DeviceManager"); - auto &dmgr = DeviceManager::getInstance(dmgr_cfg); - - // 获取机器人设备(hc01) - auto robot = dmgr.getDevice("hc01"); - if (!robot) { - LOG(ERROR) << "Failed to get robot device 'hc01'"; - return; - } - - - try { - // 2. 核心参数配置 - std::string base_link = "PELVIS_S"; // 基座坐标系(轨迹相对此坐标系) - std::string ee_link = "R_WRIST_R_S"; // 待控制的末端执行器(如右手腕) - const double circle_radius = 0.03; // 圆形轨迹半径(3厘米,根据工作空间调整) - const double angle_start = 0.0; // 轨迹起始角度(0弧度) - const double angle_end = 2 * M_PI; // 轨迹结束角度(2π,完整圆形) - const int num_points = 100; // 轨迹总点数(点数越多,轨迹越平滑) - const double dt = 0.02; // 相邻轨迹点的时间间隔(20ms,控制运动速度) - - // 选择轨迹所在平面(保持某一轴坐标不变) - // 0: XY平面(Z轴固定) | 1: XZ平面(Y轴固定) | 2: YZ平面(X轴固定) - const int plane_choice = 2; - const std::string plane_desc = (plane_choice == 0) ? "XY平面(Z轴不变)" : - (plane_choice == 1) ? "XZ平面(Y轴不变)" : "YZ平面(X轴不变)"; - LOG(INFO) << "Trajectory plane selected: " << plane_desc; - - - // 3. 获取末端执行器当前位姿(作为圆形轨迹的圆心) - LOG(INFO) << "Getting current pose of end-effector (" << ee_link << ") relative to base (" << base_link << ")"; - const cmvr::math::Pose3d current_pose = robot->getTransform(base_link, ee_link); - - // 将当前位姿转换为Eigen::Matrix4d(圆心位姿矩阵,包含位置和姿态) - Eigen::Matrix4d center_T = Eigen::Matrix4d::Identity(); // 初始化单位矩阵(姿态为默认,位置待填充) - // 3.1 填充圆心位置(从当前位姿的position提取) - center_T(0, 3) = current_pose.position.x; // 圆心X坐标(当前末端X) - center_T(1, 3) = current_pose.position.y; // 圆心Y坐标(当前末端Y) - center_T(2, 3) = current_pose.position.z; // 圆心Z坐标(当前末端Z) - LOG(INFO) << "Circle center pose (XYZ): [" - << center_T(0,3) << ", " << center_T(1,3) << ", " << center_T(2,3) << "] (m)"; - - // 3.2 填充圆心姿态(从当前位姿的四元数转换为旋转矩阵) - const double w = current_pose.quaternion.w; - const double x = current_pose.quaternion.x; - const double y = current_pose.quaternion.y; - const double z = current_pose.quaternion.z; - // 四元数转旋转矩阵(标准公式,确保末端姿态与当前一致) - center_T.block<3,3>(0,0) << 1-2*y*y-2*z*z, 2*x*y-2*z*w, 2*x*z+2*y*w, - 2*x*y+2*z*w, 1-2*x*x-2*z*z, 2*y*z-2*x*w, - 2*x*z-2*y*w, 2*y*z+2*x*w, 1-2*x*x-2*y*y; - - - // 4. 生成指定平面内的圆形轨迹(格式:std::vector>) - std::vector> trajectory; - const double angle_step = (angle_end - angle_start) / num_points; // 每步角度增量 - - for (int i = 0; i <= num_points; ++i) { - const double current_angle = angle_start + i * angle_step; // 当前轨迹点角度 - Eigen::Matrix4d point_T = center_T; // 复制圆心位姿,在此基础上偏移生成轨迹点 - - // 根据选择的平面,计算位置偏移(保持对应轴不变) - switch (plane_choice) { - case 0: // XY平面:Z轴固定,X/Y随角度变化 - point_T(0, 3) += circle_radius * cos(current_angle); // X方向偏移 - point_T(1, 3) += circle_radius * sin(current_angle); // Y方向偏移 - break; - case 1: // XZ平面:Y轴固定,X/Z随角度变化 - point_T(0, 3) += circle_radius * cos(current_angle); // X方向偏移 - point_T(2, 3) += circle_radius * sin(current_angle); // Z方向偏移 - break; - case 2: // YZ平面:X轴固定,Y/Z随角度变化 - point_T(1, 3) += circle_radius * cos(current_angle); // Y方向偏移 - point_T(2, 3) += circle_radius * sin(current_angle); // Z方向偏移 - break; - default: - LOG(WARNING) << "Invalid plane choice (" << plane_choice << "), use default XY plane"; - point_T(0, 3) += circle_radius * cos(current_angle); - point_T(1, 3) += circle_radius * sin(current_angle); + ASSERT_NO_THROW(camera->start()); + struct RuntimeGuard { + std::shared_ptr camera; + std::shared_ptr robot; + ~RuntimeGuard() { + if (camera) { + try { + camera->stop(); + } catch (...) { + } } + if (robot) { + try { + robot->eStop(); + } catch (...) { + } + } + } + } guard{camera, robot}; - // 构造当前时间步的PoseTarget(控制末端执行器) - cmvr::ctrl::PoseTarget ee_target; - ee_target.link_name = ee_link; // 目标控制的link(末端执行器) - ee_target.T_target = point_T; // 相对base_link的目标位姿矩阵 - ee_target.w_posrot = 0.5; // 位置/姿态权重(0.5:位置和姿态同等重要) - ee_target.weight = 1.0; // 任务权重(1.0:硬约束,必须满足) + cmvr::IbvsController ibvs_controller; + ibvs_controller.setMu(0.1); + ibvs_controller.setQdotMax(0.6); + ibvs_controller.setTagSize(0.12); + ibvs_controller.setTrackedTagId(0); + ibvs_controller.setTarget(0.0, 0.0, 0.35, 3.14159265358979323846, 0.0, 0.0); + ibvs_controller.setDepthMode(cmvr::IbvsController::DepthMode::MONOCULAR); + ibvs_controller.setDepthZGain(1.0); - // 每个时间步可控制多个link(此处仅控制一个末端,故vector大小为1) - std::vector step_targets = {ee_target}; - trajectory.push_back(step_targets); // 将当前时间步目标加入轨迹 + ASSERT_TRUE(ibvs_controller.init(camera, + "/home/lgv/cmvr/0-workspace/cmvr-es/model/xiaoyan_description/dual_arm.urdf", + "PELVIS_S", + "R_WRIST_R_S", + "R_CAM")) + << "IbvsController init failed"; + + auto q_map_now = makeRightArmQMap(); + robot->getJointQ(q_map_now); + std::vector q_now(kRightArmJointNames.size(), 0.0); + auto refreshRightArmQ = [&]() -> bool { + for (size_t i = 0; i < kRightArmJointNames.size(); ++i) { + const auto it = q_map_now.find(kRightArmJointNames[i]); + if (it == q_map_now.end()) { + return false; + } + q_now[i] = it->second; + } + return true; + }; + + ASSERT_TRUE(refreshRightArmQ()) + << "Failed to extract right-arm 7 joints from robot state"; + ibvs_controller.reset(q_now); + + const int max_steps = 300; + const int log_every = 10; + const int cycle_ms = 33; + + int ok_steps = 0; + int fail_steps = 0; + auto t_prev = std::chrono::steady_clock::now(); + + for (int step = 0; step < max_steps; ++step) { + robot->getJointQ(q_map_now); + if (!refreshRightArmQ()) { + ++fail_steps; + if ((step % log_every) == 0) { + std::cout << "[IBVS_REAL] step=" << step << " joint extract failed\n"; + } + std::this_thread::sleep_for(std::chrono::milliseconds(cycle_ms)); + continue; } - // 输出轨迹信息(调试用) - LOG(INFO) << "Trajectory generated successfully: " - << trajectory.size() << " time steps, radius: " << circle_radius << "m"; + const auto t_now = std::chrono::steady_clock::now(); + double dt = std::chrono::duration(t_now - t_prev).count(); + t_prev = t_now; + dt = std::clamp(dt, 0.001, 0.1); + std::vector q_cmd_next; + const bool ok = ibvs_controller.compute(q_now, dt, q_cmd_next); + if (!ok || q_cmd_next.size() != kRightArmJointNames.size()) { + ++fail_steps; + if ((step % log_every) == 0) { + std::cout << "[IBVS_REAL] step=" << step + << " compute failed: " + << cmvr::IbvsController::statusToString(ibvs_controller.lastComputeStatus()) + << std::endl; + } + std::this_thread::sleep_for(std::chrono::milliseconds(cycle_ms)); + continue; + } - // 5. 执行轨迹(调用followPoseTrajectory接口) - LOG(INFO) << "Starting circular trajectory execution..."; - robot->followPoseTrajectory(base_link,trajectory, dt); // 传入轨迹和时间间隔 + auto joint_cmd = buildRightArmJointCmd(q_cmd_next, 0.8); + robot->servoJ(joint_cmd, 0.8, dt); + ++ok_steps; - LOG(INFO) << "Circular trajectory execution completed!"; + if ((step % log_every) == 0) { + const auto& t_co = ibvs_controller.lastTagPositionVisp(); + const auto& v_c = ibvs_controller.lastCameraTwistVisp(); + std::cout << "[IBVS_REAL] step=" << step + << " tag=[" << t_co.x() << ", " << t_co.y() << ", " << t_co.z() << "]" + << " v_c=[" << v_c[0] << ", " << v_c[1] << ", " << v_c[2] + << ", " << v_c[3] << ", " << v_c[4] << ", " << v_c[5] << "]" + << " z_source=" << cmvr::IbvsController::depthUsageToString(ibvs_controller.lastDepthUsage()) + << std::endl; + } - } catch (const std::exception& e) { - // 捕获并打印异常(如机器人未就绪、逆解失败等) - LOG(ERROR) << "Trajectory execution failed: " << e.what(); - throw; // 可选:抛出异常让测试框架捕获,标记测试失败 + std::this_thread::sleep_for(std::chrono::milliseconds(cycle_ms)); } -} \ No newline at end of file + + std::cout << "[IBVS_REAL] finished steps=" << max_steps + << " ok_steps=" << ok_steps + << " fail_steps=" << fail_steps + << std::endl; + + EXPECT_GT(ok_steps, 0) << "No successful IBVS control steps."; +} + + + + diff --git a/cmvr-es/ik_solver/CMakeLists.txt b/cmvr-es/ik_solver/CMakeLists.txt index f7150ad5..368b4050 100644 --- a/cmvr-es/ik_solver/CMakeLists.txt +++ b/cmvr-es/ik_solver/CMakeLists.txt @@ -21,9 +21,8 @@ target_link_libraries(ik_solver PUBLIC ) add_library(cmvr_es::ik_solver ALIAS ik_solver) -install(TARGETS ik_solver RUNTIME DESTINATION bin) - +install(TARGETS ik_solver LIBRARY DESTINATION lib) # -------------------------------------------------------- # Unit test # -------------------------------------------------------- diff --git a/cmvr-es/perception/CMakeLists.txt b/cmvr-es/perception/CMakeLists.txt new file mode 100644 index 00000000..da9d6e42 --- /dev/null +++ b/cmvr-es/perception/CMakeLists.txt @@ -0,0 +1,30 @@ +find_package(VISP REQUIRED) +find_package(OpenCV REQUIRED) + +add_library(perception SHARED + src/tag_relative_target_3d.cpp +) + +target_include_directories(perception PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(perception PUBLIC + ${VISP_LIBRARIES} + ${OpenCV_LIBS} +) + +add_library(cmvr_es::perception ALIAS perception) +install(TARGETS perception LIBRARY DESTINATION lib) + +add_executable(tag_relative_target_3d_test + src/tag_relative_target_3d_test.cpp +) + +target_link_libraries(tag_relative_target_3d_test + PRIVATE + cmvr_es::perception + cmvr_es::device::realsense_camera + cmvr_es::proto + glog + gtest + gtest_main + pthread +) diff --git a/cmvr-es/perception/include/tag_relative_target_3d.h b/cmvr-es/perception/include/tag_relative_target_3d.h new file mode 100644 index 00000000..79158361 --- /dev/null +++ b/cmvr-es/perception/include/tag_relative_target_3d.h @@ -0,0 +1,215 @@ +// +// Created by lgv on 2026/2/26. +// + +#pragma once + +#include +#include +#include + +#include +#include +#include "devices/camera/abstract_camera.h" + +namespace cmvr::perception { + +/** + * @brief 单个 tag 观测:tag 相对于相机的位姿(`T_c_t`)。 + */ +struct TagPoseObservation { + // tag id。 + int tag_id{-1}; + // tag 坐标系 -> 相机坐标系 变换。 + Eigen::Matrix4d T_c_t{Eigen::Matrix4d::Identity()}; + // 观测权重(<=0 或非法时按 1.0 处理)。 + double weight{1.0}; +}; + +/** + * @brief 维护“目标点在各 tag 坐标系下的 3D 相对坐标”,并支持在线恢复目标点相机坐标。 + * + * 典型流程: + * 1) 锁定目标时已知目标点相机坐标 `p_c_target` 与可见 tag 位姿观测; + * 2) 计算并缓存每个可见 tag 下的 `p_ti_target`; + * 3) 运行时只要某个已缓存的 tag 可见,就可恢复目标点在当前相机系下位置。 + */ +class TagRelativeTarget3D { +public: + /** + * @brief 最近一次调用状态。 + */ + enum class Status { + OK = 0, // 计算成功 + INVALID_INPUT, // 输入参数非法 + NO_CAMERA, // 未注入相机 + NO_NEW_FRAME, // 相机未取到新图像 + BAD_IMAGE, // 图像或内参非法 + NO_TAG, // 未检测到 tag + NO_OBSERVATION, // 无可用观测 + TARGET_NOT_LOCKED, // 尚未缓存任何 tag 锚点 + NO_MATCHING_TAG // 有观测,但没有命中已缓存的 tag + }; + + /** + * @brief 构造函数,支持直接注入抽象相机。 + * @param camera 抽象相机,可为空(后续可仅使用几何接口)。 + */ + explicit TagRelativeTarget3D(const std::shared_ptr& camera = nullptr); + + /** + * @brief 设置/替换相机对象。 + * @param camera 抽象相机。 + */ + void setCamera(const std::shared_ptr& camera) { camera_ = camera; } + + /** + * @brief 清空全部 tag 锚点。 + */ + void clear(); + + /** + * @brief 是否没有任何缓存锚点。 + * @return 为空返回 `true`。 + */ + bool empty() const { return anchors_in_tag_.empty(); } + + /** + * @brief 当前缓存锚点数量。 + * @return 锚点数量。 + */ + size_t anchorCount() const { return anchors_in_tag_.size(); } + + /** + * @brief 获取最近状态。 + * @return 最近状态枚举。 + */ + Status lastStatus() const { return last_status_; } + + /** + * @brief 状态枚举转字符串。 + * @param status 状态枚举。 + * @return 字符串常量。 + */ + static const char* statusToString(Status status); + + /** + * @brief 设置 AprilTag 边长。 + * @param tag_size_m tag 边长(米)。 + */ + void setTagSize(double tag_size_m); + + /** + * @brief 通过内部相机抓帧并检测 tag 观测(`T_c_t`)。 + * @param observations 输出观测列表。 + * @return 检测成功返回 `true`。 + */ + bool detectObservations(std::vector& observations); + + /** + * @brief 使用外部图像与内参检测 tag 观测(`T_c_t`)。 + * @param color 输入彩色/灰度图。 + * @param intrinsics 相机内参。 + * @param observations 输出观测列表。 + * @return 检测成功返回 `true`。 + */ + bool detectObservationsFromImage(const cv::Mat& color, + const device::Rs2Intrinsics& intrinsics, + std::vector& observations); + + /** + * @brief 使用内部相机检测结果直接建立/更新锚点。 + * @param p_c_target 目标点在相机坐标系的 3D 坐标(米)。 + * @param overwrite_existing 是否覆盖已存在锚点。 + * @return 成功建立至少一个锚点返回 `true`。 + */ + bool lockTargetInCamera(const Eigen::Vector3d& p_c_target, + bool overwrite_existing = true); + + /** + * @brief 使用内部相机检测结果直接恢复目标点相机坐标。 + * @param p_c_target_out 输出目标点相机坐标(米)。 + * @param used_tag_id_out 若非空,输出主导 tag id。 + * @param spread_out 若非空,输出多 tag 融合离散误差(米)。 + * @return 恢复成功返回 `true`。 + */ + bool resolveTargetInCamera(Eigen::Vector3d& p_c_target_out, + int* used_tag_id_out = nullptr, + double* spread_out = nullptr); + + /** + * @brief 根据“目标点相机坐标 + 可见 tag 观测”批量建立/更新各 tag 锚点。 + * @param p_c_target 目标点在相机坐标系的 3D 坐标(米)。 + * @param observations 可见 tag 观测集合。 + * @param overwrite_existing 是否覆盖已存在的同 id 锚点。 + * @return 成功建立至少一个锚点时返回 `true`。 + */ + bool lockTargetInCamera(const Eigen::Vector3d& p_c_target, + const std::vector& observations, + bool overwrite_existing = true); + + /** + * @brief 用单个 tag 观测建立/更新锚点。 + * @param tag_id tag id。 + * @param T_c_t tag 坐标系到相机坐标系变换。 + * @param p_c_target 目标点在相机坐标系的 3D 坐标(米)。 + * @return 建立成功返回 `true`。 + */ + bool upsertAnchorFromCamera(int tag_id, + const Eigen::Matrix4d& T_c_t, + const Eigen::Vector3d& p_c_target); + + /** + * @brief 根据当前可见 tag,恢复目标点在当前相机坐标系下的 3D 坐标。 + * @param observations 当前可见 tag 观测。 + * @param p_c_target_out 输出目标点相机坐标(米)。 + * @param used_tag_id_out 若非空,输出本次主导 tag id(仅 1 个匹配时等于该 id,多匹配时为最大权重 id)。 + * @param spread_out 若非空,输出多 tag 融合后最大离散误差(米)。 + * @return 恢复成功返回 `true`。 + */ + bool resolveTargetInCamera(const std::vector& observations, + Eigen::Vector3d& p_c_target_out, + int* used_tag_id_out = nullptr, + double* spread_out = nullptr); + + /** + * @brief 是否已缓存指定 tag 的锚点。 + * @param tag_id tag id。 + * @return 命中返回 `true`。 + */ + bool hasAnchorForTag(int tag_id) const; + + /** + * @brief 获取目标点在指定 tag 坐标系下的 3D 相对坐标。 + * @param tag_id tag id。 + * @param p_t_target_out 输出 `p_t_target`(米)。 + * @return 获取成功返回 `true`。 + */ + bool getAnchorInTag(int tag_id, Eigen::Vector3d& p_t_target_out) const; + + /** + * @brief 获取构造时注入的相机对象。 + * @return 抽象相机智能指针。 + */ + const std::shared_ptr& camera() const { return camera_; } + +private: + static bool isFiniteMatrix(const Eigen::Matrix4d& T); + static bool isFiniteVector(const Eigen::Vector3d& p); + static Eigen::Vector3d pointTagToCamera(const Eigen::Matrix4d& T_c_t, const Eigen::Vector3d& p_t); + static Eigen::Vector3d pointCameraToTag(const Eigen::Matrix4d& T_c_t, const Eigen::Vector3d& p_c); + +private: + // 缓存: tag_id -> 目标点在该 tag 坐标系下的 3D 坐标。 + std::unordered_map anchors_in_tag_; + // 抽象相机对象(由构造函数注入)。 + std::shared_ptr camera_{nullptr}; + // AprilTag 检测器。 + vpDetectorAprilTag detector_{vpDetectorAprilTag::TAG_36h11}; + // tag 边长(米)。 + double tag_size_m_{0.12}; + // 最近一次调用状态。 + Status last_status_{Status::TARGET_NOT_LOCKED}; +}; + +} // namespace cmvr::perception diff --git a/cmvr-es/perception/src/tag_relative_target_3d.cpp b/cmvr-es/perception/src/tag_relative_target_3d.cpp new file mode 100644 index 00000000..ffae4a32 --- /dev/null +++ b/cmvr-es/perception/src/tag_relative_target_3d.cpp @@ -0,0 +1,356 @@ +// +// Created by lgv on 2026/2/26. +// + +#include "perception/include/tag_relative_target_3d.h" + +#include +#include +#include +#include + +#include +#include +#include + +namespace cmvr::perception { + +TagRelativeTarget3D::TagRelativeTarget3D(const std::shared_ptr& camera) + : camera_(camera) { + detector_.setAprilTagPoseEstimationMethod(vpDetectorAprilTag::HOMOGRAPHY_VIRTUAL_VS); +} + +const char* TagRelativeTarget3D::statusToString(Status status) { + switch (status) { + case Status::OK: return "ok"; + case Status::INVALID_INPUT: return "invalid_input"; + case Status::NO_CAMERA: return "no_camera"; + case Status::NO_NEW_FRAME: return "no_new_frame"; + case Status::BAD_IMAGE: return "bad_image"; + case Status::NO_TAG: return "no_tag"; + case Status::NO_OBSERVATION: return "no_observation"; + case Status::TARGET_NOT_LOCKED: return "target_not_locked"; + case Status::NO_MATCHING_TAG: return "no_matching_tag"; + default: return "unknown"; + } +} + +void TagRelativeTarget3D::setTagSize(double tag_size_m) { + if (std::isfinite(tag_size_m) && tag_size_m > 0.0) { + tag_size_m_ = tag_size_m; + } +} + +bool TagRelativeTarget3D::detectObservations(std::vector& observations) { + observations.clear(); + + if (!camera_) { + last_status_ = Status::NO_CAMERA; + return false; + } + + cv::Mat color; + device::Rs2Intrinsics intrinsics{}; + try { + // Tag 检测只需要彩色图像与相机内参,避免依赖深度流导致阻塞/超时。 + camera_->getRGBImage(color, intrinsics); + } catch (const std::exception&) { + last_status_ = Status::NO_NEW_FRAME; + return false; + } + + if (color.empty()) { + last_status_ = Status::NO_NEW_FRAME; + return false; + } + + return detectObservationsFromImage(color, intrinsics, observations); +} + +bool TagRelativeTarget3D::lockTargetInCamera(const Eigen::Vector3d& p_c_target, + bool overwrite_existing) { + std::vector observations; + if (!detectObservations(observations)) { + return false; + } + return lockTargetInCamera(p_c_target, observations, overwrite_existing); +} + +bool TagRelativeTarget3D::resolveTargetInCamera(Eigen::Vector3d& p_c_target_out, + int* used_tag_id_out, + double* spread_out) { + std::vector observations; + if (!detectObservations(observations)) { + return false; + } + return resolveTargetInCamera(observations, p_c_target_out, used_tag_id_out, spread_out); +} + +void TagRelativeTarget3D::clear() { + anchors_in_tag_.clear(); + last_status_ = Status::TARGET_NOT_LOCKED; +} + +bool TagRelativeTarget3D::lockTargetInCamera(const Eigen::Vector3d& p_c_target, + const std::vector& observations, + bool overwrite_existing) { + if (!isFiniteVector(p_c_target)) { + last_status_ = Status::INVALID_INPUT; + return false; + } + if (observations.empty()) { + last_status_ = Status::NO_OBSERVATION; + return false; + } + + size_t updated = 0; + for (const auto& obs : observations) { + if (obs.tag_id < 0 || !isFiniteMatrix(obs.T_c_t)) { + continue; + } + if (!overwrite_existing && anchors_in_tag_.find(obs.tag_id) != anchors_in_tag_.end()) { + continue; + } + anchors_in_tag_[obs.tag_id] = pointCameraToTag(obs.T_c_t, p_c_target); + ++updated; + } + + if (updated == 0) { + last_status_ = Status::INVALID_INPUT; + return false; + } + + last_status_ = Status::OK; + return true; +} + +bool TagRelativeTarget3D::upsertAnchorFromCamera(int tag_id, + const Eigen::Matrix4d& T_c_t, + const Eigen::Vector3d& p_c_target) { + if (tag_id < 0 || !isFiniteMatrix(T_c_t) || !isFiniteVector(p_c_target)) { + last_status_ = Status::INVALID_INPUT; + return false; + } + + anchors_in_tag_[tag_id] = pointCameraToTag(T_c_t, p_c_target); + last_status_ = Status::OK; + return true; +} + +bool TagRelativeTarget3D::resolveTargetInCamera(const std::vector& observations, + Eigen::Vector3d& p_c_target_out, + int* used_tag_id_out, + double* spread_out) { + if (used_tag_id_out) { + *used_tag_id_out = -1; + } + if (spread_out) { + *spread_out = 0.0; + } + + if (anchors_in_tag_.empty()) { + last_status_ = Status::TARGET_NOT_LOCKED; + return false; + } + if (observations.empty()) { + last_status_ = Status::NO_OBSERVATION; + return false; + } + + std::vector matched_points; + matched_points.reserve(observations.size()); + + Eigen::Vector3d weighted_sum = Eigen::Vector3d::Zero(); + double weight_sum = 0.0; + double best_weight = -std::numeric_limits::infinity(); + int best_id = -1; + + for (const auto& obs : observations) { + if (obs.tag_id < 0 || !isFiniteMatrix(obs.T_c_t)) { + continue; + } + const auto it = anchors_in_tag_.find(obs.tag_id); + if (it == anchors_in_tag_.end()) { + continue; + } + + const Eigen::Vector3d p_c = pointTagToCamera(obs.T_c_t, it->second); + if (!isFiniteVector(p_c)) { + continue; + } + + double w = obs.weight; + if (!std::isfinite(w) || w <= 0.0) { + w = 1.0; + } + + matched_points.push_back(p_c); + weighted_sum += w * p_c; + weight_sum += w; + + if (w > best_weight) { + best_weight = w; + best_id = obs.tag_id; + } + } + + if (matched_points.empty() || weight_sum <= 0.0) { + last_status_ = Status::NO_MATCHING_TAG; + return false; + } + + p_c_target_out = weighted_sum / weight_sum; + + if (spread_out) { + double max_err = 0.0; + for (const auto& p : matched_points) { + max_err = std::max(max_err, (p - p_c_target_out).norm()); + } + *spread_out = max_err; + } + + if (used_tag_id_out) { + *used_tag_id_out = best_id; + } + + last_status_ = Status::OK; + return true; +} + +bool TagRelativeTarget3D::hasAnchorForTag(int tag_id) const { + return anchors_in_tag_.find(tag_id) != anchors_in_tag_.end(); +} + +bool TagRelativeTarget3D::getAnchorInTag(int tag_id, Eigen::Vector3d& p_t_target_out) const { + const auto it = anchors_in_tag_.find(tag_id); + if (it == anchors_in_tag_.end()) { + return false; + } + p_t_target_out = it->second; + return true; +} + +bool TagRelativeTarget3D::isFiniteMatrix(const Eigen::Matrix4d& T) { + for (int r = 0; r < 4; ++r) { + for (int c = 0; c < 4; ++c) { + if (!std::isfinite(T(r, c))) { + return false; + } + } + } + return true; +} + +bool TagRelativeTarget3D::isFiniteVector(const Eigen::Vector3d& p) { + return std::isfinite(p.x()) && std::isfinite(p.y()) && std::isfinite(p.z()); +} + +bool TagRelativeTarget3D::detectObservationsFromImage(const cv::Mat& color, + const device::Rs2Intrinsics& intrinsics, + std::vector& observations) { + observations.clear(); + + if (color.empty()) { + last_status_ = Status::NO_NEW_FRAME; + return false; + } + if (color.channels() != 1 && color.channels() != 3 && color.channels() != 4) { + last_status_ = Status::BAD_IMAGE; + return false; + } + + const double fx = static_cast(intrinsics.fx); + const double fy = static_cast(intrinsics.fy); + const double cx = static_cast(intrinsics.cx); + const double cy = static_cast(intrinsics.cy); + if (!std::isfinite(fx) || !std::isfinite(fy) || fx <= 0.0 || fy <= 0.0) { + last_status_ = Status::BAD_IMAGE; + return false; + } + + cv::Mat gray; + if (color.channels() == 1) { + gray = color; + } else if (color.channels() == 3) { + cv::cvtColor(color, gray, cv::COLOR_BGR2GRAY); + } else { + cv::cvtColor(color, gray, cv::COLOR_BGRA2GRAY); + } + if (gray.empty() || gray.type() != CV_8UC1) { + last_status_ = Status::BAD_IMAGE; + return false; + } + if (!gray.isContinuous()) { + gray = gray.clone(); + } + + const int width = gray.cols; + const int height = gray.rows; + vpCameraParameters cam; + cam.initPersProjWithoutDistortion(fx, fy, cx, cy); + + vpImage I(height, width); + for (int y = 0; y < height; ++y) { + std::memcpy(I[y], gray.ptr(y), static_cast(width)); + } + + std::vector cMo_vec; + const bool detected = detector_.detect(I, tag_size_m_, cam, cMo_vec); + if (!detected || cMo_vec.empty()) { + last_status_ = Status::NO_TAG; + return false; + } + + const std::vector tag_ids = detector_.getTagsId(); + const std::vector margins = detector_.getTagsDecisionMargin(); + const size_t pair_size = std::min(tag_ids.size(), cMo_vec.size()); + if (pair_size == 0) { + last_status_ = Status::NO_TAG; + return false; + } + + observations.reserve(pair_size); + for (size_t i = 0; i < pair_size; ++i) { + Eigen::Matrix4d T = Eigen::Matrix4d::Identity(); + const vpHomogeneousMatrix& cMo = cMo_vec[i]; + for (int r = 0; r < 3; ++r) { + for (int c = 0; c < 3; ++c) { + T(r, c) = cMo[r][c]; + } + } + T(0, 3) = cMo[0][3]; + T(1, 3) = cMo[1][3]; + T(2, 3) = cMo[2][3]; + + double w = 1.0; + if (i < margins.size() && std::isfinite(margins[i]) && margins[i] > 0.0f) { + w = static_cast(margins[i]); + } + + observations.push_back(TagPoseObservation{tag_ids[i], T, w}); + } + + if (observations.empty()) { + last_status_ = Status::NO_TAG; + return false; + } + + last_status_ = Status::OK; + return true; +} + +Eigen::Vector3d TagRelativeTarget3D::pointTagToCamera(const Eigen::Matrix4d& T_c_t, + const Eigen::Vector3d& p_t) { + const Eigen::Matrix3d R = T_c_t.block<3, 3>(0, 0); + const Eigen::Vector3d t = T_c_t.block<3, 1>(0, 3); + return R * p_t + t; +} + +Eigen::Vector3d TagRelativeTarget3D::pointCameraToTag(const Eigen::Matrix4d& T_c_t, + const Eigen::Vector3d& p_c) { + const Eigen::Matrix3d R = T_c_t.block<3, 3>(0, 0); + const Eigen::Vector3d t = T_c_t.block<3, 1>(0, 3); + return R.transpose() * (p_c - t); +} + +} // namespace cmvr::perception diff --git a/cmvr-es/perception/src/tag_relative_target_3d_test.cpp b/cmvr-es/perception/src/tag_relative_target_3d_test.cpp new file mode 100644 index 00000000..5672ff23 --- /dev/null +++ b/cmvr-es/perception/src/tag_relative_target_3d_test.cpp @@ -0,0 +1,524 @@ +// +// Created by lgv on 2026/2/26. +// + +#include "perception/include/tag_relative_target_3d.h" +#include "devices/camera/realsense_camera/include/realsense_camera.h" + +#include + +#include +#include +#include +#include +#include +#include +#include + +namespace { + +// 直接在这里改测试参数。 +constexpr const char* kRsSerial = "243122074587"; +// Target pixel used for depth sampling. Negative means image center. +constexpr int kTargetU = 350; +constexpr int kTargetV = 250; +constexpr double kTagSize = 0.02; +// <= 0 means loop until user abort. +constexpr int kTries = -1; +constexpr int kWidth = 1280; +constexpr int kHeight = 720; +constexpr int kFps = 30; +constexpr const char* kWindowName = "TagRelativeTarget3DRealSenseTest"; +constexpr int kWarmupMaxTries = 60; +constexpr int kWarmupSleepMs = 50; +constexpr int kFrameRetryMax = 3; +constexpr int kFrameRetrySleepMs = 25; +constexpr int kLogEveryNFrames = 20; +// Depth sample window radius (pixels): +// 1 -> 3x3, 2 -> 5x5, 3 -> 7x7. +constexpr int kDepthSampleRadiusTarget = 3; +constexpr int kDepthSampleRadiusTag = 3; + +struct FramePack { + cv::Mat color; + cv::Mat depth; + cmvr::device::Rs2Intrinsics intrinsics{}; +}; + +bool sampleDepthMeters(const cv::Mat& depth, int u, int v, double& z_m, int radius_px) { + if (depth.empty() || depth.channels() != 1) return false; + if (u < 0 || v < 0 || u >= depth.cols || v >= depth.rows) return false; + if (radius_px < 0) return false; + + std::vector valid; + const int side = radius_px * 2 + 1; + valid.reserve(static_cast(side * side)); + for (int dv = -radius_px; dv <= radius_px; ++dv) { + for (int du = -radius_px; du <= radius_px; ++du) { + const int uu = u + du; + const int vv = v + dv; + if (uu < 0 || vv < 0 || uu >= depth.cols || vv >= depth.rows) continue; + + double z = 0.0; + if (depth.type() == CV_16UC1) { + z = static_cast(depth.at(vv, uu)) * 1e-3; + } else if (depth.type() == CV_32FC1) { + z = static_cast(depth.at(vv, uu)); + } else { + return false; + } + if (std::isfinite(z) && z > 1e-4) { + valid.push_back(z); + } + } + } + if (valid.empty()) return false; + std::nth_element(valid.begin(), valid.begin() + valid.size() / 2, valid.end()); + z_m = valid[valid.size() / 2]; + return true; +} + +bool fetchRGBDFrame(const std::shared_ptr& camera, + FramePack& frame, + std::string& error_out) { + error_out.clear(); + for (int retry = 0; retry < kFrameRetryMax; ++retry) { + try { + camera->getRGBDImages(frame.color, frame.depth, frame.intrinsics); + if (!frame.color.empty() && !frame.depth.empty()) { + return true; + } + error_out = "empty_frame"; + } catch (const std::exception& e) { + error_out = e.what(); + } + if (retry + 1 < kFrameRetryMax) { + std::this_thread::sleep_for(std::chrono::milliseconds(kFrameRetrySleepMs)); + } + } + return false; +} + +bool projectPoint(const Eigen::Vector3d& p_c, + const cmvr::device::Rs2Intrinsics& K, + cv::Point& uv) { + if (!std::isfinite(p_c.x()) || !std::isfinite(p_c.y()) || !std::isfinite(p_c.z())) { + return false; + } + if (p_c.z() <= 1e-6) { + return false; + } + if (!std::isfinite(K.fx) || !std::isfinite(K.fy) || + !std::isfinite(K.cx) || !std::isfinite(K.cy) || + K.fx <= 0.0f || K.fy <= 0.0f) { + return false; + } + const double u = static_cast(K.fx) * (p_c.x() / p_c.z()) + static_cast(K.cx); + const double v = static_cast(K.fy) * (p_c.y() / p_c.z()) + static_cast(K.cy); + uv.x = static_cast(std::lround(u)); + uv.y = static_cast(std::lround(v)); + return true; +} + +bool backProjectPixelToCamera(const cmvr::device::Rs2Intrinsics& K, + int u, + int v, + double z_m, + Eigen::Vector3d& p_c) { + if (!std::isfinite(z_m) || z_m <= 1e-6) return false; + if (!std::isfinite(K.fx) || !std::isfinite(K.fy) || + !std::isfinite(K.cx) || !std::isfinite(K.cy) || + K.fx <= 0.0f || K.fy <= 0.0f) { + return false; + } + p_c.z() = z_m; + p_c.x() = (static_cast(u) - static_cast(K.cx)) / static_cast(K.fx) * z_m; + p_c.y() = (static_cast(v) - static_cast(K.cy)) / static_cast(K.fy) * z_m; + return true; +} + +void drawTagAxes(cv::Mat& img, + const Eigen::Matrix4d& T_c_t, + const cmvr::device::Rs2Intrinsics& K, + double axis_len, + int tag_id) { + const Eigen::Matrix3d R = T_c_t.block<3,3>(0,0); + const Eigen::Vector3d t = T_c_t.block<3,1>(0,3); + const Eigen::Vector3d o_c = t; + const Eigen::Vector3d x_c = R * Eigen::Vector3d(axis_len, 0, 0) + t; + const Eigen::Vector3d y_c = R * Eigen::Vector3d(0, axis_len, 0) + t; + const Eigen::Vector3d z_c = R * Eigen::Vector3d(0, 0, axis_len) + t; + + cv::Point o, x, y, z; + if (!projectPoint(o_c, K, o)) return; + if (projectPoint(x_c, K, x)) { + cv::line(img, o, x, cv::Scalar(0, 0, 255), 2); // X red + } + if (projectPoint(y_c, K, y)) { + cv::line(img, o, y, cv::Scalar(0, 255, 0), 2); // Y green + } + if (projectPoint(z_c, K, z)) { + cv::line(img, o, z, cv::Scalar(255, 0, 0), 2); // Z blue + } + cv::circle(img, o, 3, cv::Scalar(255, 255, 255), -1); + cv::putText(img, + "id=" + std::to_string(tag_id), + cv::Point(o.x + 6, o.y - 6), + cv::FONT_HERSHEY_SIMPLEX, + 0.45, + cv::Scalar(255, 255, 255), + 1); +} + +} // namespace + +TEST(TagRelativeTarget3DRealSenseTest, PrintTargetPointInDetectedTags) { + const std::string serial = kRsSerial; + if (serial.empty()) { + GTEST_SKIP() << "kRsSerial is empty, please set it in tag_relative_target_3d_test.cpp"; + } + + const double tag_size = kTagSize; + const int tries = kTries; + const bool infinite = (tries <= 0); + const int width = kWidth; + const int height = kHeight; + const int fps = kFps; + + std::cout << "[TagRelativeTarget3DTest] serial=" << serial + << " target_uv=[" << kTargetU << ", " << kTargetV << "]" + << " tag_size=" << tag_size + << " tries=" << tries << "\n"; + + cmvr::config::RealSenseCameraConfig cam_cfg; + cam_cfg.set_id("tag_relative_target_3d_test"); + cam_cfg.set_serialnumber(serial); + cam_cfg.set_width(width); + cam_cfg.set_height(height); + cam_cfg.set_fps(fps); + cam_cfg.set_codec("H265"); + cam_cfg.set_camera_mode(cmvr::config::CAMERA_MODE_PHOTO); + cam_cfg.set_stream_mode(cmvr::config::STREAM_MODE_RGBD); + cam_cfg.set_align_mode(cmvr::config::ALIGN_MODE_COLOR); + cam_cfg.set_buffer_size(30); + cam_cfg.set_sync(true); + cam_cfg.set_enable(true); + + auto camera = std::make_shared(cam_cfg); + cmvr::perception::TagRelativeTarget3D tracker(camera); + tracker.setTagSize(tag_size); + + ASSERT_NO_THROW(camera->init()); + ASSERT_NO_THROW(camera->start()); + struct CameraStopGuard { + std::shared_ptr cam; + ~CameraStopGuard() { + if (!cam) return; + try { + cam->stop(); + } catch (...) { + } + } + } stop_guard{camera}; + + bool window_enabled = true; + try { + cv::namedWindow(kWindowName, cv::WINDOW_NORMAL); + cv::resizeWindow(kWindowName, width, height); + cv::imshow(kWindowName, cv::Mat(height, width, CV_8UC3, cv::Scalar(20, 20, 20))); + cv::waitKey(1); + } catch (const cv::Exception& e) { + window_enabled = false; + std::cout << "[TagRelativeTarget3DTest] window disabled: " << e.what() << "\n"; + } + if (!window_enabled) { + GTEST_SKIP() << "OpenCV highgui is not available, skip windowed test."; + } + + bool ok = false; + bool user_abort = false; + int frame_fail_count = 0; + int detect_success_count = 0; + int target_valid_count = 0; + int lock_success_count = 0; + int printed_count = 0; + FramePack last_good_frame; + last_good_frame.color = cv::Mat(height, width, CV_8UC3, cv::Scalar(20, 20, 20)); + bool has_last_good_frame = false; + const auto t_loop_start = std::chrono::steady_clock::now(); + + // Warmup: try to get RGBD frames after pipeline start. + bool warmup_ok = false; + bool warmup_abort = false; + for (int i = 0; i < kWarmupMaxTries; ++i) { + FramePack warm_frame; + std::string warm_error; + warmup_ok = fetchRGBDFrame(camera, warm_frame, warm_error); + if (warmup_ok) { + break; + } + const int key = cv::waitKey(1); + if (key == 27 || key == 'q' || key == 'Q') { + warmup_abort = true; + break; + } + std::this_thread::sleep_for(std::chrono::milliseconds(kWarmupSleepMs)); + } + if (warmup_abort) { + GTEST_SKIP() << "User aborted during warmup"; + } + if (!warmup_ok) { + std::cout << "[TagRelativeTarget3DTest] warmup failed, continue running and retry per frame\n"; + } + + for (int i = 0; infinite || i < tries; ++i) { + FramePack frame; + frame.color = cv::Mat(height, width, CV_8UC3, cv::Scalar(20, 20, 20)); + std::string frame_error; + const bool frame_ok = fetchRGBDFrame(camera, frame, frame_error); + if (!frame_ok) { + ++frame_fail_count; + if (has_last_good_frame) { + frame.color = last_good_frame.color.clone(); + frame.depth = last_good_frame.depth.clone(); + frame.intrinsics = last_good_frame.intrinsics; + } else { + frame.color = cv::Mat(height, width, CV_8UC3, cv::Scalar(20, 20, 20)); + } + } else { + last_good_frame.color = frame.color.clone(); + last_good_frame.depth = frame.depth.clone(); + last_good_frame.intrinsics = frame.intrinsics; + has_last_good_frame = true; + } + + std::vector observations; + const bool detected = tracker.detectObservationsFromImage(frame.color, frame.intrinsics, observations); + const auto status = tracker.lastStatus(); + const char* status_str = cmvr::perception::TagRelativeTarget3D::statusToString(status); + if (detected) { + ++detect_success_count; + } + + Eigen::Vector3d p_c_target = Eigen::Vector3d::Zero(); + const int target_u = (kTargetU >= 0) ? kTargetU : (frame.color.cols / 2); + const int target_v = (kTargetV >= 0) ? kTargetV : (frame.color.rows / 2); + double z_depth_m = 0.0; + bool target_pc_valid = false; + if (!frame.color.empty()) { + const bool depth_ok = sampleDepthMeters(frame.depth, + target_u, + target_v, + z_depth_m, + kDepthSampleRadiusTarget); + if (depth_ok && std::isfinite(frame.intrinsics.fx) && std::isfinite(frame.intrinsics.fy) && + std::isfinite(frame.intrinsics.cx) && std::isfinite(frame.intrinsics.cy) && + frame.intrinsics.fx > 1e-6f && frame.intrinsics.fy > 1e-6f) { + p_c_target.z() = z_depth_m; + p_c_target.x() = (static_cast(target_u) - static_cast(frame.intrinsics.cx)) + / static_cast(frame.intrinsics.fx) * z_depth_m; + p_c_target.y() = (static_cast(target_v) - static_cast(frame.intrinsics.cy)) + / static_cast(frame.intrinsics.fy) * z_depth_m; + target_pc_valid = true; + ++target_valid_count; + } + } + + cv::Mat vis = frame.color.clone(); + cv::drawMarker(vis, + cv::Point(target_u, target_v), + cv::Scalar(0, 255, 255), + cv::MARKER_CROSS, + 16, + 2); + cv::putText(vis, + std::string("status: ") + status_str, + cv::Point(12, 28), + cv::FONT_HERSHEY_SIMPLEX, + 0.7, + cv::Scalar(0, 255, 0), + 2); + cv::putText(vis, + "press q / Esc to quit", + cv::Point(12, 56), + cv::FONT_HERSHEY_SIMPLEX, + 0.6, + cv::Scalar(0, 255, 255), + 2); + cv::putText(vis, + "tags=" + std::to_string(observations.size()) + + " frame_fail=" + std::to_string(frame_fail_count), + cv::Point(12, 84), + cv::FONT_HERSHEY_SIMPLEX, + 0.5, + cv::Scalar(200, 200, 255), + 1); + if (!frame_error.empty()) { + cv::putText(vis, + "frame error: " + frame_error, + cv::Point(12, 106), + cv::FONT_HERSHEY_SIMPLEX, + 0.45, + cv::Scalar(0, 0, 255), + 1); + } + cv::putText(vis, + std::string("depth@target: ") + (target_pc_valid ? std::to_string(z_depth_m) + "m" : "invalid"), + cv::Point(12, 128), + cv::FONT_HERSHEY_SIMPLEX, + 0.5, + target_pc_valid ? cv::Scalar(0, 255, 0) : cv::Scalar(0, 0, 255), + 1); + + // Draw detected tag axes (camera frame). + if (detected && !observations.empty()) { + const double axis_len = tag_size * 0.5; + for (const auto& obs : observations) { + drawTagAxes(vis, obs.T_c_t, frame.intrinsics, axis_len, obs.tag_id); + } + } + + // Draw target point (projected from camera coordinates). + if (std::isfinite(frame.intrinsics.fx) && std::isfinite(frame.intrinsics.fy) && + std::isfinite(frame.intrinsics.cx) && std::isfinite(frame.intrinsics.cy) && + p_c_target.z() > 1e-6) { + const double u = frame.intrinsics.fx * (p_c_target.x() / p_c_target.z()) + frame.intrinsics.cx; + const double v = frame.intrinsics.fy * (p_c_target.y() / p_c_target.z()) + frame.intrinsics.cy; + const int ui = static_cast(std::lround(u)); + const int vi = static_cast(std::lround(v)); + if (ui >= 0 && ui < vis.cols && vi >= 0 && vi < vis.rows) { + cv::circle(vis, cv::Point(ui, vi), 6, cv::Scalar(0, 0, 255), 2); + cv::putText(vis, + "target", + cv::Point(ui + 8, vi - 8), + cv::FONT_HERSHEY_SIMPLEX, + 0.5, + cv::Scalar(0, 0, 255), + 1); + } + } + try { + cv::imshow(kWindowName, vis); + const int key = cv::waitKey(1); + if (key == 27 || key == 'q' || key == 'Q') { + user_abort = true; + break; + } + } catch (const cv::Exception& e) { + std::cout << "[TagRelativeTarget3DTest] window error: " << e.what() << "\n"; + user_abort = true; + break; + } + + if (!detected) { + if (((i + 1) % kLogEveryNFrames) == 0) { + std::cout << "[TagRelativeTarget3DTest] detect failed: " + << status_str + << " (try=" << (i + 1) << "/" << tries << ")\n"; + } + std::this_thread::sleep_for(std::chrono::milliseconds(30)); + continue; + } + + if (!observations.empty()) { + const double tag_tz = observations.front().T_c_t(2, 3); + if (((i + 1) % kLogEveryNFrames) == 0) { + std::cout << "[TagRelativeTarget3DTest] t.z=" << tag_tz + << " depth@target=" << (target_pc_valid ? z_depth_m : -1.0) + << " tag_id=" << observations.front().tag_id << "\n"; + } + } + + for (const auto& obs : observations) { + const Eigen::Vector3d p_c_tag_pose = obs.T_c_t.block<3, 1>(0, 3); + cv::Point uv_tag; + double z_tag_depth_m = 0.0; + Eigen::Vector3d p_c_tag_depth = Eigen::Vector3d::Zero(); + const bool uv_ok = projectPoint(p_c_tag_pose, frame.intrinsics, uv_tag); + bool tag_depth_ok = false; + if (uv_ok) { + tag_depth_ok = sampleDepthMeters(frame.depth, + uv_tag.x, + uv_tag.y, + z_tag_depth_m, + kDepthSampleRadiusTag) && + backProjectPixelToCamera(frame.intrinsics, + uv_tag.x, + uv_tag.y, + z_tag_depth_m, + p_c_tag_depth); + } + + std::cout << "[TagRelativeTarget3DTest] tag_id=" << obs.tag_id + << " pose_p_c=[" << p_c_tag_pose.x() << ", " << p_c_tag_pose.y() << ", " << p_c_tag_pose.z() << "]" + << " depth_p_c=" + << (tag_depth_ok + ? "[" + std::to_string(p_c_tag_depth.x()) + ", " + + std::to_string(p_c_tag_depth.y()) + ", " + + std::to_string(p_c_tag_depth.z()) + "]" + : "[invalid]") + << " uv=[" << (uv_ok ? std::to_string(uv_tag.x) : "invalid") + << ", " << (uv_ok ? std::to_string(uv_tag.y) : "invalid") << "]\n"; + } + + std::cout << "[TagRelativeTarget3DTest] target_depth_p_c=" + << (target_pc_valid + ? "[" + std::to_string(p_c_target.x()) + ", " + + std::to_string(p_c_target.y()) + ", " + + std::to_string(p_c_target.z()) + "]" + : "[invalid]") + << " target_uv=[" << target_u << ", " << target_v << "]\n"; + + if (!target_pc_valid) { + if (((i + 1) % kLogEveryNFrames) == 0) { + std::cout << "[TagRelativeTarget3DTest] skip lock: invalid depth at target pixel\n"; + } + std::this_thread::sleep_for(std::chrono::milliseconds(30)); + continue; + } + + if (!tracker.lockTargetInCamera(p_c_target, observations, true)) { + if (((i + 1) % kLogEveryNFrames) == 0) { + std::cout << "[TagRelativeTarget3DTest] lock failed: " + << cmvr::perception::TagRelativeTarget3D::statusToString(tracker.lastStatus()) + << "\n"; + } + std::this_thread::sleep_for(std::chrono::milliseconds(30)); + continue; + } + ++lock_success_count; + + std::cout << "[TagRelativeTarget3DTest] detected_tags=" << observations.size() << "\n"; + for (const auto& obs : observations) { + Eigen::Vector3d p_t = Eigen::Vector3d::Zero(); + if (!tracker.getAnchorInTag(obs.tag_id, p_t)) { + continue; + } + std::cout << " tag_id=" << obs.tag_id + << " p_t_target=[" << p_t.x() << ", " << p_t.y() << ", " << p_t.z() << "]\n"; + } + ++printed_count; + + ok = true; + } + + try { + cv::destroyWindow(kWindowName); + } catch (...) { + // ignore window destroy errors in headless environments + } + + if (!user_abort && !infinite) { + EXPECT_TRUE(ok) << "No valid tag detected in " << tries << " tries"; + } + const auto t_loop_end = std::chrono::steady_clock::now(); + const double total_s = std::chrono::duration_cast>(t_loop_end - t_loop_start).count(); + std::cout << "[TagRelativeTarget3DTest] summary " + << "detect_ok=" << detect_success_count + << " target_valid=" << target_valid_count + << " lock_ok=" << lock_success_count + << " printed=" << printed_count + << " frame_fail=" << frame_fail_count + << " duration_s=" << total_s + << "\n"; +} diff --git a/dependency/x86/third_party/opencv/4.13.0/bin/opencv_annotation b/dependency/x86/third_party/opencv/4.13.0/bin/opencv_annotation index 65dd28f3f6204d40466884ee9a0702f12c65e502..6e04d27aa5a636b91ca341baa89506afdd7dce30 100755 GIT binary patch delta 5210 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 delta 5139 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 diff --git a/dependency/x86/third_party/opencv/4.13.0/bin/opencv_interactive-calibration b/dependency/x86/third_party/opencv/4.13.0/bin/opencv_interactive-calibration index d4431ea9ff036dffbea34b04f60ee507f4065738..1137b811aae776eeeb59472df6a9db6045b21962 100755 GIT binary patch delta 41401 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

wH>?#R;TY0TMyxS;S$6? znjVMo<7E6i@ilw|OxPld4zZdc8C6wh@-TBn?Z;m`Ra&CHvT}OiMGm_k0gr4!xaG=Q z_H{kXf?2twp~JozG$8TwZ;~d8={c;=zPudfAeBJp|H7Jz$TO^^7=D!blpv)YWsPwV zyYJ9ZmReF*)G^kWR&(*gF}(MldyHkowhXgaW;Fc&|JN9Dftsu@V5NOykF%JPKEm}H z;>Jnl=jtykmb;5AmRys?vT`2&3D;AsimP!Iu8-m0Q2aZ&(qf4e5vN#n`eVfV5>Bz9 zHl97PsY}2PEFI7VyIKp%3u!03@76gMTE0ZHU9YhgBJLVHpPVzJ$U?7*BIg!a@&Mxj z-vH(;h89~y8_)|+(k@GiEOP;S0`|qkv=$Km_YU1|!2N)y0RzkFbXNh-1I`n8#C8N7 zFv$u3SArEqmX$6#-AO=$t4=4aEV8&&&?W2UqTo_dr&|x01NbXoLo8gc0Ji|ft%70v zE^i^A&I5)3F9U{r4~2NJNCb5AgdxC_fH^-DSr#Ep{sMIK(do{vDYCo=ybBoUr_*Ju zFS4u!bj1%=dR9-?>Ha|>t2z|^RAh;V=Xro{05dihSze+A@mq>4O`te(D;z;?7Xn@e z%)y3b3uc7GUy3Z(AfEx4fykv}XW~*8bwGc>6l~!V05h@YJWKFoktGC?Ed-2CMj_`9 zga|Mak3n+)(*aikW&maq9WWR0Jm6)(5IkfyLsw+n039$BFc+{8M^tv`n)5inOaaV$ z0fT_){}fq#&_yn3v3PAF%wYy?aM%mT~= zybP#wv{-!5mm#>(uoN&7a0_5OU=Cmc;6=bhKp8L{@I7EApi6l)1kfMwJYW;Ryy})@ zOB@P1+`mWwbOB5P^Z}d$7y`HwFcL5mFdi@$Fca`Dpi2#l#l{(i00RIcaTBF0U?E@% zpi2O*CITj47P$+USJz_kLK5n5iGa7in^hDfoB{&u#rR>KKPmIX^oNply=rb1% zAxSfrSuBM#3IJ^?!!V!$Fb^;gun;g3P`4bB0!(&6VJHedfKvb?0n-8F0oMX10`3P) z0Xz$s4wwg+0r(Oy6VR>-3<7!qo(Bv8%ma)DEClQcs9RyNi~w{2Oab%(TvP?)KLmx1 zKtuv&0mcKK2TTCG3z!J_1~3G3UPG(`nScp^kv|{_0d*PR2MqZUk;1so0UQLFu?CR@ z%mX|R7`fJB(P4%1S%EH!obMB7q!>ada2HKc;LK;)jYF{4mb`yi2YN%$8pT<4+s09*$v9R23;F>sh-ln?RI{~bdH4juLp7YW=;;4nogpGbU% zz*He{30Pun>Y)2tmv=EsvE>bO%S4s;nJvoQ!}ZBrvuJb=r(chM6W#Bz4!CTv?jEaN zNyfnwW)I!;?eF6qY^Csgz`WT|5&i(L$8sNu{txhy9Ip+(f57VdzBCnCFc5V%I%IiypP4qZ z%gjSVbn*BX0t*S^*#p*vEfFy?u6kbNrDPBbDN^?JGQ5tQwl&H`G zP)`JHE!nOsT`m%zJ!G9(6JdS`kJ81Chpb}6Tz88Fi<0u84x)u)PAObGaH+r*ClT=t z0xm`1cBrZX14#K0iM9btOR;AFx2Tlb-N2=bPQ@xHYw1HOu4yW)JuB2ySf`T>Eni|a zRMe)1Sd#)#p@tOWXex+AB~@I1gp;&fcTw~RkKi_<>SIJBK}0>q;qhGp?qbGcT!tSi zmOaLELA=O=6+a}#@>KxKfq@`P1k z&BQ-XFw!=P(5FDI6y2V((JW9Ldx`_^`)MM$0C|@nIu)>rb*^DmK_iuq5(Q+yW#EdN zU<9QQxQh+NyaLviEfrS^kTOZ4b|F;Ti1vkwp|nE0NV_pdTrGrZH}L^gwotTx2A&l0 z^)sYiOK}V}=}nAy_zdG_sR(}#9-~MD(7)+``Au{x!sJl(8FLVp=Qy5B5uIM(HzWIJ zi}f$?@_v68ary-$zZ0G>S#{6dJuH?6n⁡ZdxLN8z^?XWBy_yc;Mcum(cKVmU#Y> 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 Do=s$l diff --git a/dependency/x86/third_party/opencv/4.13.0/bin/opencv_version b/dependency/x86/third_party/opencv/4.13.0/bin/opencv_version index 0e67f0e9de8d25d30f0d2d24696b22e870ce8a37..9f520d6743f0f44fbe3e446f709fa5021e0601ec 100755 GIT binary patch delta 599 zcmY+CPiPZS5XN`j3fZL!iN=IAL02nQC}9zV6zw5VX`?l$@uIb0t0lX+$Ts9+0yeFe z3Oy9(AV`ErJ@n8+%ENyLF&=UV60wCU2!hgJQYl#5Q@uQAyCOO;-*4x8^L7|^*BflT z!74FO!yVFgg!x%8z*kMXcx4Y@Y%B z_?R?_i=-)pP!Mdcg~Wd7<=TljgG2mU?^7ABa9?bh!6a{;+K}NS|I{}w!wL?bi@;}` zBK?TZNEfk5`WAN&M4*N-(%1afz)-LwXJxXZ*X@yP?l#tMoaWw}S@}P6B5jQ4Xn|dn z!*wC%oMqk#@t)u%wu$8>A=W^WYQz#FV_Ap<@nTDeDzQkMA=_>XAyHqE=qF06Ld1ww zVu`4)3E_3_Q}|s-kWXQ^xmRm{6XJ;Do$+`b9Hu-@S;4Dj7aYY2GpOkenzO?>b;D_# zrnGRu+ykRnGrQph{xtgnFS{fu6x!)gW@zkrYH?l{#-w!t=JAo$2@1ZkqENvt>oOd~ zWTq3Q_*mwE59jhai>Gmc1@KE=Vg1{W_X`S3x~5)G)YP9ZZu4V>=N>5G>ZAcxuHB95 g@Cq-@8tOm)!faISF=;wQ57wzFXWXjH)h8|X8z}L{b^rhX delta 580 zcmYk3K}b|l6o%iqPndaDFfT@@r%(@+48n$JU^E0LQNxkQYL~4n=e@TH4TG8yjB+u8 ztB%AhEnO72NN(n)FsOwCj%hT3M$lqlMi7$L!R>#}5FPmc@1AqdJzVZRD2RiCc%2}l z?ud36b#j2BWG<_wfsH!*;6ovpJ6} M>s7O?G#1O^FIi~4X8-^I diff --git a/dependency/x86/third_party/opencv/4.13.0/bin/opencv_visualisation b/dependency/x86/third_party/opencv/4.13.0/bin/opencv_visualisation index 46b32ff712534ac751d7876d910579f8ebb7f560..7ef1435d91efac3ab3eb097dcb53865b4197e5ef 100755 GIT binary patch delta 8435 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 delta 8415 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

@@R&Qi%ub UXq3W`Mhn>7U|F{Bytm1J0hpvK?f?J) diff --git a/dependency/x86/third_party/opencv/4.13.0/include/opencv4/opencv2/cvconfig.h b/dependency/x86/third_party/opencv/4.13.0/include/opencv4/opencv2/cvconfig.h index 424ad2dc..4bcbdb26 100644 --- a/dependency/x86/third_party/opencv/4.13.0/include/opencv4/opencv2/cvconfig.h +++ b/dependency/x86/third_party/opencv/4.13.0/include/opencv4/opencv2/cvconfig.h @@ -60,7 +60,7 @@ /* #undef HAVE_VULKAN */ /* Define to 1 if you have the header file. */ -#define HAVE_INTTYPES_H 1 +/* #undef HAVE_INTTYPES_H */ /* Intel Integrated Performance Primitives */ #define HAVE_IPP diff --git a/dependency/x86/third_party/opencv/4.13.0/lib/cmake/opencv4/OpenCVModules-release.cmake b/dependency/x86/third_party/opencv/4.13.0/lib/cmake/opencv4/OpenCVModules-release.cmake index a2b59ac3..4511fd51 100644 --- a/dependency/x86/third_party/opencv/4.13.0/lib/cmake/opencv4/OpenCVModules-release.cmake +++ b/dependency/x86/third_party/opencv/4.13.0/lib/cmake/opencv4/OpenCVModules-release.cmake @@ -78,6 +78,7 @@ list(APPEND _IMPORT_CHECK_FILES_FOR_opencv_features2d "${_IMPORT_PREFIX}/lib/lib # Import target "opencv_imgcodecs" for configuration "Release" set_property(TARGET opencv_imgcodecs APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(opencv_imgcodecs PROPERTIES + IMPORTED_LINK_DEPENDENT_LIBRARIES_RELEASE "openjp2" IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libopencv_imgcodecs.so.4.13.0" IMPORTED_SONAME_RELEASE "libopencv_imgcodecs.so.413" ) diff --git a/dependency/x86/third_party/opencv/4.13.0/lib/libopencv_calib3d.so.4.13.0 b/dependency/x86/third_party/opencv/4.13.0/lib/libopencv_calib3d.so.4.13.0 index 07ac05ee38ffddd96de45d8e4a7311741049e15a..2d1a290649532c1f8c8517b8784386fef98d1204 100644 GIT binary patch delta 174491 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

8Pg7W3$Q> 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%0D)jwv^pVHHTvbl<|-=#rW=S#PPWb&X)JBZaw z79C_>Iar}HJz1<5&Xi-Bls|ls;`EVI2Wh8+GPD}celn?=o^nvuDC=I?UQH~ArRO26 z2W9vn!Vbw?W&J4Y4mmE1eeCzhm4`GQqJKUn?G8Jx?0TqzH_oVPM>VtmFf)2?|NJl~zC%)Vm{ey- z{2%1#kWBc427Q5d=BbYPakJ<9e?&ZY5f(E~8ls*fYw+~_u6N|(%KBQf=UX)q&n<+- zESJMI#QBE|K7wcA@6q#Rh*3u;@H`@YkK+0H?|OS1alYQ{`P|Wn z=PJTtw#n9`cpj5($M7uuU4MY}oHd&XeK+fcv)i-;dF&YO$7B%>q`mPN?#CrDj1?mr z!j8V;2~(vpG9^sǗ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�^527HUS>}gGxqN9}jIZ;1Z^u&V_-VZn{=%R-?Ula02 zu{M$UsltxClJf@(K9<_%u}kKs2>V5XZ!O73l$v~UPIje^mowQ#A%0PrpvY`h_8T!O z0zw~N#+@l$X3U-Jnr+M5xsn6F@(7gYr2maSU+{g8@qE|AVfHDi;^~i9b6HWvYZ;t^ zBb=ORl&D3us6|L*wu}xI`jF5UKgEq&`aVKmBlIyzzgOjbE6nv}O7*Hl1DnzFSm)a* z40xVS)E|M4=_5iPmGl)t?-RAP9GecDeG|v@f#%mi@(4x{v^?#>A%3QmiYbt zUw%fesE$?L(})CeD3<$k5~`b#BhkN+=>Lt5kv846GC8jxtrsZxi9CtR&SKvF`2mQB zvr6LsQxs5e5zoI($USRKey+@aR`5#%FCgTuamM)DT|cV1-MO7eXD)l8dF{wkE%5uC z9AE0}#m|`}erJjQu;5n-eqoP9`|ORN7qV~hLlXZqf`1|YbKHKeLzHLve-eCloGlhO z;(`>mvv<<0Kf21U8Ohy|$3&GF6V;;<_0pJ7yvKT)=B)qxczx|`S9d%qc>Qcw|Eqk* zxjOR!K0jHspukflJkkQLoG`E7cJZCy_JU=J_QGUi*OonVT$y;Y!2o=>`|EmA``Kz= zyPsc;um`yu7(JEfva|leHvIw*mAR;EsY}aoe#ePXsc@gbt;+f7fl^mzgkUs8j&eG& zIIl<-`4g+)r!AnDg@t;)q*lJau$NweS4(_<3;eLa4@&$P$9ZeBnmB&o12gu^ov!)$&IV4BE8}Yc58|bmb6sof;r{%zK<#gi()Lad@0C^vz0~tASLa?n364r> z?|^L9#Log=v-(t(Gh_L^gs-A`S}vpW}>>AqBSzpIEU=DYkTbIW}$r{m93MuxKPVG4!X zFF?D8RVq3Oax6q5vK9eUI?{< z`{}RXe!li6SE?;9{77PLBUXA@qSMNwJa>2nmr+w@s4IEWx6(BF8+%}b;0YNuWrn(u z7iu6lF`GTKg|i}CL^lv=$5xJexio6Z;G^C97Dt0ZdfzkCWxn^g?{$GhUxNZy9#6!> zE%23HA_fxQ+XC+AIIf&X8NwoiN5Yl&c>#qI?iILC!uLt=qT|R_9S3pP-P=&qZ2D z=P@&F_@8hUt9HjpGu72|lDidoKG9tt*T3jo>B1Gx7$?a=_O^ig1TF_T*a99ExExF8 zDYM+42ieCJO6H4+UIztUDB)3o&zEp#J+GKY!hHhwnYi^z00cQG6oD6A^iq{ev-`f| zQI2wngZGxF(U+rK_~2SSOF@o{{N5|$JJkzu}shXh_N z;ZfTA9O~wy$Jd)Z!W3S56DcFO)>UJ};*TY6jx>v!zLMxktOeYm@RfX##P_s-7ttvc zQ&uX}JEd#^ftN^lNZ@`6j|jXTE5X7Bb4E5!mPowJIxWcVQ<>TfhS?;30t*gr&*~yh8F4+krC&`zR$+1`k)@ z)i#NSd=6fXFqb%1+qR)M2TfrVZgDl(%EIXv4r#0f+}Yv6e4oGz-b(Z#DDWZ)4|5!q zkrdbn-E4*$srKHEqB2}!J>C8_R}ad3&E+r(x4CxOFh}2PxH?}M&g2GC-%0dD>2hJ* z+X7xnkHZ|SGC=_Y7wr9#$(YDmBH_*~UR0HY`vmTk@Swm8Bs?ncB94=8xQ3}+c^tgm zL_CD_ULw+58V3#6$9DBH4mwAg(un@eRnam3+Kqh9>i;U2R<{p3x!XI1JSb%KWyY$A zYouLuo-q#Xb0v4lx6c1(iL8fjW)~kFigg`es=y1TbKESI+tYZcY!L!&-Fa2urI4?*ERa_th^~ zmA$mll&Mq?X~#rI!~5yKSH0iUs($(#s;fI`-4@LcO0YV!TmsHI6pTwUd0^q z?WeiFMYIANjPVood3H6jg?3zn4&Xay)L+A>;aa0{lHMJ8I#AYR1UPz%4oyZK!tWW` z*Xl!H}l z3u(br*er_Dup8ho>U)EJQbe~&L&(Q`Zk>_;i~ zDcHoBu?AzX_xr3Vs zo~86#k<)88YHwwcz-`)xW}1AEnL0=*TjL&0;+z`kArd4pdkT9;A(P z5LSl=G6b<0nZ{*&|Z29+4{#*>CNHZOpi-7pbjahfG-WUDQn0}8w6X9NH z?3$-%*wxTa#?kv&c%6GF>re1Jdd67rCr}Wr&lc+aRV7C0_hT?x*JZ5v)poIJMlJXu zsf*a4eV;ZiLVn*7Bdv^u!n2R2`q2x!80-ApUh8uGq^kU6G?t@4I~E5taEbnR)mKmT zOW>twEA(l0HQb-lm+Akobv0_2u}FmW8|jbfo8ff5u_M6h z{!cCUX}i>8vF>ajf9OZ#-XR!lo2^=%zDP`V0eAf z8rJPM7+KGnj-NDU1(|i_0A;O%#(BV4zD`fE*}BoH=U5d_QsZ-QG!miQ^(ZX5&zQSj zcd1z+vHr6j4LI{4kCFe7vGoO3mUpr7)r;&)cm-u|(C2ma{wr~eB?ov8EZOLl4f=1? zAbP_FRzu$@WBN;MPzA2o#=juE z&LvbCLNu{Rqpw5yw|1=3=rBrLwRfm_58ApI5A-TfuB>QxkN zT^zDH^~9}$*hr19vH{o5c>Oijm%ZqK1|sIifT=M%x5t?JSN#K34em2?w_mI`zo&IO(Ivy_H2yu59$rEl-(xKtqwHP4ogW*!cCnWBb~Lhf zv#D0;NL&BKTJ}3i{{YPJZmRqMF)K=?tUa)(9HQxaSUnnP#~xS+mKd`l%mrTuI#kOh zfFEhqJ_Nlq)tI}VRn+&RvHU~USA%Da+K*UazVD6fk6BAPe=;f$u`j`+M*U&*hAitE zhZWCf^X%r>@*OtD{F}9T^faY?s?W>vKg7GsOwmF==5t~=lU9AIKZ-G%6U7XtG;!MP zg0^J{rv*}tbx~Hb@~Dw^ltn+%&d5Jz&e?eL;BnN<+h80$ZVs)_X!#fV3%00nX`Qa4 z9t|}8D;B(CM%veA%pAtLZ}cf@mS2=+IaM%&m*&S5cT)ezw$=FRq}k_FDf<*G`1a7Q zQ;3-_MwRtQhsPTE-en-0xWqyhC~V4`2izG}3;A-&xkBu1iG49`f^| zl!uJU24*6Nqv;t;o;aWXYm*+cbu%`eWqn3DOS$Lt$M6i&>*sKM58;?$Z`Lod**!|H z6}{Y#sQ%L{wz~VN&Z8@ix^cKpp)ocjy~k*-&HW-aSjbY{m^b_icwx?`6q_2Ty z+1=CftxMB9=!!DqIngR&aNjDt-7WCacGSr7D|3u7Np6g*;O(?48O16qjocKxIYssF zr|GFEKf1zLp6W)u{HKhqt=(%d1j}hs8#jXZAvLxEBhZd=FLtBjMM-Vz{*M~`jOyFE z=c)dBn$^yYgZ_8a*be+~IjwWJ`ynoS9q!Jm^F#W|!OWbY^Os?x7s5Pu`M(y z9d>=kjq-H&Ln>yEv`%hx@Kdy_lluUA*xC&DO7c^c2LBYMs+D8Cmh#EcES+&wVPTGOuH%yslL4dKRb zWwjbY<^6~@x)7Q`CJobBsP@uU9aVNV&{5re!0uqKxDgBQZW^D1m?}5Xuv|AA3ZLb= zf3#)!=OhlVzjRA7hpWGi>iaO4r_rju?wf3v7>#}1nCpBc#x9ThgsLhh@W7yZGhQNo z^B}jLAN-ixv6dIV9mwqzDSRHz62bk0z`ZegeGn?@XrQdY?l6JGAv$3kJis&8H delta 173845 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 Qte6^OW3An@2Wg)F2VVqJ0RR91 diff --git a/dependency/x86/third_party/opencv/4.13.0/lib/libopencv_core.so.4.13.0 b/dependency/x86/third_party/opencv/4.13.0/lib/libopencv_core.so.4.13.0 index c4520abb9890d819a95081d12273ea4b9b0fa064..c92476228d2f56cb1b1ebd31da15a23c28489b4f 100644 GIT binary patch delta 2643747 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