ROS的擴(kuò)展
ROS除了本身框架性的東西以外,最大的特色就是能融合很多其他的東西,形成一個(gè)機(jī)器人開(kāi)發(fā)生態(tài)圈,難怪ROS名為機(jī)器人操作系統(tǒng),使命是powering the world‘s robots也是毫不夸張的。
ROS的擴(kuò)展即ROS universe,是全球范圍的代碼,有不同國(guó)家的ROS社區(qū)組織開(kāi)發(fā)和維護(hù)。
有的是庫(kù)代碼,如OpenCV、PCL等;庫(kù)的上一層是從功能角度提供的代碼,如人臉識(shí)別,導(dǎo)航等,調(diào)用下層的庫(kù);最上層的代碼是應(yīng)用級(jí)的代碼,讓機(jī)器人完成某一確定的功能。
ROS真的是包羅萬(wàn)象,各種庫(kù)、功能性框架都能融入進(jìn)來(lái),使其越來(lái)越強(qiáng)大。
使用第三方庫(kù)一般有兩種方法:
一種是通過(guò)cmake方法添加,有些庫(kù)比如Qt、OpenCV、PCL等,可能直接下載ROS的時(shí)候就已經(jīng)嵌套進(jìn)去了,直接通過(guò)ROS的環(huán)境變量就能依賴(lài)到這些庫(kù)。
但我更傾向于ROS框架保持不變,其他庫(kù)再另外下載安裝。
因?yàn)橥ㄟ^(guò)ROS下載的第三方庫(kù)一般不完整或者版本不對(duì)導(dǎo)致開(kāi)發(fā)受限等,最好直接安裝第三方庫(kù)然后通過(guò)cmake找第三方庫(kù)在本機(jī)所安裝的位置(find_package),這樣庫(kù)和庫(kù)之間相對(duì)關(guān)系就很明確,ROS的基本框架也沒(méi)被填充太多,也能保持得比較干凈,更不會(huì)被找不到環(huán)境變量所困擾。
ROS和第三方庫(kù)相互依賴(lài)的問(wèn)題,估計(jì)困擾過(guò)不少人,我經(jīng)常被花大量的時(shí)間在庫(kù)依賴(lài)問(wèn)題上。
另一種是讓第三方庫(kù)增加一些接口來(lái)適配ROS框架,也就是做成ROS包。
有些廠商比如激光雷達(dá)或者一些CAN總線協(xié)議,直接就提供了ROS接口,可以很方便的使用。可以說(shuō),基本上大部分成熟的算法(機(jī)械臂正逆解、SLAM導(dǎo)航、點(diǎn)云、圖像處理等),傳感器接口(sick、kinect等),通信協(xié)議(EarthCAT、CANOpen、USB等)都可以在ROS wiki和GitHub上找到。
-
機(jī)器人
+關(guān)注
關(guān)注
211文章
28646瀏覽量
208431 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6896瀏覽量
123755 -
ROS
+關(guān)注
關(guān)注
1文章
280瀏覽量
17100
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
系統(tǒng)鏡像Ubuntu_ROS2中ROS2是什么意思,帶有ROS2開(kāi)發(fā)環(huán)境嗎?
在Android中使用ROS
為ROS navigation功能包添加自定義的全局路徑規(guī)劃器(Global Path Planner)
Autolabor ROS驅(qū)動(dòng)模塊的節(jié)點(diǎn)有何功能
請(qǐng)問(wèn)一下stm32與ros進(jìn)行串口通信的方法是什么?
STM32與ArduinoMega2560驅(qū)動(dòng)ROS小車(chē)有何不同
搭建ARM+ROS的硬件載體之ROS的移植及測(cè)試方法
ROS機(jī)器人軟件平臺(tái)有哪些常用命令?ROS的常見(jiàn)命令詳細(xì)資料免費(fèi)下載
![<b class='flag-5'>ROS</b>機(jī)器人軟件平臺(tái)<b class='flag-5'>有</b>哪些常用命令?<b class='flag-5'>ROS</b>的常見(jiàn)命令詳細(xì)資料免費(fèi)下載](https://file.elecfans.com/web1/M00/63/E4/o4YBAFuZyD-AbZOjAAVPlov_W1o486.png)
實(shí)現(xiàn)ARM+ROS(機(jī)器人操作系統(tǒng))之運(yùn)行ROS!
![實(shí)現(xiàn)ARM+<b class='flag-5'>ROS</b>(機(jī)器人操作系統(tǒng))之運(yùn)行<b class='flag-5'>ROS</b>!](https://file.elecfans.com/web2/M00/6E/F9/poYBAGNDzD-AECjsAABb-W4OKx0961.png)
SLAMWARE ROS SDK的基礎(chǔ)架構(gòu)、部署方法和應(yīng)用示例介紹
![SLAMWARE <b class='flag-5'>ROS</b> SDK的基礎(chǔ)架構(gòu)、部署<b class='flag-5'>方法</b>和應(yīng)用示例介紹](https://file1.elecfans.com/web2/M00/C6/23/wKgaomX7n3iAaHdJAAAMPb5X_Jw356.jpg)
評(píng)論