135 lines
3.4 KiB
C
135 lines
3.4 KiB
C
|
|
#ifndef __VIZUM_HANDEYECONVERT_HEADER__
|
|||
|
|
#define __VIZUM_HANDEYECONVERT_HEADER__
|
|||
|
|
|
|||
|
|
#include "VZNL_Export.h"
|
|||
|
|
#include "VZNL_Types.h"
|
|||
|
|
/// @brief
|
|||
|
|
/// ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
typedef void* VZEHPCHANDLE;
|
|||
|
|
|
|||
|
|
// <20>궨<EFBFBD><EAB6A8>ʽ
|
|||
|
|
enum EVzHandEyeConvertType
|
|||
|
|
{
|
|||
|
|
EVzHandEyeConvertType_Eye_In_Hand = 0, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
EVzHandEyeConvertType_Eye_To_Hand = 1, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum EVzRPYSeqConvertType
|
|||
|
|
{
|
|||
|
|
RPYSeqConvertType_S_ZYX,
|
|||
|
|
RPYSeqConvertType_S_XYZ,
|
|||
|
|
RPYSeqConvertType_S_XZY,
|
|||
|
|
RPYSeqConvertType_S_YXZ,
|
|||
|
|
RPYSeqConvertType_S_YZX,
|
|||
|
|
RPYSeqConvertType_S_ZXY,
|
|||
|
|
RPYSeqConvertType_R_XYZ
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// <20><>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>궨<EFBFBD><EAB6A8>
|
|||
|
|
typedef struct
|
|||
|
|
{
|
|||
|
|
double x, y, z, a, b, c;
|
|||
|
|
}SVzNLRobotPointD;
|
|||
|
|
|
|||
|
|
|
|||
|
|
typedef struct {
|
|||
|
|
float rx[3];
|
|||
|
|
float ry[3];
|
|||
|
|
float rz[3];
|
|||
|
|
}SVzNLNormal3D;
|
|||
|
|
|
|||
|
|
typedef struct {
|
|||
|
|
SVzNL3DPoint point; //XYZ<59><5A><EFBFBD><EFBFBD>
|
|||
|
|
SVzNLNormal3D normal; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
}SVzNLPCameraPointinfo;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>㷨<EFBFBD><EFBFBD>
|
|||
|
|
* @param hDevice <EFBFBD><EFBFBD>ǰ<EFBFBD>豸<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param [out] pErrorCode <EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, Ϊ NULLʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*/
|
|||
|
|
VZNLAPI VZEHPCHANDLE VzNL_CreateEyeHandPosConvertHandle(VZNLHANDLE hDevice, int* pErrorCode);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief <EFBFBD>ͷ<EFBFBD><EFBFBD>㷨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
|
|||
|
|
* @param hConvertHandle ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return <EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD> ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
*/
|
|||
|
|
VZNLAPI int VzNL_ReleaseEyeHandPosConvert(VZEHPCHANDLE hConvertHandle);
|
|||
|
|
|
|||
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>궨<EFBFBD>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
* hConvertHandle ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* pCameraPoint <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* nCount <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ŀǰ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>
|
|||
|
|
* dCalibMatrix <EFBFBD>궨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* eConvertType <EFBFBD>궨<EFBFBD><EFBFBD>ʽ
|
|||
|
|
* pRobotPoint <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return <EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD> ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
*/
|
|||
|
|
VZNLAPI int VzNL_EyeHandPosConvert3(VZEHPCHANDLE hConvertHandle,
|
|||
|
|
SVzNL3DPoint* pCameraPoints,
|
|||
|
|
int nCount,
|
|||
|
|
double dCalibMatrix[16],
|
|||
|
|
EVzHandEyeConvertType eConvertType,
|
|||
|
|
SVzNL3DPoint* pRobotPoint);
|
|||
|
|
|
|||
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>궨<EFBFBD>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD>ӿڣ<D3BF><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<2B><><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8>
|
|||
|
|
* hConvertHandle ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* pCameraPoints <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* pRobpose <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* nCount <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ŀǰ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>
|
|||
|
|
* dCalibMatrix <EFBFBD>궨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* eConvertType <EFBFBD>궨<EFBFBD><EFBFBD>ʽ
|
|||
|
|
* ePosSeqType <EFBFBD><EFBFBD>̬˳<EFBFBD><EFBFBD>
|
|||
|
|
* pRobotPoint <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return <EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD> ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
*/
|
|||
|
|
VZNLAPI int VzNL_EyeHandPosConvert6WithNormal(VZEHPCHANDLE hConvertHandle,
|
|||
|
|
SVzNLPCameraPointinfo* pCameraPoints,
|
|||
|
|
SVzNLRobotPointD* pRobpose,
|
|||
|
|
int nCount,
|
|||
|
|
double dCalibMatrix[16],
|
|||
|
|
EVzHandEyeConvertType eConvertType,
|
|||
|
|
EVzRPYSeqConvertType ePosSeqType,
|
|||
|
|
SVzNLRobotPointD* pRobotPoint);
|
|||
|
|
|
|||
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>궨<EFBFBD>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD>ӿڣ<D3BF><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<2B><>̬<EFBFBD><CCAC>
|
|||
|
|
* hConvertHandle ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* pCameraPoints <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>// xyzabc
|
|||
|
|
* pRobpose <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* nCount <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,Ŀǰ<EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>
|
|||
|
|
* dCalibMatrix <EFBFBD>궨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* eConvertType <EFBFBD>궨<EFBFBD><EFBFBD>ʽ
|
|||
|
|
* ePosSeqType <EFBFBD><EFBFBD>̬˳<EFBFBD><EFBFBD>
|
|||
|
|
* pRobotPoint <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return <EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD> ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
*/
|
|||
|
|
VZNLAPI int VzNL_EyeHandPosConvert6WithEuler(VZEHPCHANDLE hConvertHandle,
|
|||
|
|
SVzNLRobotPointD* pCameraPoints,
|
|||
|
|
SVzNLRobotPointD* pRobpose,
|
|||
|
|
int nCount,
|
|||
|
|
double dCalibMatrix[16],
|
|||
|
|
EVzHandEyeConvertType eConvertType,
|
|||
|
|
EVzRPYSeqConvertType ePosSeqType,
|
|||
|
|
SVzNLRobotPointD* pRobotPoint);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief R2RPY <EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>תRPY<EFBFBD><EFBFBD>
|
|||
|
|
* @param hConvertHandle ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param R <EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>3*3
|
|||
|
|
* @param RPY RPY<EFBFBD><EFBFBD>,˳<EFBFBD><EFBFBD>ΪRoll-Pitch-Yaw. <EFBFBD>Ƕ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return <EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD> ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
*/
|
|||
|
|
VZNLAPI int VzNL_R2RPY(VZEHPCHANDLE hConvertHandle, double R[9], double RPY[3], const EVzRPYSeqConvertType ePosSeqType);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @brief R2RPY RPY<EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param hConvertHandle ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @param R <EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>3*3
|
|||
|
|
* @param RPY RPY<EFBFBD><EFBFBD>,˳<EFBFBD><EFBFBD>ΪRoll-Pitch-Yaw.<EFBFBD>Ƕ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* @return <EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD> ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
|
*/
|
|||
|
|
VZNLAPI int VzNL_RPY2R(VZEHPCHANDLE hConvertHandle, double RPY[3], double R[9], const EVzRPYSeqConvertType ePosSeqType);
|
|||
|
|
|
|||
|
|
#endif
|