树莓派编译安装ros,原理步骤详细

原创 2016年06月01日 16:40:22

先下载ros源码,可以在PC上执行,也可以在raspbian里执行。此处在PC ubuntu上执行。
添加ros源

$ echo "deb http://packages.ros.org/ros/ubuntu jessie main" > /etc/apt/sources.list.d/ros-latest.list

添加key

$ wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O - | sudo apt-key add -

更新源和升级

$ sudo apt-get update
$ sudo apt-get upgrade

安装python-pip,pip是一个python包管理工具

$ sudo apt-get install python-pip

通过pip安装一些下载ros源码的工具。rosdep用于解决ros包依赖的问题,rosinstall_generator用于生成下载源码的列表文件.rosinstall,wstool用于根据源码列表文件下载源码

$ sudo pip install rosdep rosinstall_generator wstool

初始化rosdep

$ sudo rosdep init
$ rosdep update

创建工作空间,存放源码和用于编译

$ mkdir ~/ros_ws
$ cd ~/ros_ws

用rosinstall_generator生成源码列表文件。ros_common是一个预定义的参数,包含常用ros包,此处也可添加其他一些常用包,比如geometry_msgs和tf。rosdistro选项指定ros的版本,最新版是kinetic,稳定版是indigo。

$ rosinstall_generator ros_comm geometetry_msgs tf --rosdistro kinetic --deps --wet-only --exclude roslisp --tar > ros_comm.rosinstall

用wstool根据列表下载源码

$ wstool init src ros_comm.rosinstall

如果下载中断,利用下面语句继续

$ wstool update -t src

下载的源码存放在src文件夹里。打包工作空间,传到树莓派上

$ cd ~
$ tar -zcf ros_ws.tar.gz ros_ws
$ scp ros_ws.tar.gz pi@192.168.1.xx:~

以下在树莓派上进行,解压源码

$ ssh pi@192.168.1.xx
$ cd ~
$ tar -zxf ros_ws.tar.gz
$ cd ros_ws

在树莓派上执行添加源,key,apt-get update,安装pip和rosdep的工作,步骤同PC。也可直接apt-get install python-rosdep,就不用安装pip了。

用rosdep安装依赖包,其中最大的算是libboost,注意要保证空间足够。

$ rosdep install --from-paths src --ignore-src --rosdistro kinetic -y -r --os=debian:jessie

用catkin_make编译。注意,因为树莓派只有1G内存,默认是-j4编译,在编译到roscpp的时候会因为内存不够编译卡住。所以这里加-j2,不会死机但是比较慢。也可以-j4编译到卡住之后再用-j2编译。roscpp应该是倒数第几个包,一共有五十几个包。编译需要20分钟。

$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic -j2

结束后source一下就可以运行roscore了

$ echo ". /opt/ros/kinetic/setup.bash" >> ~/.bashrc
$ . ~/.bashrc
$ roscore

如果运行roscore出现一大堆运行时错误,如下
terminate called after throwing an instance of ‘std::runtime_error’ what(): locale::facet::_S_create_c_locale name not valid
是locale未设置,locale有很多变量,比较方便的方法是直接设置LC_ALL。先查看有哪些locale可用

$ locale -a

找类似en_US.utf8,en_GB.utf8, zh_CN.utf8的,然后设置LC_ALL

$ echo "export LC_ALL="en_GB.utf8" >> ~/.bashrc
$ . ~/.bashrc

可以做一些收尾工作,用pip uninstall删除wstool rosinstall_generator等包。/opt/ros算是绿色软件,新的树莓派用rosdep安装依赖包以后,可以把打包的/opt/ros解压了直接用,不用重新编译了。

关于LCD1602以及IIC总线的相关学习笔记整理

关于LCD1602部分: 1.我们根据说明书给出的说明可以编写相关的写指令以及写数据函数: 相关函数如下:   _nop_()也是一个延时函数   2.初始化:有使用说明得到相关初始化函数的编...

树莓派搭建ROS及简单应用

1,目的   使用树莓派GPIO控制电机驱动,实现小车的前进后退左转右转停止运行。    深入理解ROS框架    使用wiringPi控制pi的GPIO 2,环境搭建   a,小车部分:4个小电机,...

树莓派3-Jessie编译安装ROS-indigo完整版

树莓派3-Jessie编译安装ROS-indigo完整版 发布时间:2016年10月20日 09:31:21    浏览数:4388次    来自:Ray 大家在学习ROS中有时候直接使用笔记本...
  • datase
  • datase
  • 2017年10月19日 11:11
  • 121

树莓派编译安装完整版本ROS

 树莓派安装完整的ROS并不容易,博主东方赤龙花费了数天总结了安装编译的经验,否则很容易走弯路。 ROS官方论坛里面有安装教程, 但是很容易出错。尤其是Desktop版的ROS! 1...
  • BBZZ2
  • BBZZ2
  • 2016年05月11日 16:57
  • 2131

树莓派3Raspbian-jessie编译安装ROS Indigo完整版

跟很多人的想法一样,我也想自己搭建一个基于ROS的可移动平台,由于特别喜欢树莓派,就想把ROS装到树莓派3上面,折腾了好几天,终于装好了。过程中参考了不少大神的教程,主要参考了著名博主东方赤龙和ROS...

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

http://blog.csdn.net/crazyquhezheng/article/details/43413231 树莓派安装完整的ROS并不容易,博主东方赤龙花费了数天总结了安装编译...
  • AMDS123
  • AMDS123
  • 2017年05月02日 22:54
  • 5999

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

介绍如果在树莓派中安装完整的ROS

树莓派3上安装ros完整版

官方安装教程 主要安装步骤大家参考官方教程,下面的算是我对官方教程的一点补充说明,也许可以帮助大家少走点弯路。官方教程上支持的树莓派系统版本为wheezy和jessie;我用的是最新的jessie。...
  • kcf1989
  • kcf1989
  • 2017年03月11日 09:26
  • 536

1. 树莓派中安装ubuntu、ROS

1. 树莓派中安装ubuntu、ROS下载ubuntuhttps://ubuntu-pi-flavour-maker.org/download/这里可以下载到各个桌面版本的ubuntu选择你喜欢的下载...

树莓派3代Raspbian Jessie安装ROS-Indigo-Desktop

手上有块树莓派3,最近实验室要求在树莓派上安装ROS-indigo-desktop版,参考了几篇教程,趟了无数坑,花费了数个日夜终于有些眉目,记录下来供以后参考。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:树莓派编译安装ros,原理步骤详细
举报原因:
原因补充:

(最多只允许输入30个字)