ubuntu15.04 + ROS jade

众所周知,一个萝卜一个坑,一个Ubuntu一种ROS。Ubuntu15.04应该已经停止维护了吧,像以往那种脑残式安装ROS一般是不可能的了,没办法,自己编译咯!! 虽然找不到大神关于这方面的帖子  (╯﹏╰)  ,但哥们儿不能轻易放弃!!!

开始的开始,交代一些很重要的东西,由于这个鬼东西已经停止维护了,所以需要修改源,不然你 apt 不上任何东西(改成阿里源也没用 ╮(╯▽╰)╭)

编辑原来的源文件 /etc/apt/sources.list ,将原来的 http://ports.ubuntu.com/ubuntu-ports 全部替换为 http://old-releases.ubuntu.com/ubuntu/,然后保存并 sudo apt-get update

我们的方法是下载 ROS 的包,然后在自己板子上编译。废话不多说,上平台:

硬件:firefly RK3128 (不得不喷一下!!!!官网上竟然只有15.04一个版本,想想都来气,售后技术支持我就不说了)

软件:ROS jade

先给出 ROS 官网地址,虽然报错一大堆,但还是要看(尤其是搞别人没搞过的东西)。

懒得看官网或见英文眼花的朋友,直接看下面 ↓

详细安装步骤(吐血历程,且行且珍惜):

1、安装 boost

我的板子是新的,所以首先要安装 boost,版本是 1 5 4。参考网页

首先安装依赖:

sudo apt-get install mpi-default-dev
sudo apt-get install libicu-dev
sudo apt-get install python-dev
sudo apt-get install libbz2-dev

然后将 boost_1_54_0.tar 拷贝到 /home,并进入,解压:

tar -zxvf boost_1_54_0.tar.gz

进入 boost_1_54_0

sudo ./bootstrap.sh

sudo ./b2

sudo ./b2 install

测试:

新建文件 test.cpp,内容为:
#include<iostream>
#include<boost/lexical_cast.hpp>
int main()
{
int a = boost::lexical_cast<int>("123456");
std::cout << a <<std::endl;
return 0;
}

编译:
g++ test.cpp -o test
运行test,输出 "123456" 表示安装成功。

2、ROS jade 源码包下载

ROS 的下载和安装不是通过 git 啥的下载包,也不是通过 cmake 指令安装,虽然看不懂,不过没关系照着做就行了。

首先这样(为啥?别问我,不知道。):

sudo update-locale LANG=C LANGUAGE=C LC_ALL=C LC_MESSAGES=POSIX

添加源(官方源好像用不了,这个是镜像):
sudo sh -c ‘echo "deb http://ros.exbot.net/rospackage/ros/ubuntu/ vivid main" > /etc/apt/sources.list.d/ros-latest.list‘

配置秘钥:

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

安装依赖:

apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall python-empy python-nose

然后:

sudo rosdep init

rosdep update

然后要下载 ROS 包了,我们下载到 ros_catkin_ws 下(应该哪里都可以):

mkdir ~/ros_catkin_ws
cd ~/ros_catkin_ws

先下载下载工具:

rosinstall_generator desktop_full --rosdistro jade --deps --wet-only --tar > jade-desktop-full-wet.rosinstall

之后会出现一个 jade-desktop-full-wet.rosinstall 脚本。我们下载的是 ROS 豪华版(全家桶。。):

wstool init -j8 src jade-desktop-full-wet.rosinstall

时间有一会儿,之后后出现一个 src 文件夹,里面是下载好的源码。然后安装依赖:

rosdep install --from-paths src --ignore-src --rosdistro jade -y

3、ROS jade 编译

真正的编译过程那叫个惨不忍睹,为了亲们不重蹈覆辙,我们先安装一些东西。

首先安装个简单点儿的小东西,poco 库:

sudo apt-get install libpoco-dev libgtest-dev

然后编译 boost,有没有人说前面不是已经编译安装过了吗?没毛病,前面是编译过了,而且默认安装在 /usr/local 下,但是进入 /usr/local/lib ,你会发现没有 libboost_thread 开头的几个包。

放心,这次编译我们只编译 libboost_thread 这部分,跟前面也不冲突,进入 boost_1_54_0:

sudo ./b2 --with-thread stage cxxflags="-std=c++11"

然后把 stage/lib 下 libboost_thread 开头的几个包拷贝到 /usr/local/lib 下。

如果没有把这个搞好,后面编译时会出现找不到 libboost_thread 库的问题。

接下来,还是 boost,这次需要改源码:

编辑 /usr/local/include/boost/atomic/atomic.hpp,添加 #include<stdint.h>

否则可能报错:
“/usr/local/include/boost/atomic/atomic.hpp:202:43: error: invalid type in declaration before ‘;‘ token typedef atomic<uintptr_t> atomic_uintptr_t;”

然后嘞,下载 console_bridge,编译过程需要,进入 /usr/local 下载:

git clone https://github.com/ros/console_bridge.git

然后编译:

cd console_bridge
sudo mkdir build
cd build
sudo cmake ..
sudo make
sudo make install

会安装到 /usr/lcoal 下,但是呢,我们安装的这个东西还需要修改一哈:

编辑 /usr/local/include/console_bridge/console.h

将里面的 CONSOLE_BRIDGE_log 替换为 log  (替换时一定要把 Match case 打上对勾,意思是区分大小写),好像一共替换了 5、6、7、8个吧,不多。

这样是把 CONSOLE_BRIDGE_logWarn 等函数变为 logWarn,与 ROS 源码对应。否则编译 class-loader 时会报错说函数 logWarn 等函数未定义。

终于,可以编译了:

cd ~/ros_catkin_ws

./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release

编译成功后,设置环境变量:
source ~/ros_catkin_ws/install_isolated/setup.bash

不就是那几个问题吗?!库没装,库版本不对,安装位置不对,顶多就是改几行源码,有什么嘞 ╮(╯▽╰)╭(我,,我就吹个NB。。。。编译这个废了不知道多长时间 )努力努力再努力 哈哈

原文地址:https://www.cnblogs.com/hxzkh/p/9193379.html

时间: 2024-10-26 13:43:13

ubuntu15.04 + ROS jade的相关文章

ROS知识(1)----ROS Jade安装

ROS入门难,进去之后会是很简单,这是很多人的经验.但是今天安装ROS就吃了闭门羹,安装成功后,回顾发现,关键是操作系统Ubantu14.04没有安装好,一些系统包没有及时更新导致的.这里总结下ROS Jade安装的经验,留他日己用,也希望能帮助别人.安装的基本思路就是,首先安装Ubantu14.04操作,然后再安装ROS系统. 1.安装Ubantu14.04系统 ROS系统运行于Linux系统上,所以我们必须首先安装Ubantu系统.正确安装Ubantu系统是ROS安装成功的关键一步.否则安装

U盘制作Ubuntu15.04启动盘失败

先用ubuntu15.04光盘在已有xp的电脑上安装成功? 随后在Ubuntu安装labview说glibc没安装? 但是ldd --version显示是安装的新版的? 后来怀疑是86_64的原因? 用软碟通做了usb启动的ubuntu15.04 386版本? 启动失败syslinux引导失败? 然后在快捷启动中专门制作启动引导还是不行? 换了universal usb driver 制作启动还是不行? 几乎要放弃了但是还是不能放弃? 这样倒来倒去做系统启动真的很煎熬? 让我想起去恢复一个破碎的

Ubuntu15.04上部署python3.4+django1.8.8+mysql5.7+uwsgi+nginx

经过无数的百度,花了一天的时间,艰难的把django项目给部署到了Ubuntu15.04上.废话少说了,直接贴上部署步骤: 一.python安装 1.www.python.org下载 如下载的为 Python-3.4.3.tar.xz 2.解压: [email protected]:/home/dodo/Downloads/# xz -d  Python-3.4.3.tar.xz命令后得到Python-3.4.3.tar [email protected]:/home/dodo/Download

Ubuntu15.04安装samba

1.安装所需组件sudo apt-get install samba sudo apt-get install cifs-utils sudo apt-get install samba-common 2.创建共享文件mkdir /home/xxx/share sudo chmod 777 share/ 3.备份以及修改配置文件sudo cp /etc/samba/smb.conf  /etc/samba/smb.conf.bak sudo gedit /etc/samba/smb.conf 在

ubuntu15.04中的docker...1

不知道docker是个啥东西,只看书不知所云,干脆直接接触一把... 软件环境:Ubuntu15.04 64位 + docker 硬件环境:虚拟机...2G内存 + 4核心 安装: sudo apt-get install docker.io 完成后执行docker命令,此时 添加当前用户到docker组 sudo usermod -a -G docker $USER 注销后重新登录, 编辑/etc/default/docker 文件,加入如下: DOCKER="/usr/bin/docker&

ubuntu15.04 无线上网问题

今天将笔记本装成了ubuntu15.04,但是一开始无法上无线wifi,可把我郁闷坏了,就开始百度呗,然后就找到了一些前辈们的足迹 sudo iwlist wlan0 scan找到要的ESSID比如chinanet假设密码1234567890sudo iwconfig wlan0 essid chinanet key 1234567890sudo dhclient wlan0 然后就报错了 [email protected]:-$ sudo iwconfig wlan0 essid zzy ke

解决Ubuntu15.04中VMware workstaion无法打开

Ubuntu升级版本至15.04,VM无法打开.提示无法开启虚拟网络设备,这对于常用虚拟机的人来说是不可忍受的.原因是:Ubuntu15.04使 用的Linux内核3.19.0在网络API方面做了一些改变,VMware workstaion暂时是没有提供支持.幸好网上可以找到补丁文件. 获取补丁文件 curl  http://pastie.org/pastes/9934018/download  -o  /tmp/vmnet-3.19.patch 如果无法下载,可以从 http://pan.ba

ubuntu15.04下安装docker

获得更多资料欢迎进入我的网站或者 csdn或者博客园 最近听说docker很火,不知道什么东西,只知道是一个容器,可以跨平台.闲来无事,我也来倒弄倒弄.本文主要介绍:ubuntu下的安装,以及基本的入门命令介绍:我的机器是ubuntu15.04 64位 什么是Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google公司推出的 Go 语言实现. 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,

在centos7 ubuntu15.04 上通过bosh-lite 搭建单机环境cloudfoundry

Bosh-lite简介 参考文献  http://tqcto.com/article/system/261.html bosh-lite 是一个单机部署cloudfoundry的实验性工具,用于开发人员做poc 验证.Bosh-lite目前支持仅MAC OS X和Linux系统.Bosh-lite使用Vagrant管理虚拟机,所以目前只支持VirtualBox和VMWare Fusion (MAC OS X)虚拟机平台. 如下图所示,Bosh客户端CLI运行在宿主机(HOST OS)上,通过Bo