树莓派上安装完整的ROS indigo(2017/4/18 修正)
来源:互联网 发布:vr全景制作软件 编辑:程序博客网 时间:2024/05/23 00:01
截至 2017/4/18 主要有两个问题已解决
首先, 树莓派编译到179个包的时候 ,会出错, 咨询过github的作者,说liburdf headers liburdf这个包更改了部分内容,将boost的内容替换成c++11,所以 要降到0.4.2或者0.4.0 这个版本。
其次,如果RVIZ不能启动的话,注意查看urdfdom这个包是否安装正常。//如果之前有安装过ros,添加其他包的时候,注意安装完之后,记得运行 sudo ldconfig 进行动态库链接,博主一开始没有做,一直提示无法启动urdfdom_sensor.h 文件共享报错。
//附上常用的几个debian指令 老鸟绕过
删除原来已安装的包 dpkg -P //查看已安装的包 dpkg -L apache2
附上链接 github两个包链接:
https://github.com/ros/urdfdom_headers/releases/tag/0.4.2
https://github.com/ros/urdfdom/releases/tag/0.4.2
根据官网的的指导教程中的两个相关的包 替换成这两个包就可以编译通过。
附上collada-dom的百度链接,这个包要下载很久,很浪费时间,博主下完之后,保存了下来。
https://pan.baidu.com/s/1jI2wqCA
至此,ros的安装的坑躺完了。
附上官网的 教程 链接和参考的一篇博客的链接。
http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Indigo%20on%20Raspberry%20Pi
如果 有什么问题 建议 参考 官网,有人说官网很容易出错,但是其实我感觉,理解了官网的意思 应该没什么问题, 就是有些小细节, 底下 这篇文章 会指出。
然后我自己 补充 一个地方。
以下的教程参考了超级cooper的博客:
就是关于collada 这个包的安装, 执行安装之后 会提示安装成功,但是Resolve Dependencies时
执行
rosdep install --from-paths src --ignore-src --rosdistro indigo -y -r --os=debian:jessie会出现collada fasiled , 关于 python那几个 不用管他,但是这个选项我查了一下官网, 如下
Unavailable Dependencies
Following packages are not available for Raspbian:
Raspbian Wheezy: libconsole-bridge-dev, liburdfdom-headers-dev, liburdfdom-dev, liblz4-dev, collada-dom-dev
Raspbian Jessie: collada-dom-dev
对于raspbian 这个包一开始就说是不能 用的,那为什么 还提供 安装 ?? 完全无法理解。外国人在想什么?
1、准备材料
树莓派3B, ROS Indigo, 16G SD卡,Raspbian OS(博主装的是jessie)
2、准备安装
2.1添加ROS代码仓库
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu jessie main" > /etc/apt/sources.list.d/ros-latest.list'$ wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -O - | sudo apt-key add -更新一下,否则很容易出错
$ sudo apt-get update$ sudo apt-get upgrade
2.2安装相关依赖包
Raspbian Jessie:
$ sudo apt-get install python-pip python-setuptools python-yaml python-distribute python-docutils python-dateutil python-six$ sudo pip install rosdep rosinstall_generator wstool rosinstall
2.3初始化rosdep
$ sudo rosdep init$ rosdep update
3、开始安装
3.1创建catkin工作空间用于编译ROS源码
$ mkdir ~/ros_catkin_ws$ cd ~/ros_catkin_ws接下来下载ROS源码,我们要安装的是完整版(Desktop)
$ rosinstall_generator desktop --rosdistro indigo --deps --wet-only --exclude roslisp --tar > indigo-desktop-wet.rosinstall$ wstool init src indigo-desktop-wet.rosinstall
$ wstool init src indigo-desktop-wet.rosinstall -j8
$ wstool update -t src
3.2解决依赖
3.2.1安装软件源没有的依赖包
$ mkdir ~/ros_catkin_ws/external_src$ sudo apt-get install checkinstall cmake$ sudo sh -c 'echo "deb-src http://mirrordirector.raspbian.org/raspbian/ testing main contrib non-free rpi" >> /etc/apt/sources.list'$ sudo apt-get update
$ cd ~/ros_catkin_ws/external_src$ sudo apt-get build-dep console-bridge$ apt-get source -b console-bridge$ sudo dpkg -i libconsole-bridge0.2*.deb libconsole-bridge-dev_*.deb如果看到关于'-std=c++11' 的错误,按照下面的步骤将gcc版本升级到gcc 4.7+
sudo apt-get install g++-4.7sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7sudo update-alternatives --config gcc
$ cd ~/ros_catkin_ws/external_src$ apt-get source -b lz4$ sudo dpkg -i liblz4-*.deb
$ cd ~/ros_catkin_ws/external_src$ git clone https://github.com/ros/urdfdom_headers.git$ cd urdfdom_headers$ git reset --hard 9aed725$ cmake .$ sudo checkinstall make install前面分析了编译过程可能出现"collada_parser"报错的原因,这里的'9aed725'就是将"liburdfdom-headers-dev"的安装版本变成我们需要的1.0.0版本。
$ dpkg -l运行上面命令在列表中没有看到我们安装的"liburdfdom-headers-dev"包,或者package名没有修改成功,运行下面命令重新安装(为确保这里的每个依赖包都正确安装,建议每安装一个包之后都用这个方法检查一遍)
$ sudo checkinstall make install
$ cd /usr/local/include/urdf_model$ sudo wget https://raw.githubusercontent.com/ros/urdfdom_headers/master/urdf_model/include/urdf_model/utils.h
$ cd ~/ros_catkin_ws/external_src$ sudo apt-get install libboost-test-dev libtinyxml-dev$ git clone https://github.com/ros/urdfdom.git$ cd urdfdom$ cmake .$ sudo checkinstall make installcheck-install开始会让你输入包的描述,可以直接按回车跳过。当checkinstall询问是否改变安装选项时,选择[2],将名字从 "urdfdom"改为"liburdfdom-dev" ,其余有[y]或[n]的问题都输入'n'按回车, 否则会编译出错
$ cd ~/ros_catkin_ws/external_src$ sudo apt-get install libboost-filesystem-dev libxml2-dev$ wget http://downloads.sourceforge.net/project/collada-dom/Collada%20DOM/Collada%20DOM%202.4/collada-dom-2.4.0.tgz$ tar -xzf collada-dom-2.4.0.tgz$ cd collada-dom-2.4.0$ cmake .$ sudo checkinstall make installcheck-install开始会让你输入包的描述,可以直接按回车跳过。当checkinstall询问是否改变安装选项时,选择[2],将名字从 "collada-dom"改为 "collada-dom-dev" ,其余有[y]或[n]的问题都输入'n'按回车, 否则会编译出错
3.2.2解决rosdep的依赖
$ cd ~/ros_catkin_ws$ rosdep install --from-paths src --ignore-src --rosdistro indigo -y -r --os=debian:jessie这个命令会寻找所有src目录的package并递归安装依赖,要安装的依赖包有点多,耐心等待吧。
3.3编译catkin工作空间
3.3.1在开始编译之前,先打两个补丁。
$ nano ~/ros_catkin_ws/src/robot_model/collada_urdf/src/collada_urdf.cpp
#include <strings.h>
bool Assimp::IOSystem::ComparePaths(const char *p1, const char *p2) const
{
return !::strcasecmp(p1,p2);
}
$ nano ~/ros_catkin_ws/src/rviz/src/rviz/mesh_loader.cpp
#include <strings.h>
bool Assimp::IOSystem::ComparePaths(const char *p1, const char *p2) const
{
return !::strcasecmp(p1,p2);
}
#endif
3.3.2修改交换空间大小
$ sudo nano /etc/dphys-swapfile找到CONF_SWAPSIZE=100,修改为 CONF_SWAPSIZE=1024
$ sudo reboot
3.3.3正式编译和安装
$ cd ~/ros_catkin_ws$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/indigo执行上面命令默认使用4个核心来编译,会使得CPU的使用率长时间为100%,容易死机,所以我们可以加上-j2参数设定树莓派使用2个核心编译。
$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/indigo -j2
$ source /opt/ros/indigo/setup.bash设置ROS环境变量在每次启动shell时自动添加到bash会话
$ echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc到这里我们的ROS完整版就已经成功安装好了,不妨运行roscore试一下
$ roscore成功运行roscore就证明我们安装成功了,接下来就可以按照官网教程愉快地学习了,距离做出自己的ROS移动平台又近了一步。
$ source /opt/ros/indigo/setup.bash这样以后你执行ros环境的时候,就会帮你添加ros环境。
- 树莓派上安装完整的ROS indigo(2017/4/18 修正)
- ROS Indigo的安装配置
- ROS学习(一) 安装ROS indigo
- Ubuntu14.04 for ROS indigo的安装(电脑配置)
- Armhf 中安装 ROS Indigo 的方法
- ROS Indigo版本的安装和配置
- TX1 安装 ROS Indigo
- 安装ros—indigo
- 【ROS】indigo安装
- ROS 学习一:ROS indigo 在 树莓派2(raspberry pi 2)上的安装
- 机器人操作系统ROS Indigo 入门学习(1)——安装ROS Indigo
- 机器人操作系统ROS Indigo 入门学习(1)——安装ROS Indigo
- 机器人操作系统ROS Indigo 入门学习(1)——安装ROS Indigo
- 机器人操作系统ROS Indigo 入门学习(1)——安装ROS Indigo
- 机器人操作系统ROS Indigo 入门学习(1)——安装ROS Indigo
- Ubuntu14.04安装ROS Indigo
- 双系统ubuntu+ros indigo安装
- ROS Indigo安装Kinect v1
- ACM-二叉树
- 第八届蓝桥杯分巧克力
- 注解方式过滤器(Filter)不能过滤Servlet的问题
- Jsoup解析HTML
- 127.0.0.1和localhost和本机IP三者的区别!!!
- 树莓派上安装完整的ROS indigo(2017/4/18 修正)
- 组合模式(Composite Pattern)
- DC综合教程
- SpringMVC实现全局异常捕获处理
- iOS 本地通知
- 【深度学习】使用tensorflow实现VGG19网络
- 关于URL传参时传数组的问题
- WPF 简单数据绑定实例
- 区块链技术与CAP原理