1. 程式人生 > >ROS和Halcon機器視覺軟體隨手記

ROS和Halcon機器視覺軟體隨手記

學院有Halcon機器視覺實驗室,先進自動化生產線也是使用Halcon進行視覺處理。

主要參考連結:

1. asr halcon bridge: http://wiki.ros.org/asr_halcon_bridge

2. asr ros: https://github.com/asr-ros

----機器翻譯----

描述

軟體包包含一個庫,用於在ROS和HALCON特定資料結構之間轉換點雲和影象。

 

功能

庫的結構主要基於cv_bridge -package,更多資訊,請檢視相關文件。

 

用法

 

需要的功能包

包本身對外部ROS包沒有任何依賴性(除了ROS的核心安裝附帶的預設包)。

 

需要的軟體包

為了能夠構建此包並在專案中使用它,需要安裝一個版本的HALCON影象處理庫。到目前為止,它僅使用版本11進行了測試,但理論上它應該適用於更高版本以及資料型別的基本結構沒有改變。

需要正確設定環境變數HALCONROOTHALCONARCH,否則cmake將無法找到HALCON安裝。如果遵循HALCON的安裝指南,通常應該是這種情況。

 

需要的硬體

需要擁有HALCON安裝的有效許可證; 如果因為這個原因獲得了usb-dongle,則需要在執行時插入它,否則將收到異常。

 

啟動系統

由於此軟體包僅包含庫,因此應該看教程中有關如何使用它的更多資訊。

 

ROS節點

沒有訂閱/釋出的主題或服務,也沒有配置引數。

 

教程

要使用此庫提供的函式,需要首先將此包設定為專案的依賴項,然後在程式碼中包含halcon_image.h或halcon_pointcloud.h,具體取決於要轉換的內容。

 


轉換圖片:

要將sensor_msgs :: Image轉換為HalconCpp :: HImage請呼叫以下函式之一:

 

HalconImagePtr toHalconCopy(const sensor_msgs :: ImageConstPtr&source)
HalconImagePtr toHalconCopy(const sensor_msgs :: Image&source);

返回值是HalconImagePtr物件,它包含HalconCpp :: HImage -Pointer作為名為image的成員。

要將HalconImage再次轉換為ROS,請呼叫以下成員函式之一:

 

sensor_msgs :: ImagePtr toImageMsg()const;
void toImageMsg(sensor_msgs :: Image&ros_image)const;

 


轉換點雲:

此步驟類似於影象轉換。重要的功能是

 

HalconPointcloudPtr toHalconCopy(const sensor_msgs :: PointCloud2ConstPtr&source);
HalconPointcloudPtr toHalconCopy(const sensor_msgs :: PointCloud2&source);

sensor_msgs :: PointCloud2轉換為HalconCpp :: HObjectModel3D(返回的HalconPointcloud中的成員稱為模型)。

要將其轉換回ROS呼叫:

 

sensor_msgs :: PointCloud2Ptr toPointcloudMsg()const;
void toPointcloudMsg(sensor_msgs :: PointCloud2&ros_pointcloud)const;

----