大多數已經存在的機器人軟體工程都包含了可以在工程外重複使用的驅動和演算法,不幸的是,由於多方面的原因,大部分程式碼的中間層都過於混亂,以至於很困難提取出它的功能,也很難把它們從原型中提取出來應用到其他方面。為了應對這種趨勢,我們鼓勵將所有的驅動和演算法逐漸發展成為和ROS沒有依賴性單獨的庫。ROS建立的系統具有模組化的特點,各模組中的程式碼可以單獨編譯,而且編譯使用的CMake工具使它很容易的就實現精簡的理念。ROS基本將複雜的程式碼封裝在庫裡,只是建立了一些小的應用程式為ROS顯示庫的功能,就允許了對簡單的程式碼超越原型進行移植和重新使用。作為一種新加入的有優勢,單元測試當代碼在庫中分散後也變得非常的容易,一個單獨的測試程式可以測試庫中很多的特點。
       ROS利用了很多現在已經存在的開源專案的程式碼,比如說從Player專案中借鑑了驅動、運動控制和模擬方面的程式碼,從OpenCV中借鑑了視覺演算法方面的程式碼,從OpenRAVE借鑑了規劃演算法的內容,還有很多其他的專案。在每一個例項中,ROS都用來顯示多種多樣的配置選項以及和各軟體之間進行資料通訊,也同時對它們進行微小的包裝和改動。ROS可以不斷的從社群維護中進行升級,包括從其他的軟體庫、應用補丁中升級ROS的原始碼。