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