瑞芯微Rockchip开发者社区
直播中

梅利号

9年用户 1563经验值
擅长:可编程逻辑
私信 关注
[经验]

在FirePrime开发板上编译安装ROS jade

  先简单介绍一下ROS吧。参考ROS百度百科,ROS即机器人操作系统,但并不是一个真正的操作系统,是一个机器人软件平台。目前ROS主要支持Ubuntu。它能提供一些标准操作系统服务,例如硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。ROS是基于一种图状架构,从而不同节点的进程能接受,发布,聚合各种信息(例如传感,控制,状态,规划等等)。感兴趣的可以去ROS Wiki,那里有大量的信息。

  FirePrime开发板上的系统为Ubuntu15.04,使用的固件为官方最新固件。其他linux版本的系统或其他版本的Ubuntu安装ROS的过程有一些差异。

  在ARM类的开发板上安装ROS,是一个漫长的过程,也会很容易出错。

  下面开始安装。

  1、安装准备

  1、1 配置你的Ubuntu软件版本仓库

  FirePrime运行的Ubuntu15.04这一步已经配置好了,不需要做出改动。

  1、2 设置你的Locale

  主要是Boost和ROS的一些工具需要,通过在终端运行下面的指令设置。

  1、3 设置你的sources.list

  1、4 设置你的Keys

  1、5 确保你的系统已经更新

  1、6 安装booststrap依赖

  1、7 初始化rosdep

  2、安装

  2、1 创建一个catkin工作空间

  对于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:

  如果wstool init失败或中断,下面的命令会接着下载:

  2、2 解决依赖

  通过rosdep工具解决依赖:

  这步会安装大量的依赖,过程稍长。

  安装过程中提示collada-dom-dev安装出错,并中断安装。解决方法参考东方赤龙的博客:

  ROS 学习系列 -- 树莓派编译安装完整版本ROS

  解决过程如下:

  创建新目录,下载并编译这个包。

  当checkinstall询问是否改变安装选项时,选择[2],将名字从“collada-dom” 改为 “collada-dom-dev”。接下来的两个问题连续选择‘n’, 否则会编译出错。

  执行成功后会提示所有依赖已经安装。

  2、3 编译catkin工作空间在次执行rosdep指令:

  这个过程挺长的,慢慢等待吧。这是编译过程中某一时刻内存和CPU的使用情况

  编译过程中出现2类错误,共3个错误。

  第一个错误在编译到roscpp包的时候出现,导致停止编译。错误提示为c++ compiler error,通过百度,错误原因为内存不足。解决方法为增加一个交换分区。

  解决过程如下:

  (1)创建分区文件,大小2G(大小自己根据自己情况设定)。

  (2)生成swap 文件系统。执行这个命令需要一些时间。

  (3)激活swap 文件。

  但是这样并不能在系统重启的时候自动挂载交换分区,这样我们就需要修改fstab。

  (4)修改/etc/fstab 文件,新增如下内容:

  这样每次重启系统的时候就会自动加载swap文件了。

  出错的时候有个提示:Reproduce this error by running,下面有个指令,可以运行这个指令看有没有错误出现,没有的话错误就解决了,接着重新编译。

  第二个错误出现在编译collada_urdf的时候,错误提示为undefined reference to typeinfo for Assimp::IOSystem。

  解决方法为在ros_catkin_ws/src/robot_model/collada_urdf/src/collada_urdf.cpp中包含assimp相关文件之后,加入以下代码:

  第三个错误出现在编译rviz包的时候,错误提示与第二个错误类似。解决方法在ros_catkin_ws/srcrviz/src/rvizmesh_loader.cpp中包含assimp相关文件之后,加入以下代码:

  终于编译完了!

  2、4 设置环境变量

  执行下面的命令,这样终端每次启动的时候,就可以直接使用ROS了。

  3、测试

  运行一下roscore,看一下是不是成功安装了。

  运行没有问题,可以使用ROS了。

原作者:liuyu-419812

更多回帖

发帖
×
20
完善资料,
赚取积分