iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
自我挑戰組

一個營建系學生的韌體之路-自走車篇系列 第 5

【AMR_Day5】Sensor之函式庫與工具

  • 分享至 

  • xImage
  •  

感知

如昨天所提,一台自走車可以接收很多種感測器回傳的資訊,IMU提供旋轉與位移資訊、相機提供真實世界的影像、光達可以提供三維點雲資訊。那我們要怎麼有效地將資訊再發送到自走車系統中的各項節點去做運算,讓自走車充分了解自身所處環境,成功做到「感知(定位、物體辨識、物體追蹤)」的目標?有許多函式庫已經提供我們各種常見的演算法來達成此目標了。

影像處理

我們可以透過深度相機(攝影機)得到道路或交通號誌的影像,可以是影片檔或是圖片檔。

openCV

https://ithelp.ithome.com.tw/upload/images/20230920/20140433x7UUWvJIRB.png
Open Source Computer Vision Library是開源的電腦視覺函式庫,可以在各大作業系統平台上運作,可用於即時的圖像處理、電腦視覺以及圖型識別程式,是最常見的影像處理函式庫,具體的功能有人臉辨識、影像的特徵萃取與拼接、車道邊緣偵測、影像矩陣運算等等。
例如:在自走車的應用中,可以將取得的影像先做邊緣偵測後,在透過之後會介紹的霍夫轉換去做線型偵測,可以得到辨識出車道線的效果。

openCV-canny
openCV-canny
openCV-Hough
來源:openCV Canny Edge Detector&Hough Line Transform

點雲處理

PCL

https://ithelp.ithome.com.tw/upload/images/20230920/201404331IajtSH1Rl.png
The Point Cloud Library是處理點雲的開源函式庫,可以處理二維或三維的大量點雲資訊,支援跨平台。PCL包含許多的過濾、特徵估計、表面重建、配準、模型擬合和分割等演算法,如同openCV一樣,PCL也有自己的邊緣偵測及尋找線性的演算法。順帶一提,還有一個函式庫可以處理點雲--open3D,不過點雲只是他其中一個功能,更多是的其他3D的功能,沒有接觸所以就小小提一下就好。
PCL是我的主力工具,目前用它做點雲的輸入輸出、預處理(雜訊濾除)、邊緣偵測、隧道線型偵測(最小二次法、RANSAC、霍夫轉換擇一,但之後都會介紹)、點雲可視化。

https://ithelp.ithome.com.tw/upload/images/20230920/20140433l27xY9WYjQ.jpg
來源:我自己
說明:部分的隧道線型辨識過程。用到歐基里德分簇演算法、直線辨識演算法

PCL歐基里德分簇的函式

  pcl::EuclideanClusterExtraction<pcl::PointXYZ> ec;
  ec.setClusterTolerance (0.02); // 2cm
  ec.setMinClusterSize (100);
  ec.setMaxClusterSize (25000);
  ec.setSearchMethod (tree);
  ec.setInputCloud (cloud_filtered);
  ec.extract (cluster_indices);

PCL

CloudCompare

https://ithelp.ithome.com.tw/upload/images/20230920/20140433A75pixXLta.png
CloudCompare是一款3D點雲處理軟體,如果你只是想要做簡單的視覺化、量測測距離、ICP等等不會過度複雜的處理,那可以先用CloudCompare就好。

cloudcompare介面

有了上述工具後也還沒完全做完感知的動作,感知很大的一個環節是定位,而定位需要產生高精度地圖,有了以上的工具在搭配上ROS的packages才能好好實踐定位功能,ROS也能透過packages做決策的動作,一樣先留些坑。

To be continued...ROS2


上一篇
【AMR_Day4】自走車的傳感器介紹
下一篇
【AMR_Day6】介紹ROS
系列文
一個營建系學生的韌體之路-自走車篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言