Git Product home page Git Product logo

handeyecalib's Introduction

手眼标定提供的接口:
The interfaces provided by hand-eye calibration tool set:

1 - 相机内参标定工具
Tools for calibrating camera intrinsics
2 - 眼在手上标定
Tools for eye in hand calibration
3 - 眼在手外标定
Tools for eye to hand calibration

需要OpenCV版本>4
Need OpenCV version > 4

需要Boost的filesystem模块,安装boost模块的方法可以通过在

程序的安装:
程序的安装和一般的cmake项目安装方式相同,在程序根目录下创建build文件夹,在build文件夹中打开终端。
在终端输入以下指令:
    cmake ..
    make
    sudo make install
    (输入用户密码)
运行包会被安装到/usr/lib/libsparkvis.so
运行头文件会被安装到/usr/include/sparkvis/*.hpp里面 
如果需要删除库,可以将以上的文件和文件夹删除就可以了(sudo rm 和 sudo rm -rf *) :)

安装完成后构造cmake工程,使用target_link_libraries去链接sparkvis
或者是可以直接使用g++ -lsparkvis

软件的使用方法暂时可以参考在example里的例程,更详细的说明文档以后会提供。

所有的软件接口都定义在sparkvis命名空间里面。

内参标定的使用说明:

内参标定
1 - 构造CamCalib对象
sparkvis::CamCalib cc;
2 - 导入图片
cc.loadImages("<DirectoryName>");
3 - 设置结果路径,会被保存的结果包括了图像的内参,图像的畸变系数,标定板在不同图像中的姿态
cc.setResultDir("<DirectoryName>");
4 - 调用标定函数,传入变量保存
cc.calibrateIntrinsics(<Pattern>, <Size of board>, <characteristic dimensions>, <intrinsics mat>, <distortion mat>, <rotation vecs>, <translation vecs>);
Pattern - 标定板图案,包括了棋盘格,对称圆与非对称圆
Characteristic dimensions - 特征尺寸,对棋盘格而言,是每个格子的边长;对对称圆来说,是圆心与圆心之间的距离
intrinsic mat - 存储内参矩阵的cv::Mat
distortion mat - 存储畸变系数的cv::Mat
rotation vecs - 存储每一幅图片中标定板旋转向量
translation vecs - 存储每一幅图片中标定板平移向量

眼在手上标定的使用说明:
1 - 创建EIHCalibrator对象
sparkvis::EIHCalibrator eih;
2 - 设置手眼标定结果存储路径
eih.setResultDir(<DirectoryName>);
3 - 调用calibrateHandEye函数
eih.calibrateHandEye(<ImageDirectory>, <Camera Parameters>, <Robot Poses>, <Size of board>, <characteristic dimension>, <dimension unit>, <Calibration Pattern>);
调用时需要在Image Directory里面准备好图片,目前程序可以接受的图片格式为.jpg或者是.png,图像的命名需要严格按照{<数字>_其他表示.文件格式}去存储,这样才可以保证保存的文件按制定顺序读入。
机器人的姿态存储在一个yml文件里面,用户需要直接改写文件夹里面的内容,现阶段只能输入旋转向量,因为旋转向量是唯一的,而且在大多数的示教器上都可以直接读出来。姿态存储时需要和图片一一对应
注意:图片的数量一定要和机器人的数量一致,否则无法标定!

眼在手外标定的使用说明:
眼在手外的接口和眼在手上的接口基本一致,使用方法也基本相同。

后续开发需求:
后续的

handeyecalib's People

Contributors

pumpkin-ws avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.