最近在udacity上學習了基於ROS的點雲識別模型。所以想寫這個文章來回顧一下思路和做一下總結。

這個項目的主要感測器是RGB-D攝像機,也就是深度攝像機。(之前的文章介紹過安裝深度攝像機的。那部分的內容是為了將這個項目代碼用於實踐。)利用深度攝像機傳輸的數據對特定物體進行識別,最終再由機器臂將識別的物體放入之前定義好的箱子里。也就是說,這裡面最主要的任務就是令我攝像機傳輸的數據,對物體進行識別。因為是用的是深度攝像機,所以從攝像機里傳輸出來的數據是RGB和Point cloud數據。所以感知模塊利用這些傳輸過來的數據對物體進行聚類和識別。識別出來物體的種類之後,我們可以根據點雲信息確定物體的實際位置。在控制機器臂。去家取那個位置的物體。但是呢,在這個項目當中,因為時間的問題,利用機器臂夾取物體的代碼,雖然參考別人的代碼寫的上去,但是這部分的代碼實際上並沒有作用在模擬環境裡面,所以這邊我只介紹感知相關的內容。


首先,要完成這個項目,大體內容分成以下幾個部分。

  1. 首先是要構建基於ROS的模擬環境

2. 添加關於感知模塊的所有代碼

https://github.com/Fred159/3D-Perception/blob/master/pr2_robot/scripts/project_template.py?

github.com

3. 最終在基於ROS的模擬環境里,通過運行python文件進行物體識別及輸出結果

Fred159/3D-Perception?

github.com
圖標

1 搭建ROS模擬環境

機器人操作系統的模擬環境搭建起來其實不是很麻煩。在這裡我們直接利用了優達學城給出的VM image. 這個鏡像裡面包含了。這個項目所需要的所有的庫。VM是什麼呢?翻譯過來叫虛擬機。這個到底是做什麼的呢?為什麼非要用這個東西?

再決定要不要用這個東西之前我們先要了解一下這個東西是什麼。要知道我們大部分運行環境都是基於Windows系統的。但是ROS是要運行在linux系統上的。不過我們又不想把我們的電腦的系統完全換成linux。所以我們就需要我們現在的電腦可以虛構出一個環境,給這個環境一定的許可權和存儲空間,讓linux系統在虛擬環境裡面運行。所以VM叫做虛擬機。顧名思義就是虛擬的機器的意思。把所有的東西放到這個windows 操作系統下的虛擬機里運行,就相當於運行在linux系統下運行了。這就是為什麼我們用虛擬機的原因。如果說你的操作系統本身就是linux,那麼你就直接可以在這個環境裡面搭建ROS。(可以找找資源,可以直接用一行代碼就可以安裝好ROS平台)當然,相關的庫,還是需要安裝的。

在這裡我直接使用了優達學城給出的鏡像。這個鏡像也可以選擇不用,所有需要的庫自己安裝。我只是想圖個方便,所以直接用了這個鏡像。鏡像的運行需要vmplayer,鏈接如下。但是,需要說明的一點就是這個鏡像裡面的有些內容,比如sklearn的版本是需要修改的。

https://www.vmware.com/products/workstation-player.html?

www.vmware.com
圖標

在這裡我想提醒一下聽這個課程的同學。udacity提供的命令行裡面,ros的launch 文件們總是會報錯。但是只要你們的Gazebo 和Rviz可以正常打開,那麼就可以運行相關的識別文件。別看它一直報錯,但是這跟你運行識別相關的代碼是沒有太多的相關性的。因為有些內容是涉及機器臂的運行的。不涉及操作機器臂的時候,可以直接無視一些報錯。當然報錯的東西越少越好。

2 添加關於感知模塊的所有代碼

先貼上代碼傳送門。之後詳細的後續更新

https://github.com/Fred159/3D-Perception/blob/master/pr2_robot/scripts/project_template.py?

github.com


20181116

家裡

推薦閱讀:

查看原文 >>
相关文章