set_calib_data
名称
set_calib_data —在校准数据模型中设置数据。
签名
set_calib_data(:CalibDataID,ItemType,ItemIdx,DataName,DataValue:)
描述
使用运算符set_calib_data,可以在校准数据模型CalibDataID中设置数据。根据ItemType的值,受影响的项目是模型,相机,校准对象姿态或手眼校准数据集。通过参数ItemIdx,您可以选择是为一个类型的所有项还是为单个项设置新值。要设置的参数在DataName中传递,其值在DataValue中传递 。
模型相关数据
对于ItemType = 'model',ItemIdx仅允许使用值 'general'。根据DataName中的选择,您可以将以下与模型相关的参数设置为DataValue中传递的值:
'reference_camera':
将校准模型的参考相机设置为传递的相机索引。校准数据模型中存储的所有姿势都在参考摄像机的坐标系中指定(请参见get_calib_data)。
'optimization_method':
设置要在手眼校准过程中使用的优化方法。如果设置了DataValue = 'linear',则将线性方法用于手眼校准。如果设置了 DataValue = 'nonlinear',则将非线性方法用于手眼校准(有关更多详细信息,请参见 calibrate_hand_eye)。
相机相关数据
使用ItemType = 'camera',可以为所有摄像机或特定摄像机设置校准设置数据。
使用ItemIdx = 'general'时,新设置将应用于模型中的所有摄像机。如果改为传递有效的摄像机索引,即0到NumCameras-1之间的数字 (在使用create_calib_data创建模型时指定了 NumCameras),则只有指定的摄像机会受到更改的影响。
通过在DataName中选择以下参数,可以指定在calibrate_cameras执行的校准过程中应优化哪些相机参数:
'calib_settings':
DataValue中 列出的摄像机参数已标记为针对受影响的摄像机进行优化。
'excluded_settings':
在DataValue中列出的摄像机参数不包括在受影响摄像机的优化中。
可以在DataValue中传递以下相机参数:
相机内部参数
‘focus':
焦距。
'kappa':
分区失真系数kappa(仅适用于“ area_scan_division”,“ area_scan_telecentric_division”,“ area_scan_tilt_division”和“ area_scan_telecentric_tilt_division”类型的相机)。
'k1', 'k2', 'k3':
多项式径向失真参数(仅适用于“ area_scan_polynomial”,“ area_scan_telecentric_polynomial”,“ area_scan_tilt_polynomial”和“ area_scan_telecentric_tilt_polynomial”类型的摄像机)。
'poly_tan_2':
所有多项式切向失真参数的别名参数,即p1和p2(仅对于类型为“ area_scan_polynomial”,“ area_scan_telecentric_polynomial”,“ area_scan_tilt_polynomial”和“ area_scan_telecentric_tilt_polynomial”类型的摄像机)。
'poly':
所有多项式失真参数的别名参数,即k1,k2,k3,p1和p2(仅适用于类型为“ area_scan_polynomial”,“ area_scan_telecentric_polynomial”,“ area_scan_tilt_polynomial”和“ area_scan_telecentric_tilt_polynomial”类型的摄像机)。
'tilt':(倾斜)
倾斜镜头的倾斜和旋转(仅适用于“ area_scan_tilt_division”,“ area_scan_telecentric_tilt_division”,“ area_scan_tilt_polynomial”和“ area_scan_telecentric_tilt_polynomial”类型的相机)。
'cx', 'cy':
相机主要点的坐标。
'principal_point':
'cx'和'cy' 的别名参数。
'sx', 'sy':
传感器元件尺寸。
'params':
所有内部摄像机参数。
外部相机参数
'alpha', 'beta', 'gamma':
相机姿势的旋转部分。
'transx', 'transy', 'transz':
相机姿势的平移部分。
'pose':(姿势)
所有外部摄像机参数。
其他相机参数
'vx', 'vy', 'vz':
运动矢量参数(仅适用于“ line_scan”类型的摄像机)。
'all':
所有相机参数。
默认情况下,所有参数都标记为校准。作为例外,仅使用一台摄像机(NumCameras = 1),摄像机的姿势就不会进行校准设置的优化。此设置使校准过程等同于camera_calibration执行的过程。
与校准对象姿态有关的数据
使用ItemType = 'calib_obj_pose',可以为所有校准对象姿态或特定姿态设置校准设置数据。
当ItemIdx = 'general'时,新设置将应用于模型中的所有校准对象姿态。如果改为传递有效的校准对象姿态索引,即包含有效索引对的元组[CalibObjIdx,CalibObjPoseIdx],则指定受更改影响的校准对象姿态。
通过在DataName中选择以下参数,可以指定在calibrate_cameras执行的校准过程中应优化哪些校准对象姿态参数:
'calib_settings':
DataValue中 列出的校准对象姿态设置 被标记为针对受影响的姿态进行优化。
'excluded_settings':
DataValue中 列出的校准对象姿态设置 将从受影响的姿态的优化中排除。
可以在DataValue中传递以下校准姿态参数 :
'alpha', 'beta', 'gamma':
校准对象姿势的旋转部分。
'transx', 'transy', 'transz':
校准对象姿态的平移部分。
'pose':
所有校准对象姿态参数。
'all'':
所有校准对象优化参数,即与'pose'相同。
默认情况下,所有参数都标记为要校准。
可以使用运算符get_calib_data查询任何模型项目的当前设置。
手眼校正相关数据
用的ItemType = “tool”,可以设置在机器人工具(在机器人基座坐标),其用于获得所述校准物体的姿势的观察具有相同索引的姿态ItemIdx(对应于参数 CalibObjPoseIdx的任何操作符中的 find_calib_object,set_calib_data_observ_pose或 set_calib_data_observ_pose)。通过选择 DataName = 'tool_in_base_pose',可以在DataValue中指定姿势。
并行化
多线程类型:可重入(与非排他运算符并行运行)。
多线程作用域:全局(可以从任何线程调用)。
未经并行处理。
该运算符修改以下输入参数的状态:
如果没有外部同步,则可能无法在多个线程之间共享此参数的值。
参数
校准数据模型的句柄。
校准数据项的类型。
默认值: “model”
值列表:“ calib_obj_pose”,“camera”,“model”,“tool”
要设置的参数。
默认值: “ reference_camera”
值列表:“ calib_settings”,“ excluded_settings”,“ optimization_method”,“ reference_camera”,“ tool_in_base_pose”
新值。
默认值: 0
建议值: 0、1、2,“all”,“pose”,“params”,“ alpha”,“ beta”,“ gamma”,“ transx”,“ transy”,“ transz”,“ focus”,“ kappa”,“ poly”,“ poly_tan_2”,“ k1”,“ k2”,“ k3”,“tilt”,“ principal_point”,“ cx”,“ cy”,'sx','sy','vx','vy','vz','linear','nonlinear'
示例(HDevelop)
*在这里,像元大小是确切已知的,因此将其排除在外*优化。 set_calib_data(CalibDataID,“相机”,“常规”,“排除设置”,\ ['sx','sy'])
可能的前辈
可能的继任者

