ROS & ANDROID

此文只給菜鳥修行用,大神請勿來亂!

ROS&ANDROID

之前在找資料關於ROS和ANDROID的配置,發現很多文章都寫的不清楚和很多錯誤,為了讓ANDROID開發人員能快速上手,只根據這個配置方法跑就好了,有興趣再了解詳細理論,把時間留給解決實際問題。這裡使用的系統和硬件設備是Ubuntu 14.04 for ROS Indigo + Android Studio 2.1.3 + 紅米NOTE 2,這裡預設已經安裝了ROS INDIGO和ANDROID STUDIO 2.1.3。

 

ROS JAVA SOURCES

ROS ANDROID 是基於以前開發的ROS JAVA繼續繼承(INHERIT)使用。

mkdir -p ~/rosjava/src

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

catkin_make

 

ROS MYJAVA SOURCES

添加自己的SOURCES&WORKSPACE。

mkdir -p ~/myjava/src

cd ~/myjava/src

wstool init -j4 https://raw.githubusercontent.com/me/rosinstalls/master/my_custom_msg_repos.rosinstall

source ~/rosjava/devel/setup.bash

cd ~/myjava

rosdep update

rosdep install --from-paths src -i -y

catkin_make

 

ANDROID STUDIO設定

打開ANDROID STUDIO,建議把所有SDK BUILD-TOOLS版本都下載和更新,注意把“Show Package Details”勾上:

Selection_009

把API 10,13,15,18,21都一定要下載和更新,電腦容量任性的也可以連其他也一起下載和更新(土豪),主要原因是2年前ROS ANDROID是基於這API LEVEL上做開發,會有兼容問題:

Selection_010

 

ANDROID SDK路徑

搞定之後,需要添加路徑,下面是我ANDROID SDK的路徑,會和大家不一樣:

echo export PATH=${PATH}:/home/kennedywai/Android/Sdk/tools:/home/kennedywai/Android/Sdk/platform-tools:/opt/android-studio/bin >> ~/.bashrc

echo export ANDROID_HOME=/home/kennedywai/Android/Sdk >> ~/.bashrc

 

ANDROID CORE SOURCES

重點來了,這裏根據官方步驟配置的話,會出現錯誤,需要做一些改變:

mkdir -p ~/android_core

wstool init ~/android_core/src https://raw.github.com/rosjava/rosjava/indigo/android_core.rosinstall

cd ~/android_core

catkin_make

配置到這裏,執行catkin_make編譯應該會出現ERROR,這是需要把android_core裏的一個文件buildscript.gradle修改裏面內容,路徑在這android_core/src/android_core/buildscript.gradle,在修改之前需要修改權限,修改android_core這個文件的權限爲“Create and delete files”:

sudo nautilus

Selection_011

修改文件buildscript.gradle複製貼上如下:

rootProject.buildscript {
 /*apply from: "https://github.com/rosjava/rosjava_bootstrap/raw/indigo/buildscript.gradle"*/
 apply from: "https://raw.githubusercontent.com/rosjava/rosjava_bootstrap/indigo/buildscript.gradle"
 dependencies {
 classpath "com.android.tools.build:gradle:1.0.+"
 /*compile 'com.github.rosjava.android_remocons:common_tools:0.2.1' //bumped version
 compile 'org.ros.android_core:android_10:[0.2,0.3)]'
 compile 'org.ros.rosjava_core:rosjava:0.1.+'
 compile 'org.ros.rosjava_messages:turtlebot_msgs:2.2.+'*/
 }
}

這時再執行:

cd ~/android_core

catkin_make

應該就不會有ERRORS,過程依據網速快慢決定:

kennedywai@kennedywai-Ubuntu-Lenovo-V3000: ~-android_core_012

完畢後可以執行 source ~/android_core/devel/setup.bash

 

ROS官方ANDROID APP測試

測試之前,先執行ifconfig,檢查自己的IP地址,這裏爲192.168.0.101 :

kennedywai@kennedywai-Ubuntu-Lenovo-V3000: ~_013

這時先不要執行roscore,要是執行了就先關閉,先將ROS_IP設定爲LINUX_IP:

export ROS_IP=192.168.1.101
roscore

roscore http:--192.168.0.101:11311-_015

http://192.168.0.101:11311/ 就是ROS和ANDROID連接的關鍵,這時打開ANDROID STUDIO,導入android_core裏的專案,FILE–>NEW–>IMPORT PROJECT:

Select Eclipse or Gradle Project to Import_016

保證手機與PC連接同一個網路(同一WIFI),同時在VM中設置虛擬機與主機的網絡連接是橋接模式,可以通過PC和手機互ping來測試網絡配置,如果ping連接沒問題,接下來的連接才有效。 確保網路配置正確後,導入android_core專案完了之後,選擇其中一個專案來執行到ANDROID手機或平板上,這裏選擇android_tutorial_pubsub,是有ANDROID手機或平板PUBLISH TOPIC給電腦,電腦SUBSCRIBE:

14123476_1163573390370513_382350900_o

14163597_1163573380370514_402790701_o

這時去SUBSCRIBE這個TOPIC:

rostopic echo /chatter

kennedywai@kennedywai-Ubuntu-Lenovo-V3000: ~_017

其實ROS TEXTVIEW在ANDROID手機上顯示HELLO WORLD的,也是其中一個SUBSCRIBER:

rosgraph

要是覺得輸入IP畫面很煩,可以在MainActivity.java文件修改程式:

Selection_018

先導入相關PACKAGES:

import java.net.URI;

然後修改

super("Pubsub Tutorial", "Pubsub Tutorial");

super("Pubsub Tutorial", "Pubsub Tutorial", URI.create("http://192.168.0.101:11311"));

這時候就不會再跳出IP輸入頁面,會直接執行ANDROID APP程式了。此時ROS ANDROID基本配置完成,之後就是應用開發。

‪#‎ros‬ ‪#‎robot‬ ‪#‎operating‬ ‪#‎system‬ ‪#‎機器人 ‬ #ANDROID #ROS機器人開發

共享此文章:

Like this:

Like Loading...

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值