lkasi 2025-03-03 15:00 采纳率: 0%
浏览 8

关于#opencv#的问题:标定了很多次,结果都在roll和yaw两个角度上面出问题,机械臂的角度旋转方式是ZYZ,已经验证过角度转换没有问题,使用的opencv的棋盘格标定

手在眼上出现问题,标定了很多次,结果都在roll和yaw两个角度上面出问题,同步相差角度,机械臂的角度旋转方式是ZYZ,已经验证过角度转换没有问题,使用的opencv的棋盘格标定,借鉴了https://github.com/ZiqiChai/simplified_eye_hand_calibration%E7%9A%84%E4%BB%A3%E7%A0%81%EF%BC%8C%E5%A4%A7%E7%A5%9E%E4%BB%AC%EF%BC%8C%E6%9C%89%E8%A7%A3%E5%86%B3%E8%BF%99%E4%B8%AA%E9%97%AE%E9%A2%98%E7%9A%84%E6%80%9D%E8%B7%AF%E5%90%97%EF%BC%9F

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-03-03 15:00
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解答

    你遇到的问题是,使用 OpenCV 的棋盘格标定,机械臂的角度旋转方式是 ZYZ,标定结果在 roll 和 yaw 两个角度上出现问题。

    可能的原因是:

    1. 棋盘格标定时,棋盘格的角度不准确,导致标定结果不准确。
    2. 机械臂的角度旋转方式 ZYZ 可能会导致 roll 和 yaw 角度的偏移。
    3. OpenCV 的棋盘格标定算法可能存在一些误差。

    解决方案:

    1. 验证棋盘格的角度是否准确,可以使用其他方法来测量棋盘格的角度。
    2. 尝试使用其他的角度旋转方式,例如 XYZ 或 YZX。
    3. 调整 OpenCV 的棋盘格标定算法的参数,例如使用 cv::aruco::Dictionary::MARKER_6X6 等。
    4. 使用其他的计算机视觉库,例如 PCL 或 Open3D,来实现棋盘格标定。

    核心代码:

    #include <opencv2/aruco.hpp>
    
    // ...
    
    cv::aruco::Dictionary dictionary = cv::aruco::getPredefinedDictionary(cv::aruco::DICT_6X6_250);
    cv::aruco::detectMarkers(img, dictionary, corners, ids);
    cv::aruco::estimatePoseSingleMarkers(corners, markerSize, cameraMatrix, distCoeffs);
    

    注意:上述代码只是一个示例,需要根据实际情况进行修改。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月3日