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

Linux教程:ROSonARM--RK3066上本地编译ROSGroovy

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

1. 开源机器人操作系统ROS(Robot Operating System)简介

ROS(Robot Operating System)是一个开源的为机器人软件开发设计的软件框架,在异构计算机集群中提供类似操作系统的功能。它并不是一个计算机的操作系统,而是机器人的操作系统,或者称为元级操作系统(Meta Operating System)。据目前唯一一本比较官方的关于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的原始目的就是为了在一系列真实和模拟的环境中控制机器人提供一个统一的开源编程框架。为了实现这一目标,ROS架构中有三个层次的概念:文件系统级(Filesystem Level),计算图级(Computation Graph Level)和社区级(Community Level)。 具体可以查阅维基百科和官网wiki,这里就不过多介绍了。

2. ROS Groovy Galapagos

ROS Groovy Galapagos是2012年12月31日发布的ROS最新版本,主要支持Ubuntu 11.10、Ubuntu 12.04和Ubuntu 12.10。提到这个版本的原因是它采用了新的构建系统——catkin,准备逐渐取代之前的rosbuild。它解决了rosbuild当中的几个问题,让ROS可以持续发展和扩大规模,相对于rosbuild更符合文件系统层次结构标准(Filesystem Hierarchy Standard,FHS),使在其它操作系统和架构上发布ROS包更加容易。正是这个原因让我在MK802 IIIS上编译ROS的时候轻松很多,如果编译之前的版本(比如fuerte)将会遇到更多问题。

因为catkin的引入,ROS文件系统级的Stacks概念被移除了,原因是Package和Stack之间依赖性跟踪出现的问题,取代的是元包(metapackage)的概念。

3. Ubuntu on ARM

ARM版Ubuntu的软件源是在//ports.ubuntu.com/上,和桌面版的略有区别,我遇到的一个问题就是桌面版python-*的包ARM版几乎都没有,解决办法是使用python的包管理工具pip安装,比如桌面版上apt-get install python-PACKAGENAME,用pip install PACKAGENAME替代。据说easy_install的维护不够好,所以应该尽量用pip。

我使用的是RK3066上的Picuntu。

4. 编译ROS for ARM

从前为ARM编译一般都需要在x86的上位机上交叉编译,有一个叫做EROS的项目,但是似乎文档不全,个人觉得用它成功编译的人应该也不多。近几年ARM性能足够强了,在ARM运行的操作系统上直接编译也不是什么问题。所以完全可以参考官网从源码编译的教程,官网还特别搞了一个在树莓派上编译的教程。

当然,树莓派的内存只有512MB,而且是ARM 11,使用ROS会受到很大的限制,既然它都可以编译ROS Groovy,那么双核A9的RK3066,1G内存就更不是问题了。

下面一步步按照官网上从源码编译的wiki来:

4.1 安装基础依赖包

操作系统相关的:

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