华南俳烁实业有限公司

考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
  當(dāng)前位置:Linux認(rèn)證 > 綜合輔導(dǎo) > 文章內(nèi)容
  

Linux教程:ROS在ARM上的編譯

來源:Linux社區(qū) [ 2016年1月23日 ] 【

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)

首頁 1 2 尾頁
本文糾錯】【告訴好友】【打印此文】【返回頂部
將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved
禄劝| 迁西县| 赤水市| 通化县| 深泽县| 涪陵区| 汉川市| 肃宁县| 桃江县| 克东县| 尼玛县| 福建省| 石泉县| 博爱县| 承德市| 澄迈县| 斗六市| 右玉县| 中方县| 浦县| 彰化县| 桦甸市| 邵阳市| 杭州市| 柏乡县| 留坝县| 惠州市| 华蓥市| 靖江市| 汤原县| 城固县| 普兰县| 阿尔山市| 黔东| 星子县| 囊谦县| 安阳市| 八宿县| 陇川县| 法库县| 桑植县|