手眼标定
手眼标定当相机固定时(eye-to-hand)目的是相机到机器人基座坐标系的固定转换矩阵 $T_{cameraToBase}$
实现方法: 1. 把标定板固定在机械臂末端 2. 使用相机拍摄不同机械臂姿态下的标定板图片n张
转换关系: $T_{base}^{camera} = T_{board}^{camera} * T_{end}^{board} * T_{base}^{end}$
即 $T_{end}^{board} = (T_{board}^{camera})^{-1} * T_{base}^{camera} * (T_{base}^{end})^{-1}$
其中,$T_{board}^{camera}$ 可由通过拍摄的标定板图片直接求解;
$T_{base}^{end}$ 可由机械臂末端位姿参数求得;
$T_{end}^{board}$ 未知量,由于标定板固定在机械臂末端,所以对每组图片,该转换矩阵都相同。
改变机 ...
单相机标定
单相机标定标定標定的流程
生成标定板的描述文件
标定前需要生成一个.descr的描述文件
1gen_caltab(: : XNum, YNum, MarkDist, DiameterRatio, CalPlateDescr, CalPlatePSFile : )
XNum, YNum为X和Y方向标记圆的数量,MarkDist 为标记的距离(以米为单位),即两圆中心点之间的距离,
CalPlateDesc r 为标记直径(圆的直径)与标记距离之比。
开始标定使用测量助手标定
打开测量助手,加载.descr标定文件,设定标定板的厚度,相机类型,焦距等参数。
加载采集的标定图片,加载完后设定一张图像为参考位姿, 期间可观看品质问题,标定
在结果处得到标定的相机内参和外参
手写标定
设定相机参数*
*创建标定数据(标定类型,相机数量,标定板数量,标定板模型句柄)
1create_calib_data ('calibration_object', 1, 1, CalibDataID)
*相机初始参数
1 ...
网站资源备忘
资源备忘资源分享网站六音软件 夜雨聆风
壁纸网站wallhaven wallpaper 极简壁纸 pixiv
音乐下载下载工具:MusicTools 五音助手
网站:51ape 无损音乐 音乐搜索器 acg音乐网站
Game爱玩游戏
网上短信接收在线短信接收
前端官网:MDN web文档 webpackjs nodejs中文网 TypeScript
框架:Vue react中文网 react-router vuex
UI、css框架:elementUI antUI Bootstrap tailwindcss中文网
图标icon: 阿里icon
程序网站 :牛客网 掘金网 github git ...
halcon算子
Chapter_1:Classification1.1 Gaussian-Mixture-Models1.add_sample_class_gmm
功能:把一个训练样本添加到一个高斯混合模型的训练数据上。
2.classify_class_gmm
功能:通过一个高斯混合模型来计算一个特征向量的类。
\3. clear_all_class_gmm
功能:清除所有高斯混合模型。
\4. clear_class_gmm
功能:清除一个高斯混合模型。
\5. clear_samples_class_gmm
功能:清除一个高斯混合模型的训练数据。
\6. create_class_gmm
功能:为分类创建一个高斯混合模型。
7.evaluate_class_gmm
功能:通过一个高斯混合模型评价一个特征向量。
\8. get_params_class_gmm
功能:返回一个高斯混合模型的参数。
\9. get_prep_info_class_gmm
功能:计算一个高斯混合模型的预处理特征向量的信息内容。
\10. get_sample_class_gmm
功能:从一个高斯混合模型的 ...
halcon封装C#
halcon封装halcon导出首先,在halcon里选择 文件 –> 导出 , 在导出菜单中选择C#,窗口导出选择使用导出模板。点击导出后会获得cs后缀名的文件。
建议:最好把halcon的代码先封装成函数,这样在导出为C#的类中也存在相应的函数(例如把读取图片,处理图片等步骤封装成一个个函数)
C#项目使用halcon导出的文件在Visual Studio 中新建C#的windows 窗体应用,在引用中添加引用halcondotnet.dll(halcondotnet.dll在halcon安装目录的bin->dotnet35目录下),在工具->选择工具箱项,在.NET Framework组件中点击浏览,选择halcondotnet.dll,这时可看见已添加HsmarkWindowControl和HWindowControl(这是图片的显示控件),然后在项目添加现有项,选择halcon导出的cs文件。
这时,便可在Form1.cs[设计] 中点击工具箱,添加HsmarkWindowControl或HWindowControl到窗口,并添加button来控制图片的显示 ...
halcon仿射变化
仿射变换算子:orientation_region 求区域的角度(配合 area_center 使用)
vector_angle_to_rigid 求取仿射变换的矩阵(只能旋转和平移)
affine_trans_image1vector_angle_to_rigid
Lua元表
lua元表详解元表的作用元表是用来定义对table或userdata操作方式的表
举个例子
123local t1 = {1}local t2 = {2}local t3 = t1 + t2
我们直接对两个table执行+运算,会报错
1lua: /usercode/file.lua:3: attempt to perform arithmetic on local 't1' (a table value)
因为程序不知道如何对两个表执行+运行,这时候就需要通过元表来定义如何执行t1的+运算,有点类似于c语言中的运算符重载。
12345678910111213141516171819202122232425local mt = {}--定义mt.__add元方法(其实就是元表中一个特殊的索引值)为将两个表的元素合并后返回一个新表mt.__add = function(t1,t2) local temp = {} for _,v in pairs(t1) do table.inser ...
lua学习
lua函数可变参数Lua 函数可以接受可变数目的参数,和 C 语言类似,在函数参数列表中使用三点 … 表示函数有可变的参数。
123456789function add(...) local s = 0 local arg = {...} --> arg 为一个表,局部变量 for i, v in ipairs(arg) do --> {...} 表示一个由所有变长参数构成的数组 s = s + v end return s end print(add(3,4,5,6,7)) --->25
字符串操作链接两个字符串 str1..str212print("www.runoob.".."com")=> www.runoob.com
字符串替换 string.gsubstring.gsub(mainString,findString,replaceString,num)
在字符串中 ...
C++学习
C++基本概念枚举:枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。
如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。所谓”枚举”是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。
一般形式创建枚举,需要使用关键字 enum。枚举类型的一般形式为:
123456enum 枚举名{ 标识符[=整型常数], 标识符[=整型常数], ... 标识符[=整型常数]} 枚举变量;
如果枚举没有初始化, 即**省掉”=整型常数”**时, 则从第一个标识符开始。
123例如:enum color { red, green, blue } c;c = blue;
枚举类型与基础类型的转换基础类型不能隐式转换为枚举类型; 枚举类型也不能隐式转换为基础类型。
存储类存储类定义 C++ 程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。下面列出 C++ 程序中可用的存储类 ...
vs常用快捷键
vs在vs中设置或查看快捷键在工具栏 工具 => 选项 => 环境 => 键盘 中查看或修改快捷键
常用快捷键智能提示:ctrl + JCTRL + SHIFT + B 生成解决方案F4 显示属性窗口F5 运行调试F10 跨过程序执行F11 单步逐句执行F7: 查看代码Shift+F7: 查看窗体设计器Ctrl+F: 查找F3: 查找下一个Ctrl+H: 替换Ctrl+F5: 开始执行(不调试)F9: 切换断点Ctrl+Shift+F9: 删除全部断点Ctrl+Shift+F: 在文件中查找Ctrl+K,S: 插入外侧代码
代码格式化:ctrl+E+F
删除当前行 Ctrl+Shift+L
注释 Ctrl + K + C 取消注释 Ctrl + K + U
折叠代码 :
1234567Ctrl + M + O: 折叠所有方法Ctrl + M + M: 折叠或者展开当前方法Ctrl + M + S: 折叠当前区域Ctrl + M + L: 展开所有方法
代码排版 :
123格式化cs(选中)代码:Ctrl+k+f格式化a ...





