ROS(Robot Operating System)是一個(gè)開源的為機(jī)器人軟件開發(fā)設(shè)計(jì)的軟件框架,在異構(gòu)計(jì)算機(jī)集群中提供類似操作系統(tǒng)的功能。它并不是一個(gè)計(jì)算機(jī)的操作系統(tǒng),而是機(jī)器人的操作系統(tǒng),或者稱為元級操作系統(tǒng)(Meta Operating System)。據(jù)目前唯一一本比較官方的關(guān)于ROS的書《ROS By Example Volume 1》介紹,“The primary goal of ROS (pronounced "Ross") is to provide a unified and open source programming framework for controlling robots in a variety of real world and simulated environments.”,ROS的原始目的就是為了在一系列真實(shí)和模擬的環(huán)境中控制機(jī)器人提供一個(gè)統(tǒng)一的開源編程框架。為了實(shí)現(xiàn)這一目標(biāo),ROS架構(gòu)中有三個(gè)層次的概念:文件系統(tǒng)級(Filesystem Level),計(jì)算圖級(Computation Graph Level)和社區(qū)級(Community Level)。 具體可以查閱維基百科和官網(wǎng)wiki,這里就不過多介紹了。
ROS Groovy Galapagos是2012年12月31日發(fā)布的ROS最新版本,主要支持Ubuntu 11.10、Ubuntu 12.04和Ubuntu 12.10。提到這個(gè)版本的原因是它采用了新的構(gòu)建系統(tǒng)——catkin,準(zhǔn)備逐漸取代之前的rosbuild。它解決了rosbuild當(dāng)中的幾個(gè)問題,讓ROS可以持續(xù)發(fā)展和擴(kuò)大規(guī)模,相對于rosbuild更符合文件系統(tǒng)層次結(jié)構(gòu)標(biāo)準(zhǔn)(Filesystem Hierarchy Standard,F(xiàn)HS),使在其它操作系統(tǒng)和架構(gòu)上發(fā)布ROS包更加容易。正是這個(gè)原因讓我在MK802 IIIS上編譯ROS的時(shí)候輕松很多,如果編譯之前的版本(比如fuerte)將會遇到更多問題。
因?yàn)閏atkin的引入,ROS文件系統(tǒng)級的Stacks概念被移除了,原因是Package和Stack之間依賴性跟蹤出現(xiàn)的問題,取代的是元包(metapackage)的概念。
ARM版Ubuntu的軟件源是在//ports.ubuntu.com/
上,和桌面版的略有區(qū)別,我遇到的一個(gè)問題就是桌面版python-*的包ARM版幾乎都沒有,解決辦法是使用python的包管理工具pip安裝,比如桌面版上apt-get install python-PACKAGENAME
,用pip install PACKAGENAME
替代。據(jù)說easy_install的維護(hù)不夠好,所以應(yīng)該盡量用pip。
我使用的是RK3066上的Picuntu。
從前為ARM編譯一般都需要在x86的上位機(jī)上交叉編譯,有一個(gè)叫做EROS的項(xiàng)目,但是似乎文檔不全,個(gè)人覺得用它成功編譯的人應(yīng)該也不多。近幾年ARM性能足夠強(qiáng)了,在ARM運(yùn)行的操作系統(tǒng)上直接編譯也不是什么問題。所以完全可以參考官網(wǎng)從源碼編譯的教程,官網(wǎng)還特別搞了一個(gè)在樹莓派上編譯的教程。
當(dāng)然,樹莓派的內(nèi)存只有512MB,而且是ARM 11,使用ROS會受到很大的限制,既然它都可以編譯ROS Groovy,那么雙核A9的RK3066,1G內(nèi)存就更不是問題了。
下面一步步按照官網(wǎng)上從源碼編譯的wiki來:
4.1 安裝基礎(chǔ)依賴包
操作系統(tǒng)相關(guān)的:
sudo apt-get install build-essential git python-pip
ROS Common(或者叫ROS Base,Base Bones什么的)依賴的:
sudo apt-get install libtinyxml-dev libgtest-dev liblog4cxx10-dev
注意這里只是在Picuntu RC2 上需要額外安裝的庫,可能你還會遇到其它庫的問題。desktop或者desktop-full依賴的庫更多,所以更難解決。
還有一些重要的工具:
sudo pip install wstool rospkg rosdep
可能會遇到很多python-*
的包缺少的問題,需要用sudo pip install PACKAGENAME
安裝
安裝完rosdep以后初始化一下:
sudo rosdep init
rosdep update
![]() | ![]() .. 定價(jià):¥45 優(yōu)惠價(jià):¥42 更多書籍 |
![]() | ![]() .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書籍 |