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

先下载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解压了直接用,不用重新编译了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值