Ubuntu虚拟机+ROS+Android开发环境配置笔记

虚拟机设置:

1.本地环境:Windows 7;VMWare;联网
2.虚拟环境 :Ubuntu 14.04。 比較稳定,且支持非常多ROS
3.虚拟机配置:硬盘至少50G,由于整个工具链配置起来须要非常多空间,性能方面能够尽量往高配置。
4.虚拟环境搭建起来后,Ubuntu会弹出提示窗体询问是否升级软件,升级完后重新启动,约30分钟,取决于网络环境。
5.重新启动后,terminal运行下面:
     $ sudo apt-get upgrade

     $ sudo apt-get update
两步约3分钟能完毕,详细时间取决于网络环境。
6.至此,虚拟机配置基本完毕。


ROS安装:
1.登录wiki.ros.org/indigo/installation/ubuntu。能够更换indigo为其它合适的ROS版本号。但建议不要选择最新的ROS版本号。由于最新的版本号往往包的支持还不是非常好。倒数第二新往往比較稳定。
2.先确定Ubuntu同意“restricted”,“universe”和“multiverse”类型软件的安装(Software sources里配置)。

3.先配置ROS源(1.2)。然后配置源钥匙(1.3)。
4.依照说明下载安装ROS(ros-indigo-desktop-full),取决于网络环境。可能须要30分钟下载1G多内容。
5.依照说明配置rosdep(1.5),这个是用于解决ROS依赖的。
6.加入环境变量(1.6)。假设没有加入这一步,则须要每次使用前手动加入环境变量:
     $ source /opt/ros/indigo/setup.bash
7.依照说明下载安装rosinstall。大概一分多钟。
8.terminal运行下面:
     $ rospack find rviz
若返回一个路径,说明ROS成功安装,且已经安装了rviz包。
9.至此。ROS安装完成。


rosjava:
1.terminal运行:
     $ sudo apt-get install ros-indigo-rosjava
     $ mkdir -p ~/rosjava
     $ source /opt/ros/indigo/setup.bash
     $ cd ~/rosjava
     $ rosdep update
     $ rosdep install --from-paths src -i -y
     $ source ~/rosjava/devel/setup.bash
     $ catkin_make
执行rosdep可能须要一点时间,它会自己主动下其它相关的依赖包。

最后catkin_make一步,可能由于网络原因不能一次成功。能够试多几次。


然后,能够加入下面内容,也能够不加入:
     $ mkdir -p ~/rosjava_minimal
     $ wstool init -j4 ~/rosjava_minimal/src https://raw.githubusercontent.com/rosjava/rosjava/indigo/rosjava_minimal.rosinstall
     $ source /opt/ros/indigo/setup.bash
     $ cd ~/rosjava_minimal
     $ rosdep update
     $ rosdep install --from-paths src -i -y -r
     $ catkin_make

2.terminal运行例如以下:
     $ mkdir -p ~/myjava/src
     $ cd ~/myjava/src
     $ source /opt/ros/indigo/setup.bash
     $ catkin_init_workspace
     $ cd ~/myjava
     $ catkin_make
     $ echo "export ROS_LANG_DISABLE=genjava" >> ~/myjava/devel/setup.bash

3.terminal运行例如以下:
     $ sudo apt-get install openjdk-7-jdk
     $ sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6

4.下载android studio。网络不一定支持从官方下载安装包。能够从别处下载。
5.改动opt权限。 sudo nautilus。导航至/opt。将其的权限改为“Create and delete files”。
6.将下载的安装文件解压至opt。完毕后就有/opt/android-studio目录。
7.terminal下:
     $ /opt/android-studio/bin/studio.sh
就可以打开Android studio,选择新建,阅读对应说明而且通过导航就可以下载SDK(将近1G)。

8.打开Android  studio,configure中的SDK Manager。

除了最新的SDK,还要下载SDK Build Tools 21.2, APIs 10,13,15,18,21。

有一些下载内容须要点选Obsolee才干看到。这个下载可能须要非常多时间。

能够尝试分开几个包来下载。
此处存疑。下载会出现 Download interrupted: Connection to http://dl-ssl.google.com refused
这几个包下不下不知道对兴许影响怎样。API10下载一直不成功。

下载不成功或者下载慢的解决的方法:
1.在Android  SKD Manager中,点选顶部菜单条中的Tools -> Options,点选强制使用http协议选项。(不成功)
2.改Host,加入下面内容到/etc/hosts:
203.208.46.146 dl.google.com
203.208.46.146 dl-ssl.google.com
(Host地址不稳定)
3.VPN,FQ最有效。

9.加入路径:
     $ echo export PATH=\${PATH}:/opt/android-sdk/tools:/opt/android-sdk/platform-tools:/opt/android-studio/bin >> ~/.bashrc

     $ echo export ANDROID_HOME=/opt/android-sdk >> ~/.bashrc
路径有可能会出现故障,见下。


10.terminal下:
     $ mkdir -p ~/android_core
     $ wstool init -j4 ~/android_core/src https://raw.github.com/rosjava/rosjava/indigo/android_core.rosinstall
这里開始出问题。不要用-j4,会同一时候下载四个文件。easy出错。

     $ wstool init ~/android_core/src https://raw.github.com/rosjava/rosjava/indigo/android_core.rosinstall
     $ catkin_make
会由于网络不好而失败,多试几次?

会有几个可能的问题,相关的解决方式:
1.gardle地址可能有更换,具体见ROS wiki解释
或者将android_core下的buildscript.gradle更改一下:
将当中的apply from地址改为:
2.Android studio版本号较新,兼容性问题:
若出现”The SDK directory does not exist“错误提示,须要改动路径,能够
     $ sudo nano ~/.bashrc
     编辑改动路径,如:
     export PATH = ${PATH}:/home/rg/Android/tools:/home/rg/Android/platform-tools:/opt/android-studio/bin
     export ANDROID_HOME=/home/rg/Android/Sdk
3.假设第一步make成功,第二步make有问题,能够:
     $ rm -r devel/
     $ rm -r build/
然后再尝试make

4.假设没有安装 adb:
$ sudo apt-get install android-tools-adb
假设一切顺利。大概花10分钟去make。

11.安装Reference Interaction Suit。之中的一个部分基本不必要,是环绕TurtleBot的一些交互的包。

terminal下:
     $ mkdir -p ~/android_interactions
     $ wstool init -j4 ~/android_interactions/src https://raw.github.com/rosjava/rosjava/indigo/android_interactions.rosinstall
     $ source ~/rosjava/devel/setup.bash
     $ source ~/android_core/devel/setup.bash
     $ cd ~/android_interactions
     $ catkin_make
     
12. 安装完毕后,依照官方的教材有一个測试的环节,详细说来:

在terminal下:
$ source /opt/ros/indigo/setup.bash
# 将ROS_IP设置为Linux的IP, ifconfig inet项能够查看本机IP
$ export ROS_IP=192.168.1.101
$ roscore
在另外一个terminal下:
          # 下面包可能大多已经安装
          $ sudo apt-get install ros-indigo-image-view ros-indigo-rqt-image-view ros-indigo-image-transport-plugins 
# 将ROS_IP设置为Linux的IP
$ export ROS_IP=192.168.1.101
$ rosrun image_view image_view image:=/camera/image _image_transport:=compressed

然后能够打开Android studio。详细:

新的terminal下:
          $ source ~/android_core/devel/setup.bash
          $ /opt/android-studio/bin/studio.sh

导入 ~/android_core/src/android_core项目。

USB线连接Android手机。

保证手机与PC接入的是同一个网络,同一时候在VM中设置虚拟机与主机的网络连接是桥接模式。
(能够通过PC和手机互ping来測试网络配置,假设两方能互ping通,接下来的连接才有效。)
确保网络配置正确后,在Android  Studio中,选择android_tutorial_camera配置,然后build就可以。
确保Android手机上同意USB调试和安装CameraTutorial App,然后在app中填入PC的IP地址(如http://192.168.23.10:11311/),连接。就能够看到在PC上/camera/image显示手机相机的取景图像。


至此ROS和Android的开发环境基本配置成功。

References:

官方Tutorial

随机推荐

  1. Autodesk View and Data API二次开发学习指南

    什么是View and Data API? 使用View and Data API,你可以轻松的在网页上显示大型三维模型或者二维图纸而不需要安装任何插件.通过View and Data API,你可以 ...

  2. d20161012

    Milk-run 供应商信息维护 基本信息,电子围栏 外部订单导入[或者录入页面] 订单基本信息,载具信息,物料信息,备注(外协还是华为导入订单,订单内容是否内部投递一样,是否需要导入附加,导入后是否 ...

  3. 自己动手写计算器v1.2

    1.2版本主要添加了分数.取负.开方三个功能,由于这三中运算输入单目运算,所以,新声明了一个新类 class OPeratorV1_2 至此基本完成了一个标准计算器,至于拥有更多功能的科学计算器,日后 ...

  4. JS 用sort方法排序字符串

    JavaScript提供了一种更简便的方法用于比较两个字符串——localeCompare(),localeCompare()使用本地特定的顺序来比较两个字符串,语法如下:string.localeC ...

  5. DirectX中的纹理及其创建

    正如大多初学者会遇到一个问题, 导入的图片为何不是原来的尺寸?例如800*600的实际上通过D3DXCreateTextureFromFile后变成的是1024*1024,即宽和高默认都会自动扩展为2 ...

  6. OM Price Lists

      --select * --from org_organization_definitions; --execute fnd_client_info.set_org_context(111); -- ...

  7. HDU 5481 Desiderium 动态规划

    Desiderium Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=548 ...

  8. php字符编码转utf-8格式

    <? function is_utf8($other) { if (preg_match("/^([".chr(228)."-".chr(233).&qu ...

  9. gem update --system 302 错误 解决方案(转)

    具体过程如下: 1.InstantRails-2.0安装后,在配置环境变量path中配置ruby/bin目录(如果系统中有多个RUBY,执行命令行的时候系统认的就是path中的) 2.进入DOS命令行 ...

  10. Hadoop 相关问题

    1.MR Job 输入非常多,启动map 非常多,如何提高MapTask 启动速度(附加条件:集群很空闲,资源多多): 参考答案: a.重写调度器算法,降低时间复杂度 b.Out-of-bound h ...