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