├── .gitignore
├── DefaultApk.iml
├── README.md
├── app
    ├── .gitignore
    ├── build.gradle
    ├── build
    │   └── outputs
    │   │   └── logs
    │   │       └── manifest-merger-debug-report.txt
    ├── proguard-rules.pro
    └── src
    │   └── main
    │       ├── AndroidManifest.xml
    │       ├── java
    │           └── jp
    │           │   └── jaxa
    │           │       └── iss
    │           │           └── kibo
    │           │               └── rpc
    │           │                   └── thailand
    │           │                       ├── MainActivity.java
    │           │                       └── YourService.java
    │       └── res
    │           ├── layout
    │               └── activity_main.xml
    │           ├── mipmap-hdpi
    │               ├── ic_launcher.png
    │               └── ic_launcher_round.png
    │           ├── mipmap-mdpi
    │               ├── ic_launcher.png
    │               └── ic_launcher_round.png
    │           ├── mipmap-xhdpi
    │               ├── ic_launcher.png
    │               └── ic_launcher_round.png
    │           ├── mipmap-xxhdpi
    │               ├── ic_launcher.png
    │               └── ic_launcher_round.png
    │           ├── mipmap-xxxhdpi
    │               ├── ic_launcher.png
    │               └── ic_launcher_round.png
    │           ├── values
    │               ├── colors.xml
    │               ├── strings.xml
    │               └── styles.xml
    │           └── xml
    │               └── commands.xml
├── build.gradle
├── gradle.properties
├── gradle
    └── wrapper
    │   ├── gradle-wrapper.jar
    │   └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── guest_science_library
    ├── build.gradle
    └── guest_science_library.aar
├── kibo_rpc_api
    ├── build.gradle
    └── kibo_rpc_api-debug.aar
├── local.properties
└── settings.gradle
/.gitignore:
--------------------------------------------------------------------------------
 1 | # OS X randomness
 2 | .DS_Store
 3 | 
 4 | # build products
 5 | build/
 6 | out/
 7 | 
 8 | # IntelliJ
 9 | .idea/
10 | *.iml
11 | 
12 | # Vim swap files
13 | .*.sw*
14 | 
15 | # gradle
16 | .gradle/
17 | .gradletasknamecache
18 | local.properties
19 | 
--------------------------------------------------------------------------------
/DefaultApk.iml:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 |   
 4 |     
 5 |       
 6 |         
 7 |         
 8 |       
 9 |     
10 |   
11 |   
12 |     
13 |     
14 |       
15 |     
16 |     
17 |     
18 |   
19 | 
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
 1 | Kibo-RPC-2020 by won-spaceY Team
 2 | Save ISS with Astrobee!!!
 3 | 
 4 | Event Information
 5 | 
 6 | 1.1. Purpose of Kibo-RPC
 7 | The Kibo Robot Programming Challenge (Kibo-RPC) is an educational program in which
 8 | students solve various problems by programming free-flying robots (Astrobee and Int-Ball) in
 9 | the International Space Station (ISS). It is hoped that, by providing these students with the
10 | opportunity to work with professional scientists and engineers, they will be inspired to develop their own educational and professional goals to a high level.
11 | Participants will have the chance to learn cutting-edge methodologies and to hone their
12 | skills in science, technology, engineering and mathematics through this program. The KiboRPC will also expand international exchange by encouraging students to interact with other
13 | participants from around the world.
14 | This program is hosted by the Japan Aerospace Exploration Agency (JAXA) in cooperation with the National Aeronautics and Space Administration (NASA).
15 | 
16 | 1.2. Educational Objective for 1st Kibo-RPC
17 | Engineering teaches us that a simulation can only approximate the real world. Thus, participants are expected to learn techniques for creating simulation programs that perform well
18 | in the real world despite uncertainties and within margins of error.
19 | Students will learn the necessity of controlling and correcting positions and orientation of a
20 | free-flying robot and how to perform assigned tasks in the onboard environment through simulation trials.
21 | 
22 | 
23 | Detail path
24 | 
25 | 1.Source code : 1st-Kibo-RPC_won-spaceY/app/src/main/java/jp/jaxa/iss/kibo/rpc/thailand/YourService.java
26 | 
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | 
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
 1 | apply plugin: 'com.android.application'
 2 | 
 3 | 
 4 | android {
 5 |     compileSdkVersion 26
 6 |     defaultConfig {
 7 |         applicationId "jp.jaxa.iss.kibo.rpc.defaultapk" +
 8 |                 ""
 9 |         minSdkVersion 25
10 |         targetSdkVersion 26
11 |         versionCode 1
12 |         versionName "1.0"
13 |         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
14 |         multiDexEnabled  true
15 |     }
16 |     buildTypes {
17 |         release {
18 |             minifyEnabled false
19 |             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
20 |         }
21 |     }
22 |     packagingOptions {
23 |         exclude 'META-INF/DEPENDENCIES.txt'
24 |         exclude 'META-INF/LICENSE.txt'
25 |         exclude 'META-INF/NOTICE.txt'
26 |         exclude 'META-INF/NOTICE'
27 |         exclude 'META-INF/LICENSE'
28 |         exclude 'META-INF/DEPENDENCIES'
29 |         exclude 'META-INF/notice.txt'
30 |         exclude 'META-INF/license.txt'
31 |         exclude 'META-INF/dependencies.txt'
32 |         exclude 'META-INF/LGPL2.1'
33 |     }
34 | }
35 | 
36 | dependencies {
37 |     implementation project(':guest_science_library')
38 |     implementation project(':kibo_rpc_api')
39 |     implementation fileTree(dir: 'libs', include: ['*.jar'])
40 |     implementation 'com.android.support:appcompat-v7:26.+'
41 |     implementation 'com.android.support.constraint:constraint-layout:1.0.2'
42 |     implementation('org.ros.rosjava_core:rosjava:[0.2,0.3)') {
43 |         exclude group: 'xml-apis'
44 |         exclude group: 'junit'
45 |     }
46 |     implementation('org.ros.android_core:android_10:[0.2,0.3)') {
47 |         exclude group: 'xml-apis'
48 |         exclude group: 'junit'
49 |     }
50 |     testImplementation 'junit:junit:4.12'
51 |     implementation 'com.quickbirdstudios:opencv:3.4.4-contrib'
52 | 
53 |     implementation 'com.google.android.gms:play-services-vision:15.0.0'
54 |     implementation 'me.dm7.barcodescanner:zbar:1.9.8'
55 | 
56 | 
57 | }
58 | 
--------------------------------------------------------------------------------
/app/build/outputs/logs/manifest-merger-debug-report.txt:
--------------------------------------------------------------------------------
  1 | -- Merging decision tree log ---
  2 | manifest
  3 | ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:2:1-31:12
  4 | INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:2:1-31:12
  5 | INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:2:1-31:12
  6 | INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:2:1-31:12
  7 | MERGED from [com.quickbirdstudios:opencv:3.4.4-contrib] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/aadffc75e57904e68f682aba2c7ed208/AndroidManifest.xml:2:1-11:12
  8 | MERGED from [me.dm7.barcodescanner:zxing:1.9.8] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a3f65e643697fc775b975e3555e1ad42/AndroidManifest.xml:2:1-13:12
  9 | MERGED from [:guest_science_library] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/ea7a6ab176c013f4995f483fbaea265f/AndroidManifest.xml:2:1-27:12
 10 | MERGED from [:kibo_rpc_api] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/b007fd7949f69758bd8c549ab33612d6/AndroidManifest.xml:2:1-11:12
 11 | MERGED from [com.android.support:appcompat-v7:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/340cd46654947c58f642053c2d309b63/AndroidManifest.xml:17:1-31:12
 12 | MERGED from [com.android.support.constraint:constraint-layout:1.0.2] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/836486db03550f277502cbb7916181a6/AndroidManifest.xml:2:1-11:12
 13 | MERGED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:2:1-35:12
 14 | MERGED from [com.google.android.gms:play-services-vision:15.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/d4c8fab24c08d3c8da5024151b2bfe13/AndroidManifest.xml:2:1-9:12
 15 | MERGED from [me.dm7.barcodescanner:zbar:1.9.8] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/5a6ae5adb471fcfa096ca7c7dfce081e/AndroidManifest.xml:2:1-13:12
 16 | MERGED from [com.android.support:animated-vector-drawable:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a981c2f25223bddf2a981a09236a362f/AndroidManifest.xml:17:1-28:12
 17 | MERGED from [com.android.support:support-vector-drawable:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/2022d0ba42b94a3e81f2945fad21eeca/AndroidManifest.xml:17:1-28:12
 18 | MERGED from [com.google.android.gms:play-services-vision-common:15.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/9dbde3ae8a75c1d33e254def73b08b0f/AndroidManifest.xml:2:1-9:12
 19 | MERGED from [com.google.android.gms:play-services-clearcut:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a22f19b17dadf19e5a85c3695cad322c/AndroidManifest.xml:17:1-24:12
 20 | MERGED from [com.google.android.gms:play-services-flags:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/1e4585dac545cae41fcec15525cb644e/AndroidManifest.xml:17:1-22:12
 21 | MERGED from [com.google.android.gms:play-services-phenotype:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/6011d38838c63ac262c230f629770e46/AndroidManifest.xml:17:1-24:12
 22 | MERGED from [com.google.android.gms:play-services-base:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/d7c5d99e3e1508781087564d90545159/AndroidManifest.xml:17:1-29:12
 23 | MERGED from [com.google.android.gms:play-services-tasks:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/9bba77472c1d441c97e7316170a4de5d/AndroidManifest.xml:2:1-9:12
 24 | MERGED from [com.google.android.gms:play-services-basement:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/c9c70a10dbd9835f8d15b007a716af9a/AndroidManifest.xml:17:1-28:12
 25 | MERGED from [me.dm7.barcodescanner:core:1.9.8] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/fb1588f890ccdad1b4e90af3ee53c4d9/AndroidManifest.xml:2:1-13:12
 26 | MERGED from [com.android.support:support-v4:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/2aa60cd28d7d1ec0f53a06935054054c/AndroidManifest.xml:17:1-31:12
 27 | MERGED from [com.android.support:support-media-compat:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/8c24b20a71e0be9260c2597fb7368ebc/AndroidManifest.xml:17:1-31:12
 28 | MERGED from [com.android.support:support-fragment:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/b0addbc95f5ab46592f6263041917465/AndroidManifest.xml:17:1-31:12
 29 | MERGED from [com.android.support:support-core-utils:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/577bd842f9a3ce081582c45fb2fb71ac/AndroidManifest.xml:17:1-31:12
 30 | MERGED from [com.android.support:support-core-ui:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/f6c98f8b841d4c37b928ddece8103a4c/AndroidManifest.xml:17:1-31:12
 31 | MERGED from [com.android.support:support-compat:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/c73b137f77a48fe2b20d024106098f7b/AndroidManifest.xml:17:1-31:12
 32 | MERGED from [android.arch.lifecycle:runtime:1.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/067266f8bc2914ef7bcc8f25115d770a/AndroidManifest.xml:17:1-30:12
 33 | INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:2:1-31:12
 34 | INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:2:1-31:12
 35 | INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:2:1-31:12
 36 | 	package
 37 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:4:5-44
 38 | 		INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml
 39 | 		INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml
 40 | 	android:versionName
 41 | 		INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml
 42 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:2:1-31:12
 43 | 		INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml
 44 | 	xmlns:tools
 45 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:3:5-51
 46 | 	android:versionCode
 47 | 		INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml
 48 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:2:1-31:12
 49 | 		INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml
 50 | 	xmlns:android
 51 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:2:11-69
 52 | uses-permission#android.permission.INTERNET
 53 | ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:6:5-66
 54 | 	android:name
 55 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:6:22-64
 56 | uses-permission#android.permission.WAKE_LOCK
 57 | ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:7:5-67
 58 | MERGED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:15:5-68
 59 | MERGED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:15:5-68
 60 | 	android:name
 61 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:7:22-65
 62 | application
 63 | ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:9:5-29:19
 64 | MERGED from [me.dm7.barcodescanner:zxing:1.9.8] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a3f65e643697fc775b975e3555e1ad42/AndroidManifest.xml:11:5-20
 65 | MERGED from [me.dm7.barcodescanner:zxing:1.9.8] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a3f65e643697fc775b975e3555e1ad42/AndroidManifest.xml:11:5-20
 66 | MERGED from [:guest_science_library] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/ea7a6ab176c013f4995f483fbaea265f/AndroidManifest.xml:11:5-25:19
 67 | MERGED from [:guest_science_library] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/ea7a6ab176c013f4995f483fbaea265f/AndroidManifest.xml:11:5-25:19
 68 | MERGED from [com.android.support:appcompat-v7:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/340cd46654947c58f642053c2d309b63/AndroidManifest.xml:25:5-29:19
 69 | MERGED from [com.android.support:appcompat-v7:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/340cd46654947c58f642053c2d309b63/AndroidManifest.xml:25:5-29:19
 70 | MERGED from [com.android.support.constraint:constraint-layout:1.0.2] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/836486db03550f277502cbb7916181a6/AndroidManifest.xml:9:5-20
 71 | MERGED from [com.android.support.constraint:constraint-layout:1.0.2] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/836486db03550f277502cbb7916181a6/AndroidManifest.xml:9:5-20
 72 | MERGED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:18:5-33:19
 73 | MERGED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:18:5-33:19
 74 | MERGED from [com.google.android.gms:play-services-vision:15.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/d4c8fab24c08d3c8da5024151b2bfe13/AndroidManifest.xml:7:5-20
 75 | MERGED from [com.google.android.gms:play-services-vision:15.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/d4c8fab24c08d3c8da5024151b2bfe13/AndroidManifest.xml:7:5-20
 76 | MERGED from [me.dm7.barcodescanner:zbar:1.9.8] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/5a6ae5adb471fcfa096ca7c7dfce081e/AndroidManifest.xml:11:5-20
 77 | MERGED from [me.dm7.barcodescanner:zbar:1.9.8] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/5a6ae5adb471fcfa096ca7c7dfce081e/AndroidManifest.xml:11:5-20
 78 | MERGED from [com.android.support:animated-vector-drawable:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a981c2f25223bddf2a981a09236a362f/AndroidManifest.xml:22:5-26:19
 79 | MERGED from [com.android.support:animated-vector-drawable:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a981c2f25223bddf2a981a09236a362f/AndroidManifest.xml:22:5-26:19
 80 | MERGED from [com.android.support:support-vector-drawable:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/2022d0ba42b94a3e81f2945fad21eeca/AndroidManifest.xml:22:5-26:19
 81 | MERGED from [com.android.support:support-vector-drawable:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/2022d0ba42b94a3e81f2945fad21eeca/AndroidManifest.xml:22:5-26:19
 82 | MERGED from [com.google.android.gms:play-services-vision-common:15.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/9dbde3ae8a75c1d33e254def73b08b0f/AndroidManifest.xml:7:5-20
 83 | MERGED from [com.google.android.gms:play-services-vision-common:15.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/9dbde3ae8a75c1d33e254def73b08b0f/AndroidManifest.xml:7:5-20
 84 | MERGED from [com.google.android.gms:play-services-clearcut:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a22f19b17dadf19e5a85c3695cad322c/AndroidManifest.xml:22:5-20
 85 | MERGED from [com.google.android.gms:play-services-clearcut:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a22f19b17dadf19e5a85c3695cad322c/AndroidManifest.xml:22:5-20
 86 | MERGED from [com.google.android.gms:play-services-phenotype:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/6011d38838c63ac262c230f629770e46/AndroidManifest.xml:22:5-20
 87 | MERGED from [com.google.android.gms:play-services-phenotype:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/6011d38838c63ac262c230f629770e46/AndroidManifest.xml:22:5-20
 88 | MERGED from [com.google.android.gms:play-services-base:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/d7c5d99e3e1508781087564d90545159/AndroidManifest.xml:22:5-27:19
 89 | MERGED from [com.google.android.gms:play-services-base:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/d7c5d99e3e1508781087564d90545159/AndroidManifest.xml:22:5-27:19
 90 | MERGED from [com.google.android.gms:play-services-tasks:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/9bba77472c1d441c97e7316170a4de5d/AndroidManifest.xml:7:5-20
 91 | MERGED from [com.google.android.gms:play-services-tasks:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/9bba77472c1d441c97e7316170a4de5d/AndroidManifest.xml:7:5-20
 92 | MERGED from [com.google.android.gms:play-services-basement:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/c9c70a10dbd9835f8d15b007a716af9a/AndroidManifest.xml:22:5-26:19
 93 | MERGED from [com.google.android.gms:play-services-basement:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/c9c70a10dbd9835f8d15b007a716af9a/AndroidManifest.xml:22:5-26:19
 94 | MERGED from [me.dm7.barcodescanner:core:1.9.8] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/fb1588f890ccdad1b4e90af3ee53c4d9/AndroidManifest.xml:11:5-20
 95 | MERGED from [me.dm7.barcodescanner:core:1.9.8] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/fb1588f890ccdad1b4e90af3ee53c4d9/AndroidManifest.xml:11:5-20
 96 | MERGED from [com.android.support:support-v4:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/2aa60cd28d7d1ec0f53a06935054054c/AndroidManifest.xml:25:5-29:19
 97 | MERGED from [com.android.support:support-v4:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/2aa60cd28d7d1ec0f53a06935054054c/AndroidManifest.xml:25:5-29:19
 98 | MERGED from [com.android.support:support-media-compat:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/8c24b20a71e0be9260c2597fb7368ebc/AndroidManifest.xml:25:5-29:19
 99 | MERGED from [com.android.support:support-media-compat:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/8c24b20a71e0be9260c2597fb7368ebc/AndroidManifest.xml:25:5-29:19
100 | MERGED from [com.android.support:support-fragment:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/b0addbc95f5ab46592f6263041917465/AndroidManifest.xml:25:5-29:19
101 | MERGED from [com.android.support:support-fragment:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/b0addbc95f5ab46592f6263041917465/AndroidManifest.xml:25:5-29:19
102 | MERGED from [com.android.support:support-core-utils:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/577bd842f9a3ce081582c45fb2fb71ac/AndroidManifest.xml:25:5-29:19
103 | MERGED from [com.android.support:support-core-utils:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/577bd842f9a3ce081582c45fb2fb71ac/AndroidManifest.xml:25:5-29:19
104 | MERGED from [com.android.support:support-core-ui:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/f6c98f8b841d4c37b928ddece8103a4c/AndroidManifest.xml:25:5-29:19
105 | MERGED from [com.android.support:support-core-ui:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/f6c98f8b841d4c37b928ddece8103a4c/AndroidManifest.xml:25:5-29:19
106 | MERGED from [com.android.support:support-compat:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/c73b137f77a48fe2b20d024106098f7b/AndroidManifest.xml:25:5-29:19
107 | MERGED from [com.android.support:support-compat:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/c73b137f77a48fe2b20d024106098f7b/AndroidManifest.xml:25:5-29:19
108 | MERGED from [android.arch.lifecycle:runtime:1.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/067266f8bc2914ef7bcc8f25115d770a/AndroidManifest.xml:24:5-28:19
109 | MERGED from [android.arch.lifecycle:runtime:1.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/067266f8bc2914ef7bcc8f25115d770a/AndroidManifest.xml:24:5-28:19
110 | 	android:supportsRtl
111 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:14:9-35
112 | 	android:label
113 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:12:9-41
114 | 	android:roundIcon
115 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:13:9-54
116 | 	android:icon
117 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:11:9-43
118 | 		REJECTED from [:guest_science_library] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/ea7a6ab176c013f4995f483fbaea265f/AndroidManifest.xml:13:9-43
119 | 		REJECTED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:19:9-36
120 | 	android:allowBackup
121 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:10:9-35
122 | 	android:theme
123 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:16:9-40
124 | 	tools:replace
125 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:15:9-37
126 | activity#jp.jaxa.iss.kibo.rpc.thailand.MainActivity
127 | ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:18:9-23:20
128 | 	android:name
129 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:18:19-76
130 | intent-filter#action:name:android.intent.action.MAIN+category:name:android.intent.category.LAUNCHER
131 | ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:19:13-22:29
132 | action#android.intent.action.MAIN
133 | ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:20:17-68
134 | 	android:name
135 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:20:25-66
136 | category#android.intent.category.LAUNCHER
137 | ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:21:17-76
138 | 	android:name
139 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:21:27-74
140 | service#jp.jaxa.iss.kibo.rpc.thailand.YourService
141 | ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:25:9-27:19
142 | 	android:exported
143 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:25:75-98
144 | 	android:name
145 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:25:18-74
146 | meta-data#Start Service
147 | ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:26:13-76
148 | 	android:value
149 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:26:53-73
150 | 	android:name
151 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:26:24-52
152 | uses-sdk
153 | INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml reason: use-sdk injection requested
154 | INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml
155 | INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml
156 | MERGED from [com.quickbirdstudios:opencv:3.4.4-contrib] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/aadffc75e57904e68f682aba2c7ed208/AndroidManifest.xml:7:5-9:41
157 | MERGED from [com.quickbirdstudios:opencv:3.4.4-contrib] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/aadffc75e57904e68f682aba2c7ed208/AndroidManifest.xml:7:5-9:41
158 | MERGED from [me.dm7.barcodescanner:zxing:1.9.8] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a3f65e643697fc775b975e3555e1ad42/AndroidManifest.xml:7:5-9:41
159 | MERGED from [me.dm7.barcodescanner:zxing:1.9.8] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a3f65e643697fc775b975e3555e1ad42/AndroidManifest.xml:7:5-9:41
160 | MERGED from [:guest_science_library] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/ea7a6ab176c013f4995f483fbaea265f/AndroidManifest.xml:7:5-9:41
161 | MERGED from [:guest_science_library] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/ea7a6ab176c013f4995f483fbaea265f/AndroidManifest.xml:7:5-9:41
162 | MERGED from [:kibo_rpc_api] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/b007fd7949f69758bd8c549ab33612d6/AndroidManifest.xml:7:5-9:41
163 | MERGED from [:kibo_rpc_api] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/b007fd7949f69758bd8c549ab33612d6/AndroidManifest.xml:7:5-9:41
164 | MERGED from [com.android.support:appcompat-v7:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/340cd46654947c58f642053c2d309b63/AndroidManifest.xml:21:5-23:78
165 | MERGED from [com.android.support:appcompat-v7:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/340cd46654947c58f642053c2d309b63/AndroidManifest.xml:21:5-23:78
166 | MERGED from [com.android.support.constraint:constraint-layout:1.0.2] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/836486db03550f277502cbb7916181a6/AndroidManifest.xml:5:5-7:41
167 | MERGED from [com.android.support.constraint:constraint-layout:1.0.2] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/836486db03550f277502cbb7916181a6/AndroidManifest.xml:5:5-7:41
168 | MERGED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:8:5-10:41
169 | MERGED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:8:5-10:41
170 | MERGED from [com.google.android.gms:play-services-vision:15.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/d4c8fab24c08d3c8da5024151b2bfe13/AndroidManifest.xml:5:5-44
171 | MERGED from [com.google.android.gms:play-services-vision:15.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/d4c8fab24c08d3c8da5024151b2bfe13/AndroidManifest.xml:5:5-44
172 | MERGED from [me.dm7.barcodescanner:zbar:1.9.8] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/5a6ae5adb471fcfa096ca7c7dfce081e/AndroidManifest.xml:7:5-9:41
173 | MERGED from [me.dm7.barcodescanner:zbar:1.9.8] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/5a6ae5adb471fcfa096ca7c7dfce081e/AndroidManifest.xml:7:5-9:41
174 | MERGED from [com.android.support:animated-vector-drawable:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a981c2f25223bddf2a981a09236a362f/AndroidManifest.xml:20:5-44
175 | MERGED from [com.android.support:animated-vector-drawable:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a981c2f25223bddf2a981a09236a362f/AndroidManifest.xml:20:5-44
176 | MERGED from [com.android.support:support-vector-drawable:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/2022d0ba42b94a3e81f2945fad21eeca/AndroidManifest.xml:20:5-44
177 | MERGED from [com.android.support:support-vector-drawable:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/2022d0ba42b94a3e81f2945fad21eeca/AndroidManifest.xml:20:5-44
178 | MERGED from [com.google.android.gms:play-services-vision-common:15.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/9dbde3ae8a75c1d33e254def73b08b0f/AndroidManifest.xml:5:5-44
179 | MERGED from [com.google.android.gms:play-services-vision-common:15.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/9dbde3ae8a75c1d33e254def73b08b0f/AndroidManifest.xml:5:5-44
180 | MERGED from [com.google.android.gms:play-services-clearcut:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a22f19b17dadf19e5a85c3695cad322c/AndroidManifest.xml:20:5-44
181 | MERGED from [com.google.android.gms:play-services-clearcut:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a22f19b17dadf19e5a85c3695cad322c/AndroidManifest.xml:20:5-44
182 | MERGED from [com.google.android.gms:play-services-flags:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/1e4585dac545cae41fcec15525cb644e/AndroidManifest.xml:20:5-44
183 | MERGED from [com.google.android.gms:play-services-flags:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/1e4585dac545cae41fcec15525cb644e/AndroidManifest.xml:20:5-44
184 | MERGED from [com.google.android.gms:play-services-phenotype:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/6011d38838c63ac262c230f629770e46/AndroidManifest.xml:20:5-44
185 | MERGED from [com.google.android.gms:play-services-phenotype:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/6011d38838c63ac262c230f629770e46/AndroidManifest.xml:20:5-44
186 | MERGED from [com.google.android.gms:play-services-base:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/d7c5d99e3e1508781087564d90545159/AndroidManifest.xml:20:5-44
187 | MERGED from [com.google.android.gms:play-services-base:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/d7c5d99e3e1508781087564d90545159/AndroidManifest.xml:20:5-44
188 | MERGED from [com.google.android.gms:play-services-tasks:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/9bba77472c1d441c97e7316170a4de5d/AndroidManifest.xml:5:5-44
189 | MERGED from [com.google.android.gms:play-services-tasks:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/9bba77472c1d441c97e7316170a4de5d/AndroidManifest.xml:5:5-44
190 | MERGED from [com.google.android.gms:play-services-basement:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/c9c70a10dbd9835f8d15b007a716af9a/AndroidManifest.xml:20:5-44
191 | MERGED from [com.google.android.gms:play-services-basement:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/c9c70a10dbd9835f8d15b007a716af9a/AndroidManifest.xml:20:5-44
192 | MERGED from [me.dm7.barcodescanner:core:1.9.8] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/fb1588f890ccdad1b4e90af3ee53c4d9/AndroidManifest.xml:7:5-9:41
193 | MERGED from [me.dm7.barcodescanner:core:1.9.8] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/fb1588f890ccdad1b4e90af3ee53c4d9/AndroidManifest.xml:7:5-9:41
194 | MERGED from [com.android.support:support-v4:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/2aa60cd28d7d1ec0f53a06935054054c/AndroidManifest.xml:21:5-23:54
195 | MERGED from [com.android.support:support-v4:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/2aa60cd28d7d1ec0f53a06935054054c/AndroidManifest.xml:21:5-23:54
196 | MERGED from [com.android.support:support-media-compat:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/8c24b20a71e0be9260c2597fb7368ebc/AndroidManifest.xml:21:5-23:63
197 | MERGED from [com.android.support:support-media-compat:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/8c24b20a71e0be9260c2597fb7368ebc/AndroidManifest.xml:21:5-23:63
198 | MERGED from [com.android.support:support-fragment:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/b0addbc95f5ab46592f6263041917465/AndroidManifest.xml:21:5-23:60
199 | MERGED from [com.android.support:support-fragment:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/b0addbc95f5ab46592f6263041917465/AndroidManifest.xml:21:5-23:60
200 | MERGED from [com.android.support:support-core-utils:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/577bd842f9a3ce081582c45fb2fb71ac/AndroidManifest.xml:21:5-23:61
201 | MERGED from [com.android.support:support-core-utils:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/577bd842f9a3ce081582c45fb2fb71ac/AndroidManifest.xml:21:5-23:61
202 | MERGED from [com.android.support:support-core-ui:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/f6c98f8b841d4c37b928ddece8103a4c/AndroidManifest.xml:21:5-23:58
203 | MERGED from [com.android.support:support-core-ui:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/f6c98f8b841d4c37b928ddece8103a4c/AndroidManifest.xml:21:5-23:58
204 | MERGED from [com.android.support:support-compat:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/c73b137f77a48fe2b20d024106098f7b/AndroidManifest.xml:21:5-23:58
205 | MERGED from [com.android.support:support-compat:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/c73b137f77a48fe2b20d024106098f7b/AndroidManifest.xml:21:5-23:58
206 | MERGED from [android.arch.lifecycle:runtime:1.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/067266f8bc2914ef7bcc8f25115d770a/AndroidManifest.xml:20:5-22:41
207 | MERGED from [android.arch.lifecycle:runtime:1.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/067266f8bc2914ef7bcc8f25115d770a/AndroidManifest.xml:20:5-22:41
208 | INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml
209 | INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml
210 | 	tools:overrideLibrary
211 | 		ADDED from [com.android.support:appcompat-v7:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/340cd46654947c58f642053c2d309b63/AndroidManifest.xml:23:9-75
212 | 	android:targetSdkVersion
213 | 		INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml
214 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml
215 | 		INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml
216 | 	android:minSdkVersion
217 | 		INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml
218 | 		ADDED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml
219 | 		INJECTED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml
220 | receiver#gov.nasa.arc.astrobee.android.gs.InfoInqueryBroadcastReceiver
221 | ADDED from [:guest_science_library] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/ea7a6ab176c013f4995f483fbaea265f/AndroidManifest.xml:18:9-24:20
222 | 	android:exported
223 | 		ADDED from [:guest_science_library] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/ea7a6ab176c013f4995f483fbaea265f/AndroidManifest.xml:20:13-36
224 | 	android:name
225 | 		ADDED from [:guest_science_library] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/ea7a6ab176c013f4995f483fbaea265f/AndroidManifest.xml:19:13-89
226 | intent-filter#action:name:gov.nasa.arc.astrobee.android.gs.INFO_INQUIRY
227 | ADDED from [:guest_science_library] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/ea7a6ab176c013f4995f483fbaea265f/AndroidManifest.xml:21:13-23:29
228 | action#gov.nasa.arc.astrobee.android.gs.INFO_INQUIRY
229 | ADDED from [:guest_science_library] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/ea7a6ab176c013f4995f483fbaea265f/AndroidManifest.xml:22:17-88
230 | 	android:name
231 | 		ADDED from [:guest_science_library] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/ea7a6ab176c013f4995f483fbaea265f/AndroidManifest.xml:22:25-85
232 | meta-data#android.support.VERSION
233 | ADDED from [com.android.support:appcompat-v7:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/340cd46654947c58f642053c2d309b63/AndroidManifest.xml:26:9-28:38
234 | MERGED from [com.android.support:animated-vector-drawable:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a981c2f25223bddf2a981a09236a362f/AndroidManifest.xml:23:9-25:38
235 | MERGED from [com.android.support:animated-vector-drawable:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/a981c2f25223bddf2a981a09236a362f/AndroidManifest.xml:23:9-25:38
236 | MERGED from [com.android.support:support-vector-drawable:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/2022d0ba42b94a3e81f2945fad21eeca/AndroidManifest.xml:23:9-25:38
237 | MERGED from [com.android.support:support-vector-drawable:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/2022d0ba42b94a3e81f2945fad21eeca/AndroidManifest.xml:23:9-25:38
238 | MERGED from [com.android.support:support-v4:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/2aa60cd28d7d1ec0f53a06935054054c/AndroidManifest.xml:26:9-28:38
239 | MERGED from [com.android.support:support-v4:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/2aa60cd28d7d1ec0f53a06935054054c/AndroidManifest.xml:26:9-28:38
240 | MERGED from [com.android.support:support-media-compat:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/8c24b20a71e0be9260c2597fb7368ebc/AndroidManifest.xml:26:9-28:38
241 | MERGED from [com.android.support:support-media-compat:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/8c24b20a71e0be9260c2597fb7368ebc/AndroidManifest.xml:26:9-28:38
242 | MERGED from [com.android.support:support-fragment:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/b0addbc95f5ab46592f6263041917465/AndroidManifest.xml:26:9-28:38
243 | MERGED from [com.android.support:support-fragment:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/b0addbc95f5ab46592f6263041917465/AndroidManifest.xml:26:9-28:38
244 | MERGED from [com.android.support:support-core-utils:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/577bd842f9a3ce081582c45fb2fb71ac/AndroidManifest.xml:26:9-28:38
245 | MERGED from [com.android.support:support-core-utils:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/577bd842f9a3ce081582c45fb2fb71ac/AndroidManifest.xml:26:9-28:38
246 | MERGED from [com.android.support:support-core-ui:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/f6c98f8b841d4c37b928ddece8103a4c/AndroidManifest.xml:26:9-28:38
247 | MERGED from [com.android.support:support-core-ui:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/f6c98f8b841d4c37b928ddece8103a4c/AndroidManifest.xml:26:9-28:38
248 | MERGED from [com.android.support:support-compat:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/c73b137f77a48fe2b20d024106098f7b/AndroidManifest.xml:26:9-28:38
249 | MERGED from [com.android.support:support-compat:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/c73b137f77a48fe2b20d024106098f7b/AndroidManifest.xml:26:9-28:38
250 | 	android:value
251 | 		ADDED from [com.android.support:appcompat-v7:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/340cd46654947c58f642053c2d309b63/AndroidManifest.xml:28:13-35
252 | 	android:name
253 | 		ADDED from [com.android.support:appcompat-v7:26.1.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/340cd46654947c58f642053c2d309b63/AndroidManifest.xml:27:13-51
254 | uses-permission#android.permission.WRITE_EXTERNAL_STORAGE
255 | ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:12:5-81
256 | 	android:name
257 | 		ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:12:22-78
258 | uses-permission#android.permission.ACCESS_WIFI_STATE
259 | ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:13:5-76
260 | 	android:name
261 | 		ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:13:22-73
262 | uses-permission#android.permission.CHANGE_WIFI_STATE
263 | ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:14:5-76
264 | 	android:name
265 | 		ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:14:22-73
266 | uses-permission#android.permission.SYSTEM_ALERT_WINDOW
267 | ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:16:5-78
268 | 	android:name
269 | 		ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:16:22-75
270 | activity#org.ros.android.MasterChooser
271 | ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:21:9-24:45
272 | 	android:label
273 | 		ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:23:13-45
274 | 	android:launchMode
275 | 		ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:24:13-42
276 | 	android:name
277 | 		ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:22:13-57
278 | service#org.ros.android.NodeMainExecutorService
279 | ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:26:9-32:19
280 | 	tools:ignore
281 | 		ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:28:13-43
282 | 	android:name
283 | 		ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:27:13-67
284 | intent-filter#action:name:org.ros.android.NodeMainExecutorService
285 | ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:29:13-31:29
286 | action#org.ros.android.NodeMainExecutorService
287 | ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:30:17-82
288 | 	android:name
289 | 		ADDED from [org.ros.android_core:android_10:0.2.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/db0a159b4d4bab5c4bdcc2e795d5fc07/AndroidManifest.xml:30:25-79
290 | uses-permission#android.permission.READ_EXTERNAL_STORAGE
291 | IMPLIED from /home/mteerachot/Desktop/thailand/app/src/main/AndroidManifest.xml:2:1-31:12 reason: org.ros.android.android_10 requested WRITE_EXTERNAL_STORAGE
292 | activity#com.google.android.gms.common.api.GoogleApiActivity
293 | ADDED from [com.google.android.gms:play-services-base:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/d7c5d99e3e1508781087564d90545159/AndroidManifest.xml:23:9-26:75
294 | 	android:exported
295 | 		ADDED from [com.google.android.gms:play-services-base:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/d7c5d99e3e1508781087564d90545159/AndroidManifest.xml:25:13-37
296 | 	android:theme
297 | 		ADDED from [com.google.android.gms:play-services-base:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/d7c5d99e3e1508781087564d90545159/AndroidManifest.xml:26:13-72
298 | 	android:name
299 | 		ADDED from [com.google.android.gms:play-services-base:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/d7c5d99e3e1508781087564d90545159/AndroidManifest.xml:24:13-79
300 | meta-data#com.google.android.gms.version
301 | ADDED from [com.google.android.gms:play-services-basement:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/c9c70a10dbd9835f8d15b007a716af9a/AndroidManifest.xml:23:9-25:69
302 | 	android:value
303 | 		ADDED from [com.google.android.gms:play-services-basement:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/c9c70a10dbd9835f8d15b007a716af9a/AndroidManifest.xml:25:13-66
304 | 	android:name
305 | 		ADDED from [com.google.android.gms:play-services-basement:15.0.1] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/c9c70a10dbd9835f8d15b007a716af9a/AndroidManifest.xml:24:13-58
306 | meta-data#android.arch.lifecycle.VERSION
307 | ADDED from [android.arch.lifecycle:runtime:1.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/067266f8bc2914ef7bcc8f25115d770a/AndroidManifest.xml:25:9-27:47
308 | 	android:value
309 | 		ADDED from [android.arch.lifecycle:runtime:1.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/067266f8bc2914ef7bcc8f25115d770a/AndroidManifest.xml:27:13-44
310 | 	android:name
311 | 		ADDED from [android.arch.lifecycle:runtime:1.0.0] /home/mteerachot/.gradle/caches/transforms-2/files-2.1/067266f8bc2914ef7bcc8f25115d770a/AndroidManifest.xml:26:13-58
312 | 
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
 1 | # Add project specific ProGuard rules here.
 2 | # By default, the flags in this file are appended to flags specified
 3 | # in /home/rgarciar/Android/Sdk/tools/proguard/proguard-android.txt
 4 | # You can edit the include path and order by changing the proguardFiles
 5 | # directive in build.gradle.
 6 | #
 7 | # For more details, see
 8 | #   http://developer.android.com/guide/developing/tools/proguard.html
 9 | 
10 | # Add any project specific keep options here:
11 | 
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | #   public *;
17 | #}
18 | 
19 | # Uncomment this to preserve the line number information for
20 | # debugging stack traces.
21 | #-keepattributes SourceFile,LineNumberTable
22 | 
23 | # If you keep the line number information, uncomment this to
24 | # hide the original source file name.
25 | #-renamesourcefileattribute SourceFile
26 | 
--------------------------------------------------------------------------------
/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 5 | 
 6 |     
 7 |     
 8 | 
 9 |     
17 | 
18 |         
19 |             
20 |                 
21 |                 
22 |             
23 |         
24 | 
25 |         
26 |             
27 |         
28 | 
29 |     
30 | 
31 | 
--------------------------------------------------------------------------------
/app/src/main/java/jp/jaxa/iss/kibo/rpc/thailand/MainActivity.java:
--------------------------------------------------------------------------------
 1 | package jp.jaxa.iss.kibo.rpc.thailand;
 2 | 
 3 | import android.support.v7.app.AppCompatActivity;
 4 | import android.os.Bundle;
 5 | 
 6 | public class MainActivity extends AppCompatActivity{
 7 | 
 8 |     @Override
 9 |     protected void onCreate(Bundle savedInstanceState){
10 |         super.onCreate(savedInstanceState);
11 |         setContentView(R.layout.activity_main);
12 |     }
13 | }
14 | 
15 | 
--------------------------------------------------------------------------------
/app/src/main/java/jp/jaxa/iss/kibo/rpc/thailand/YourService.java:
--------------------------------------------------------------------------------
  1 | package jp.jaxa.iss.kibo.rpc.thailand;
  2 | 
  3 | import gov.nasa.arc.astrobee.Kinematics;
  4 | import gov.nasa.arc.astrobee.Result;
  5 | import gov.nasa.arc.astrobee.types.Point;
  6 | import gov.nasa.arc.astrobee.types.Quaternion;
  7 | import jp.jaxa.iss.kibo.rpc.api.KiboRpcService;
  8 | import jp.jaxa.iss.kibo.rpc.api.types.PointCloud;
  9 | // astrobee library
 10 | import android.graphics.Bitmap;
 11 | import android.os.SystemClock;
 12 | import android.util.Log;
 13 | // android library
 14 | import com.google.zxing.BinaryBitmap;
 15 | import com.google.zxing.LuminanceSource;
 16 | import com.google.zxing.RGBLuminanceSource;
 17 | import com.google.zxing.common.HybridBinarizer;
 18 | import com.google.zxing.qrcode.QRCodeReader;
 19 | // zxing library
 20 | import org.opencv.aruco.Aruco;
 21 | import org.opencv.aruco.Dictionary;
 22 | import org.opencv.core.CvType;
 23 | import org.opencv.core.Mat;
 24 | import org.opencv.core.Size;
 25 | import org.opencv.imgproc.Imgproc;
 26 | import org.opencv.core.Rect;
 27 | import static org.opencv.android.Utils.matToBitmap;
 28 | // opencv library
 29 | import java.util.ArrayList;
 30 | import java.util.List;
 31 | // java library
 32 | 
 33 | 
 34 | public class YourService extends KiboRpcService
 35 | {
 36 |     String MODE = "iss"; // mode setting ("sim" or "iss")
 37 |     int NAV_MAX_COL = 1280;
 38 |     int NAV_MAX_ROW =  960;
 39 |     int PointCloud_COL = 224;
 40 |     int PointCloud_ROW = 171;
 41 |     // carmera constant value
 42 |     int max_count = 5, center_range = 6, P1 = 0, P2 = 1;
 43 |     // limit value
 44 |     float AR_diagonal = 0.07071067812f;
 45 |     float ARtoTarget = 0.1414f, y_shift = 0.1328f;
 46 |     // shift position value
 47 | 
 48 |     @Override
 49 |     protected void runPlan1()
 50 |     {
 51 |         api.judgeSendStart();
 52 | 
 53 | 
 54 |         final double[] P3_pos = QR_event(10.7600f, -5.6122f, 4.5826f, 0.0f, 0.0f, 1.0f, 0.0f, max_count, P1);
 55 |         moveTo(10.7000f, -6.0300f, 5.0000f, 0.0f, 0.0f, 0.0f, 0.0f);
 56 |         moveTo(10.4600f, -6.2800f, 5.2400f, 0.0f, 0.0f, 0.0f, 0.0f);
 57 |         moveTo(10.4600f, -6.7800f, 5.2400f, 0.0f, 0.0f, 0.0f, 0.0f);
 58 |         final double[] P3_qua = QR_event(11.0174f, -7.9378f, 5.4100f, 0.0f, -0.7071f, 0.0f, 0.7071f, max_count, P2);
 59 |         // QR part
 60 | 
 61 |         moveTo(11.4600f, -8.6000f, 4.8000f, 0.0f, 0.0f, 0.7071f, -0.7071f);
 62 |         //double[] AR_pos = AR_event((float) P3_pos[0], (float) P3_pos[1], (float) P3_pos[2], (float) P3_qua[0], (float) P3_qua[1], (float) P3_qua[2], (float) P3_qua[3], max_count, true);
 63 |         //double[] AR_pos = AR_event(10.9500f, -9.5900f, 5.4000f, 0.0f, 0.0f, 0.7071f, -0.7071f, max_count, true);
 64 |         double[] AR_pos = AR_event(10.9250f, -10.0400f, 5.4000f, 0.0f, 0.0f, 0.7071f, -0.7071f, max_count, true);
 65 |         // AR part
 66 | 
 67 |         AR_pos = AR_event((float) AR_pos[0], -9.5900f, (float) AR_pos[2],0.0f, 0.0f, 0.7071f, -0.7071f, max_count, false);
 68 |         moveTo(AR_pos[0], -9.5900f, AR_pos[2], AR_pos[0]+ARtoTarget, -9.5900f-getPointCloud(center_range)-y_shift, AR_pos[2]+ARtoTarget);
 69 |         // Target part
 70 | 
 71 | 
 72 |         judgeSendFinish(true);
 73 |     }
 74 |     @Override
 75 |     protected void runPlan2()
 76 |     {
 77 | 
 78 |     }
 79 |     @Override
 80 |     protected void runPlan3()
 81 |     {
 82 | 
 83 |     }
 84 |     public void moveTo(float px, float py, float pz, float qx, float qy, float qz, float qw)
 85 |     {
 86 |         Result result;
 87 |         int count = 0, max_count = 3;
 88 |         Point point = new Point(px, py, pz);
 89 |         Quaternion quaternion = new Quaternion(qx, qy, qz, qw);
 90 | 
 91 |         do
 92 |         {
 93 |             result = api.moveTo(point, quaternion, true);
 94 |             count++;
 95 |         }
 96 |         while (!result.hasSucceeded() && count < max_count);
 97 |     }
 98 |     public void moveTo(double x_org, double y_org, double z_org, double x_des, double y_des, double z_des)
 99 |     {
100 |         double dx = x_des-x_org;
101 |         double dy = y_des-y_org;
102 |         double dz = z_des-z_org;
103 |         double magnitude = Math.sqrt((dx*dx)+(dy*dy)+(dz*dz));
104 |         double x_unit = dx/magnitude;
105 |         double y_unit = dy/magnitude;
106 |         double z_unit = dz/magnitude;
107 | 
108 |         double matrix[][] =
109 |                 {
110 |                         {1, 0, 0},
111 |                         {x_unit, y_unit, z_unit}
112 |                 };
113 | 
114 |         double x = matrix[0][1]*matrix[1][2] - matrix[1][1]*matrix[0][2];
115 |         double y = matrix[0][2]*matrix[1][0] - matrix[1][2]*matrix[0][0];
116 |         double z = matrix[0][0]*matrix[1][1] - matrix[1][0]*matrix[0][1];
117 |         double i = matrix[1][0]-matrix[0][0];
118 |         double j = matrix[1][1]-matrix[0][1];
119 |         double k = matrix[1][2]-matrix[0][2];
120 |         double q = Math.sqrt(x*x + y*y + z*z);
121 |         double p = Math.sqrt(i*i + j*j + k*k);
122 |         double theta = Math.acos((2 - p*p) / 2);
123 | 
124 |         double a = Math.sin(theta/2)*x/q;
125 |         double b = Math.sin(theta/2)*y/q;
126 |         double c = Math.sin(theta/2)*z/q;
127 |         double w = Math.cos(theta/2);
128 | 
129 |         double pitch = -Math.atan((2 * (a*w + b*c)) / (w*w - a*a - b*b + c*c));
130 |         double roll = -Math.asin(2 * (a*c - b*w));
131 |         double yaw = Math.atan((2 * (c*w + a*b)) / (w*w + a*a - b*b - c*c));
132 |         double sx = (0.103 * Math.cos(roll + 0.279) / Math.cos(1.57080 + yaw));
133 |         double sy = (0.103 * Math.sin(roll + 0.279) / Math.cos(pitch));
134 | 
135 |         moveTo((float)x_org - (float)sx, (float)y_org, (float)z_org + (float)sy, (float)a, (float)b, (float)c, (float)w);
136 |     }
137 |     public Mat undistord(Mat src)
138 |     {
139 |         Mat dst = new Mat(1280, 960, CvType.CV_8UC1);
140 |         Mat cameraMatrix = new Mat(3, 3, CvType.CV_32FC1);
141 |         Mat distCoeffs = new Mat(1, 5, CvType.CV_32FC1);
142 | 
143 |         int row = 0, col = 0;
144 | 
145 |         double cameraMatrix_sim[] =
146 |         {
147 |                 344.173397, 0.000000, 630.793795,
148 |                 0.000000, 344.277922, 487.033834,
149 |                 0.000000, 0.000000, 1.000000
150 |         };
151 |         double distCoeffs_sim[] = {-0.152963, 0.017530, -0.001107, -0.000210, 0.000000};
152 | 
153 |         double cameraMatrix_orbit[] =
154 |         {
155 |                 692.827528, 0.000000, 571.399891,
156 |                 0.000000, 691.919547, 504.956891,
157 |                 0.000000, 0.000000, 1.000000
158 |         };
159 |         double distCoeffs_orbit[] = {-0.312191, 0.073843, -0.000918, 0.001890, 0.000000};
160 | 
161 |         if(MODE == "sim")
162 |         {
163 |             cameraMatrix.put(row, col, cameraMatrix_sim);
164 |             distCoeffs.put(row, col, distCoeffs_sim);
165 |             Log.d("Mode[camera]:"," sim");
166 |         }
167 |         else if(MODE == "iss")
168 |         {
169 |             cameraMatrix.put(row, col, cameraMatrix_orbit);
170 |             distCoeffs.put(row, col, distCoeffs_orbit);
171 |             Log.d("Mode[camera]:"," iss");
172 |         }
173 | 
174 |         cameraMatrix.put(row, col, cameraMatrix_orbit);
175 |         distCoeffs.put(row, col, distCoeffs_orbit);
176 | 
177 |         Imgproc.undistort(src, dst, cameraMatrix, distCoeffs);
178 |         return dst;
179 |     }
180 |     public Rect cropImage(int percent_crop)
181 |     {
182 |         double ratio = NAV_MAX_COL / NAV_MAX_ROW;
183 | 
184 |         double percent_row = percent_crop/2;
185 |         double percent_col = percent_row * ratio;
186 | 
187 |         int offset_row = (int) percent_row * NAV_MAX_ROW / 100;
188 |         int offset_col = (int) percent_col * NAV_MAX_COL / 100;
189 |         double rows = NAV_MAX_ROW - (offset_row * 2);
190 |         double cols = NAV_MAX_COL - (offset_col * 2);
191 | 
192 |         return new Rect(offset_col, offset_row, (int) cols, (int) rows);
193 |     }
194 |     public Bitmap resizeImage(Mat src, int width, int height)
195 |     {
196 |         Size size = new Size(width, height);
197 |         Imgproc.resize(src, src, size);
198 | 
199 |         Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
200 |         matToBitmap(src, bitmap, false);
201 |         return bitmap;
202 |     }
203 |     public double[] Intersection(double p[][])
204 |     {
205 |         double[] center = new double[3];
206 | 
207 |         double a = (p[1][0] - p[0][0]) * (p[3][0] - p[2][0]);
208 |         double b = (p[1][0] - p[0][0]) * (p[3][1] - p[2][1]);
209 |         double c = (p[3][0] - p[2][0]) * (p[1][1] - p[0][1]);
210 | 
211 |         center[0] = (a * p[0][1] + b * p[2][0] - a * p[2][1] - c * p[0][0]) / (b - c);
212 |         center[1] = ((p[1][1] - p[0][1]) * (center[0] - p[0][0]) / (p[1][0] - p[0][0])) + p[0][1];
213 | 
214 |         double x_l1 = Math.pow(p[0][0] - p[1][0], 2);
215 |         double y_l1 = Math.pow(p[0][1] - p[1][1], 2);
216 |         double x_l2 = Math.pow(p[3][0] - p[2][0], 2);
217 |         double y_l2 = Math.pow(p[3][1] - p[2][1], 2);
218 |         double avg = (Math.sqrt(x_l1 + y_l1) + Math.sqrt(x_l2 + y_l2)) / 2;
219 | 
220 |         center[2] = avg / AR_diagonal;
221 |         Log.d("AR[info]: ", center[0] + ", " + center[1] + ", " + center[2]);
222 |         return center;
223 |     }
224 |     public double getPointCloud(int center_range)
225 |     {
226 |         double depth = 0;
227 |         int count = 0;
228 | 
229 |         Log.d("PointCloud[status]:", " start");
230 |         PointCloud hazCam = api.getPointCloudHazCam();
231 |         Point[] point = hazCam.getPointArray();
232 |         int width  = hazCam.getWidth();
233 |         int height = hazCam.getHeight();
234 |         int row_max = height/2 + center_range/2;
235 |         int row_min = height/2 - center_range/2;
236 |         int col_max = width/2  + center_range/2;
237 |         int col_min = width/2  - center_range/2;
238 |         Log.d("PointCloud[status]:", " stop");
239 | 
240 | 
241 |         //////////////////////////////////////////////////////////////////////////////////////////////////////
242 |         for (int row = row_min; row < row_max; row++)
243 |         {
244 |             for (int col = col_min; col < col_max; col++)
245 |             {
246 |                 depth += point[(row * width) + col].getZ();
247 |                 count++;
248 |             }
249 |         }
250 |         //////////////////////////////////////////////////////////////////////////////////////////////////////
251 | 
252 | 
253 |         depth /= count;
254 |         Log.d("PointCloud[value]:", "z[" + depth + "]");
255 |         return depth;
256 |     }
257 |     public void flash_control(boolean status)
258 |     {
259 |         if(status)
260 |         {
261 |             api.flashlightControlFront(0.025f);
262 | 
263 |             try
264 |             {
265 |                 Thread.sleep(1000); // wait a few seconds
266 |             }
267 |             catch (InterruptedException e)
268 |             {
269 |                 e.printStackTrace();
270 |             }
271 |         }
272 |         else api.flashlightControlFront(0);
273 |     }
274 |     public void judgeSendFinish(boolean laser_control)
275 |     {
276 |         api.laserControl(laser_control);
277 | 
278 |         if(MODE == "sim")
279 |         {
280 |             Log.d("Mode[judge]:"," sim");
281 |             api.judgeSendFinishSimulation();
282 |         }
283 |         else if(MODE == "iss")
284 |         {
285 |             Log.d("Mode[judge]:"," iss");
286 |             api.judgeSendFinishISS();
287 |         }
288 |     }
289 |     public double[] QR_event(float px, float py, float pz, float qx, float qy, float qz, float qw, int count_max, int no)
290 |     {
291 |         String contents = null;
292 |         int count = 0;
293 |         double final_x = 0, final_y = 0, final_z = 0, final_w = 0;
294 | 
295 |         while (contents == null && count < count_max)
296 |         {
297 |             Log.d("QR[status]:", " start");
298 |             long start_time = SystemClock.elapsedRealtime();
299 |             //                                            //
300 |             moveTo(px, py, pz, qx, qy, qz, qw);
301 |             Log.d("QR[NO]:"," "+no);
302 | 
303 |             flash_control(true);
304 |             Mat src_mat = new Mat(undistord(api.getMatNavCam()), cropImage(40));
305 |             Bitmap bMap = resizeImage(src_mat, 2000, 1500);
306 | 
307 | 
308 | 
309 |             //////////////////////////////////////////////////////////////////////////////////////////////////////
310 |             int[] intArray = new int[bMap.getWidth() * bMap.getHeight()];
311 |             bMap.getPixels(intArray, 0, bMap.getWidth(), 0, 0, bMap.getWidth(), bMap.getHeight());
312 | 
313 |             LuminanceSource source = new RGBLuminanceSource(bMap.getWidth(), bMap.getHeight(), intArray);
314 |             BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
315 | 
316 |             try
317 |             {
318 |                 com.google.zxing.Result result = new QRCodeReader().decode(bitmap);
319 |                 contents = result.getText();
320 |                 Log.d("QR[status]:", " Detected");
321 | 
322 |                 String[] multi_contents = contents.split(", ");
323 |                 final_x = Double.parseDouble(multi_contents[1]);
324 |                 final_y = Double.parseDouble(multi_contents[3]);
325 |                 final_z = Double.parseDouble(multi_contents[5]);
326 |                 if(no == 1) final_w = Math.sqrt(1 - final_x*final_x - final_y*final_y - final_z*final_z);
327 |             }
328 |             catch (Exception e)
329 |             {
330 |                 Log.d("QR[status]:", " Not detected");
331 |             }
332 |             //////////////////////////////////////////////////////////////////////////////////////////////////////
333 |             Log.d("QR[status]:", " stop");
334 |             long stop_time = SystemClock.elapsedRealtime();
335 | 
336 | 
337 | 
338 |             Log.d("QR[count]:", " " + count);
339 |             Log.d("QR[total_time]:"," "+ (stop_time-start_time)/1000);
340 |             count++;
341 |         }
342 | 
343 | 
344 |         flash_control(false);
345 |         api.judgeSendDiscoveredQR(no, contents);
346 |         return new double[] {final_x, final_y, final_z, final_w};
347 |     }
348 |     public double[] AR_event(float px, float py, float pz, float qx, float qy, float qz, float qw, int count_max, boolean sent_AR)
349 |     {
350 |         int contents = 0, count = 0;
351 |         double result[] = new double[3];
352 | 
353 |         while (contents == 0 && count < count_max)
354 |         {
355 |             Log.d("AR[status]:", " start");
356 |             long start_time = SystemClock.elapsedRealtime();
357 |             //                                            //
358 |             moveTo(px, py, pz, qx, qy, qz, qw);
359 | 
360 | 
361 | 
362 |             //////////////////////////////////////////////////////////////////////////////////////////////////////
363 |             Mat source = undistord(api.getMatNavCam());
364 |             Kinematics robot = api.getTrustedRobotKinematics(5);
365 |             Mat ids = new Mat();
366 |             Dictionary dictionary = Aruco.getPredefinedDictionary(Aruco.DICT_5X5_250);
367 |             List corners = new ArrayList<>();
368 | 
369 |             try
370 |             {
371 |                 Aruco.detectMarkers(source, dictionary, corners, ids);
372 |                 contents = (int) ids.get(0, 0)[0];
373 | 
374 |                 if(sent_AR) api.judgeSendDiscoveredAR(Integer.toString(contents));
375 |                 Log.d("AR[status]:", " Detected");
376 | 
377 | 
378 |                 double[][] AR_corners =
379 |                 {
380 |                         {(int) corners.get(0).get(0, 0)[0], (int) corners.get(0).get(0, 0)[1]},
381 |                         {(int) corners.get(0).get(0, 2)[0], (int) corners.get(0).get(0, 2)[1]},
382 |                         {(int) corners.get(0).get(0, 1)[0], (int) corners.get(0).get(0, 1)[1]},
383 |                         {(int) corners.get(0).get(0, 3)[0], (int) corners.get(0).get(0, 3)[1]}
384 |                 };
385 |                 double[] AR_info = Intersection(AR_corners);
386 | 
387 | 
388 |                 Point point = new Point(px, py, pz);
389 |                 if(robot != null)
390 |                 {
391 |                     point = robot.getPosition();
392 |                     Log.d("getKinematics[status]:"," Finished");
393 |                 }
394 |                 result[0] = point.getX() + (AR_info[0]- NAV_MAX_COL/2) / AR_info[2];
395 |                 result[1] = point.getY();
396 |                 result[2] = point.getZ() + (AR_info[1]- NAV_MAX_ROW/2) / AR_info[2];
397 |             }
398 |             catch (Exception e)
399 |             {
400 |                 Log.d("AR[status]:", " Not detected");
401 |             }
402 |             //////////////////////////////////////////////////////////////////////////////////////////////////////
403 |             Log.d("AR[status]:", " stop");
404 |             long stop_time = SystemClock.elapsedRealtime();
405 | 
406 | 
407 | 
408 |             Log.d("AR[count]:", " " + count);
409 |             Log.d("AR[total_time]:"," "+ (stop_time-start_time)/1000);
410 |             count++;
411 |         }
412 |         return result;
413 |     }
414 | }
415 | 
416 | 
417 | 
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 8 | 
 9 |     
22 | 
23 | 
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/M-TRCH/1st-Kibo-RPC_won-spaceY/3bac5585261cea948b2c9b073cdebd9de8eb85bf/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/M-TRCH/1st-Kibo-RPC_won-spaceY/3bac5585261cea948b2c9b073cdebd9de8eb85bf/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/M-TRCH/1st-Kibo-RPC_won-spaceY/3bac5585261cea948b2c9b073cdebd9de8eb85bf/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/M-TRCH/1st-Kibo-RPC_won-spaceY/3bac5585261cea948b2c9b073cdebd9de8eb85bf/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/M-TRCH/1st-Kibo-RPC_won-spaceY/3bac5585261cea948b2c9b073cdebd9de8eb85bf/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/M-TRCH/1st-Kibo-RPC_won-spaceY/3bac5585261cea948b2c9b073cdebd9de8eb85bf/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/M-TRCH/1st-Kibo-RPC_won-spaceY/3bac5585261cea948b2c9b073cdebd9de8eb85bf/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/M-TRCH/1st-Kibo-RPC_won-spaceY/3bac5585261cea948b2c9b073cdebd9de8eb85bf/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/M-TRCH/1st-Kibo-RPC_won-spaceY/3bac5585261cea948b2c9b073cdebd9de8eb85bf/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/M-TRCH/1st-Kibo-RPC_won-spaceY/3bac5585261cea948b2c9b073cdebd9de8eb85bf/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 | 
2 | 
3 |     #3F51B5
4 |     #303F9F
5 |     #FF4081
6 | 
7 | 
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 | 
2 |     thailand
3 | 
4 | 
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 |     
 4 |     
10 | 
11 | 
12 | 
--------------------------------------------------------------------------------
/app/src/main/res/xml/commands.xml:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 |     true 
 4 |     
 5 |         
 8 |         
11 |         
14 |     
15 | 
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
 2 | 
 3 | buildscript {
 4 |     repositories {
 5 |         jcenter()
 6 |         maven {
 7 |             url 'https://maven.google.com/'
 8 |             name 'Google'
 9 |         }
10 |         google()
11 |     }
12 |     dependencies {
13 |         classpath 'com.android.tools.build:gradle:3.4.1'
14 | 
15 |         // NOTE: Do not place your application dependencies here; they belong
16 |         // in the individual module build.gradle files
17 |     }
18 | }
19 | 
20 | allprojects {
21 |     repositories {
22 |         maven {
23 |             url "https://github.com/rosjava/rosjava_mvn_repo/raw/master"
24 |         }
25 |         jcenter()
26 |         maven {
27 |             url 'https://maven.google.com/'
28 |             name 'Google'
29 |         }
30 |     }
31 | }
32 | 
33 | task clean(type: Delete) {
34 |     delete rootProject.buildDir
35 | }
36 | 
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
 1 | # Project-wide Gradle settings.
 2 | 
 3 | # IDE (e.g. Android Studio) users:
 4 | # Gradle settings configured through the IDE *will override*
 5 | # any settings specified in this file.
 6 | 
 7 | # For more details on how to configure your build environment visit
 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
 9 | 
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | org.gradle.jvmargs=-Xmx1536m
13 | 
14 | # When configured, Gradle will run in incubating parallel mode.
15 | # This option should only be used with decoupled projects. More details, visit
16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
17 | # org.gradle.parallel=true
18 | 
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/M-TRCH/1st-Kibo-RPC_won-spaceY/3bac5585261cea948b2c9b073cdebd9de8eb85bf/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed Jun 24 22:00:03 ICT 2020
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
7 | 
--------------------------------------------------------------------------------
/gradlew:
--------------------------------------------------------------------------------
  1 | #!/usr/bin/env bash
  2 | 
  3 | ##############################################################################
  4 | ##
  5 | ##  Gradle start up script for UN*X
  6 | ##
  7 | ##############################################################################
  8 | 
  9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
 10 | DEFAULT_JVM_OPTS=""
 11 | 
 12 | APP_NAME="Gradle"
 13 | APP_BASE_NAME=`basename "$0"`
 14 | 
 15 | # Use the maximum available, or set MAX_FD != -1 to use that value.
 16 | MAX_FD="maximum"
 17 | 
 18 | warn ( ) {
 19 |     echo "$*"
 20 | }
 21 | 
 22 | die ( ) {
 23 |     echo
 24 |     echo "$*"
 25 |     echo
 26 |     exit 1
 27 | }
 28 | 
 29 | # OS specific support (must be 'true' or 'false').
 30 | cygwin=false
 31 | msys=false
 32 | darwin=false
 33 | case "`uname`" in
 34 |   CYGWIN* )
 35 |     cygwin=true
 36 |     ;;
 37 |   Darwin* )
 38 |     darwin=true
 39 |     ;;
 40 |   MINGW* )
 41 |     msys=true
 42 |     ;;
 43 | esac
 44 | 
 45 | # Attempt to set APP_HOME
 46 | # Resolve links: $0 may be a link
 47 | PRG="$0"
 48 | # Need this for relative symlinks.
 49 | while [ -h "$PRG" ] ; do
 50 |     ls=`ls -ld "$PRG"`
 51 |     link=`expr "$ls" : '.*-> \(.*\)$'`
 52 |     if expr "$link" : '/.*' > /dev/null; then
 53 |         PRG="$link"
 54 |     else
 55 |         PRG=`dirname "$PRG"`"/$link"
 56 |     fi
 57 | done
 58 | SAVED="`pwd`"
 59 | cd "`dirname \"$PRG\"`/" >/dev/null
 60 | APP_HOME="`pwd -P`"
 61 | cd "$SAVED" >/dev/null
 62 | 
 63 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
 64 | 
 65 | # Determine the Java command to use to start the JVM.
 66 | if [ -n "$JAVA_HOME" ] ; then
 67 |     if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
 68 |         # IBM's JDK on AIX uses strange locations for the executables
 69 |         JAVACMD="$JAVA_HOME/jre/sh/java"
 70 |     else
 71 |         JAVACMD="$JAVA_HOME/bin/java"
 72 |     fi
 73 |     if [ ! -x "$JAVACMD" ] ; then
 74 |         die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
 75 | 
 76 | Please set the JAVA_HOME variable in your environment to match the
 77 | location of your Java installation."
 78 |     fi
 79 | else
 80 |     JAVACMD="java"
 81 |     which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
 82 | 
 83 | Please set the JAVA_HOME variable in your environment to match the
 84 | location of your Java installation."
 85 | fi
 86 | 
 87 | # Increase the maximum file descriptors if we can.
 88 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
 89 |     MAX_FD_LIMIT=`ulimit -H -n`
 90 |     if [ $? -eq 0 ] ; then
 91 |         if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
 92 |             MAX_FD="$MAX_FD_LIMIT"
 93 |         fi
 94 |         ulimit -n $MAX_FD
 95 |         if [ $? -ne 0 ] ; then
 96 |             warn "Could not set maximum file descriptor limit: $MAX_FD"
 97 |         fi
 98 |     else
 99 |         warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
100 |     fi
101 | fi
102 | 
103 | # For Darwin, add options to specify how the application appears in the dock
104 | if $darwin; then
105 |     GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
106 | fi
107 | 
108 | # For Cygwin, switch paths to Windows format before running java
109 | if $cygwin ; then
110 |     APP_HOME=`cygpath --path --mixed "$APP_HOME"`
111 |     CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
112 |     JAVACMD=`cygpath --unix "$JAVACMD"`
113 | 
114 |     # We build the pattern for arguments to be converted via cygpath
115 |     ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
116 |     SEP=""
117 |     for dir in $ROOTDIRSRAW ; do
118 |         ROOTDIRS="$ROOTDIRS$SEP$dir"
119 |         SEP="|"
120 |     done
121 |     OURCYGPATTERN="(^($ROOTDIRS))"
122 |     # Add a user-defined pattern to the cygpath arguments
123 |     if [ "$GRADLE_CYGPATTERN" != "" ] ; then
124 |         OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
125 |     fi
126 |     # Now convert the arguments - kludge to limit ourselves to /bin/sh
127 |     i=0
128 |     for arg in "$@" ; do
129 |         CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
130 |         CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
131 | 
132 |         if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
133 |             eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
134 |         else
135 |             eval `echo args$i`="\"$arg\""
136 |         fi
137 |         i=$((i+1))
138 |     done
139 |     case $i in
140 |         (0) set -- ;;
141 |         (1) set -- "$args0" ;;
142 |         (2) set -- "$args0" "$args1" ;;
143 |         (3) set -- "$args0" "$args1" "$args2" ;;
144 |         (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
145 |         (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
146 |         (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
147 |         (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
148 |         (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
149 |         (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
150 |     esac
151 | fi
152 | 
153 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
154 | function splitJvmOpts() {
155 |     JVM_OPTS=("$@")
156 | }
157 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
158 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
159 | 
160 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
161 | 
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
 1 | @if "%DEBUG%" == "" @echo off
 2 | @rem ##########################################################################
 3 | @rem
 4 | @rem  Gradle startup script for Windows
 5 | @rem
 6 | @rem ##########################################################################
 7 | 
 8 | @rem Set local scope for the variables with windows NT shell
 9 | if "%OS%"=="Windows_NT" setlocal
10 | 
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 | 
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 | 
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 | 
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 | 
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 | 
32 | goto fail
33 | 
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 | 
38 | if exist "%JAVA_EXE%" goto init
39 | 
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 | 
46 | goto fail
47 | 
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 | 
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 | 
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 | 
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 | 
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 | 
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 | 
69 | :execute
70 | @rem Setup the command line
71 | 
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 | 
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 | 
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 | 
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 | 
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 | 
90 | :omega
91 | 
--------------------------------------------------------------------------------
/guest_science_library/build.gradle:
--------------------------------------------------------------------------------
1 | configurations.maybeCreate("default")
2 | artifacts.add("default", file('guest_science_library.aar'))
--------------------------------------------------------------------------------
/guest_science_library/guest_science_library.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/M-TRCH/1st-Kibo-RPC_won-spaceY/3bac5585261cea948b2c9b073cdebd9de8eb85bf/guest_science_library/guest_science_library.aar
--------------------------------------------------------------------------------
/kibo_rpc_api/build.gradle:
--------------------------------------------------------------------------------
1 | configurations.maybeCreate("default")
2 | artifacts.add("default", file('kibo_rpc_api-debug.aar'))
--------------------------------------------------------------------------------
/kibo_rpc_api/kibo_rpc_api-debug.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/M-TRCH/1st-Kibo-RPC_won-spaceY/3bac5585261cea948b2c9b073cdebd9de8eb85bf/kibo_rpc_api/kibo_rpc_api-debug.aar
--------------------------------------------------------------------------------
/local.properties:
--------------------------------------------------------------------------------
1 | ## This file must *NOT* be checked into Version Control Systems,
2 | # as it contains information specific to your local configuration.
3 | #
4 | # Location of the SDK. This is only used by Gradle.
5 | # For customization when using a Version Control System, please read the
6 | # header note.
7 | #Wed Jun 24 21:55:22 ICT 2020
8 | sdk.dir=/home/mteerachot/Android/Sdk
9 | 
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':guest_science_library', ':kibo_rpc_api'
2 | 
--------------------------------------------------------------------------------