ubuntu Ros環境halcon的乙個程式

2021-09-08 14:14:13 字數 3312 閱讀 6426

這個首先並不是我一邊做實驗一遍記錄的,而是我做完成以後才想起來做個分享的,所以中途遇到的很多問題,並沒有來得及記錄下來,現在寫的這些都是後話了

首先呢!我們不需要在ros下寫halcon的程式也是可以主要就是要新增halcon 的庫而已,但是我也是找了很長時間,發現其實是有國外的大牛做的類似與cv_bridge的開發包,

所以也是有halcon_bridge 的開發包 asr_halcon_bridge this package is used to convert between image-messages of the ros environment and halcon-images.

這裡這是像cv_bridge一樣的功能,就是實現資料格式的轉換,這樣我們就就可以使用ros的系統實現opencv  halcon pcl (點雲庫)

三者之間的庫函式的使用,這是十分便利 且有很多功能可以直接交叉使用,是多麼爽的一件事啊

比如ros-indigo,就直接使用sudo apt-get install ros-indigo-(你想安裝的包名)

sudo apt-get install lib(依賴項名稱)*,(發現沒有這邊是有乙個*的)系統會提示你所有與這個名稱相關的依賴項,然後就可以直接補全你想要安裝的依賴項即可

可能需要的依賴項  wxwidgets  eigen  boost 等等 反正有好多,就試著用上面的方法試試吧

乙個簡單的教程如下,如果你對這個halcon這種方式不熟悉,你可以先用cv_bridge 練手**:

我記得我前面的文章裡有寫過好像,這裡就不在贅述,而且對三維點雲的格式轉換也是同樣適用的,都是有在前面的文章有寫過

有興趣的可以返回過去找一下看一下就可以了

convert an image:

把ros中的的資料 sensor_msgs::image 轉換為halcon的的格式  halconcpp::himage :

halconimageptr tohalconcopy(const sensor_msgs::imageconstptr& source)

halconimageptr tohalconcopy(const sensor_msgs::image& source);

the return-value is a halconimageptr object, which contains ahalconcpp::himage-pointer as a member called image.

那麼把halcon的影象的格式 halconimage轉為ros的格式的:

sensor_msgs::imageptr toimagemsg() const;

void toimagemsg(sensor_msgs::image& ros_image) const;

對於三維點雲的格式的轉換:把ros的三維點雲的資料轉化為halcon的資料格式,轉換的步驟和二維影象是差不多的,主要的函式如下

halconpointcloudptr tohalconcopy(const sensor_msgs::pointcloud2constptr& source);

halconpointcloudptr tohalconcopy(const sensor_msgs::pointcloud2& source);

to convert a sensor_msgs::pointcloud2 to ahalconcpp::hobjectmodel3d (the member in the returned halconpointcloud is called model).

相反把halcon的資料格式轉化為ros的資料格式,然後這樣我們就可以使用點雲庫(pcl)來處理點雲

sensor_msgs::pointcloud2ptr topointcloudmsg() const;

void topointcloudmsg(sensor_msgs::pointcloud2& ros_pointcloud) const;

那麼這些我們在後期會有機會的話再寫一篇關於這樣的文章

比如我們讀取單目攝像頭的資料,然後轉化到halcon下進行處理,這是乙個很少有人做的事情,當然我們可以使用kinect1.0 

或者kinect 2.0獲取點雲的資料然後轉化到halcon的格式下處理,這個都是可以利用這樣方法使用的,

之前安裝過kinect 2.0 的驅動以及ros環境下使用kinect2.0的,網上有很多人教你如何安裝kinect2.0 的教程所以就不在贅述

比如我們就顯示一下,因為這主要的目的就是要使用ubuntu環境在halcon下處理三維點雲的資料

roslaunch kinect2_bridge kinect2_bridge.launch,開啟kinect2.0的驅動

視覺化命令如下

檢視節點之間的關係

視覺化的結果

emmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm似乎好像有點跑題了,好了因為安裝的過程中真的有很多問題,但是我沒有及時的記錄

這只是為了後期我們在使用感測器的時候,通過ros作為乙個橋梁的工具,其實使用halon我們不在ros下也是可以直接使用的,只要cmakelists.txt檔案寫好就可以、

但是使用ros下使用halcon的分享還是比較少的,接下來我就使用乙個簡單的例子來說明一下使用halcon的方法、

假設我們已經對ros熟悉的條件下啊,其中的建立工作空間啊,理解ros的節點這些問題都不在贅述了

在src檔案下建立乙個halcon_read.cpp檔案,如圖

都是以前的筆記,都發布一下吧,具體**在我的github上

ubuntu ros環境搭建測試

根據不同的ubuntu版本搭配ros,我選擇的是本次記錄是使用 ubuntu 18.04 lts安裝ros melodic。官網安裝教程 據說國內清華源速度會快一點 我採用的是新增網上的源 sudo sh c echo deb lsb release sc main etc apt sources....

從零開始Ubuntu ROS安裝心得

進行ros安裝過程十分的坎坷,收到了不少和現實中朋友的幫助和指點,結果還算可以,分享一下自己的經驗 ros可以使用虛擬機器執行,也可以選擇安裝雙系統 我這裡選擇的是安裝雙系統 如果沒有安裝作業系統的經驗,可以先了解一下使用u盤安裝的原理,以及作業系統啟動的原理,boot的知識和自己電腦bios的基本...

UBUNTU ROS系統常用命令

安裝deb軟體包 sudo dpkg i name.deb將環境配置在終端開啟就能直接執行 環境配置 以ros為例 echo source opt ros kinetic setup.bash bashrc source bashrc解除安裝軟體 sudo apt get purge remove ...