ROS(robot operaring system)作為移動機(jī)器人軟件架構(gòu),近幾年得到了越來越廣泛的應(yīng)用,但是大部分應(yīng)用是基于X86架構(gòu)的處理器,怎么樣將這么強(qiáng)大的工具和應(yīng)用極為廣泛的ARM處理器結(jié)合在一起,是現(xiàn)在很多開發(fā)者急于解決的問題。我作為ROS的初學(xué)者最近也嘗試了一把ROS 的ARM移植,糾結(jié)了四五天,不過最后還是成功了。
雖然現(xiàn)在針對非X86架構(gòu)的處理器產(chǎn)生了一些ROS的應(yīng)用方案,比如eros(//www.ros.org/wiki/eros)、 rosserial(//www.ros.org/wiki/rosserial)等方式,后者是針對Arduino的,前者玩了幾天,沒搞清楚是怎么用的,所以上網(wǎng)各處搜索,也在ROS的群里問了一些人,最近正好群里也有人成功在MK802 III上成功編譯了ROS源碼,所以直接在目標(biāo)機(jī)上編譯源碼這個原始的方式,雖然效率較低,但是應(yīng)該是行的通的。
移植環(huán)境:
PC:Ubuntu 12.04
ARM處理器:Cortex-A9
ARM操作系統(tǒng):Ubuntu12.04
ROS版本:groovy
編譯流程:
整體的編譯流程全部按照官網(wǎng)的教程進(jìn)行(//www.ros.org/wiki/groovy/Installation/Source)。
1、安裝工具軟件
啟動ARM板中的ubuntu操作系統(tǒng),使用串口與電腦連接,通過ssh使得PC機(jī)可以與ARM板進(jìn)行遠(yuǎn)程控制,然后就可以在PC機(jī)上控制ARM板中的代碼編譯了。
首先是按照教程上說的:
sudo apt-get install python-rosdep python-wstool build-essential 但是在ARM的ubuntu源中沒有python-rosdep和python-wstool這兩個包,這兩個包的安裝可以按照fuerte的編譯說明進(jìn)行(//www.ros.org/wiki/fuerte/Installation/Ubuntu/Source):
安裝easy_install:(//blog.csdn.net/chosen0ne/article/details/7210745)
wget //peak.telecommunity.com/dist/ez_setup.py python ez_setup.py
利用easy_install安裝pip:(//www.ros.org/wiki/ROS/Installation/EasyInstallConfig)
sudo easy_install pip 然后安裝以下的包:(//www.ros.org/wiki/fuerte/Installation/Ubuntu/Source)
sudo pip install -U rosdepsudo pip install -U rosinstallsudo pip install -U rospkg 安裝python-wstool:
pip install -U wstool redep初始化:
sudo rosdep init
rosdep update 2、下載源碼
創(chuàng)建文件夾:
mkdir ~/ros_catkin_ws
cd ~/ros_catkin_ws 下載代碼,我是用的是最小包ros-common:
wstool init src -j8 //packages.ros.org/web/rosinstall/generate/raw/groovy/ros_comm
3、編譯源碼
按照教程上說的進(jìn)行依賴包的安裝:
rosdep install --from-paths src --ignore-src --rosdistro groovy -y 然后應(yīng)該還需要安裝cmake(我之前就已經(jīng)安裝好了,不知道是不是應(yīng)該在這一步)。我是從官網(wǎng)下載的源碼(//www.cmake.org /),然后在ARM上編譯的。ARM上編譯太慢了,用了將近一個小時,不知道可不可以在PC上交叉編譯,不做深究了。
接下來就是最重要的過程了——編譯。這個過程是痛苦而漫長的,ARM板的主頻慢,編譯一次代碼需要20分鐘左右,而且每次出錯總是在編譯了好長時間之后,各種依賴的包需要安裝。如果現(xiàn)在進(jìn)行編譯,肯定會出現(xiàn)一大堆錯誤,可以根據(jù)這些錯誤進(jìn)行一步步的處理,基本都是所依賴的包沒有安裝。其中最重要的就是boost庫的包。因?yàn)镽OS中很多的代碼是使用C++寫的,都使用了boost靜態(tài)庫,所以必須在ARM中的ubuntu系統(tǒng)中安裝boost庫。 boost庫是我糾結(jié)時間最長的一個問題,我使用了各種各樣的方法進(jìn)行安裝:
(1)直接apt-get安裝
(2)下載源碼在PC機(jī)上交叉編譯然后放到ARM中
(3)直接下載官方針對ARM架構(gòu)已經(jīng)編譯好的deb包進(jìn)行安裝(https://launchpad.net/ubuntu/+source/boost1.46/1.46.1-7ubuntu3/+build/3060825)
2015職稱計算機(jī)考試書PowerPoint2007中 .. 定價:¥45 優(yōu)惠價:¥42 更多書籍 | |
2015年全國職稱計算機(jī)考試教材(2007模 .. 定價:¥225 優(yōu)惠價:¥213 更多書籍 |