查看: 5237|回复: 2

[原创] 【FirePrime】在FirePrime上编译安装ROS jade

[复制链接]
  • TA的每日心情
    奋斗
    2018-11-15 08:49
  • 签到天数: 1031 天

    连续签到: 2 天

    [LV.10]以坛为家III

    发表于 2015-10-5 11:14:14 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 liuyu-419812 于 2015-10-5 11:38 编辑

           先简单介绍一下ROS吧。参考ROS百度百科,ROS即机器人操作系统,但并不是一个真正的操作系统,是一个机器人软件平台。目前ROS主要支持Ubuntu。它能提供一些标准操作系统服务,例如硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。ROS是基于一种图状架构,从而不同节点的进程能接受,发布,聚合各种信息(例如传感,控制,状态,规划等等)。感兴趣的可以去ROS Wiki,那里有大量的信息。
           FirePrime开发板上的系统为Ubuntu15.04,使用的固件为官方最新固件。其他linux版本的系统或其他版本的Ubuntu安装ROS的过程有一些差异。安装过程参考ROS Wiki
           Ubuntu ARM install of ROS Jadehttp://wiki.ros.org/jade/Installation/UbuntuARM
           Installing from sourcehttp://wiki.ros.org/jade/Installation/Source
        在ARM类的开发板上安装ROS,是一个漫长的过程,也会很容易出错,出错可以去这个网站:http://answers.ros.org,看看有没有类似的问题,也可以在这个网站寻求帮助。
           下面开始安装。
           1.安装准备
           1.1 配置你的Ubuntu软件版本仓库
           FirePrime运行的Ubuntu15.04这一步已经配置好了,不需要做出改动。
           1.2 设置你的Locale
           主要是BoostROS的一些工具需要,通过在终端运行下面的指令设置。
    1. sudo update-locale LANG=C LANGUAGE=C LC_ALL=C LC_MESSAGES=POSIX
    复制代码
           1.3 设置你的sources.list
    1. sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu vivid main" > /etc/apt/sources.list.d/ros-latest.list'
    复制代码
           1.4 设置你的Keys
    1. wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O - | sudo apt-key add -
    复制代码
           1.5 确保你的系统已经更新
    1. sudo apt-get update  
    2. sudo apt-get upgrade
    复制代码
           1.6 安装booststrap依赖
    1. sudo apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential
    复制代码
           1.7 初始化rosdep
    1. sudo rosdep init
    2. rosdep update
    复制代码
           2.安装
           2.1 创建一个catkin工作空间
    1. mkdir ~/ros_catkin_ws
    2. cd ~/ros_catkin_ws
    复制代码
           对于ROS jade的安装,接下来有三种选择:
           安装Desktop-Full:包含ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
           安装Desktop:包含ROS, rqt, rviz, and robot-generic libraries
           ROS-Comm(对于ARM,官网推荐的):包含ROS package, build, and communication libraries. No GUI tools
           这里选择了安装Desktop
    1. rosinstall_generator desktop --rosdistro jade --deps --wet-only --tar > jade-desktop-wet.rosinstall
    2. wstool init -j8 src jade-desktop-wet.rosinstall
    复制代码
           如果wstool init失败或中断,下面的命令会接着下载:
    1. wstool update -j 4 -t src
    复制代码
           2.2 解决依赖
           通过rosdep工具解决依赖:
    1. rosdep install --from-paths src --ignore-src --rosdistro jade -y
    复制代码
           这步会安装大量的依赖,过程稍长。
           安装过程中提示collada-dom-dev安装出错,并中断安装。解决方法参考东方赤龙的博客:
           ROS 学习系列 -- 树莓派编译安装完整版本ROShttp://blog.csdn.net/crazyquhezheng/article/details/43413231
           解决过程如下:
           创建新目录,下载并编译这个包。
    1. mkdir ~/ros_catkin_ws/external_src  
    2. sudo apt-get install checkinstall cmake
    3. cd ~/ros_catkin_ws/external_src  
    4. sudo apt-get install libboost-filesystem-dev libxml2-dev  
    5. wget http://downloads.sourceforge.net/project/collada-dom/Collada%20DOM/Collada%20DOM%202.4/collada-dom-2.4.0.tgz  
    6. tar -xzf collada-dom-2.4.0.tgz  
    7. cd collada-dom-2.4.0  
    8. cmake .  
    9. sudo checkinstall make install
    复制代码
           当checkinstall询问是否改变安装选项时,选择[2],将名字从"collada-dom" 改为 "collada-dom-dev"。接下来的两个问题连续选择'n', 否则会编译出错。
           在次执行rosdep指令:
    1. rosdep install --from-paths src --ignore-src --rosdistro jade -y
    复制代码
           执行成功后会提示所有依赖已经安装。
           2.3编译catkin工作空间
    1. ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
    复制代码
    这个过程挺长的,慢慢等待吧。这是编译过程中某一时刻内存和CPU的使用情况。
    P51002-171039.jpg
           编译过程中出现2类错误,共3个错误。
           第一个错误在编译到roscpp包的时候出现,导致停止编译。错误提示为c++ compiler error,通过百度,错误原因为内存不足。解决方法为增加一个交换分区。
    P51002-185558.jpg
           解决过程如下:
           (1)创建分区文件,大小2G(大小自己根据自己情况设定)
    1. dd if=/dev/zero of=/swapfile bs=1k count=2048000
    复制代码
           (2)生成swap 文件系统。执行这个命令需要一些时间。
    1. mkswap /swapfile
    复制代码
           (3)激活swap 文件。
    1. swapon /swapfile
    复制代码
           但是这样并不能在系统重启的时候自动挂载交换分区,这样我们就需要修改fstab
           (4)修改/etc/fstab 文件,新增如下内容:
    1. /swapfile  swap  swap    defaults 0 0
    复制代码
           这样每次重启系统的时候就会自动加载swap文件了。
           出错的时候有个提示:Reproduce this error by running,下面有个指令,可以运行这个指令看有没有错误出现,没有的话错误就解决了,接着重新编译。
           第二个错误出现在编译collada_urdf的时候,错误提示为undefined reference to typeinfo for Assimp::IOSystem。在http://answers.ros.org/上找到了解决办法:
        http://answers.ros.org/question/48084/urdf_to_collada-undefined-reference-to-vtable-for-assimpiosystem/
    P51003-111832.jpg
           解决方法为在ros_catkin_ws/src/robot_model/collada_urdf/src/collada_urdf.cpp中包含assimp相关文件之后,加入以下代码:
    1. #ifdef __arm__
    2. bool Assimp::IOSystem::ComparePaths(const char *p1, const char *p2)const
    3. {
    4. return !::strcasecmp(p1,p2);
    5. }
    6. #endif
    复制代码
           第三个错误出现在编译rviz包的时候,错误提示与第二个错误类似。解决方法在ros_catkin_ws/srcrviz/src/rvizmesh_loader.cpp中包含assimp相关文件之后,加入以下代码:
    1. #ifdef __arm__
    2. bool Assimp::IOSystem::ComparePaths(const char *p1, const char *p2)const
    3. {
    4. return !::strcasecmp(p1,p2);
    5. }
    6. #endif
    复制代码
           参考:http://answers.ros.org/question/52098/unable-to-compile-rviz-on-ubuntu-armhf/
           终于编译完了!
    P51003-222958.jpg
           2.4 设置环境变量
           执行下面的命令,这样终端每次启动的时候,就可以直接使用ROS了。
    1. echo "source ~/ros_catkin_ws/install_isolated/setup.bash" >> ~/.bashrc
    2. source ~/.bashrc
    复制代码
        3.测试
           运行一下roscore,看一下是不是成功安装了。
    P51003-223325.jpg
           运行没有问题,可以使用ROS了。

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-10-17 12:07
  • 签到天数: 306 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2015-10-5 12:49:33 | 显示全部楼层
    ROS 以前了解过,但是没用过,期待楼主后面的分享。。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-11-15 08:49
  • 签到天数: 1031 天

    连续签到: 2 天

    [LV.10]以坛为家III

     楼主| 发表于 2015-10-5 13:35:32 | 显示全部楼层
    liunian__92 发表于 2015-10-5 12:49
    ROS 以前了解过,但是没用过,期待楼主后面的分享。。。。

    还是小白,正在学习中
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-5-6 15:26 , Processed in 0.143561 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.