ROS实验笔记之——基于ArUco Marker来估算camera的位姿

2023-05-16

最近在做课程的project的时候,实现了基于Marker的3D-2D的相机位姿估计算法。写下本博文作为学习记录用~先看看整体的实现效果

基于ArUco Marker来估算camera的位姿

 

目录

安装ArUco

ArUco Marker

tag_detector节点

实现的效果

参考资料


 

安装ArUco

ArUco Marker

基于二进制的Maeker的主要便利之处在于一个Marker可以提供足够多的(四个角)来获取相机的信息。同时,其内部的二进制编码非常robust,允许错误检测和校正。

The codification included into the marker is a slighly modified version of the Hamming Code. It has a total a 25 bits didived in 5 rows of 5 bits each. So, we have 5 words of 5 bits. Each word, contains only 2 bits of real information, the rest is for  and error detection/correction (error correction is yet to be done). As a conclusion, a marker contains 10 bits of real information wich allows 1024 different markers.

  一个ArUco marker是一个二进制平方标记,它由一个宽的黑边和一个内部的二进制矩阵组成,内部的矩阵决定了它们的id。黑色的边界有利于快速检测到图像,二进制编码可以验证id,并且允许错误检测和矫正技术的应用。marker的大小决定了内部矩阵的大小。例如,一个4x4的marker由16bits组成。

应当注意到,我们需要检测到一个Marker在空间中发生了旋转,但是,检测的过程需要确定它的初始角度,所以每个角落需要是明确的,不能有歧义,保证上述这点也是靠二进制编码完成的。

整个ArUco库主要包含了两部分:src包含了库的本身(一些源码),utils里面则是包含了一些应用的实例

其包含的类,主要有以下:

   - aruco::Marker: which represent a marker detected in the image
   - aruco::MarkerDetector: that is in charge of deteting the markers in a image Detection is done by simple calling the member funcion ArMarkerDetector::detect(). Additionally, the classes contain members to create the required matrices for rendering using OpenGL. See aruco_test_gl for details
   - aruco::BoardConfiguration: A board is an array of markers in a known order. BoardConfiguracion is the class that defines a board by indicating the id of its markers. In addition, it has informacion about the distance between the markers so that extrinsica camera computations can be done.
   - aruco::Board: This class defines a board detected in a image. The board has the extrinsic camera parameters as public atributes. In addition, it has a method that allows obtain the matrix for getting its position in OpenGL (see aruco_test_board_gl for details).
   - aruco::BoardDetector : This is the class in charge of detecting a board in a image. You must pass to it the set of markers detected by ArMarkerDetector and the BoardConfiguracion of the board you want to detect. This class will do the rest for you, even calculating the camera extrinsics

安装方法:

先进入到aruco-1.2.4目录,然后运行

mkdir build
cd build
cmake ..
make
make install (optional) 

重新试试make install,结果如下:

给个sudo看看

应该配置成功了

下载链接:https://download.csdn.net/download/gwplovekimi/16134241

 

tag_detector节点

接下来配置tag_detector。在没有写pose estimation算法的时候,运行下面命令会出现

roslaunch tag_detector bag_tag.launch

一个视频显示camera的移动(伴随着marker的移动).根据这些marker来实时估计出

接下来看看启动的launch文件

<launch>

	<node name="rosbag" pkg="rosbag" type="play" respawn="false" args="--delay=1 --queue=1000 $(find tag_detector)/bag/images.bag" />
    <!-- 从tag_detector/bag/images.bag中获取图像数据,并且显示出来-->

    <!-- 运行节点tag_detector,将image_raw数据转换为“/camera/image”topic;cam_cal_file应该就是相机矫正的文件;board_config_file应该就是记录了MarkerID对应坐标(ID和四个角点) -->
    <node pkg="tag_detector" type="tag_detector" name="tag_detector" output="screen">
        <remap from="~image_raw" to="/camera/image"/>
        <param name="cam_cal_file" type="string" value="$(find tag_detector)/config/camera.yml"/>
        <param name="board_config_file" type="string" value="$(find tag_detector)/config/a.yml"/>
    </node>

</launch>

接下来看看关键的tag_detector节点(直接给出代码及注释如下)

#include <iostream>

#include <ros/ros.h>
#include <ros/console.h>
#include <sensor_msgs/Image.h>
#include <sensor_msgs/image_encodings.h>
#include <cv_bridge/cv_bridge.h>
#include <nav_msgs/Odometry.h>
#include <aruco/aruco.h>
// 参考网址:https://docs.opencv.org/master/d5/dae/tutorial_aruco_detection.html
#include <aruco/cvdrawingutils.h>
#include <opencv2/opencv.hpp>
#include <Eigen/Eigen>
#include <Eigen/SVD>
#include<opencv2/core/eigen.hpp>
//EIgen SVD libnary, may help you solve SVD (计算奇异值分解的)
//JacobiSVD<MatrixXd> svd(A, ComputeThinU | ComputeThinV);

using namespace cv;
using namespace aruco;
using namespace Eigen;//for JacobiSVD

//global varialbles for aruco detector(一些全局变量的定义)
aruco::CameraParameters CamParam;//camera的参数(直接从文件中读取)
MarkerDetector MDetector;//检测出marker
vector<Marker> Markers;
float MarkerSize = 0.20 / 1.5 * 1.524;
float MarkerWithMargin = MarkerSize * 1.2;
BoardConfiguration TheBoardConfig;
BoardDetector TheBoardDetector;
Board TheBoardDetected;
ros::Publisher pub_odom_yourwork;
ros::Publisher pub_odom_ref;
cv::Mat K, D;//定义相机的内参矩阵于畸变参数

//计算误差
double error_x=0;
double error_y=0;
double error_z=0;
double error_roll=0;
double error_pitch=0;
double error_yaw=0;
double rmse_x, rmse_y, rmse_z, rmse_roll, rmse_pitch, rmse_yaw;
double rmse_position, rmse_orientation;
int frame=0;

// test function, can be used to verify your estimation
//用于计算重投影误差(用于验证)
void calculateReprojectionError(const vector<cv::Point3f> &pts_3, const vector<cv::Point2f> &pts_2, const cv::Mat R, const cv::Mat t)
{
    puts("calculateReprojectionError begins");
    vector<cv::Point2f> un_pts_2;
    cv::undistortPoints(pts_2, un_pts_2, K, D);
    for (unsigned int i = 0; i < pts_3.size(); i++)
    {
        cv::Mat p_mat(3, 1, CV_64FC1);
        p_mat.at<double>(0, 0) = pts_3[i].x;
        p_mat.at<double>(1, 0) = pts_3[i].y;
        p_mat.at<double>(2, 0) = pts_3[i].z;
        cv::Mat p = (R * p_mat + t);
        //输出得是:世界坐标得xyz;没有失真得xy;p为重投影得结果;而R和t是计算出来得
        printf("(%f, %f, %f) -> (%f, %f) and (%f, %f)\n",
               pts_3[i].x, pts_3[i].y, pts_3[i].z,
               un_pts_2[i].x, un_pts_2[i].y,
               p.at<double>(0) / p.at<double>(2), p.at<double>(1) / p.at<double>(2));
    }
    puts("calculateReprojectionError ends");
}

// the main function you need to work with
// pts_id: id of each point
// pts_3: 3D position (x, y, z) in world frame
// pts_2: 2D position (u, v) in image frame
void process(const vector<int> &pts_id, const vector<cv::Point3f> &pts_3, const vector<cv::Point2f> &pts_2, const ros::Time& frame_time)
{
    //version 1, as reference
    cv::Mat r, rvec, t;
    cv::solvePnP(pts_3, pts_2, K, D, rvec, t);//通过opencv算出pnp(直接调用函数)
    //pts_3---特征点的世界坐标
    //pts_2---特征点在图像中的像素坐标
    //K--相机的内参矩阵
    //D--相机的畸变参数
    //rvec---输出的旋转向量
    //t---输出的平移向量

    cv::Rodrigues(rvec, r);//将旋转向量(1*3)转换为相对应的旋转矩阵(3*3)
    Matrix3d R_ref;
    for(int i=0;i<3;i++)
        for(int j=0;j<3;j++)
        {
            R_ref(i,j) = r.at<double>(i, j);
        }
    Quaterniond Q_ref;//定义四元素
    Q_ref = R_ref;
    nav_msgs::Odometry odom_ref;
    odom_ref.header.stamp = frame_time;
    odom_ref.header.frame_id = "world";//rviz中选的frame ID应该为world
    odom_ref.pose.pose.position.x = t.at<double>(0, 0);
    odom_ref.pose.pose.position.y = t.at<double>(1, 0);
    odom_ref.pose.pose.position.z = t.at<double>(2, 0);
    odom_ref.pose.pose.orientation.w = Q_ref.w();
    odom_ref.pose.pose.orientation.x = Q_ref.x();
    odom_ref.pose.pose.orientation.y = Q_ref.y();
    odom_ref.pose.pose.orientation.z = Q_ref.z();
    pub_odom_ref.publish(odom_ref);

    // version 2, your work(相当于自己实现pnp算法)
    Matrix3d R;
    Vector3d T;
    R.setIdentity();//设置为单位矩阵
    T.setZero();//设置为全0
    vector<cv::Point2f> un_pts_2;
    uint num_points=pts_2.size();//定义观测到的特征点的数目(不带符号的int)
    cv::undistortPoints(pts_2, un_pts_2, K, D);//通过相机的参数矩阵及失真参数来对图像的点进行矫正;opencv中使用undistortPoints函数校正特征点(对于针孔相机)
    
    // Retrieve K from cv::Mat to eigen
    Matrix3d K_Matrix3d;
    for (uint i=0;i<3;i++){
        for (uint j=0;j<3;j++){
            K_Matrix3d(i,j)=K.at<double>(i,j);
        }
    }

    for(uint i=0; i < num_points;i++){
        Vector3d point;
        point<<un_pts_2[i].x, un_pts_2[i].y,1;
        Vector3d image_point = K_Matrix3d * point;
        un_pts_2[i].x = image_point(0);
        un_pts_2[i].y = image_point(1);
    }
    
    ROS_INFO("write your code here!");
    //...*******************
    //...
   
    MatrixXd obs_matrix (2*num_points,9);//创建观测矩阵。跟ppt27页的公式一个道理,当为一个观测点时,其观测矩阵为2*9
    //对观测矩阵进行初始化
    for (uint i=0;i<num_points;i++){
        VectorXd row1(9);//创建一个含有9个元素的向量
        //放入元素
        row1<<pts_3[i].x,pts_3[i].y,1,
        0,0,0,
        -pts_3[i].x*un_pts_2[i].x,-pts_3[i].y*un_pts_2[i].x,-un_pts_2[i].x;
        VectorXd row2(9);
        row2<<0,0,0,
        pts_3[i].x,pts_3[i].y,1,
        -pts_3[i].x*un_pts_2[i].y,-pts_3[i].y*un_pts_2[i].y,-un_pts_2[i].y;
        //将这两个向量放于观测矩阵中
        obs_matrix.row(2*i)  = row1;
        obs_matrix.row(2*i+1)= row2;
    }

    //然后,通过SVD解决Ax=0的问题。求出x即为所需要的H矩阵,再通过K(-1)H=(R T)来求解R与T。
    //对于Ax=0的问题,做法都是使用SVD分解,直接取V矩阵的最后一列作为方程的解。
    //eigen库如何通过svd方法取奇异矩阵的广义逆矩阵
    // JacobiSVD<MatrixXf> svd(obs_matrix, ComputeThinU | ComputeThinV);//关于其中得参数可参考:https://blog.csdn.net/xu_fengyu/article/details/103996945
    JacobiSVD<MatrixXd> svd(obs_matrix, ComputeThinU | ComputeFullV);// if only 4 points are provided, we need FullV
    //U = svd.matrixU();
    // V = svd.matrixV();
    // A = svd.singularValues(); (A为对角线元素,奇异值)
    MatrixXd V_matrix=svd.matrixV();//获取到得V矩阵
    //obs_matrix是一个(2*num_points)*9的矩阵,应该获得U为(2*num_points)*(2*num_points);V为9*9
    // VectorXd H_matrix_vector=V_matrix.col(-1);//报错
    VectorXd H_matrix_vector=V_matrix.col(8);

    //构建H矩阵,将上面获得的向量H_matrix_vector放到矩阵中。
    Matrix3d H;//Matrix3d表示元素类型为double大小为3*3的矩阵变量
    for (uint i=0;i<3;i++){
        for (uint j=0;j<3;j++){
            H(i,j)=H_matrix_vector(i*3+j);
        }
    }

    // Matrix3d K_H=K.inverse()*H;//K是opencv中得Mat格式而H是Matrix3d,两者数据不一致?
    //(‘class cv::Mat’ has no member named ‘inverse’)
    //故此需要数据格式转换。
    // Matrix3d K_Matrix3d;
    // for (int i=0;i<3;i++){
    //     for (int j=0;j<3;j++){
    //         K_Matrix3d(i,j)=K.at<double>(i,j);
    //     }
    // }
    Matrix3d K_H=K_Matrix3d.inverse()*H;
    Vector3d h1,h2,h3;//PPT 29 and 30
    h1=K_H.col(0);
    h2=K_H.col(1);
    h3=K_H.col(2);
    Matrix3d R__;
    R__.col(0)=h1;
    R__.col(1)=h2;
    R__.col(2)=h1.cross(h2);
    // JacobiSVD<MatrixXf> svd1(R__, ComputeThinU | ComputeThinV);//关于其中得参数可参考:https://blog.csdn.net/xu_fengyu/article/details/103996945
    JacobiSVD<MatrixXd> svd1(R__, ComputeFullU | ComputeFullV);
    MatrixXd R__V=svd1.matrixV();
    MatrixXd R__U = svd1.matrixU();
    R=R__U*(R__V.transpose());
    T=h3/h1.norm();
    if (T(2) < 0){
        T = -T;
        R.col(0) = R.col(0) * -1;
        R.col(1) = R.col(1) * -1;
    }
    cout<<"R: " << R <<endl;
    cout<<"R_ref: " << R_ref <<endl;
    cout<<"T: " << T <<endl;
    cout<<"T_ref: " << t <<endl;

    //测量重投影误差
    // cv::Mat cv_R_ref,cv_T_ref,cv_R,cv_T;
    // eigen2cv(R, cv_R);
    // eigen2cv(T, cv_T);
    // cv_T_ref=t;
    // // eigen2cv(t, cv_T_ref);
    // eigen2cv(R_ref, cv_R_ref);
    // ROS_INFO("重投影误差!");
    // calculateReprojectionError(pts_3, pts_2, cv_R, cv_T);
    // ROS_INFO("重投影误差_reference!");
    // calculateReprojectionError(pts_3, pts_2, cv_R_ref, cv_T_ref);


    //...********************
    Quaterniond Q_yourwork;
    Q_yourwork = R;
    nav_msgs::Odometry odom_yourwork;
    odom_yourwork.header.stamp = frame_time;
    odom_yourwork.header.frame_id = "world";
    odom_yourwork.pose.pose.position.x = T(0);
    odom_yourwork.pose.pose.position.y = T(1);
    odom_yourwork.pose.pose.position.z = T(2);
    odom_yourwork.pose.pose.orientation.w = Q_yourwork.w();
    odom_yourwork.pose.pose.orientation.x = Q_yourwork.x();
    odom_yourwork.pose.pose.orientation.y = Q_yourwork.y();
    odom_yourwork.pose.pose.orientation.z = Q_yourwork.z();
    pub_odom_yourwork.publish(odom_yourwork);
    frame++;

    
    //转换成欧拉角
    Eigen::Vector3d eulerAngle_ref=Q_ref.matrix().eulerAngles(2,1,0);
    Eigen::Vector3d eulerAngle_yourwork=Q_yourwork.matrix().eulerAngles(2,1,0);

    ///计算误差
    error_x=odom_yourwork.pose.pose.position.x-odom_ref.pose.pose.position.x;
    error_y=odom_yourwork.pose.pose.position.y-odom_ref.pose.pose.position.y;
    error_z=odom_yourwork.pose.pose.position.z-odom_ref.pose.pose.position.z;
    rmse_position=sqrt((pow(rmse_position,2)*(frame-1)+pow(error_x,2)+pow(error_y,2)+pow(error_z,2))/frame);
    
    error_roll=eulerAngle_ref(0)-eulerAngle_yourwork(0);
    error_pitch=eulerAngle_ref(1)-eulerAngle_yourwork(1);
    error_yaw=eulerAngle_ref(2)-eulerAngle_yourwork(2);
    rmse_orientation=sqrt((pow(rmse_orientation,2)*(frame-1)+pow(error_roll,2)+pow(error_pitch,2)+pow(error_yaw,2))/frame);

    ROS_INFO("RMSE_position, RMSE_orientation: \n %f, %f",
             rmse_position, rmse_orientation);
}

cv::Point3f getPositionFromIndex(int idx, int nth)
{
    int idx_x = idx % 6, idx_y = idx / 6;
    double p_x = idx_x * MarkerWithMargin - (3 + 2.5 * 0.2) * MarkerSize;
    double p_y = idx_y * MarkerWithMargin - (12 + 11.5 * 0.2) * MarkerSize;
    return cv::Point3f(p_x + (nth == 1 || nth == 2) * MarkerSize, p_y + (nth == 2 || nth == 3) * MarkerSize, 0.0);
}

void img_callback(const sensor_msgs::ImageConstPtr &img_msg)
{
    double t = clock();
    //在opencv中图像采用Mat矩阵的形式存储
    //而ROS的图像则有自己的图像消息格式。
    //cv_bridge正是将两者联系在一起
    cv_bridge::CvImagePtr bridge_ptr = cv_bridge::toCvCopy(img_msg, sensor_msgs::image_encodings::MONO8);//订阅的img_msg是ROS的消息
    MDetector.detect(bridge_ptr->image, Markers);//运用MarkerDetector类的函数来检测Marker
    float probDetect = TheBoardDetector.detect(Markers, TheBoardConfig, TheBoardDetected, CamParam, MarkerSize);
    ROS_DEBUG("p: %f, time cost: %f\n", probDetect, (clock() - t) / CLOCKS_PER_SEC);//将计算时间显示出来

    vector<int> pts_id;//存储ID
    vector<cv::Point3f> pts_3;//存储maker在世界坐标系下的位置
    vector<cv::Point2f> pts_2;//存储对应marker在图像坐标系下的位置
    for (unsigned int i = 0; i < Markers.size(); i++)  //unsigned无符号;Markers为检测出来的marker的数目
    {
        int idx = TheBoardConfig.getIndexOfMarkerId(Markers[i].id);//获取所检测的第i个marker的ID

        char str[100];
        sprintf(str, "%d", idx);//发送格式化输出到 str 所指向的字符串
        cv::putText(bridge_ptr->image, str, Markers[i].getCenter(), CV_FONT_HERSHEY_COMPLEX, 0.4, cv::Scalar(-1));
        for (unsigned int j = 0; j < 4; j++)
        {
            sprintf(str, "%d", j);
            cv::putText(bridge_ptr->image, str, Markers[i][j], CV_FONT_HERSHEY_COMPLEX, 0.4, cv::Scalar(-1));
        }

        for (unsigned int j = 0; j < 4; j++)
        {
            pts_id.push_back(Markers[i].id * 4 + j);
            pts_3.push_back(getPositionFromIndex(idx, j));//在世界坐标系下的位置
            pts_2.push_back(Markers[i][j]);//在图像坐标系上的位置
        }
    }

    //begin your function
    if (pts_id.size() > 5)
        process(pts_id, pts_3, pts_2, img_msg->header.stamp);//在process这个函数中,进行相机姿态的估计并将发布

    cv::imshow("in", bridge_ptr->image);//通过指针将视频显示出来
    cv::waitKey(10);
}

int main(int argc, char **argv)
{
    ros::init(argc, argv, "tag_detector");
    ros::NodeHandle n("~");

    ros::Subscriber sub_img = n.subscribe("image_raw", 100, img_callback);//订阅录取的视频,并且回调函数img_callback
    //发布两个位姿
    pub_odom_yourwork = n.advertise<nav_msgs::Odometry>("odom_yourwork",10);//自己算出来的
    pub_odom_ref = n.advertise<nav_msgs::Odometry>("odom_ref",10);//参考值
    //init aruco detector
    string cam_cal, board_config;
    n.getParam("cam_cal_file", cam_cal);
    n.getParam("board_config_file", board_config);
    CamParam.readFromXMLFile(cam_cal);//直接从文件中读取相机的基本参数
    TheBoardConfig.readFromFile(board_config);
    //直接从文件中读取,获取了所有Marker的ID及其对应的角点的位置;通过二进制代码来识别ID与4个角点;而角点的位置是记录下来的world frame的位置(xyz)

    //init intrinsic parameters
    cv::FileStorage param_reader(cam_cal, cv::FileStorage::READ);
    //直接从文件中读出相机的内存矩阵与畸变参数(后面要重点关注这是如何获取的,毕竟相机的参数model对最终的performance有很大的影响)
    param_reader["camera_matrix"] >> K;
    param_reader["distortion_coefficients"] >> D;

    //init window for visualization
    cv::namedWindow("in", 1);

    ros::spin();
}


//整理记录于:
// https://blog.csdn.net/gwplovekimi/article/details/115245558?spm=1001.2014.3001.5501

 

实现的效果

RMS error between the calculate pose and the reference ones:

0.170051, 0.634279(效果不是很好。。。)

如下图所示

记录了一些重投影误差

[ INFO] [1616909249.683655413]: 重投影误差!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.390707, -0.097000) and (-0.381250, -0.094642)
(-0.264160, 2.214880, 0.000000) -> (-0.317682, -0.171877) and (-0.305903, -0.172483)
(-0.264160, 2.418080, 0.000000) -> (-0.250558, -0.149865) and (-0.230880, -0.149314)
(-0.467360, 2.418080, 0.000000) -> (-0.321712, -0.070614) and (-0.307345, -0.065342)
(-0.711200, 2.702560, 0.000000) -> (-0.308248, 0.105714) and (-0.291129, 0.110205)
(-0.508000, 2.702560, 0.000000) -> (-0.220596, 0.002416) and (-0.202903, 0.002703)
(-0.508000, 2.905760, 0.000000) -> (-0.126221, 0.041796) and (-0.100884, 0.045188)
(-0.711200, 2.905760, 0.000000) -> (-0.213270, 0.155251) and (-0.189883, 0.164108)
(0.020320, 2.458720, 0.000000) -> (-0.130229, -0.254519) and (-0.118965, -0.250959)
(0.223520, 2.458720, 0.000000) -> (-0.071149, -0.320265) and (-0.057564, -0.319298)
(0.223520, 2.661920, 0.000000) -> (0.008216, -0.304744) and (0.029164, -0.305633)
(0.020320, 2.661920, 0.000000) -> (-0.049111, -0.237019) and (-0.031897, -0.232445)
(-0.223520, 2.702560, 0.000000) -> (-0.110095, -0.132391) and (-0.094497, -0.129387)
(-0.020320, 2.702560, 0.000000) -> (-0.043608, -0.213062) and (-0.026078, -0.212754)
(-0.020320, 2.905760, 0.000000) -> (0.052672, -0.190670) and (0.075127, -0.189995)
(-0.223520, 2.905760, 0.000000) -> (-0.014013, -0.105205) and (0.007394, -0.099490)
(-0.467360, 2.702560, 0.000000) -> (-0.202048, -0.020919) and (-0.186407, -0.017396)
(-0.264160, 2.702560, 0.000000) -> (-0.127236, -0.111680) and (-0.109026, -0.111683)
(-0.264160, 2.905760, 0.000000) -> (-0.030748, -0.081470) and (-0.007050, -0.080191)
(-0.467360, 2.905760, 0.000000) -> (-0.106851, 0.016659) and (-0.084331, 0.023071)
(-0.223520, 2.214880, 0.000000) -> (-0.300998, -0.189479) and (-0.291629, -0.187229)
(-0.020320, 2.214880, 0.000000) -> (-0.238427, -0.257355) and (-0.223869, -0.257231)
(-0.020320, 2.418080, 0.000000) -> (-0.168729, -0.239940) and (-0.148121, -0.240198)
(-0.223520, 2.418080, 0.000000) -> (-0.231275, -0.169486) and (-0.216443, -0.165168)
(0.264160, 2.458720, 0.000000) -> (-0.056282, -0.336444) and (-0.045909, -0.332269)
(0.467360, 2.458720, 0.000000) -> (-0.004387, -0.393002) and (0.009520, -0.393961)
(0.467360, 2.661920, 0.000000) -> (0.072908, -0.381955) and (0.095511, -0.385158)
(0.264160, 2.661920, 0.000000) -> (0.026096, -0.323397) and (0.040718, -0.319482)
(-0.223520, 2.458720, 0.000000) -> (-0.212076, -0.162698) and (-0.200302, -0.160432)
(-0.020320, 2.458720, 0.000000) -> (-0.147948, -0.236254) and (-0.131909, -0.236552)
(-0.020320, 2.661920, 0.000000) -> (-0.065381, -0.217341) and (-0.044811, -0.216966)
(-0.223520, 2.661920, 0.000000) -> (-0.131100, -0.139856) and (-0.113280, -0.134898)
(-0.467360, 2.458720, 0.000000) -> (-0.303730, -0.061611) and (-0.291413, -0.059026)
(-0.264160, 2.458720, 0.000000) -> (-0.229717, -0.143696) and (-0.214763, -0.144337)
(-0.264160, 2.661920, 0.000000) -> (-0.149419, -0.118232) and (-0.127809, -0.117484)
(-0.467360, 2.661920, 0.000000) -> (-0.222865, -0.030394) and (-0.205122, -0.024816)
(-0.711200, 2.214880, 0.000000) -> (-0.489725, 0.005360) and (-0.481453, 0.008877)
(-0.508000, 2.214880, 0.000000) -> (-0.409430, -0.078889) and (-0.397168, -0.078198)
(-0.508000, 2.418080, 0.000000) -> (-0.344001, -0.048669) and (-0.323554, -0.047542)
(-0.711200, 2.418080, 0.000000) -> (-0.426141, 0.040664) and (-0.409711, 0.047073)
calculateReprojectionError ends
[ INFO] [1616909249.684054838]: 重投影误差_reference!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.390707, -0.097000) and (-0.392745, -0.096736)
(-0.264160, 2.214880, 0.000000) -> (-0.317682, -0.171877) and (-0.318025, -0.173685)
(-0.264160, 2.418080, 0.000000) -> (-0.250558, -0.149865) and (-0.245598, -0.150983)
(-0.467360, 2.418080, 0.000000) -> (-0.321712, -0.070614) and (-0.321631, -0.068041)
(-0.711200, 2.702560, 0.000000) -> (-0.308248, 0.105714) and (-0.309537, 0.104218)
(-0.508000, 2.702560, 0.000000) -> (-0.220596, 0.002416) and (-0.221778, -0.001329)
(-0.508000, 2.905760, 0.000000) -> (-0.126221, 0.041796) and (-0.123819, 0.040212)
(-0.711200, 2.905760, 0.000000) -> (-0.213270, 0.155251) and (-0.212754, 0.156797)
(0.020320, 2.458720, 0.000000) -> (-0.130229, -0.254519) and (-0.134362, -0.251802)
(0.223520, 2.458720, 0.000000) -> (-0.071149, -0.320265) and (-0.072826, -0.319781)
(0.223520, 2.661920, 0.000000) -> (0.008216, -0.304744) and (0.011487, -0.306459)
(0.020320, 2.661920, 0.000000) -> (-0.049111, -0.237019) and (-0.049959, -0.233688)
(-0.223520, 2.702560, 0.000000) -> (-0.110095, -0.132391) and (-0.113444, -0.131622)
(-0.020320, 2.702560, 0.000000) -> (-0.043608, -0.213062) and (-0.044783, -0.214201)
(-0.020320, 2.905760, 0.000000) -> (0.052672, -0.190670) and (0.053263, -0.191927)
(-0.223520, 2.905760, 0.000000) -> (-0.014013, -0.105205) and (-0.015073, -0.102345)
(-0.467360, 2.702560, 0.000000) -> (-0.202048, -0.020919) and (-0.205329, -0.021112)
(-0.264160, 2.702560, 0.000000) -> (-0.127236, -0.111680) and (-0.127996, -0.114121)
(-0.264160, 2.905760, 0.000000) -> (-0.030748, -0.081470) and (-0.029614, -0.083283)
(-0.467360, 2.905760, 0.000000) -> (-0.106851, 0.016659) and (-0.107234, 0.018470)
(-0.223520, 2.214880, 0.000000) -> (-0.300998, -0.189479) and (-0.303844, -0.188289)
(-0.020320, 2.214880, 0.000000) -> (-0.238427, -0.257355) and (-0.236411, -0.257735)
(-0.020320, 2.418080, 0.000000) -> (-0.168729, -0.239940) and (-0.163022, -0.241062)
(-0.223520, 2.418080, 0.000000) -> (-0.231275, -0.169486) and (-0.231214, -0.166673)
(0.264160, 2.458720, 0.000000) -> (-0.056282, -0.336444) and (-0.061127, -0.332706)
(0.467360, 2.458720, 0.000000) -> (-0.004387, -0.393002) and (-0.005404, -0.394263)
(0.467360, 2.661920, 0.000000) -> (0.072908, -0.381955) and (0.078452, -0.385766)
(0.264160, 2.661920, 0.000000) -> (0.026096, -0.323397) and (0.023134, -0.320252)
(-0.223520, 2.458720, 0.000000) -> (-0.212076, -0.162698) and (-0.215623, -0.162033)
(-0.020320, 2.458720, 0.000000) -> (-0.147948, -0.236254) and (-0.147315, -0.237494)
(-0.020320, 2.661920, 0.000000) -> (-0.065381, -0.217341) and (-0.062932, -0.218324)
(-0.223520, 2.661920, 0.000000) -> (-0.131100, -0.139856) and (-0.131582, -0.137021)
(-0.467360, 2.458720, 0.000000) -> (-0.303730, -0.061611) and (-0.306305, -0.061857)
(-0.264160, 2.458720, 0.000000) -> (-0.229717, -0.143696) and (-0.230041, -0.146106)
(-0.264160, 2.661920, 0.000000) -> (-0.149419, -0.118232) and (-0.146121, -0.119802)
(-0.467360, 2.661920, 0.000000) -> (-0.222865, -0.030394) and (-0.223321, -0.028372)
(-0.711200, 2.214880, 0.000000) -> (-0.489725, 0.005360) and (-0.491753, 0.005227)
(-0.508000, 2.214880, 0.000000) -> (-0.409430, -0.078889) and (-0.408500, -0.080511)
(-0.508000, 2.418080, 0.000000) -> (-0.344001, -0.048669) and (-0.337716, -0.050494)
(-0.711200, 2.418080, 0.000000) -> (-0.426141, 0.040664) and (-0.423024, 0.042565)
calculateReprojectionError ends
[ INFO] [1616909249.714129426]: write your code here!
R:  0.530264  0.803132  0.271659
-0.744565   0.28787   0.60229
 0.405516 -0.521641  0.750631
R_ref:  0.533192  0.798108   0.28059
-0.747592  0.289255  0.597861
 0.395996 -0.528541  0.750887
T: -2.19836
-1.15511
 3.10445
T_ref: [-2.222568887099583;
 -1.165335528142252;
 3.147711310875965]
[ INFO] [1616909249.714396034]: 重投影误差!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.391455, -0.098888) and (-0.379267, -0.096351)
(-0.264160, 2.214880, 0.000000) -> (-0.318398, -0.172315) and (-0.303803, -0.174179)
(-0.264160, 2.418080, 0.000000) -> (-0.249330, -0.151211) and (-0.228344, -0.151118)
(-0.467360, 2.418080, 0.000000) -> (-0.323836, -0.071822) and (-0.304885, -0.067152)
(-0.711200, 2.702560, 0.000000) -> (-0.307475, 0.104313) and (-0.287972, 0.108377)
(-0.508000, 2.702560, 0.000000) -> (-0.220938, 0.001557) and (-0.199653, 0.000747)
(-0.508000, 2.905760, 0.000000) -> (-0.125547, 0.040898) and (-0.096930, 0.043110)
(-0.711200, 2.905760, 0.000000) -> (-0.214312, 0.154410) and (-0.185939, 0.162198)
(0.020320, 2.458720, 0.000000) -> (-0.129220, -0.255349) and (-0.116335, -0.252688)
(0.223520, 2.458720, 0.000000) -> (-0.074111, -0.321348) and (-0.054984, -0.320909)
(0.223520, 2.661920, 0.000000) -> (0.008392, -0.306273) and (0.032128, -0.307358)
(0.020320, 2.661920, 0.000000) -> (-0.049787, -0.238039) and (-0.028832, -0.234295)
(-0.223520, 2.702560, 0.000000) -> (-0.108871, -0.133974) and (-0.091251, -0.131356)
(-0.020320, 2.702560, 0.000000) -> (-0.044012, -0.214243) and (-0.022901, -0.214651)
(-0.020320, 2.905760, 0.000000) -> (0.052833, -0.191807) and (0.078823, -0.192035)
(-0.223520, 2.905760, 0.000000) -> (-0.013635, -0.105793) and (0.011232, -0.101603)
(-0.467360, 2.702560, 0.000000) -> (-0.201644, -0.021817) and (-0.183150, -0.019364)
(-0.264160, 2.702560, 0.000000) -> (-0.127626, -0.112790) and (-0.105773, -0.113660)
(-0.264160, 2.905760, 0.000000) -> (-0.029922, -0.082766) and (-0.003189, -0.082309)
(-0.467360, 2.905760, 0.000000) -> (-0.107064, 0.015125) and (-0.080386, 0.020976)
(0.264160, 2.458720, 0.000000) -> (-0.058661, -0.336979) and (-0.043342, -0.333854)
(0.467360, 2.458720, 0.000000) -> (-0.004693, -0.392580) and (0.012003, -0.395395)
(0.467360, 2.661920, 0.000000) -> (0.074946, -0.384545) and (0.098320, -0.386692)
(0.264160, 2.661920, 0.000000) -> (0.024344, -0.324889) and (0.043658, -0.321178)
(-0.223520, 2.458720, 0.000000) -> (-0.211229, -0.164772) and (-0.197665, -0.162251)
(-0.020320, 2.458720, 0.000000) -> (-0.147663, -0.237117) and (-0.129274, -0.238300)
(-0.020320, 2.661920, 0.000000) -> (-0.066601, -0.219125) and (-0.041730, -0.218837)
(-0.223520, 2.661920, 0.000000) -> (-0.130646, -0.140218) and (-0.110143, -0.136841)
(-0.467360, 2.458720, 0.000000) -> (-0.302106, -0.063174) and (-0.288849, -0.060857)
(-0.264160, 2.458720, 0.000000) -> (-0.230908, -0.144944) and (-0.212132, -0.146164)
(-0.264160, 2.661920, 0.000000) -> (-0.148202, -0.119337) and (-0.124667, -0.119434)
(-0.467360, 2.661920, 0.000000) -> (-0.223641, -0.030960) and (-0.201989, -0.026760)
(-0.711200, 2.214880, 0.000000) -> (-0.492384, 0.003764) and (-0.479709, 0.007238)
(-0.508000, 2.214880, 0.000000) -> (-0.409182, -0.078788) and (-0.395216, -0.079902)
(-0.508000, 2.418080, 0.000000) -> (-0.342275, -0.050450) and (-0.321117, -0.049344)
(-0.711200, 2.418080, 0.000000) -> (-0.424962, 0.037718) and (-0.407444, 0.045357)
calculateReprojectionError ends
[ INFO] [1616909249.714777925]: 重投影误差_reference!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.391455, -0.098888) and (-0.392888, -0.097811)
(-0.264160, 2.214880, 0.000000) -> (-0.318398, -0.172315) and (-0.318141, -0.174738)
(-0.264160, 2.418080, 0.000000) -> (-0.249330, -0.151211) and (-0.245618, -0.152070)
(-0.467360, 2.418080, 0.000000) -> (-0.323836, -0.071822) and (-0.321666, -0.069157)
(-0.711200, 2.702560, 0.000000) -> (-0.307475, 0.104313) and (-0.309419, 0.103000)
(-0.508000, 2.702560, 0.000000) -> (-0.220938, 0.001557) and (-0.221652, -0.002523)
(-0.508000, 2.905760, 0.000000) -> (-0.125547, 0.040898) and (-0.123567, 0.038948)
(-0.711200, 2.905760, 0.000000) -> (-0.214312, 0.154410) and (-0.212488, 0.155500)
(0.020320, 2.458720, 0.000000) -> (-0.129220, -0.255349) and (-0.134365, -0.252842)
(0.223520, 2.458720, 0.000000) -> (-0.074111, -0.321348) and (-0.072839, -0.320775)
(0.223520, 2.661920, 0.000000) -> (0.008392, -0.306273) and (0.011540, -0.307477)
(0.020320, 2.661920, 0.000000) -> (-0.049787, -0.238039) and (-0.049882, -0.234760)
(-0.223520, 2.702560, 0.000000) -> (-0.108871, -0.133974) and (-0.113328, -0.132762)
(-0.020320, 2.702560, 0.000000) -> (-0.044012, -0.214243) and (-0.044686, -0.215291)
(-0.020320, 2.905760, 0.000000) -> (0.052833, -0.191807) and (0.053438, -0.193060)
(-0.223520, 2.905760, 0.000000) -> (-0.013635, -0.105793) and (-0.014860, -0.103539)
(-0.467360, 2.702560, 0.000000) -> (-0.201644, -0.021817) and (-0.205203, -0.022300)
(-0.264160, 2.702560, 0.000000) -> (-0.127626, -0.112790) and (-0.127878, -0.115269)
(-0.264160, 2.905760, 0.000000) -> (-0.029922, -0.082766) and (-0.029395, -0.084487)
(-0.467360, 2.905760, 0.000000) -> (-0.107064, 0.015125) and (-0.106987, 0.017216)
(0.264160, 2.458720, 0.000000) -> (-0.058661, -0.336979) and (-0.061142, -0.333690)
(0.467360, 2.458720, 0.000000) -> (-0.004693, -0.392580) and (-0.005436, -0.395197)
(0.467360, 2.661920, 0.000000) -> (0.074946, -0.384545) and (0.078471, -0.386716)
(0.264160, 2.661920, 0.000000) -> (0.024344, -0.324889) and (0.023181, -0.321259)
(-0.223520, 2.458720, 0.000000) -> (-0.211229, -0.164772) and (-0.215623, -0.163121)
(-0.020320, 2.458720, 0.000000) -> (-0.147663, -0.237117) and (-0.147315, -0.238542)
(-0.020320, 2.661920, 0.000000) -> (-0.066601, -0.219125) and (-0.062851, -0.219406)
(-0.223520, 2.661920, 0.000000) -> (-0.130646, -0.140218) and (-0.131485, -0.138150)
(-0.467360, 2.458720, 0.000000) -> (-0.302106, -0.063174) and (-0.306317, -0.062981)
(-0.264160, 2.458720, 0.000000) -> (-0.230908, -0.144944) and (-0.230041, -0.147201)
(-0.264160, 2.661920, 0.000000) -> (-0.148202, -0.119337) and (-0.146022, -0.120940)
(-0.467360, 2.661920, 0.000000) -> (-0.223641, -0.030960) and (-0.223219, -0.029548)
(-0.711200, 2.214880, 0.000000) -> (-0.492384, 0.003764) and (-0.491949, 0.004138)
(-0.508000, 2.214880, 0.000000) -> (-0.409182, -0.078788) and (-0.408650, -0.081590)
(-0.508000, 2.418080, 0.000000) -> (-0.342275, -0.050450) and (-0.337755, -0.051614)
(-0.711200, 2.418080, 0.000000) -> (-0.424962, 0.037718) and (-0.423096, 0.041431)
calculateReprojectionError ends
[ INFO] [1616909249.746249146]: write your code here!
R:  0.531083  0.800057  0.279034
 -0.74861  0.288783  0.596815
 0.396906 -0.525846  0.752298
R_ref:  0.531599  0.799462  0.279754
-0.749869  0.290653  0.594321
 0.393826 -0.525719  0.754003
T: -2.22457
-1.17022
 3.13611
T_ref: [-2.230087683405501;
 -1.173648668830501;
 3.139689127365699]
[ INFO] [1616909249.746567318]: 重投影误差!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.393156, -0.100195) and (-0.392371, -0.101200)
(-0.264160, 2.214880, 0.000000) -> (-0.320177, -0.175403) and (-0.317603, -0.178323)
(-0.264160, 2.418080, 0.000000) -> (-0.251685, -0.153721) and (-0.244503, -0.155804)
(-0.467360, 2.418080, 0.000000) -> (-0.325300, -0.075133) and (-0.320518, -0.072692)
(-0.711200, 2.702560, 0.000000) -> (-0.308887, 0.101957) and (-0.307164, 0.099559)
(-0.508000, 2.702560, 0.000000) -> (-0.222856, -0.000953) and (-0.219485, -0.006264)
(-0.508000, 2.905760, 0.000000) -> (-0.127792, 0.038204) and (-0.120573, 0.034982)
(-0.711200, 2.905760, 0.000000) -> (-0.215284, 0.152373) and (-0.209301, 0.151842)
(-0.223520, 2.702560, 0.000000) -> (-0.111571, -0.136302) and (-0.111344, -0.136782)
(-0.020320, 2.702560, 0.000000) -> (-0.045653, -0.217409) and (-0.042860, -0.219437)
(-0.020320, 2.905760, 0.000000) -> (0.050591, -0.194390) and (0.055881, -0.197417)
(-0.223520, 2.905760, 0.000000) -> (-0.015660, -0.108830) and (-0.012178, -0.107780)
(-0.467360, 2.702560, 0.000000) -> (-0.203734, -0.024666) and (-0.203058, -0.026089)
(-0.264160, 2.702560, 0.000000) -> (-0.129265, -0.115217) and (-0.125864, -0.119257)
(-0.264160, 2.905760, 0.000000) -> (-0.032220, -0.085948) and (-0.026666, -0.088699)
(-0.467360, 2.905760, 0.000000) -> (-0.108527, 0.013357) and (-0.104035, 0.013200)
(-0.223520, 2.214880, 0.000000) -> (-0.302688, -0.192774) and (-0.303418, -0.192954)
(-0.020320, 2.214880, 0.000000) -> (-0.240423, -0.260843) and (-0.235989, -0.262506)
(-0.020320, 2.418080, 0.000000) -> (-0.170731, -0.244418) and (-0.162003, -0.246007)
(-0.223520, 2.418080, 0.000000) -> (-0.232682, -0.172874) and (-0.230128, -0.171521)
(0.264160, 2.458720, 0.000000) -> (-0.057532, -0.340863) and (-0.060143, -0.337744)
(0.467360, 2.458720, 0.000000) -> (-0.008477, -0.397612) and (-0.004558, -0.399300)
(0.467360, 2.661920, 0.000000) -> (0.073158, -0.386156) and (0.079780, -0.390967)
(0.264160, 2.661920, 0.000000) -> (0.020657, -0.328377) and (0.024663, -0.325474)
(-0.467360, 2.458720, 0.000000) -> (-0.303876, -0.065696) and (-0.305036, -0.066549)
(-0.264160, 2.458720, 0.000000) -> (-0.232686, -0.147969) and (-0.228805, -0.150968)
(-0.264160, 2.661920, 0.000000) -> (-0.150698, -0.121905) and (-0.144144, -0.124888)
(-0.467360, 2.661920, 0.000000) -> (-0.225779, -0.033342) and (-0.221226, -0.033297)
(-0.711200, 2.214880, 0.000000) -> (-0.491744, 0.001755) and (-0.491518, 0.001069)
(-0.508000, 2.214880, 0.000000) -> (-0.412600, -0.081177) and (-0.408143, -0.084932)
(-0.508000, 2.418080, 0.000000) -> (-0.344332, -0.053571) and (-0.336606, -0.055102)
(-0.711200, 2.418080, 0.000000) -> (-0.428125, 0.036965) and (-0.421966, 0.038227)
calculateReprojectionError ends
[ INFO] [1616909249.746921900]: 重投影误差_reference!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.393156, -0.100195) and (-0.395161, -0.100171)
(-0.264160, 2.214880, 0.000000) -> (-0.320177, -0.175403) and (-0.320535, -0.177316)
(-0.264160, 2.418080, 0.000000) -> (-0.251685, -0.153721) and (-0.247872, -0.154578)
(-0.467360, 2.418080, 0.000000) -> (-0.325300, -0.075133) and (-0.323779, -0.071460)
(-0.711200, 2.702560, 0.000000) -> (-0.308887, 0.101957) and (-0.311067, 0.100892)
(-0.508000, 2.702560, 0.000000) -> (-0.222856, -0.000953) and (-0.223556, -0.004746)
(-0.508000, 2.905760, 0.000000) -> (-0.127792, 0.038204) and (-0.125420, 0.036722)
(-0.711200, 2.905760, 0.000000) -> (-0.215284, 0.152373) and (-0.214053, 0.153324)
(-0.223520, 2.702560, 0.000000) -> (-0.111571, -0.136302) and (-0.115470, -0.135223)
(-0.020320, 2.702560, 0.000000) -> (-0.045653, -0.217409) and (-0.046932, -0.217958)
(-0.020320, 2.905760, 0.000000) -> (0.050591, -0.194390) and (0.051217, -0.195654)
(-0.223520, 2.905760, 0.000000) -> (-0.015660, -0.108830) and (-0.016972, -0.105948)
(-0.467360, 2.702560, 0.000000) -> (-0.203734, -0.024666) and (-0.207149, -0.024552)
(-0.264160, 2.702560, 0.000000) -> (-0.129265, -0.115217) and (-0.129992, -0.117692)
(-0.264160, 2.905760, 0.000000) -> (-0.032220, -0.085948) and (-0.031478, -0.086865)
(-0.467360, 2.905760, 0.000000) -> (-0.108527, 0.013357) and (-0.108886, 0.014970)
(-0.223520, 2.214880, 0.000000) -> (-0.302688, -0.192774) and (-0.306370, -0.191959)
(-0.020320, 2.214880, 0.000000) -> (-0.240423, -0.260843) and (-0.238998, -0.261605)
(-0.020320, 2.418080, 0.000000) -> (-0.170731, -0.244418) and (-0.165404, -0.244881)
(-0.223520, 2.418080, 0.000000) -> (-0.232682, -0.172874) and (-0.233510, -0.170305)
(0.264160, 2.458720, 0.000000) -> (-0.057532, -0.340863) and (-0.063557, -0.336780)
(0.467360, 2.458720, 0.000000) -> (-0.008477, -0.397612) and (-0.007870, -0.398529)
(0.467360, 2.661920, 0.000000) -> (0.073158, -0.386156) and (0.076112, -0.389962)
(0.264160, 2.661920, 0.000000) -> (0.020657, -0.328377) and (0.020845, -0.324264)
(-0.467360, 2.458720, 0.000000) -> (-0.303876, -0.065696) and (-0.308401, -0.065276)
(-0.264160, 2.458720, 0.000000) -> (-0.232686, -0.147969) and (-0.232270, -0.149696)
(-0.264160, 2.661920, 0.000000) -> (-0.150698, -0.121905) and (-0.148151, -0.123374)
(-0.467360, 2.661920, 0.000000) -> (-0.225779, -0.033342) and (-0.225183, -0.031805)
(-0.711200, 2.214880, 0.000000) -> (-0.491744, 0.001755) and (-0.494013, 0.002017)
(-0.508000, 2.214880, 0.000000) -> (-0.412600, -0.081177) and (-0.410894, -0.083907)
(-0.508000, 2.418080, 0.000000) -> (-0.344332, -0.053571) and (-0.339834, -0.053880)
(-0.711200, 2.418080, 0.000000) -> (-0.428125, 0.036965) and (-0.424963, 0.039336)
calculateReprojectionError ends
[ INFO] [1616909249.785770499]: write your code here!
R:  0.528911   0.80391  0.271996
-0.749345  0.291913  0.594364
 0.398416 -0.518184  0.756802
R_ref:  0.532275  0.798271  0.281862
-0.751086  0.291687  0.592274
 0.390579 -0.526956  0.754828
T: -2.20516
-1.17085
 3.09173
T_ref: [-2.226396567875753;
 -1.182104993818462;
 3.141338753014283]
[ INFO] [1616909249.786041676]: 重投影误差!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.392636, -0.103955) and (-0.382170, -0.099035)
(-0.264160, 2.214880, 0.000000) -> (-0.320529, -0.177956) and (-0.306894, -0.177484)
(-0.264160, 2.418080, 0.000000) -> (-0.252498, -0.157412) and (-0.231301, -0.154046)
(-0.467360, 2.418080, 0.000000) -> (-0.324172, -0.076600) and (-0.307669, -0.069450)
(-0.711200, 2.702560, 0.000000) -> (-0.309055, 0.098532) and (-0.290281, 0.107245)
(-0.508000, 2.702560, 0.000000) -> (-0.222000, -0.004507) and (-0.202314, -0.000854)
(-0.508000, 2.905760, 0.000000) -> (-0.128290, 0.035551) and (-0.099646, 0.041952)
(-0.711200, 2.905760, 0.000000) -> (-0.215003, 0.148672) and (-0.188343, 0.161449)
(0.020320, 2.458720, 0.000000) -> (-0.132626, -0.261513) and (-0.119303, -0.256521)
(0.223520, 2.458720, 0.000000) -> (-0.073027, -0.326750) and (-0.057871, -0.325487)
(0.223520, 2.661920, 0.000000) -> (0.006288, -0.313515) and (0.029427, -0.311585)
(0.020320, 2.661920, 0.000000) -> (-0.051556, -0.243888) and (-0.031656, -0.237743)
(-0.223520, 2.702560, 0.000000) -> (-0.111658, -0.140140) and (-0.094094, -0.133839)
(-0.020320, 2.702560, 0.000000) -> (-0.044999, -0.220685) and (-0.025717, -0.217864)
(-0.020320, 2.905760, 0.000000) -> (0.049838, -0.197426) and (0.076092, -0.194810)
(-0.223520, 2.905760, 0.000000) -> (-0.015452, -0.111696) and (0.008412, -0.103629)
(-0.467360, 2.702560, 0.000000) -> (-0.203763, -0.028322) and (-0.185856, -0.021078)
(-0.264160, 2.702560, 0.000000) -> (-0.128779, -0.118659) and (-0.108607, -0.116005)
(-0.264160, 2.905760, 0.000000) -> (-0.032672, -0.088936) and (-0.006012, -0.084196)
(-0.467360, 2.905760, 0.000000) -> (-0.108311, 0.010205) and (-0.083138, 0.019712)
(-0.223520, 2.214880, 0.000000) -> (-0.303872, -0.195831) and (-0.292628, -0.192352)
(-0.020320, 2.214880, 0.000000) -> (-0.240622, -0.263758) and (-0.224874, -0.262961)
(-0.020320, 2.418080, 0.000000) -> (-0.169786, -0.247560) and (-0.148574, -0.245684)
(-0.223520, 2.418080, 0.000000) -> (-0.233491, -0.176714) and (-0.216875, -0.170026)
(0.264160, 2.458720, 0.000000) -> (-0.058009, -0.344792) and (-0.046205, -0.338584)
(0.467360, 2.458720, 0.000000) -> (-0.005626, -0.400667) and (0.009295, -0.400891)
(0.467360, 2.661920, 0.000000) -> (0.071700, -0.390538) and (0.095851, -0.391882)
(0.264160, 2.661920, 0.000000) -> (0.022744, -0.330808) and (0.040991, -0.325563)
(-0.223520, 2.458720, 0.000000) -> (-0.212406, -0.170562) and (-0.200617, -0.165234)
(-0.020320, 2.458720, 0.000000) -> (-0.150108, -0.243276) and (-0.132249, -0.241987)
(-0.020320, 2.661920, 0.000000) -> (-0.066640, -0.224747) and (-0.044570, -0.222133)
(-0.223520, 2.661920, 0.000000) -> (-0.133938, -0.146144) and (-0.112999, -0.139411)
(-0.467360, 2.458720, 0.000000) -> (-0.304953, -0.068432) and (-0.291615, -0.063075)
(-0.264160, 2.458720, 0.000000) -> (-0.231730, -0.150612) and (-0.215066, -0.149012)
(-0.264160, 2.661920, 0.000000) -> (-0.151849, -0.125211) and (-0.127513, -0.121867)
(-0.467360, 2.661920, 0.000000) -> (-0.224958, -0.037082) and (-0.204698, -0.028560)
(-0.711200, 2.214880, 0.000000) -> (-0.492150, -0.000810) and (-0.482189, 0.005200)
(-0.508000, 2.214880, 0.000000) -> (-0.411707, -0.083685) and (-0.398065, -0.082470)
(-0.508000, 2.418080, 0.000000) -> (-0.345770, -0.056799) and (-0.323850, -0.051527)
(-0.711200, 2.418080, 0.000000) -> (-0.426457, 0.033860) and (-0.409806, 0.043689)
calculateReprojectionError ends
[ INFO] [1616909249.786451446]: 重投影误差_reference!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.392636, -0.103955) and (-0.394656, -0.103271)
(-0.264160, 2.214880, 0.000000) -> (-0.320529, -0.177956) and (-0.320108, -0.180462)
(-0.264160, 2.418080, 0.000000) -> (-0.252498, -0.157412) and (-0.247581, -0.157815)
(-0.467360, 2.418080, 0.000000) -> (-0.324172, -0.076600) and (-0.323451, -0.074651)
(-0.711200, 2.702560, 0.000000) -> (-0.309055, 0.098532) and (-0.310939, 0.097516)
(-0.508000, 2.702560, 0.000000) -> (-0.222000, -0.004507) and (-0.223478, -0.008067)
(-0.508000, 2.905760, 0.000000) -> (-0.128290, 0.035551) and (-0.125527, 0.033306)
(-0.711200, 2.905760, 0.000000) -> (-0.215003, 0.148672) and (-0.214183, 0.149839)
(0.020320, 2.458720, 0.000000) -> (-0.132626, -0.261513) and (-0.136410, -0.259053)
(0.223520, 2.458720, 0.000000) -> (-0.073027, -0.326750) and (-0.074856, -0.327372)
(0.223520, 2.661920, 0.000000) -> (0.006288, -0.313515) and (0.009590, -0.314110)
(0.020320, 2.661920, 0.000000) -> (-0.051556, -0.243888) and (-0.051900, -0.241000)
(-0.223520, 2.702560, 0.000000) -> (-0.111658, -0.140140) and (-0.115341, -0.138610)
(-0.020320, 2.702560, 0.000000) -> (-0.044999, -0.220685) and (-0.046708, -0.221464)
(-0.020320, 2.905760, 0.000000) -> (0.049838, -0.197426) and (0.051412, -0.199271)
(-0.223520, 2.905760, 0.000000) -> (-0.015452, -0.111696) and (-0.016933, -0.109435)
(-0.467360, 2.702560, 0.000000) -> (-0.203763, -0.028322) and (-0.207071, -0.027874)
(-0.264160, 2.702560, 0.000000) -> (-0.128779, -0.118659) and (-0.129878, -0.121062)
(-0.264160, 2.905760, 0.000000) -> (-0.032672, -0.088936) and (-0.031466, -0.090332)
(-0.467360, 2.905760, 0.000000) -> (-0.108311, 0.010205) and (-0.108978, 0.011554)
(-0.223520, 2.214880, 0.000000) -> (-0.303872, -0.195831) and (-0.305951, -0.195120)
(-0.020320, 2.214880, 0.000000) -> (-0.240622, -0.263758) and (-0.238594, -0.264865)
(-0.020320, 2.418080, 0.000000) -> (-0.169786, -0.247560) and (-0.165088, -0.248239)
(-0.223520, 2.418080, 0.000000) -> (-0.233491, -0.176714) and (-0.233219, -0.173558)
(0.264160, 2.458720, 0.000000) -> (-0.058009, -0.344792) and (-0.063147, -0.340368)
(0.467360, 2.458720, 0.000000) -> (-0.005626, -0.400667) and (-0.007350, -0.402297)
(0.467360, 2.661920, 0.000000) -> (0.071700, -0.390538) and (0.076673, -0.393868)
(0.264160, 2.661920, 0.000000) -> (0.022744, -0.330808) and (0.021253, -0.327976)
(-0.223520, 2.458720, 0.000000) -> (-0.212406, -0.170562) and (-0.217610, -0.168930)
(-0.020320, 2.458720, 0.000000) -> (-0.150108, -0.243276) and (-0.149359, -0.244681)
(-0.020320, 2.661920, 0.000000) -> (-0.066640, -0.224747) and (-0.064875, -0.225573)
(-0.223520, 2.661920, 0.000000) -> (-0.133938, -0.146144) and (-0.133491, -0.143991)
(-0.467360, 2.458720, 0.000000) -> (-0.304953, -0.068432) and (-0.308109, -0.068485)
(-0.264160, 2.458720, 0.000000) -> (-0.231730, -0.150612) and (-0.232006, -0.152952)
(-0.264160, 2.661920, 0.000000) -> (-0.151849, -0.125211) and (-0.148013, -0.126725)
(-0.467360, 2.661920, 0.000000) -> (-0.224958, -0.037082) and (-0.225069, -0.035108)
(-0.711200, 2.214880, 0.000000) -> (-0.492150, -0.000810) and (-0.493320, -0.001109)
(-0.508000, 2.214880, 0.000000) -> (-0.411707, -0.083685) and (-0.410365, -0.087005)
(-0.508000, 2.418080, 0.000000) -> (-0.345770, -0.056799) and (-0.339491, -0.057069)
(-0.711200, 2.418080, 0.000000) -> (-0.426457, 0.033860) and (-0.424496, 0.036109)
calculateReprojectionError ends
[ INFO] [1616909249.816103130]: write your code here!
R:  0.531735  0.798676  0.281734
-0.748756  0.287884  0.597066
 0.395756 -0.528431  0.751092
R_ref:  0.532114  0.798215  0.282327
-0.750668  0.290546  0.593364
 0.391603 -0.527671  0.753797
T: -2.21705
-1.17218
 3.14431
T_ref: [-2.224122514160627;
 -1.175901948096602;
 3.146221780349906]
[ INFO] [1616909249.816418481]: 重投影误差!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.391377, -0.101558) and (-0.389387, -0.103199)
(-0.264160, 2.214880, 0.000000) -> (-0.317599, -0.176220) and (-0.314836, -0.180150)
(-0.264160, 2.418080, 0.000000) -> (-0.251497, -0.154463) and (-0.241915, -0.157928)
(-0.467360, 2.418080, 0.000000) -> (-0.322051, -0.075639) and (-0.317739, -0.075001)
(-0.711200, 2.702560, 0.000000) -> (-0.307528, 0.100686) and (-0.304412, 0.096433)
(-0.508000, 2.702560, 0.000000) -> (-0.220359, -0.002062) and (-0.216943, -0.009102)
(-0.508000, 2.905760, 0.000000) -> (-0.126116, 0.037307) and (-0.118208, 0.031757)
(-0.711200, 2.905760, 0.000000) -> (-0.213629, 0.150465) and (-0.206771, 0.148305)
(-0.223520, 2.702560, 0.000000) -> (-0.109341, -0.137686) and (-0.109006, -0.139333)
(-0.020320, 2.702560, 0.000000) -> (-0.044365, -0.218192) and (-0.040619, -0.221845)
(-0.020320, 2.905760, 0.000000) -> (0.052417, -0.196470) and (0.058039, -0.200182)
(-0.223520, 2.905760, 0.000000) -> (-0.013571, -0.110163) and (-0.009959, -0.110697)
(-0.467360, 2.702560, 0.000000) -> (-0.201845, -0.025540) and (-0.200551, -0.028879)
(-0.264160, 2.702560, 0.000000) -> (-0.127729, -0.116162) and (-0.123502, -0.121843)
(-0.264160, 2.905760, 0.000000) -> (-0.031350, -0.086924) and (-0.024431, -0.091652)
(-0.467360, 2.905760, 0.000000) -> (-0.106648, 0.011038) and (-0.101695, 0.010027)
(-0.223520, 2.214880, 0.000000) -> (-0.299659, -0.194593) and (-0.300689, -0.194752)
(-0.020320, 2.214880, 0.000000) -> (-0.238946, -0.262785) and (-0.233426, -0.264180)
(-0.020320, 2.418080, 0.000000) -> (-0.169034, -0.244920) and (-0.159588, -0.247967)
(-0.223520, 2.418080, 0.000000) -> (-0.231622, -0.174092) and (-0.227573, -0.173613)
(0.264160, 2.458720, 0.000000) -> (-0.058330, -0.341633) and (-0.057891, -0.339635)
(0.467360, 2.458720, 0.000000) -> (-0.005513, -0.398003) and (-0.002372, -0.401130)
(0.467360, 2.661920, 0.000000) -> (0.075196, -0.388429) and (0.081906, -0.393106)
(0.264160, 2.661920, 0.000000) -> (0.022033, -0.329872) and (0.026830, -0.327677)
(-0.223520, 2.458720, 0.000000) -> (-0.211504, -0.167801) and (-0.211878, -0.169075)
(-0.020320, 2.458720, 0.000000) -> (-0.147577, -0.241271) and (-0.143784, -0.244497)
(-0.020320, 2.661920, 0.000000) -> (-0.066741, -0.222767) and (-0.058881, -0.225855)
(-0.223520, 2.661920, 0.000000) -> (-0.131346, -0.144562) and (-0.127267, -0.144613)
(-0.467360, 2.458720, 0.000000) -> (-0.302931, -0.066969) and (-0.302297, -0.068923)
(-0.264160, 2.458720, 0.000000) -> (-0.230328, -0.148450) and (-0.226251, -0.153155)
(-0.264160, 2.661920, 0.000000) -> (-0.149071, -0.123500) and (-0.141753, -0.127405)
(-0.467360, 2.661920, 0.000000) -> (-0.223454, -0.034898) and (-0.218681, -0.036015)
(-0.711200, 2.214880, 0.000000) -> (-0.489978, 0.001325) and (-0.488200, -0.001205)
(-0.508000, 2.214880, 0.000000) -> (-0.409297, -0.083193) and (-0.405109, -0.086971)
(-0.508000, 2.418080, 0.000000) -> (-0.344156, -0.053033) and (-0.333783, -0.057454)
(-0.711200, 2.418080, 0.000000) -> (-0.424343, 0.034761) and (-0.418884, 0.035619)
calculateReprojectionError ends
[ INFO] [1616909249.816811210]: 重投影误差_reference!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.391377, -0.101558) and (-0.392795, -0.101169)
(-0.264160, 2.214880, 0.000000) -> (-0.317599, -0.176220) and (-0.318421, -0.178267)
(-0.264160, 2.418080, 0.000000) -> (-0.251497, -0.154463) and (-0.245943, -0.155671)
(-0.467360, 2.418080, 0.000000) -> (-0.322051, -0.075639) and (-0.321626, -0.072607)
(-0.711200, 2.702560, 0.000000) -> (-0.307528, 0.100686) and (-0.308909, 0.099324)
(-0.508000, 2.702560, 0.000000) -> (-0.220359, -0.002062) and (-0.221672, -0.006143)
(-0.508000, 2.905760, 0.000000) -> (-0.126116, 0.037307) and (-0.123773, 0.035144)
(-0.711200, 2.905760, 0.000000) -> (-0.213629, 0.150465) and (-0.212182, 0.151547)
(-0.223520, 2.702560, 0.000000) -> (-0.109341, -0.137686) and (-0.113827, -0.136525)
(-0.020320, 2.702560, 0.000000) -> (-0.044365, -0.218192) and (-0.045387, -0.219268)
(-0.020320, 2.905760, 0.000000) -> (0.052417, -0.196470) and (0.052639, -0.197132)
(-0.223520, 2.905760, 0.000000) -> (-0.013571, -0.110163) and (-0.015498, -0.107418)
(-0.467360, 2.702560, 0.000000) -> (-0.201845, -0.025540) and (-0.205309, -0.025926)
(-0.264160, 2.702560, 0.000000) -> (-0.127729, -0.116162) and (-0.128324, -0.119000)
(-0.264160, 2.905760, 0.000000) -> (-0.031350, -0.086924) and (-0.029987, -0.088341)
(-0.467360, 2.905760, 0.000000) -> (-0.106648, 0.011038) and (-0.107272, 0.013418)
(-0.223520, 2.214880, 0.000000) -> (-0.299659, -0.194593) and (-0.304297, -0.192908)
(-0.020320, 2.214880, 0.000000) -> (-0.238946, -0.262785) and (-0.237104, -0.262561)
(-0.020320, 2.418080, 0.000000) -> (-0.169034, -0.244920) and (-0.163661, -0.245976)
(-0.223520, 2.418080, 0.000000) -> (-0.231622, -0.174092) and (-0.231617, -0.171393)
(0.264160, 2.458720, 0.000000) -> (-0.058330, -0.341633) and (-0.061965, -0.337979)
(0.467360, 2.458720, 0.000000) -> (-0.005513, -0.398003) and (-0.006323, -0.399815)
(0.467360, 2.661920, 0.000000) -> (0.075196, -0.388429) and (0.077600, -0.391414)
(0.264160, 2.661920, 0.000000) -> (0.022033, -0.329872) and (0.022343, -0.325622)
(-0.223520, 2.458720, 0.000000) -> (-0.211504, -0.167801) and (-0.216019, -0.166776)
(-0.020320, 2.458720, 0.000000) -> (-0.147577, -0.241271) and (-0.147946, -0.242428)
(-0.020320, 2.661920, 0.000000) -> (-0.066741, -0.222767) and (-0.063537, -0.223367)
(-0.223520, 2.661920, 0.000000) -> (-0.131346, -0.144562) and (-0.131963, -0.141894)
(-0.467360, 2.458720, 0.000000) -> (-0.302931, -0.066969) and (-0.306293, -0.066454)
(-0.264160, 2.458720, 0.000000) -> (-0.230328, -0.148450) and (-0.230379, -0.150818)
(-0.264160, 2.661920, 0.000000) -> (-0.149071, -0.123500) and (-0.146446, -0.124650)
(-0.467360, 2.661920, 0.000000) -> (-0.223454, -0.034898) and (-0.223297, -0.033146)
(-0.711200, 2.214880, 0.000000) -> (-0.489978, 0.001325) and (-0.491241, 0.000881)
(-0.508000, 2.214880, 0.000000) -> (-0.409297, -0.083193) and (-0.408469, -0.084922)
(-0.508000, 2.418080, 0.000000) -> (-0.344156, -0.053033) and (-0.337627, -0.055046)
(-0.711200, 2.418080, 0.000000) -> (-0.424343, 0.034761) and (-0.422434, 0.038031)
calculateReprojectionError ends
[ INFO] [1616909249.845004760]: write your code here!
R:  0.530913  0.800224  0.278879
-0.748764  0.288861  0.596584
 0.396843 -0.525548  0.752539
R_ref:  0.532498  0.797528  0.283539
-0.749895   0.28915  0.595021
 0.392561 -0.529472  0.752034
T: -2.21035
-1.16387
 3.12659
T_ref: [-2.221085599109323;
 -1.170326164095419;
 3.150292835698724]
[ INFO] [1616909249.845207323]: 重投影误差!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.389426, -0.100871) and (-0.386068, -0.097991)
(-0.264160, 2.214880, 0.000000) -> (-0.318744, -0.174597) and (-0.311238, -0.175638)
(-0.264160, 2.418080, 0.000000) -> (-0.250371, -0.154011) and (-0.237353, -0.152827)
(-0.467360, 2.418080, 0.000000) -> (-0.321426, -0.074782) and (-0.313400, -0.069115)
(-0.711200, 2.702560, 0.000000) -> (-0.305370, 0.101853) and (-0.298648, 0.104852)
(-0.508000, 2.702560, 0.000000) -> (-0.220001, -0.001108) and (-0.210944, -0.001886)
(-0.508000, 2.905760, 0.000000) -> (-0.125564, 0.037705) and (-0.110736, 0.039960)
(-0.711200, 2.905760, 0.000000) -> (-0.212938, 0.151009) and (-0.199415, 0.157913)
(0.020320, 2.458720, 0.000000) -> (-0.129683, -0.258958) and (-0.125937, -0.254473)
(0.223520, 2.458720, 0.000000) -> (-0.071745, -0.323811) and (-0.064559, -0.322918)
(0.223520, 2.661920, 0.000000) -> (0.008082, -0.309573) and (0.021170, -0.309588)
(0.020320, 2.661920, 0.000000) -> (-0.049499, -0.241877) and (-0.040002, -0.236312)
(-0.223520, 2.702560, 0.000000) -> (-0.109191, -0.137030) and (-0.102851, -0.133439)
(-0.020320, 2.702560, 0.000000) -> (-0.042986, -0.217301) and (-0.034440, -0.216697)
(-0.020320, 2.905760, 0.000000) -> (0.052692, -0.194955) and (0.065426, -0.194355)
(-0.223520, 2.905760, 0.000000) -> (-0.014182, -0.109167) and (-0.002490, -0.104019)
(-0.467360, 2.702560, 0.000000) -> (-0.201771, -0.024988) and (-0.194520, -0.021875)
(-0.264160, 2.702560, 0.000000) -> (-0.126319, -0.115571) and (-0.117359, -0.115781)
(-0.264160, 2.905760, 0.000000) -> (-0.030665, -0.085596) and (-0.016952, -0.084782)
(-0.467360, 2.905760, 0.000000) -> (-0.106662, 0.012598) and (-0.094214, 0.017984)
(-0.223520, 2.458720, 0.000000) -> (-0.212136, -0.167006) and (-0.207075, -0.163991)
(-0.020320, 2.458720, 0.000000) -> (-0.147582, -0.240088) and (-0.138863, -0.240058)
(-0.020320, 2.661920, 0.000000) -> (-0.065770, -0.221297) and (-0.052924, -0.220832)
(-0.223520, 2.661920, 0.000000) -> (-0.131163, -0.144099) and (-0.121353, -0.138863)
(-0.467360, 2.458720, 0.000000) -> (-0.303590, -0.065817) and (-0.297737, -0.062890)
(-0.264160, 2.458720, 0.000000) -> (-0.228727, -0.147895) and (-0.221481, -0.147927)
(-0.264160, 2.661920, 0.000000) -> (-0.149903, -0.121938) and (-0.135855, -0.121491)
(-0.467360, 2.661920, 0.000000) -> (-0.222889, -0.034595) and (-0.212914, -0.029184)
(-0.711200, 2.214880, 0.000000) -> (-0.489167, 0.000998) and (-0.485343, 0.005023)
(-0.508000, 2.214880, 0.000000) -> (-0.409478, -0.080259) and (-0.401856, -0.081608)
(-0.508000, 2.418080, 0.000000) -> (-0.342990, -0.053355) and (-0.329499, -0.051393)
(-0.711200, 2.418080, 0.000000) -> (-0.424873, 0.037236) and (-0.414945, 0.042666)
calculateReprojectionError ends
[ INFO] [1616909249.845467383]: 重投影误差_reference!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.389426, -0.100871) and (-0.392130, -0.100006)
(-0.264160, 2.214880, 0.000000) -> (-0.318744, -0.174597) and (-0.317694, -0.177066)
(-0.264160, 2.418080, 0.000000) -> (-0.250371, -0.154011) and (-0.245295, -0.154587)
(-0.467360, 2.418080, 0.000000) -> (-0.321426, -0.074782) and (-0.321055, -0.071548)
(-0.711200, 2.702560, 0.000000) -> (-0.305370, 0.101853) and (-0.308594, 0.100297)
(-0.508000, 2.702560, 0.000000) -> (-0.220001, -0.001108) and (-0.221210, -0.005220)
(-0.508000, 2.905760, 0.000000) -> (-0.125564, 0.037705) and (-0.123318, 0.035984)
(-0.711200, 2.905760, 0.000000) -> (-0.212938, 0.151009) and (-0.211898, 0.152486)
(0.020320, 2.458720, 0.000000) -> (-0.129683, -0.258958) and (-0.134324, -0.255663)
(0.223520, 2.458720, 0.000000) -> (-0.071745, -0.323811) and (-0.072906, -0.323829)
(0.223520, 2.661920, 0.000000) -> (0.008082, -0.309573) and (0.011427, -0.310751)
(0.020320, 2.661920, 0.000000) -> (-0.049499, -0.241877) and (-0.049923, -0.237794)
(-0.223520, 2.702560, 0.000000) -> (-0.109191, -0.137030) and (-0.113226, -0.135610)
(-0.020320, 2.702560, 0.000000) -> (-0.042986, -0.217301) and (-0.044723, -0.218327)
(-0.020320, 2.905760, 0.000000) -> (0.052692, -0.194955) and (0.053324, -0.196338)
(-0.223520, 2.905760, 0.000000) -> (-0.014182, -0.109167) and (-0.014884, -0.106630)
(-0.467360, 2.702560, 0.000000) -> (-0.201771, -0.024988) and (-0.204822, -0.025008)
(-0.264160, 2.702560, 0.000000) -> (-0.126319, -0.115571) and (-0.127738, -0.118086)
(-0.264160, 2.905760, 0.000000) -> (-0.030665, -0.085596) and (-0.029391, -0.087550)
(-0.467360, 2.905760, 0.000000) -> (-0.106662, 0.012598) and (-0.106789, 0.014245)
(-0.223520, 2.458720, 0.000000) -> (-0.212136, -0.167006) and (-0.215372, -0.165710)
(-0.020320, 2.458720, 0.000000) -> (-0.147582, -0.240088) and (-0.147247, -0.241320)
(-0.020320, 2.661920, 0.000000) -> (-0.065770, -0.221297) and (-0.062871, -0.222397)
(-0.223520, 2.661920, 0.000000) -> (-0.131163, -0.144099) and (-0.131358, -0.140953)
(-0.467360, 2.458720, 0.000000) -> (-0.303590, -0.065817) and (-0.305738, -0.065415)
(-0.264160, 2.458720, 0.000000) -> (-0.228727, -0.147895) and (-0.229744, -0.149758)
(-0.264160, 2.661920, 0.000000) -> (-0.149903, -0.121938) and (-0.145856, -0.123712)
(-0.467360, 2.661920, 0.000000) -> (-0.222889, -0.034595) and (-0.222803, -0.032207)
(-0.711200, 2.214880, 0.000000) -> (-0.489167, 0.000998) and (-0.490682, 0.002021)
(-0.508000, 2.214880, 0.000000) -> (-0.409478, -0.080259) and (-0.407819, -0.083764)
(-0.508000, 2.418080, 0.000000) -> (-0.342990, -0.053355) and (-0.337075, -0.053988)
(-0.711200, 2.418080, 0.000000) -> (-0.424873, 0.037236) and (-0.421996, 0.039092)
calculateReprojectionError ends
[ INFO] [1616909249.877841260]: write your code here!
R:  0.528928   0.80346  0.273292
 -0.74848  0.289852  0.596459
 0.400017 -0.520037  0.754684
R_ref:  0.532338  0.797379  0.284258
-0.751503  0.290562  0.592299
 0.389692 -0.528924   0.75391
T: -2.19454
-1.16505
 3.09465
T_ref: [-2.222670261569504;
 -1.177196533403445;
 3.148634571807198]
[ INFO] [1616909249.878099392]: 重投影误差!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.391339, -0.102225) and (-0.377119, -0.098672)
(-0.264160, 2.214880, 0.000000) -> (-0.318614, -0.176669) and (-0.301932, -0.177093)
(-0.264160, 2.418080, 0.000000) -> (-0.250585, -0.154691) and (-0.226068, -0.153885)
(-0.467360, 2.418080, 0.000000) -> (-0.325034, -0.076784) and (-0.302333, -0.069300)
(-0.711200, 2.702560, 0.000000) -> (-0.306930, 0.099818) and (-0.284267, 0.107215)
(-0.508000, 2.702560, 0.000000) -> (-0.220886, -0.002147) and (-0.196392, -0.000998)
(-0.508000, 2.905760, 0.000000) -> (-0.127608, 0.036302) and (-0.093148, 0.041595)
(-0.711200, 2.905760, 0.000000) -> (-0.213484, 0.150098) and (-0.181713, 0.161276)
(0.020320, 2.458720, 0.000000) -> (-0.133687, -0.260966) and (-0.114197, -0.256337)
(0.223520, 2.458720, 0.000000) -> (-0.073010, -0.325360) and (-0.052919, -0.325222)
(0.223520, 2.661920, 0.000000) -> (0.008284, -0.311828) and (0.034688, -0.311592)
(0.020320, 2.661920, 0.000000) -> (-0.050669, -0.243075) and (-0.026214, -0.237827)
(-0.223520, 2.702560, 0.000000) -> (-0.108818, -0.138686) and (-0.088367, -0.134023)
(-0.020320, 2.702560, 0.000000) -> (-0.045096, -0.218697) and (-0.020161, -0.218015)
(-0.020320, 2.905760, 0.000000) -> (0.050919, -0.196847) and (0.082119, -0.195253)
(-0.223520, 2.905760, 0.000000) -> (-0.015163, -0.110645) and (0.014653, -0.104083)
(-0.467360, 2.702560, 0.000000) -> (-0.201672, -0.026288) and (-0.179957, -0.021236)
(-0.264160, 2.702560, 0.000000) -> (-0.128188, -0.117055) and (-0.102849, -0.116190)
(-0.264160, 2.905760, 0.000000) -> (-0.033022, -0.087425) and (0.000269, -0.084645)
(-0.467360, 2.905760, 0.000000) -> (-0.107118, 0.010871) and (-0.076673, 0.019330)
(0.264160, 2.458720, 0.000000) -> (-0.056527, -0.343302) and (-0.041285, -0.338300)
(0.467360, 2.458720, 0.000000) -> (-0.007278, -0.398090) and (0.014049, -0.400504)
(0.467360, 2.661920, 0.000000) -> (0.072370, -0.390509) and (0.100882, -0.391767)
(0.264160, 2.661920, 0.000000) -> (0.023926, -0.329825) and (0.046214, -0.325552)
(-0.223520, 2.458720, 0.000000) -> (-0.212173, -0.169449) and (-0.195345, -0.165115)
(-0.020320, 2.458720, 0.000000) -> (-0.147676, -0.241246) and (-0.127113, -0.241817)
(-0.020320, 2.661920, 0.000000) -> (-0.067263, -0.223426) and (-0.039093, -0.222228)
(-0.223520, 2.661920, 0.000000) -> (-0.133044, -0.145005) and (-0.107359, -0.139543)
(-0.467360, 2.458720, 0.000000) -> (-0.302247, -0.067489) and (-0.286212, -0.062968)
(-0.264160, 2.458720, 0.000000) -> (-0.231741, -0.148888) and (-0.209770, -0.148899)
(-0.264160, 2.661920, 0.000000) -> (-0.149611, -0.123664) and (-0.121842, -0.122001)
(-0.467360, 2.661920, 0.000000) -> (-0.224744, -0.035608) and (-0.198895, -0.028674)
(-0.711200, 2.214880, 0.000000) -> (-0.489644, 0.000492) and (-0.477074, 0.005580)
(-0.508000, 2.214880, 0.000000) -> (-0.409603, -0.083548) and (-0.393000, -0.082109)
(-0.508000, 2.418080, 0.000000) -> (-0.345172, -0.053128) and (-0.318497, -0.051373)
(-0.711200, 2.418080, 0.000000) -> (-0.425408, 0.034423) and (-0.404392, 0.043893)
calculateReprojectionError ends
[ INFO] [1616909249.878609099]: 重投影误差_reference!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.391339, -0.102225) and (-0.392960, -0.101624)
(-0.264160, 2.214880, 0.000000) -> (-0.318614, -0.176669) and (-0.318641, -0.178808)
(-0.264160, 2.418080, 0.000000) -> (-0.250585, -0.154691) and (-0.246314, -0.156266)
(-0.467360, 2.418080, 0.000000) -> (-0.325034, -0.076784) and (-0.321973, -0.073109)
(-0.711200, 2.702560, 0.000000) -> (-0.306930, 0.099818) and (-0.309496, 0.098841)
(-0.508000, 2.702560, 0.000000) -> (-0.220886, -0.002147) and (-0.222278, -0.006687)
(-0.508000, 2.905760, 0.000000) -> (-0.127608, 0.036302) and (-0.124567, 0.034567)
(-0.711200, 2.905760, 0.000000) -> (-0.213484, 0.150098) and (-0.213012, 0.151042)
(0.020320, 2.458720, 0.000000) -> (-0.133687, -0.260966) and (-0.135405, -0.257563)
(0.223520, 2.458720, 0.000000) -> (-0.073010, -0.325360) and (-0.073970, -0.325931)
(0.223520, 2.661920, 0.000000) -> (0.008284, -0.311828) and (0.010328, -0.312794)
(0.020320, 2.661920, 0.000000) -> (-0.050669, -0.243075) and (-0.051066, -0.239629)
(-0.223520, 2.702560, 0.000000) -> (-0.108818, -0.138686) and (-0.114390, -0.137224)
(-0.020320, 2.702560, 0.000000) -> (-0.045096, -0.218697) and (-0.045886, -0.220109)
(-0.020320, 2.905760, 0.000000) -> (0.050919, -0.196847) and (0.052067, -0.198045)
(-0.223520, 2.905760, 0.000000) -> (-0.015163, -0.110645) and (-0.016179, -0.108171)
(-0.467360, 2.702560, 0.000000) -> (-0.201672, -0.026288) and (-0.205913, -0.026488)
(-0.264160, 2.702560, 0.000000) -> (-0.128188, -0.117055) and (-0.128897, -0.119672)
(-0.264160, 2.905760, 0.000000) -> (-0.033022, -0.087425) and (-0.030688, -0.089064)
(-0.467360, 2.905760, 0.000000) -> (-0.107118, 0.010871) and (-0.108054, 0.012821)
(0.264160, 2.458720, 0.000000) -> (-0.056527, -0.343302) and (-0.062281, -0.338939)
(0.467360, 2.458720, 0.000000) -> (-0.007278, -0.398090) and (-0.006573, -0.400933)
(0.467360, 2.661920, 0.000000) -> (0.072370, -0.390509) and (0.077326, -0.392638)
(0.264160, 2.661920, 0.000000) -> (0.023926, -0.329825) and (0.021974, -0.326673)
(-0.223520, 2.458720, 0.000000) -> (-0.212173, -0.169449) and (-0.216420, -0.167406)
(-0.020320, 2.458720, 0.000000) -> (-0.147676, -0.241246) and (-0.148326, -0.243183)
(-0.020320, 2.661920, 0.000000) -> (-0.067263, -0.223426) and (-0.064018, -0.224193)
(-0.223520, 2.661920, 0.000000) -> (-0.133044, -0.145005) and (-0.132500, -0.142581)
(-0.467360, 2.458720, 0.000000) -> (-0.302247, -0.067489) and (-0.306676, -0.066964)
(-0.264160, 2.458720, 0.000000) -> (-0.231741, -0.148888) and (-0.230780, -0.151425)
(-0.264160, 2.661920, 0.000000) -> (-0.149611, -0.123664) and (-0.146992, -0.125311)
(-0.467360, 2.661920, 0.000000) -> (-0.224744, -0.035608) and (-0.223864, -0.033699)
(-0.711200, 2.214880, 0.000000) -> (-0.489644, 0.000492) and (-0.491282, 0.000489)
(-0.508000, 2.214880, 0.000000) -> (-0.409603, -0.083548) and (-0.408618, -0.085362)
(-0.508000, 2.418080, 0.000000) -> (-0.345172, -0.053128) and (-0.337965, -0.055532)
(-0.711200, 2.418080, 0.000000) -> (-0.425408, 0.034423) and (-0.422695, 0.037597)
calculateReprojectionError ends
[ INFO] [1616909249.918006016]: write your code here!
R:  0.528728  0.802866  0.275415
-0.748623  0.288181  0.597089
 0.400013 -0.521879  0.753413
R_ref:  0.530842  0.799167  0.282026
-0.750704  0.289004   0.59407
 0.393255 -0.527076  0.753354
T: -2.21489
 -1.1629
 3.11375
T_ref: [-2.23131676003418;
 -1.171154690746015;
 3.145302926490519]
[ INFO] [1616909249.918268660]: 重投影误差!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.392373, -0.101146) and (-0.386100, -0.098669)
(-0.264160, 2.214880, 0.000000) -> (-0.321958, -0.174846) and (-0.311151, -0.176469)
(-0.264160, 2.418080, 0.000000) -> (-0.254275, -0.154809) and (-0.236617, -0.153650)
(-0.467360, 2.418080, 0.000000) -> (-0.325762, -0.075229) and (-0.312702, -0.069781)
(-0.711200, 2.702560, 0.000000) -> (-0.308892, 0.101684) and (-0.296810, 0.104557)
(-0.508000, 2.702560, 0.000000) -> (-0.223232, -0.001106) and (-0.209109, -0.002512)
(-0.508000, 2.905760, 0.000000) -> (-0.129579, 0.037461) and (-0.107991, 0.039301)
(-0.711200, 2.905760, 0.000000) -> (-0.215557, 0.150183) and (-0.196515, 0.157609)
(0.020320, 2.458720, 0.000000) -> (-0.133644, -0.259944) and (-0.125155, -0.255368)
(0.223520, 2.458720, 0.000000) -> (-0.074295, -0.324590) and (-0.063899, -0.323786)
(0.223520, 2.661920, 0.000000) -> (0.003466, -0.309506) and (0.022302, -0.310433)
(0.020320, 2.661920, 0.000000) -> (-0.052504, -0.242163) and (-0.038658, -0.237201)
(-0.223520, 2.702560, 0.000000) -> (-0.110844, -0.137562) and (-0.101169, -0.134291)
(-0.020320, 2.702560, 0.000000) -> (-0.047195, -0.217443) and (-0.032941, -0.217588)
(-0.020320, 2.905760, 0.000000) -> (0.048675, -0.195545) and (0.067520, -0.195259)
(-0.223520, 2.905760, 0.000000) -> (-0.016725, -0.109663) and (-0.000091, -0.104901)
(-0.467360, 2.702560, 0.000000) -> (-0.204505, -0.025722) and (-0.192697, -0.022549)
(-0.264160, 2.702560, 0.000000) -> (-0.130110, -0.115472) and (-0.115647, -0.116615)
(-0.264160, 2.905760, 0.000000) -> (-0.034133, -0.086892) and (-0.014497, -0.085648)
(-0.467360, 2.905760, 0.000000) -> (-0.109109, 0.011739) and (-0.091511, 0.017276)
(-0.223520, 2.458720, 0.000000) -> (-0.215176, -0.168236) and (-0.206210, -0.164834)
(-0.020320, 2.458720, 0.000000) -> (-0.148499, -0.240145) and (-0.138061, -0.240952)
(-0.020320, 2.661920, 0.000000) -> (-0.069370, -0.222408) and (-0.051543, -0.221722)
(-0.223520, 2.661920, 0.000000) -> (-0.134224, -0.144615) and (-0.119811, -0.139712)
(-0.467360, 2.458720, 0.000000) -> (-0.305103, -0.066270) and (-0.296885, -0.063556)
(-0.264160, 2.458720, 0.000000) -> (-0.233423, -0.148205) and (-0.220610, -0.148750)
(-0.264160, 2.661920, 0.000000) -> (-0.152851, -0.122584) and (-0.134287, -0.122322)
(-0.467360, 2.661920, 0.000000) -> (-0.226384, -0.035221) and (-0.211259, -0.029855)
(-0.711200, 2.214880, 0.000000) -> (-0.492222, 0.001573) and (-0.485651, 0.004668)
(-0.508000, 2.214880, 0.000000) -> (-0.412307, -0.081985) and (-0.401924, -0.082244)
(-0.508000, 2.418080, 0.000000) -> (-0.347490, -0.052633) and (-0.328819, -0.052014)
(-0.711200, 2.418080, 0.000000) -> (-0.427593, 0.035804) and (-0.414421, 0.042346)
calculateReprojectionError ends
[ INFO] [1616909249.918622084]: 重投影误差_reference!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.392373, -0.101146) and (-0.395380, -0.100438)
(-0.264160, 2.214880, 0.000000) -> (-0.321958, -0.174846) and (-0.320961, -0.177554)
(-0.264160, 2.418080, 0.000000) -> (-0.254275, -0.154809) and (-0.248510, -0.155081)
(-0.467360, 2.418080, 0.000000) -> (-0.325762, -0.075229) and (-0.324221, -0.072004)
(-0.711200, 2.702560, 0.000000) -> (-0.308892, 0.101684) and (-0.311592, 0.099778)
(-0.508000, 2.702560, 0.000000) -> (-0.223232, -0.001106) and (-0.224307, -0.005750)
(-0.508000, 2.905760, 0.000000) -> (-0.129579, 0.037461) and (-0.126450, 0.035347)
(-0.711200, 2.905760, 0.000000) -> (-0.215557, 0.150183) and (-0.214881, 0.151809)
(0.020320, 2.458720, 0.000000) -> (-0.133644, -0.259944) and (-0.137616, -0.256185)
(0.223520, 2.458720, 0.000000) -> (-0.074295, -0.324590) and (-0.076259, -0.324359)
(0.223520, 2.661920, 0.000000) -> (0.003466, -0.309506) and (0.008008, -0.311253)
(0.020320, 2.661920, 0.000000) -> (-0.052504, -0.242163) and (-0.053256, -0.238309)
(-0.223520, 2.702560, 0.000000) -> (-0.110844, -0.137562) and (-0.116461, -0.136138)
(-0.020320, 2.702560, 0.000000) -> (-0.047195, -0.217443) and (-0.048052, -0.218844)
(-0.020320, 2.905760, 0.000000) -> (0.048675, -0.195545) and (0.049873, -0.196869)
(-0.223520, 2.905760, 0.000000) -> (-0.016725, -0.109663) and (-0.018208, -0.107206)
(-0.467360, 2.702560, 0.000000) -> (-0.204505, -0.025722) and (-0.207939, -0.025539)
(-0.264160, 2.702560, 0.000000) -> (-0.130110, -0.115472) and (-0.130954, -0.118616)
(-0.264160, 2.905760, 0.000000) -> (-0.034133, -0.086892) and (-0.032690, -0.088135)
(-0.467360, 2.905760, 0.000000) -> (-0.109109, 0.011739) and (-0.109950, 0.013617)
(-0.223520, 2.458720, 0.000000) -> (-0.215176, -0.168236) and (-0.218592, -0.166212)
(-0.020320, 2.458720, 0.000000) -> (-0.148499, -0.240145) and (-0.150526, -0.241840)
(-0.020320, 2.661920, 0.000000) -> (-0.069370, -0.222408) and (-0.066186, -0.222914)
(-0.223520, 2.661920, 0.000000) -> (-0.134224, -0.144615) and (-0.134584, -0.141475)
(-0.467360, 2.458720, 0.000000) -> (-0.305103, -0.066270) and (-0.308891, -0.065878)
(-0.264160, 2.458720, 0.000000) -> (-0.233423, -0.148205) and (-0.232953, -0.150255)
(-0.264160, 2.661920, 0.000000) -> (-0.152851, -0.122584) and (-0.149065, -0.124234)
(-0.467360, 2.661920, 0.000000) -> (-0.226384, -0.035221) and (-0.225921, -0.032724)
(-0.711200, 2.214880, 0.000000) -> (-0.492222, 0.001573) and (-0.493928, 0.001682)
(-0.508000, 2.214880, 0.000000) -> (-0.412307, -0.081985) and (-0.411067, -0.084183)
(-0.508000, 2.418080, 0.000000) -> (-0.347490, -0.052633) and (-0.340233, -0.054435)
(-0.711200, 2.418080, 0.000000) -> (-0.427593, 0.035804) and (-0.425114, 0.038703)
calculateReprojectionError ends
[ INFO] [1616909249.948489932]: write your code here!
R:  0.520224  0.817322  0.247693
  -0.7461  0.293816  0.597501
 0.415575 -0.495638  0.762654
R_ref:  0.533142  0.794487  0.290775
-0.755188  0.291973  0.586893
  0.38138 -0.532487   0.75565
T: -2.14756
-1.14526
 2.97371
T_ref: [-2.222250900408317;
 -1.181405664092457;
 3.169387225718727]
[ INFO] [1616909249.948743973]: 重投影误差!
calculateReprojectionError begins
(-0.711200, 2.702560, 0.000000) -> (-0.311096, 0.101395) and (-0.230592, 0.134027)
(-0.508000, 2.702560, 0.000000) -> (-0.225292, -0.000590) and (-0.142628, 0.019541)
(-0.508000, 2.905760, 0.000000) -> (-0.132049, 0.037424) and (-0.027900, 0.066177)
(-0.711200, 2.905760, 0.000000) -> (-0.217977, 0.150771) and (-0.115194, 0.193159)
(0.020320, 2.458720, 0.000000) -> (-0.133085, -0.259715) and (-0.072257, -0.248376)
(0.223520, 2.458720, 0.000000) -> (-0.076718, -0.324322) and (-0.011752, -0.319066)
(0.223520, 2.661920, 0.000000) -> (0.002693, -0.309967) and (0.082623, -0.303288)
(0.020320, 2.661920, 0.000000) -> (-0.054809, -0.242134) and (0.023246, -0.227514)
(-0.223520, 2.702560, 0.000000) -> (-0.113958, -0.137642) and (-0.035672, -0.119664)
(-0.020320, 2.702560, 0.000000) -> (-0.047604, -0.217739) and (0.031202, -0.206701)
(-0.020320, 2.905760, 0.000000) -> (0.047130, -0.195312) and (0.142164, -0.181204)
(-0.223520, 2.905760, 0.000000) -> (-0.018886, -0.110009) and (0.077119, -0.086587)
(-0.467360, 2.702560, 0.000000) -> (-0.205917, -0.026243) and (-0.126274, -0.001745)
(-0.264160, 2.702560, 0.000000) -> (-0.131478, -0.115832) and (-0.049935, -0.101100)
(-0.264160, 2.905760, 0.000000) -> (-0.037130, -0.086509) and (0.063184, -0.066317)
(-0.467360, 2.905760, 0.000000) -> (-0.111468, 0.012459) and (-0.011762, 0.042703)
(0.264160, 2.458720, 0.000000) -> (-0.063084, -0.341745) and (-0.000308, -0.332436)
(0.467360, 2.458720, 0.000000) -> (-0.008685, -0.397934) and (0.053935, -0.395810)
(0.467360, 2.661920, 0.000000) -> (0.069313, -0.386663) and (0.146715, -0.385078)
(0.264160, 2.661920, 0.000000) -> (0.017769, -0.329888) and (0.093817, -0.317572)
(-0.223520, 2.458720, 0.000000) -> (-0.215747, -0.168097) and (-0.152978, -0.154066)
(-0.020320, 2.458720, 0.000000) -> (-0.152398, -0.240819) and (-0.085060, -0.233417)
(-0.020320, 2.661920, 0.000000) -> (-0.071677, -0.222208) and (0.010640, -0.211427)
(-0.223520, 2.661920, 0.000000) -> (-0.137015, -0.144443) and (-0.056484, -0.125768)
(-0.467360, 2.458720, 0.000000) -> (-0.308123, -0.066332) and (-0.244180, -0.047511)
(-0.264160, 2.458720, 0.000000) -> (-0.233821, -0.147981) and (-0.167398, -0.137218)
(-0.264160, 2.661920, 0.000000) -> (-0.154510, -0.122761) and (-0.070789, -0.107512)
(-0.467360, 2.661920, 0.000000) -> (-0.227804, -0.035296) and (-0.147280, -0.009899)
calculateReprojectionError ends
[ INFO] [1616909249.949031884]: 重投影误差_reference!
calculateReprojectionError begins
(-0.711200, 2.702560, 0.000000) -> (-0.311096, 0.101395) and (-0.311345, 0.099213)
(-0.508000, 2.702560, 0.000000) -> (-0.225292, -0.000590) and (-0.225138, -0.005659)
(-0.508000, 2.905760, 0.000000) -> (-0.132049, 0.037424) and (-0.129169, 0.035448)
(-0.711200, 2.905760, 0.000000) -> (-0.217977, 0.150771) and (-0.216775, 0.151078)
(0.020320, 2.458720, 0.000000) -> (-0.133085, -0.259715) and (-0.138122, -0.256369)
(0.223520, 2.458720, 0.000000) -> (-0.076718, -0.324322) and (-0.076932, -0.325037)
(0.223520, 2.661920, 0.000000) -> (0.002693, -0.309967) and (0.006410, -0.311887)
(0.020320, 2.661920, 0.000000) -> (-0.054809, -0.242134) and (-0.054872, -0.238417)
(-0.223520, 2.702560, 0.000000) -> (-0.113958, -0.137642) and (-0.118094, -0.135880)
(-0.020320, 2.702560, 0.000000) -> (-0.047604, -0.217739) and (-0.049889, -0.218852)
(-0.020320, 2.905760, 0.000000) -> (0.047130, -0.195312) and (0.046770, -0.196770)
(-0.223520, 2.905760, 0.000000) -> (-0.018886, -0.110009) and (-0.021363, -0.106843)
(-0.467360, 2.702560, 0.000000) -> (-0.205917, -0.026243) and (-0.208930, -0.025377)
(-0.264160, 2.702560, 0.000000) -> (-0.131478, -0.115832) and (-0.132513, -0.118339)
(-0.264160, 2.905760, 0.000000) -> (-0.037130, -0.086509) and (-0.035822, -0.087758)
(-0.467360, 2.905760, 0.000000) -> (-0.111468, 0.012459) and (-0.112776, 0.013812)
(0.264160, 2.458720, 0.000000) -> (-0.063084, -0.341745) and (-0.065274, -0.338119)
(0.467360, 2.458720, 0.000000) -> (-0.008685, -0.397934) and (-0.009646, -0.400546)
(0.467360, 2.661920, 0.000000) -> (0.069313, -0.386663) and (0.073453, -0.392263)
(0.264160, 2.661920, 0.000000) -> (0.017769, -0.329888) and (0.018051, -0.325843)
(-0.223520, 2.458720, 0.000000) -> (-0.215747, -0.168097) and (-0.218603, -0.166052)
(-0.020320, 2.458720, 0.000000) -> (-0.152398, -0.240819) and (-0.150974, -0.241946)
(-0.020320, 2.661920, 0.000000) -> (-0.071677, -0.222208) and (-0.067782, -0.222940)
(-0.223520, 2.661920, 0.000000) -> (-0.137015, -0.144443) and (-0.135933, -0.141235)
(-0.467360, 2.458720, 0.000000) -> (-0.308123, -0.066332) and (-0.307984, -0.065748)
(-0.264160, 2.458720, 0.000000) -> (-0.233821, -0.147981) and (-0.232843, -0.150071)
(-0.264160, 2.661920, 0.000000) -> (-0.154510, -0.122761) and (-0.150330, -0.123974)
(-0.467360, 2.661920, 0.000000) -> (-0.227804, -0.035296) and (-0.226574, -0.032568)
calculateReprojectionError ends
[ INFO] [1616909249.979112909]: write your code here!
R:  0.521342  0.814815  0.253535
-0.747534  0.292776  0.596218
 0.411578 -0.500359  0.761738
R_ref:  0.529308  0.800313   0.28166
-0.751736  0.288474  0.593022
 0.393351 -0.525625  0.754316
T: -2.18203
-1.15145
 3.01026
T_ref: [-2.239361199691934;
 -1.169084299295188;
 3.141475530321042]
[ INFO] [1616909249.979334767]: 重投影误差!
calculateReprojectionError begins
(-0.711200, 2.702560, 0.000000) -> (-0.311679, 0.101929) and (-0.256884, 0.125574)
(-0.508000, 2.702560, 0.000000) -> (-0.226015, -0.000024) and (-0.168943, 0.013491)
(-0.508000, 2.905760, 0.000000) -> (-0.131984, 0.038182) and (-0.058798, 0.058667)
(-0.711200, 2.905760, 0.000000) -> (-0.218995, 0.151050) and (-0.146525, 0.182758)
(0.020320, 2.458720, 0.000000) -> (-0.135416, -0.259486) and (-0.093960, -0.249824)
(0.223520, 2.458720, 0.000000) -> (-0.080342, -0.323878) and (-0.033172, -0.319804)
(0.223520, 2.661920, 0.000000) -> (0.001268, -0.309691) and (0.058447, -0.304566)
(0.020320, 2.661920, 0.000000) -> (-0.054889, -0.241817) and (-0.001462, -0.229612)
(-0.223520, 2.702560, 0.000000) -> (-0.115081, -0.136872) and (-0.061606, -0.123314)
(-0.020320, 2.702560, 0.000000) -> (-0.048928, -0.217212) and (0.005735, -0.209142)
(-0.020320, 2.905760, 0.000000) -> (0.045490, -0.194568) and (0.113071, -0.184446)
(-0.223520, 2.905760, 0.000000) -> (-0.019620, -0.109792) and (0.047185, -0.091249)
(-0.467360, 2.702560, 0.000000) -> (-0.206598, -0.025047) and (-0.152559, -0.007391)
(-0.264160, 2.702560, 0.000000) -> (-0.133219, -0.114642) and (-0.075946, -0.105036)
(-0.264160, 2.905760, 0.000000) -> (-0.037129, -0.086351) and (0.033094, -0.071317)
(-0.467360, 2.905760, 0.000000) -> (-0.112592, 0.012834) and (-0.042544, 0.035674)
(0.264160, 2.458720, 0.000000) -> (-0.061371, -0.341491) and (-0.021661, -0.333057)
(0.467360, 2.458720, 0.000000) -> (-0.012325, -0.398248) and (0.032968, -0.395948)
(0.467360, 2.661920, 0.000000) -> (0.066357, -0.386141) and (0.123266, -0.385666)
(0.264160, 2.661920, 0.000000) -> (0.017500, -0.328439) and (0.069756, -0.318716)
(-0.223520, 2.458720, 0.000000) -> (-0.216845, -0.166538) and (-0.174855, -0.156693)
(-0.020320, 2.458720, 0.000000) -> (-0.154181, -0.239705) and (-0.106806, -0.235035)
(-0.020320, 2.661920, 0.000000) -> (-0.072296, -0.221430) and (-0.014164, -0.213720)
(-0.223520, 2.661920, 0.000000) -> (-0.137514, -0.144489) and (-0.081690, -0.129233)
(-0.467360, 2.458720, 0.000000) -> (-0.308701, -0.065159) and (-0.265978, -0.051789)
(-0.264160, 2.458720, 0.000000) -> (-0.235854, -0.147405) and (-0.189282, -0.140084)
(-0.264160, 2.661920, 0.000000) -> (-0.155073, -0.121811) and (-0.096059, -0.111256)
(-0.467360, 2.661920, 0.000000) -> (-0.228989, -0.034767) and (-0.172755, -0.015297)
(-0.711200, 2.214880, 0.000000) -> (-0.496304, 0.002461) and (-0.464851, 0.017812)
(-0.508000, 2.214880, 0.000000) -> (-0.415399, -0.080399) and (-0.379312, -0.072793)
(-0.508000, 2.418080, 0.000000) -> (-0.350493, -0.052346) and (-0.299499, -0.040057)
(-0.711200, 2.418080, 0.000000) -> (-0.431070, 0.036439) and (-0.386380, 0.058473)
calculateReprojectionError ends
[ INFO] [1616909249.979626980]: 重投影误差_reference!
calculateReprojectionError begins
(-0.711200, 2.702560, 0.000000) -> (-0.311679, 0.101929) and (-0.314262, 0.100729)
(-0.508000, 2.702560, 0.000000) -> (-0.226015, -0.000024) and (-0.227041, -0.004985)
(-0.508000, 2.905760, 0.000000) -> (-0.131984, 0.038182) and (-0.129202, 0.036085)
(-0.711200, 2.905760, 0.000000) -> (-0.218995, 0.151050) and (-0.217545, 0.152721)
(0.020320, 2.458720, 0.000000) -> (-0.135416, -0.259486) and (-0.140466, -0.255819)
(0.223520, 2.458720, 0.000000) -> (-0.080342, -0.323878) and (-0.079144, -0.324122)
(0.223520, 2.661920, 0.000000) -> (0.001268, -0.309691) and (0.005092, -0.311009)
(0.020320, 2.661920, 0.000000) -> (-0.054889, -0.241817) and (-0.056126, -0.237939)
(-0.223520, 2.702560, 0.000000) -> (-0.115081, -0.136872) and (-0.119275, -0.135600)
(-0.020320, 2.702560, 0.000000) -> (-0.048928, -0.217212) and (-0.050920, -0.218448)
(-0.020320, 2.905760, 0.000000) -> (0.045490, -0.194568) and (0.046945, -0.196478)
(-0.223520, 2.905760, 0.000000) -> (-0.019620, -0.109792) and (-0.021069, -0.106682)
(-0.467360, 2.702560, 0.000000) -> (-0.206598, -0.025047) and (-0.210685, -0.024809)
(-0.264160, 2.702560, 0.000000) -> (-0.133219, -0.114642) and (-0.133757, -0.118047)
(-0.264160, 2.905760, 0.000000) -> (-0.037129, -0.086351) and (-0.035535, -0.087582)
(-0.467360, 2.905760, 0.000000) -> (-0.112592, 0.012834) and (-0.112719, 0.014322)
(0.264160, 2.458720, 0.000000) -> (-0.061371, -0.341491) and (-0.067482, -0.337112)
(0.467360, 2.458720, 0.000000) -> (-0.012325, -0.398248) and (-0.011923, -0.398996)
(0.467360, 2.661920, 0.000000) -> (0.066357, -0.386141) and (0.071846, -0.390688)
(0.264160, 2.661920, 0.000000) -> (0.017500, -0.328439) and (0.016699, -0.324864)
(-0.223520, 2.458720, 0.000000) -> (-0.216845, -0.166538) and (-0.221400, -0.165671)
(-0.020320, 2.458720, 0.000000) -> (-0.154181, -0.239705) and (-0.153370, -0.241446)
(-0.020320, 2.661920, 0.000000) -> (-0.072296, -0.221430) and (-0.069046, -0.222517)
(-0.223520, 2.661920, 0.000000) -> (-0.137514, -0.144489) and (-0.137395, -0.140935)
(-0.467360, 2.458720, 0.000000) -> (-0.308701, -0.065159) and (-0.311656, -0.065139)
(-0.264160, 2.458720, 0.000000) -> (-0.235854, -0.147405) and (-0.235754, -0.149683)
(-0.264160, 2.661920, 0.000000) -> (-0.155073, -0.121811) and (-0.151865, -0.123663)
(-0.467360, 2.661920, 0.000000) -> (-0.228989, -0.034767) and (-0.228667, -0.031991)
(-0.711200, 2.214880, 0.000000) -> (-0.496304, 0.002461) and (-0.496727, 0.002643)
(-0.508000, 2.214880, 0.000000) -> (-0.415399, -0.080399) and (-0.413880, -0.083415)
(-0.508000, 2.418080, 0.000000) -> (-0.350493, -0.052346) and (-0.342998, -0.053661)
(-0.711200, 2.418080, 0.000000) -> (-0.431070, 0.036439) and (-0.427847, 0.039671)
calculateReprojectionError ends
[ INFO] [1616909250.018490773]: write your code here!
R:  0.517031  0.819004   0.24882
-0.748624  0.291725  0.595364
 0.415018 -0.494095  0.763957
R_ref:  0.528767  0.799558  0.284801
-0.753825  0.288185  0.590506
 0.390069 -0.526931   0.75511
T:  -2.1716
-1.13334
 2.97363
T_ref: [-2.237102389392243;
 -1.166843951973272;
 3.147619552075728]
[ INFO] [1616909250.018738960]: 重投影误差!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.396958, -0.098079) and (-0.355568, -0.081488)
(-0.264160, 2.214880, 0.000000) -> (-0.323919, -0.172764) and (-0.279255, -0.163566)
(-0.264160, 2.418080, 0.000000) -> (-0.256018, -0.152013) and (-0.196352, -0.137891)
(-0.467360, 2.418080, 0.000000) -> (-0.326922, -0.074462) and (-0.273088, -0.049248)
(-0.711200, 2.702560, 0.000000) -> (-0.310832, 0.104103) and (-0.242641, 0.139582)
(-0.508000, 2.702560, 0.000000) -> (-0.225194, 0.001538) and (-0.154708, 0.024771)
(-0.508000, 2.905760, 0.000000) -> (-0.131507, 0.039501) and (-0.041008, 0.071313)
(-0.711200, 2.905760, 0.000000) -> (-0.217674, 0.153380) and (-0.128329, 0.198558)
(0.020320, 2.458720, 0.000000) -> (-0.136043, -0.257986) and (-0.083402, -0.244047)
(0.223520, 2.458720, 0.000000) -> (-0.077262, -0.322169) and (-0.022862, -0.315090)
(0.223520, 2.661920, 0.000000) -> (0.001000, -0.309056) and (0.070863, -0.299304)
(0.020320, 2.661920, 0.000000) -> (-0.054981, -0.240214) and (0.011418, -0.223184)
(-0.223520, 2.702560, 0.000000) -> (-0.115200, -0.135286) and (-0.047723, -0.114916)
(-0.020320, 2.702560, 0.000000) -> (-0.048652, -0.215725) and (0.019206, -0.202302)
(-0.020320, 2.905760, 0.000000) -> (0.046163, -0.193725) and (0.129276, -0.176825)
(-0.223520, 2.905760, 0.000000) -> (-0.018704, -0.108880) and (0.064121, -0.081881)
(-0.467360, 2.702560, 0.000000) -> (-0.207228, -0.023596) and (-0.138353, 0.003418)
(-0.264160, 2.702560, 0.000000) -> (-0.132368, -0.113569) and (-0.061994, -0.096282)
(-0.264160, 2.905760, 0.000000) -> (-0.036641, -0.085129) and (0.050166, -0.061547)
(-0.467360, 2.905760, 0.000000) -> (-0.111646, 0.013852) and (-0.024859, 0.047780)
(0.264160, 2.458720, 0.000000) -> (-0.062282, -0.340605) and (-0.011409, -0.328529)
(0.467360, 2.458720, 0.000000) -> (-0.011100, -0.396862) and (0.042885, -0.392241)
(0.467360, 2.661920, 0.000000) -> (0.067070, -0.385512) and (0.135052, -0.381500)
(0.264160, 2.661920, 0.000000) -> (0.016405, -0.327570) and (0.082071, -0.313657)
(-0.467360, 2.458720, 0.000000) -> (-0.307188, -0.064140) and (-0.255322, -0.042304)
(-0.264160, 2.458720, 0.000000) -> (-0.236376, -0.145668) and (-0.178561, -0.132381)
(-0.264160, 2.661920, 0.000000) -> (-0.155539, -0.121036) and (-0.082681, -0.102688)
(-0.467360, 2.661920, 0.000000) -> (-0.228957, -0.032513) and (-0.159184, -0.004725)
calculateReprojectionError ends
[ INFO] [1616909250.019066656]: 重投影误差_reference!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.396958, -0.098079) and (-0.396669, -0.098008)
(-0.264160, 2.214880, 0.000000) -> (-0.323919, -0.172764) and (-0.322694, -0.175457)
(-0.264160, 2.418080, 0.000000) -> (-0.256018, -0.152013) and (-0.250441, -0.152991)
(-0.467360, 2.418080, 0.000000) -> (-0.326922, -0.074462) and (-0.325713, -0.069587)
(-0.711200, 2.702560, 0.000000) -> (-0.310832, 0.104103) and (-0.312769, 0.102420)
(-0.508000, 2.702560, 0.000000) -> (-0.225194, 0.001538) and (-0.226079, -0.003319)
(-0.508000, 2.905760, 0.000000) -> (-0.131507, 0.039501) and (-0.128596, 0.037717)
(-0.711200, 2.905760, 0.000000) -> (-0.217674, 0.153380) and (-0.216447, 0.154341)
(0.020320, 2.458720, 0.000000) -> (-0.136043, -0.257986) and (-0.140039, -0.254625)
(0.223520, 2.458720, 0.000000) -> (-0.077262, -0.322169) and (-0.078909, -0.323206)
(0.223520, 2.661920, 0.000000) -> (0.001000, -0.309056) and (0.005157, -0.310133)
(0.020320, 2.661920, 0.000000) -> (-0.054981, -0.240214) and (-0.055906, -0.236771)
(-0.223520, 2.702560, 0.000000) -> (-0.115200, -0.135286) and (-0.118823, -0.134145)
(-0.020320, 2.702560, 0.000000) -> (-0.048652, -0.215725) and (-0.050706, -0.217231)
(-0.020320, 2.905760, 0.000000) -> (0.046163, -0.193725) and (0.046922, -0.195286)
(-0.223520, 2.905760, 0.000000) -> (-0.018704, -0.108880) and (-0.020904, -0.105246)
(-0.467360, 2.702560, 0.000000) -> (-0.207228, -0.023596) and (-0.209811, -0.023162)
(-0.264160, 2.702560, 0.000000) -> (-0.132368, -0.113569) and (-0.133246, -0.116553)
(-0.264160, 2.905760, 0.000000) -> (-0.036641, -0.085129) and (-0.035321, -0.086106)
(-0.467360, 2.905760, 0.000000) -> (-0.111646, 0.013852) and (-0.112191, 0.015940)
(0.264160, 2.458720, 0.000000) -> (-0.062282, -0.340605) and (-0.067278, -0.336255)
(0.467360, 2.458720, 0.000000) -> (-0.011100, -0.396862) and (-0.011841, -0.398450)
(0.467360, 2.661920, 0.000000) -> (0.067070, -0.385512) and (0.071802, -0.390202)
(0.264160, 2.661920, 0.000000) -> (0.016405, -0.327570) and (0.016741, -0.324050)
(-0.467360, 2.458720, 0.000000) -> (-0.307188, -0.064140) and (-0.310429, -0.063465)
(-0.264160, 2.458720, 0.000000) -> (-0.236376, -0.145668) and (-0.234929, -0.148168)
(-0.264160, 2.661920, 0.000000) -> (-0.155539, -0.121036) and (-0.151298, -0.122166)
(-0.467360, 2.661920, 0.000000) -> (-0.228957, -0.032513) and (-0.227730, -0.030340)
calculateReprojectionError ends
[ INFO] [1616909250.049537283]: write your code here!
R:  0.523126  0.807256   0.27327
-0.753479  0.288241   0.59092
 0.398257 -0.515029  0.759037
R_ref:  0.527228  0.800218  0.285801
-0.755213  0.287124  0.589248
 0.389466 -0.526509  0.755715
T: -2.21818
-1.15085
 3.08635
T_ref: [-2.238489906405937;
 -1.163060164786289;
 3.147172016781414]
[ INFO] [1616909250.049751705]: 重投影误差!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.395298, -0.097625) and (-0.383457, -0.091098)
(-0.264160, 2.214880, 0.000000) -> (-0.322902, -0.172358) and (-0.308838, -0.170284)
(-0.264160, 2.418080, 0.000000) -> (-0.255349, -0.150619) and (-0.232955, -0.146807)
(-0.467360, 2.418080, 0.000000) -> (-0.327996, -0.071925) and (-0.308583, -0.061466)
(-0.711200, 2.702560, 0.000000) -> (-0.309706, 0.104450) and (-0.289514, 0.116221)
(-0.508000, 2.702560, 0.000000) -> (-0.224160, 0.002169) and (-0.202573, 0.007308)
(-0.508000, 2.905760, 0.000000) -> (-0.129804, 0.040360) and (-0.099627, 0.050073)
(-0.711200, 2.905760, 0.000000) -> (-0.217037, 0.154323) and (-0.187156, 0.170358)
(0.020320, 2.458720, 0.000000) -> (-0.136464, -0.257535) and (-0.121834, -0.250233)
(0.223520, 2.458720, 0.000000) -> (-0.077620, -0.321770) and (-0.060988, -0.319826)
(0.223520, 2.661920, 0.000000) -> (0.001057, -0.309024) and (0.026383, -0.305916)
(0.020320, 2.661920, 0.000000) -> (-0.054665, -0.239313) and (-0.034056, -0.231444)
(-0.223520, 2.702560, 0.000000) -> (-0.113183, -0.134948) and (-0.095580, -0.126723)
(-0.020320, 2.702560, 0.000000) -> (-0.048980, -0.215455) and (-0.027958, -0.211433)
(-0.020320, 2.905760, 0.000000) -> (0.045823, -0.193329) and (0.073899, -0.188393)
(-0.223520, 2.905760, 0.000000) -> (-0.018513, -0.107327) and (0.007055, -0.096533)
(-0.467360, 2.702560, 0.000000) -> (-0.206025, -0.021946) and (-0.186304, -0.013072)
(-0.264160, 2.702560, 0.000000) -> (-0.132149, -0.113092) and (-0.109931, -0.108746)
(-0.264160, 2.905760, 0.000000) -> (-0.035825, -0.084226) and (-0.007189, -0.076959)
(-0.467360, 2.905760, 0.000000) -> (-0.110506, 0.014500) and (-0.083333, 0.027680)
(-0.467360, 2.458720, 0.000000) -> (-0.306896, -0.063030) and (-0.292457, -0.055084)
(-0.264160, 2.458720, 0.000000) -> (-0.235362, -0.145033) and (-0.216667, -0.141768)
(-0.264160, 2.661920, 0.000000) -> (-0.153568, -0.119809) and (-0.128876, -0.114607)
(-0.467360, 2.661920, 0.000000) -> (-0.228310, -0.031801) and (-0.205207, -0.020553)
calculateReprojectionError ends
[ INFO] [1616909250.049941945]: 重投影误差_reference!
calculateReprojectionError begins
(-0.467360, 2.214880, 0.000000) -> (-0.395298, -0.097625) and (-0.396059, -0.096809)
(-0.264160, 2.214880, 0.000000) -> (-0.322902, -0.172358) and (-0.322328, -0.174438)
(-0.264160, 2.418080, 0.000000) -> (-0.255349, -0.150619) and (-0.249991, -0.152033)
(-0.467360, 2.418080, 0.000000) -> (-0.327996, -0.071925) and (-0.325001, -0.068448)
(-0.711200, 2.702560, 0.000000) -> (-0.309706, 0.104450) and (-0.311497, 0.103656)
(-0.508000, 2.702560, 0.000000) -> (-0.224160, 0.002169) and (-0.225161, -0.002255)
(-0.508000, 2.905760, 0.000000) -> (-0.129804, 0.040360) and (-0.127575, 0.038679)
(-0.711200, 2.905760, 0.000000) -> (-0.217037, 0.154323) and (-0.215041, 0.155461)
(0.020320, 2.458720, 0.000000) -> (-0.136464, -0.257535) and (-0.139886, -0.253930)
(0.223520, 2.458720, 0.000000) -> (-0.077620, -0.321770) and (-0.078947, -0.322685)
(0.223520, 2.661920, 0.000000) -> (0.001057, -0.309024) and (0.005168, -0.309687)
(0.020320, 2.661920, 0.000000) -> (-0.054665, -0.239313) and (-0.055693, -0.236151)
(-0.223520, 2.702560, 0.000000) -> (-0.113183, -0.134948) and (-0.118312, -0.133328)
(-0.020320, 2.702560, 0.000000) -> (-0.048980, -0.215455) and (-0.050437, -0.216592)
(-0.020320, 2.905760, 0.000000) -> (0.045823, -0.193329) and (0.047247, -0.194737)
(-0.223520, 2.905760, 0.000000) -> (-0.018513, -0.107327) and (-0.020321, -0.104522)
(-0.467360, 2.702560, 0.000000) -> (-0.206025, -0.021946) and (-0.208957, -0.022133)
(-0.264160, 2.702560, 0.000000) -> (-0.132149, -0.113092) and (-0.132682, -0.115700)
(-0.264160, 2.905760, 0.000000) -> (-0.035825, -0.084226) and (-0.034682, -0.085348)
(-0.467360, 2.905760, 0.000000) -> (-0.110506, 0.014500) and (-0.111239, 0.016868)
(-0.467360, 2.458720, 0.000000) -> (-0.306896, -0.063030) and (-0.309697, -0.062340)
(-0.264160, 2.458720, 0.000000) -> (-0.235362, -0.145033) and (-0.234462, -0.147224)
(-0.264160, 2.661920, 0.000000) -> (-0.153568, -0.119809) and (-0.150750, -0.121296)
(-0.467360, 2.661920, 0.000000) -> (-0.228310, -0.031801) and (-0.226895, -0.029293)

 

 

 

参考资料

关于ArUco的:

https://docs.opencv.org/master/d5/dae/tutorial_aruco_detection.html

https://blog.csdn.net/u010260681/article/details/77089657

https://www.guyuehome.com/12042

关于SVD求解Ax=0的问题

https://blog.csdn.net/weixin_42587961/article/details/97374248

所谓的SVD是奇异值分解,其定义是

有一个m×n的实数矩阵A,我们想要把它分解成如下的形式:

其中UV均为单位正交阵。具体的求解过程可以参考(https://byjiang.com/2017/11/18/SVD/)

参考https://zhuanlan.zhihu.com/p/131097680

关于奇异值分解函数

JacobiSVD<MatrixXf> svd(obs_matrix, ComputeThinU | ComputeThinV);//关于其中得参数可参考:https://blog.csdn.net/xu_fengyu/article/details/103996945
    //U = svd.matrixU();
    // V = svd.matrixV();
    // A = svd.singularValues(); (A为对角线元素,奇异值)

的参数得应用https://blog.csdn.net/xu_fengyu/article/details/103996945

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS实验笔记之——基于ArUco Marker来估算camera的位姿 的相关文章

  • 一些有用的Python库

    1 制作动态排序图的库 做出来像这种效果 https mp weixin qq com s DQf35t7PUcFmi3j942Q7A 2 基于matplotlib轻松绘制漂亮的表格 比自己在ppt或者excel中搞出来的表格好看多了 像这
  • Android创建杀不死的Service

    在Android开发中我们经常会遇到一些特殊的需求需要让我们的服务常驻内存 xff0c 但是会遇到各种清理软件或者用户在设置中手动停止程序的情况而导致我们的服务被异常的终止掉 虽然没有办法保证绝对的常驻内存 xff0c 但是通过策略我们还是
  • Mac 从Bash切换到Zsh的注意事项

    1 第一步要安装Zsh xff0c 可以参考现成的文章 xff0c 推荐一篇https zhuanlan zhihu com p 19556676 2 安装完成之后退出命令行重新进入 xff0c 就可以看到Zsh的效果啦 3 及得切换默认的
  • 数组求实际长度(逻辑长度)

    有很多情况下 xff0c 比如我们定义了一个数组 xff0c byte a 61 new byte 100 但是给数组赋值的时候只赋了10个 xff0c 虽然这个数组在内存中的长度仍然是100 xff0c 但是我们想得到的确实数组的实际长度
  • java清空数组

    定义一个数字byte a 61 new byte 20 如果给数组赋值后又想让数组恢复到初始的状态 xff0c 那如何做呢 xff0c 其实很简单 xff0c 直接上方法 将byte数组置空 public static byte reset
  • 使用gazebo的官方模型库文件

    首先下载所有的gazebo模型库文件 xff0c 我已经打包上传到csdn了 xff0c 可以从如下链接中下载 xff1a 下载link 然后将下载好的文件存放在如下目录 xff1a cd gazebo models 如果没有上述目录就自行
  • 作为一个普通的程序员,到底应不应该转型AI工程师?

    动不动就是50万的毕业生年薪 xff0c 动不动就是100万起步价的海归AI高级人才 xff0c 普通员到底应不应该转型AI工程师 xff0c 普通程序员到底应该如何转型AI工程师 xff1f 下面就分享几个特别典型的普通程序员成功转型AI
  • 树莓派Odroid等卡片式电脑上搭建NAS教程系列1-Ubuntu系统安装

    我用的是韩国hardkernel公司做的Odroid XU板子 xff0c 类似于树莓派香蕉派 xff0c 看下它的真面目 相关参数点他 gt Odroid XU 搭建NAS之前先来安装好Ubuntu系统 下载安装文件 在Odroid里安装
  • 立创eda学习笔记一:pcb板基础知识

    整理了一下零基础学习pcb板画图需要了解的一些基础知识 xff0c 否则后面画图很困扰 什么是pcb板 xff1f PCB xff08 Printed Circuit Board xff09 xff0c 中文名称为印制电路板 xff0c 又
  • 立创eda学习笔记二:画pcb板流程(极简入门版)

    一般PCB基本设计流程如下 xff1a 前期准备 gt PCB结构设计 gt PCB布局 gt 布线 gt 布线优化和丝印 gt 网络和DRC检查和结构检查 gt 制版 一 画原理图 完成后检查元件的封装 连线是否正确 核实电路结构 xff
  • 立创eda学习笔记十一:立创eda、立创商城、嘉立创的区别

    简单来说 xff1a 立创eda是一个画原理图和pcb的eda软件 xff0c 类似于ad 立创商城是一个卖元器件网上平台 xff0c 类似于淘宝 嘉立创是一个生产pcb板 给pcb板贴片的生产厂家 一般情况下 xff0c 你可以在立创ed
  • 立创eda学习笔记十七:铺铜

    铺铜是pcb设计很常用的指令 xff0c 或者是必然用到的指令 xff0c 很多时候布线的时候不去画gnd的线 xff0c 把其他线画好了之后 xff0c 再统一铺铜作为gnd xff0c 这样方便很多 铺铜这个概念可以理解为大面积的布线
  • 立创eda学习笔记二十六:手把手教你使用立创eda的官方教程

    可以通过以下办法找到教程 xff1a 1 xff0c 在软件界面点帮助 使用教程 2 xff0c 在网站首页 帮助 教程进入 如何使用教程 xff1a 这里是一级目录 xff0c 其实对新手最有用的是前面3个部分 xff0c 后面的仿真先不
  • 立创eda学习笔记二十四:拼板

    这里主要是两部分 xff1a 自带拼板和手动拼板 xff0c 软件自带拼板功能 xff0c 那么手动拼板当然就是自己重新画图拼板了 一般用自带拼板功能就可以了 xff0c 把单板画好之后很容易就拼好了 xff0c 完全不用动任何器件和丝印编
  • Prometheus实战教程:监控mysql数据库

    今天我们使用prometheus 43 Grafana 43 mysql exporter实现监控mysql数据库各项指标数据 mysql exporter xff1a 采集mysql数据库各项指标数据 prometheus xff1a 获
  • prometheus常用exporter下载地址大全

    1 node exporter下载 https github com prometheus node exporter releases 2 blackbox exporter下载 https github com prometheus b
  • 论文润色 ‖ 一分钟教你如何写好SCI论文里的主题句,事半功倍

    今天 xff0c 小编来分享一下论文润色 xff0c SCI论文的主题句 xff08 Topic Sentences xff09 怎么写 xff1a 01什么是主题句 xff1f 主题句通常是段落开头的一句话 xff0c 是整个段落的小主题
  • Go xml文件处理

    在开发中会常遇到xml数据序列化和反序列化 xff0c 这里我们介绍go语言处理xml数据 encoding xml 包实现了一个简单的xml 1 0解析器 xff0c 可以理解xml名称空间 读取xml 示例 xff1a package
  • UC/OS-III 消息队列

    消息队列 一 消息队列基本概念讲解1 消息队列基本概念2 消息池2 1 消息池概念2 2 消息池初始化2 3 消息队列的运作机制2 4 消息队列的阻塞机制2 5 消息队列的应用场景 二 消息队列创建步骤1 定义消息队列2 创建消息队列 三
  • Altium Designer绘制stm32f103c8t6最小系统原理图

    文章目录 前言芯片封装自定义封装原理图绘制总结 前言 本文提供了初学者绘制stm32最小系统 xff0c 同时初学者的同学可以跟着小白学习绘制原理图哦 芯片封装 提示 xff1a 下载安装好Altium Designer之后才能进行以下操作

随机推荐

  • Jetson Xavier NX安装opencv3.x以及踩过的坑

    Jetson Xavier NX默认安装的是opencv4 x xff0c 在很多项目中其与opencv3 x xff0c 其中opencv3与opencv4中有部分函数是完全不同的 xff08 例如点一些Point的定义 xff0c Cv
  • 【导航算法】无人机路径跟踪L1导航算法

    L1导航算法是非常经典的非线性无人机路径跟随算法 xff0c 最早由MIT于2004年提出 xff0c 论文为 A New Nonlinear Guidance Logic for Trajectory Tracking xff0c 其导航
  • 【人工智能】1.问题求解:状态空间图和盲目搜索

    什么是问题求解 xff1f 问题求解可以理解为利用知识 xff0c 尽可能有效的找到问题的解 xff0c 或者最优解的过程 xff0c 主要包括 xff1a 1 xff09 问题描述方法 xff1a 状态空间法 xff0c 与或树表示法 x
  • 【路径规划】A*三维全局路径规划(附Python实现源码)

    1 A 启发式搜索 A 算法介绍 xff1a 启发式搜索算法 xff0c 除了wiki之外比较全的一个参考资料 xff1a A 启发式搜索算法详解 人工智能 这里是用Python写了一个简单的路径规划例子供参考 2 Matplotlib库
  • 【数据结构】3.图、最小生成树

    一 图的基本概念 1 什么是图 图表示一种多对多的关系 图包括 xff1a 1 xff09 一组顶点 xff1a 通常用 V Vertex 表示顶点集合 2 xff09 一组边 xff1a 通常用 E Edge 表示边的集合 3 xff09
  • 【NLP】主题模型文本分类

    自然语言处理之主题模型文本分类 LDA主题模型 1 主题模型 xff08 Topic Model xff09 主题模型是以非监督学习的方式对文集的隐含语义结构进行聚类的统计模型 主题模型主要被用于自然语言处理中的语义分析和文本挖掘问题 xf
  • 【NLP】Word2Vec模型文本分类

    自然语言处理之词向量模型聚类分析 Word Embedding 词嵌入向量 Word Embedding 是NLP里面一个重要的概念 xff0c 我们可以利用Word Embedding一个单词固定长度向量的表示一种表示形式 Word Em
  • (6.1)Kubernetes的Sevice服务间调用

    1 场景1 选择器 xff08 selector xff09 在k8s上运行了两个pod replicas 2 我们通过Service来整合这两个pod 在创建 Service 时 xff0c 就要通过选择器 xff08 selector
  • 【飞控算法】四旋翼飞行器控制原理与设计入门

    从动力学建模和几个四旋翼核心算法角度分析半自主飞控系统的建立 xff0c 即实现传统四旋翼的姿态控制和高度控制的过程 xff0c 文章主要借鉴了北航多旋翼设计课程 正点原子minifly微型四旋翼的资料 四旋翼无人飞行器设计 清华出版社 x
  • 【开源飞控】匿名飞控TI版解析(1)

    准备电赛的飞控题 xff0c 买来了匿名的飞控学习一下 xff0c 这里整理了一下匿名飞控中比较关键的几部分 xff0c 学习了一下原理 xff0c 然后代码解读都写注释里了 xff0c 篇幅较长 目录 一 遥控器信号接收 1 代码解读 2
  • 【开源飞控】匿名飞控TI版解析(2)

    因为电赛 xff0c 买来匿名飞控研究一下 xff0c 感觉相比其他的一下开源飞控 xff0c 易开发性和稳定性都是比较好的 xff0c 但就是比较贵 匿名TI版飞控是从32版改过来的 xff0c 硬件上就换了个芯片 xff0c 程序里也有
  • ROS中机器人与电脑的网络配置

    打开网络连接菜单 xff1a 选择网络 xff0c 输密码 并连接 xff08 以350502为例 xff0c 这里我就不连进去这个WiFi了 xff0c 还是连回402 xff0c 意思到了就行 xff09 查看连接信息 xff08 GU
  • ROS学习笔记之——gazebo仿真

    本博文是本人学习gazebo的学习记录 Gazebo是一款3D仿真器 xff0c 支持机器人开发所需的机器人 传感器和环境模型 xff0c 并且通过搭载的物理引擎可以得到逼真的仿真结果 Gazebo是近年来最受欢迎的三维仿真器之一 xff0
  • ROS学习笔记之——gazebo模型(URDF)

    最近在学习gazebo仿真 在之前博文里面 学习笔记之 gazebo仿真 xff0c 在介绍深度相机的ROS插件的时候 xff0c 涉及到了gazebo里面的一些模型文件架构的定义 本博文主要是对模型文件的定义做学习记录 目录 Model
  • ROS学习笔记之——ROS与gazebo之间的控制关系

    之前博客 学习笔记之 gazebo仿真 有采用用ricz来监控gazebo中的机器人 本博文对其进行深入的介绍 本文以 ROS学习笔记之 gazebo模型 xff08 URDF xff09 中的RRBot为例 目录 ros control
  • ROS学习笔记之——移动机器人的导航

    之前博客 ROS学习笔记之 激光雷达SLAM建图 已经介绍过如何通过激光雷达SLAM建图了 xff0c 本博文讲一下ROS机器人的导航相关 目录 导航相关理论介绍 导航的概述 costmap AMCL Dynamic Window Appr
  • ROS学习笔记之——EKF (Extended Kalman Filter) node 扩展卡尔曼滤波

    最近正好准备想试试利用EKF实现多传感器的融合 但没想到本身ROS里面就已经有EKF的功能包了 这个包用于评估机器人的3D位姿 xff0c 使用了来自不同源的位姿测量信息 xff0c 它使用带有6D xff08 3D position an
  • ROS学习笔记之——路径规划及avoid obstacles

    之前博客 ROS学习笔记之 Navigation Stack及路径规划 介绍了navigation stack xff0c 其中涉及到的amcl 路径规划以及避障还没有详细的展开 目录 AMCL 路径规划 全局路径规划中的地图 栅格地图 x
  • 【LeetCode】LCS最长公共子序列

    最长公共子序列 题目描述思路分析递归结构算法实现输出最长子序列算法实现 题目描述 思路分析 设A 61 a0 xff0c a1 xff0c xff0c am xff0c B 61 b0 xff0c b1 xff0c xff0c bn xff
  • ROS实验笔记之——基于ArUco Marker来估算camera的位姿

    最近在做课程的project的时候 xff0c 实现了基于Marker的3D 2D的相机位姿估计算法 写下本博文作为学习记录用 xff5e 先看看整体的实现效果 基于ArUco Marker来估算camera的位姿 目录 安装ArUco A