考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
  当前位置:Linux认证 > 综合辅导 > 文章内容
  

Linux教程:ROS在ARM上的编译

来源:Linux社区 [ 2016年1月23日 ] 【

ROS(robot operaring system)作为移动机器人软件架构,近几年得到了越来越广泛的应用,但是大部分应用是基于X86架构的处理器,怎么样将这么强大的工具和应用极为广泛的ARM处理器结合在一起,是现在很多开发者急于解决的问题。我作为ROS的初学者最近也尝试了一把ROS 的ARM移植,纠结了四五天,不过最后还是成功了。

虽然现在针对非X86架构的处理器产生了一些ROS的应用方案,比如eros(//www.ros.org/wiki/eros)、 rosserial(//www.ros.org/wiki/rosserial)等方式,后者是针对Arduino的,前者玩了几天,没搞清楚是怎么用的,所以上网各处搜索,也在ROS的群里问了一些人,最近正好群里也有人成功在MK802 III上成功编译了ROS源码,所以直接在目标机上编译源码这个原始的方式,虽然效率较低,但是应该是行的通的。

移植环境:

PC:Ubuntu 12.04

ARM处理器:Cortex-A9

ARM操作系统:Ubuntu12.04

ROS版本:groovy

编译流程:

整体的编译流程全部按照官网的教程进行(//www.ros.org/wiki/groovy/Installation/Source)。

1、安装工具软件

启动ARM板中的ubuntu操作系统,使用串口与电脑连接,通过ssh使得PC机可以与ARM板进行远程控制,然后就可以在PC机上控制ARM板中的代码编译了。

首先是按照教程上说的:

sudo apt-get install python-rosdep python-wstool build-essential        但是在ARM的ubuntu源中没有python-rosdep和python-wstool这两个包,这两个包的安装可以按照fuerte的编译说明进行(//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、下载源码

创建文件夹:

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、编译源码

按照教程上说的进行依赖包的安装:

rosdep install --from-paths src --ignore-src --rosdistro groovy -y          然后应该还需要安装cmake(我之前就已经安装好了,不知道是不是应该在这一步)。我是从官网下载的源码(//www.cmake.org /),然后在ARM上编译的。ARM上编译太慢了,用了将近一个小时,不知道可不可以在PC上交叉编译,不做深究了。

接下来就是最重要的过程了——编译。这个过程是痛苦而漫长的,ARM板的主频慢,编译一次代码需要20分钟左右,而且每次出错总是在编译了好长时间之后,各种依赖的包需要安装。如果现在进行编译,肯定会出现一大堆错误,可以根据这些错误进行一步步的处理,基本都是所依赖的包没有安装。其中最重要的就是boost库的包。因为ROS中很多的代码是使用C++写的,都使用了boost静态库,所以必须在ARM中的ubuntu系统中安装boost库。 boost库是我纠结时间最长的一个问题,我使用了各种各样的方法进行安装:

(1)直接apt-get安装

(2)下载源码在PC机上交叉编译然后放到ARM中

(3)直接下载官方针对ARM架构已经编译好的deb包进行安装(https://launchpad.net/ubuntu/+source/boost1.46/1.46.1-7ubuntu3/+build/3060825)

首页 1 2 尾页
本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved