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

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
     $ wstool init -j4 ~/rosjava/src  https://raw.githubusercontent.com/rosjava/rosjava/indigo/rosjava.rosinstall
     $ 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,最有效!

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,会同时下载四个文件,容易出错。
     $ wstool init ~/android_core/src https://raw.github.com/rosjava/rosjava/indigo/android_core.rosinstall
     $ catkin_make
会因为网络不好而失败,多试几次?
会有几个可能的问题,相关的解决方案:
1.gardle地址可能有更换,详细见ROS wiki解释
http://wiki.ros.org/android/FAQ/Issue%20of%20building%20application%20with%20modified%20rosjava%20core%20modules
或者将android_core下的buildscript.gradle更改一下:
将其中的apply from地址改为:
" https://raw.githubusercontent.com/rosjava/rosjava_bootstrap/indigo/buildscript.gradle"
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

你可能感兴趣的:(Tools,ROS)