ROS on ARM pcduino

参考:http://www.sun11.me/blog/ros-on-arm--native-compile-ros-on-rk3066/

原创为ROS 在ARM--RK3066上编译ROS Groovy

还可参考:http://wiki.ros.org/groovy/Installation/Source 这个是官网教程,比较新,其他博客上有的提到的工具已经不能用了

1. 编译ROS common for ARM

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

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

4.1 安装基础依赖包

操作系统相关的:


 
 
sudo apt-get install python-rosdep python-rosinstall-generator python-wstool build-essential

ROS Common(或者叫ROS Base,Base Bones什么的)依赖的:


 
 
su do apt-get install libtinyxml-dev libgtest-dev liblog4cxx10-dev

注意这里只是在Picuntu RC2 上需要额外安装的库,可能你还会遇到其它库的问题。desktop或者desktop-full依赖的库更多,所以更难解决。

还有一些重要的工具:


 
 
su do pip install wstool rospkg rosdep

可能会遇到很多python-*的包缺少的问题,需要用sudo pip install PACKAGENAME安装

安装完rosdep以后初始化一下:


 
 
su do rosdep init
rosdep update

4.2 构建catkin包

上面提到过,ROS Galapagos采用了新的构建工具catkin代替rosbuild,但并不是所有的包都转换成了catkin的版本,所以先构建ROS的核心包(使用catkin),然后再构建其余的使用rosbuild的部分。

4.2.1 创建catkin工作空间


 
 
mkdir ~/ros_catkin_ws
cd ~/ros_catkin_ws

下一步是下载核心包的源码并构建它们,你有三种选择:

Desktop-Full Install: ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception


 
 
wstool init -j8 src http:/ /packages.ros.org/web /rosinstall/generate /raw/groovy /desktop-full

Desktop Install : ROS, rqt, rviz, and robot-generic libraries


 
 
wstool init -j8 src http:/ /packages.ros.org/web /rosinstall/generate /raw/groovy /desktop-full

ROS-Comm: (Bare Bones) ROS package, build, and communication libraries. No GUI tools.


 
 
wstool init src -j8 http:/ /packages.ros.org/web /rosinstall/generate /raw/groovy /ros_comm

我选择第三个,这个操作是下载catkin包的代码到~/ros_catkin_ws/src目录下,-j8是指并行下载8个包,在pcduino上是无压力的,如果是树莓派可能需要减少。

注意,在后面解决依赖关系和构建的时候很多包依赖的库可能会缺,你可以根据错误提示自行安装所缺的库。我在MK802 IIIS上只成功编译了ROS-Comm,Desktop编译失败了,而Desktop full在官网wiki中说还有问题:There are build errors in desktop-full (gazebo simulator) at the moment, so the desktop variant is suggested at this time. See: https://code.ros.org/trac/ros-pkg/ticket/5595

还可以安装其它的包,如robot:


 
 
wstool init -j8 http:/ /packages.ros.org/web /rosinstall/generate /dry/raw /groovy/robot

更多的可以在REP 131中查阅。

4.2.2 解决依赖关系

在构建包之前你必须确保你解决了所有的依赖关系


 
 
rosdep install - - from- paths src - - ignore- src - - rosdistro groovy - y

--from-paths选项表示我们想要安装某个文件夹下的所有包,这里是src文件夹。--ignore-src选项表示rosdep不应该从包管理器安装任何src文件夹的包,因为我们现在做的就是构建它。--rosdistro选项之所以需要是因为我们没有设置好ROS的环境,所以我们必须指明我们构建的是ROS的哪个版本。最后,-y选项表示出现的提示选择都选择yes

另外如果你在安装某些包出现错误的情况下仍想安装其它所有可以安装的包,你可以使用-r选项,也就是rosdep install --from-paths src --ignore-src --rosdistro groovy -yr

出现问题,

(1)os_detect不识别Lubuntu,强迫按照ubuntu:precise,

在命令行输入 export ROS_OS_OVERRIDE=ubuntu:precise

或者在~/.bashrc上加上export ROS_OS_OVERRIDE=ubuntu:precise
别忘了 . ~/.bashrc

(2)boost找不到

sudo apt-get install libboost1.46-all-dev

4.2.3 构建catkin工作空间

调用catkin_make_isolated:


 
 
. /src/catkin/bin/catkin_make_isolated - - install

默认安装在~/ros_catkin_ws/install_isolated下,如果要安装到其它地方,比如/opt/ros/groovy,可以使用--install-space /opt/ros/groovy

如果编译过程中出现错误提示缺少库,需要自行安装解决。

如果构建完成了,再执行:


 
 
source ~/ros_catkin_ws/install_isolated/setup.bash

如果你只需要ROS Common那么就结束了。可以测试一下在终端里输入roscore,我的运行没错误。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值