ROS的擴展
ROS除了本身框架性的東西以外,最大的特色就是能融合很多其他的東西,形成一個機器人開發生態圈,難怪ROS名為機器人操作系統,使命是powering the world‘s robots也是毫不夸張的。
ROS的擴展即ROS universe,是全球范圍的代碼,有不同國家的ROS社區組織開發和維護。
有的是庫代碼,如OpenCV、PCL等;庫的上一層是從功能角度提供的代碼,如人臉識別,導航等,調用下層的庫;最上層的代碼是應用級的代碼,讓機器人完成某一確定的功能。
ROS真的是包羅萬象,各種庫、功能性框架都能融入進來,使其越來越強大。
使用第三方庫一般有兩種方法:
一種是通過cmake方法添加,有些庫比如Qt、OpenCV、PCL等,可能直接下載ROS的時候就已經嵌套進去了,直接通過ROS的環境變量就能依賴到這些庫。
但我更傾向于ROS框架保持不變,其他庫再另外下載安裝。
因為通過ROS下載的第三方庫一般不完整或者版本不對導致開發受限等,最好直接安裝第三方庫然后通過cmake找第三方庫在本機所安裝的位置(find_package),這樣庫和庫之間相對關系就很明確,ROS的基本框架也沒被填充太多,也能保持得比較干凈,更不會被找不到環境變量所困擾。
ROS和第三方庫相互依賴的問題,估計困擾過不少人,我經常被花大量的時間在庫依賴問題上。
另一種是讓第三方庫增加一些接口來適配ROS框架,也就是做成ROS包。
有些廠商比如激光雷達或者一些CAN總線協議,直接就提供了ROS接口,可以很方便的使用。可以說,基本上大部分成熟的算法(機械臂正逆解、SLAM導航、點云、圖像處理等),傳感器接口(sick、kinect等),通信協議(EarthCAT、CANOpen、USB等)都可以在ROS wiki和GitHub上找到。
-
機器人
+關注
關注
210文章
28205瀏覽量
206532 -
操作系統
+關注
關注
37文章
6738瀏覽量
123190 -
ROS
+關注
關注
1文章
276瀏覽量
16967
發布評論請先 登錄
相關推薦
評論