# Halcon hand_eye_moving_cam + 3D Box Recognition ###### tags: `halcon` **系統架構圖** ![](https://i.imgur.com/vanTY8Z.jpg) **輸入資料** 輸入14個照片,第零張最重要為校正板座標系平面,其他都輔助資料 ![](https://i.imgur.com/zYt0xZA.png) 輸入14個姿態 ![](https://i.imgur.com/3PZS2p6.jpg) **求的結果** 這個時候要求兩個位置的姿態:一個是CalObjInBasePose,一個是ToolInCamPose CalObjInBasePose是在機械基礎坐標系下的標定物坐標系下的姿態 ToolInCamPose是在相機坐標系下的工具坐標系下的姿態 如圖1所示,黃色框是指的相機的坐標系,藍色框是指的機械手末端的工具坐標系,綠色框是機械手的基礎坐標系,紅色框的是標定物的坐標系。 以上每個坐標系如果想轉換到另一個坐標系只需要做平移與旋轉就可以做到。 一旦我們求得CalObjInBasePose和ToolInCamPose, 我們就可以求出標定物在機械手基礎坐標系下的座標,通過相機拍照後把圖元轉換為機械手坐標系下的座標,因為相機和機械手坐標系的轉換關係有了,通過相機可以求出世界座標,這個世界座標就是用標定板標出來的,它是用單相機標定方法求出來的。 **在Halcon 的運算元** pose_compose (ToolInBasePose, CamInToolPose, CamInBasePose) pose_compose (CamInBasePose, ObjInCamPose, ObjInBasePose) **實際數學運作** ToolInBasePose * CamInToolPose = CamInBasePose CamInBasePose * ObjInCamPose = ObjInBasePose hand in eye **3D 目標識別得到的結果** find_box_3d (OM3DScene, Len1, Len2, Len3, 0.2, Params, GrippingPose, Score, OM3DBox, BoxInformation) ![](https://i.imgur.com/DwcKe22.png) ObjInCamPose = GrippingPose ![](https://i.imgur.com/iSCgsBj.png)