From 5989575bda3fc3cdbcc03d4fd1fadc05e18880c1 Mon Sep 17 00:00:00 2001 From: Ethan Robinson Date: Wed, 26 Apr 2023 10:38:01 -0700 Subject: [PATCH 1/6] Added some system requirements to build the Astrobee API --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 8ce05f7..ccf2457 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,16 @@ Please see the [Guest Science Resources](https://www.nasa.gov/content/guest-science-resources) page for information on guest science capabilities on Astrobee. +## Prerequisites + +Before building the Astrobee Android project, ensure your system meets the following requirements: + +- **Operating System**: Ubuntu 16.04 (Xenial Xerus) is needed for compatibility with `ros-kinetic-rosjava` dependencies. +- **Android Studio**: Use version 3.6.3, which is compatible with the project's Gradle 3.3. Download from the [Android Studio archive](https://developer.android.com/studio/archive). +- **Java JDK**: Install Java JDK 8 for compatibility with the project's Gradle version. Download from the [Oracle website](https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html) or use an OpenJDK alternative like [AdoptOpenJDK](https://adoptopenjdk.net/). + +Ensure these tools and dependencies are installed and configured before attempting to build the Astrobee Android project. + ## License Copyright (c) 2017, United States Government, as represented by the From d86729a8992d1272d94e3d076ff20d27f2daa7f1 Mon Sep 17 00:00:00 2001 From: erobinson-mei <131702292+erobinson-mei@users.noreply.github.com> Date: Wed, 26 Apr 2023 10:59:51 -0700 Subject: [PATCH 2/6] Removed openjdk alternative for java in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ccf2457..d278adb 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Before building the Astrobee Android project, ensure your system meets the follo - **Operating System**: Ubuntu 16.04 (Xenial Xerus) is needed for compatibility with `ros-kinetic-rosjava` dependencies. - **Android Studio**: Use version 3.6.3, which is compatible with the project's Gradle 3.3. Download from the [Android Studio archive](https://developer.android.com/studio/archive). -- **Java JDK**: Install Java JDK 8 for compatibility with the project's Gradle version. Download from the [Oracle website](https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html) or use an OpenJDK alternative like [AdoptOpenJDK](https://adoptopenjdk.net/). +- **Java JDK**: Install Java JDK 8 for compatibility with the project's Gradle version. Download from the [Oracle website](https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html). Ensure these tools and dependencies are installed and configured before attempting to build the Astrobee Android project. From 379319b97041257c2389cd6a8d598bdff10625de Mon Sep 17 00:00:00 2001 From: erobinson-mei Date: Wed, 26 Apr 2023 13:11:22 -0700 Subject: [PATCH 3/6] Updated the instructions for creating Guest Science applications. Added an environment variables section and updated some file paths for configuring ff_msgs --- creating_gs_app.md | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/creating_gs_app.md b/creating_gs_app.md index 099904e..cdc2e01 100644 --- a/creating_gs_app.md +++ b/creating_gs_app.md @@ -1,12 +1,5 @@ # Creating a Guest Science Application -This readme assumes you have followed the -[Guest Science Developer Guide](gs_developer_guide.md). - -It also assumes that `freeflyer_android` is checked out in `$ANDROID_PATH`, -`freeflyer` is checked out in `$SOURCE_PATH`, and you are building in -`$BUILD_PATH`. - Astrobee has two major libraries for Guest Science developers: the Astrobee API and the Guest Science Library. It is important for a Guest Scientist to understand what these libraries do. Please see the About sections in the @@ -29,11 +22,32 @@ to put it, we have created a `guest_science_projects` folder for you to use. Please note, you don't have to use this directory and can store your project anywhere on your computer. +## Environement Variables +This readme assumes you have followed the +[Guest Science Developer Guide](gs_developer_guide.md), where the [`astrobee_android`](https://github.com/nasa/astrobee_android.git) +repository was cloned and an environment variable `$ANDROID_PATH` was defined: + + you@machine:~ $ export ANDROID_PATH=$HOME/astrobee_android + +This readme also assumes that the [Astrobee ROS repository](https://github.com/nasa/astrobee.git) was cloned +and built using the [Astrobee Robot Software installation instructions](https://nasa.github.io/astrobee/v/develop/index.html): + + you@machine:~ $ export BUILD_PATH=$HOME/astrobee + ## Setup -In every terminal you use, be sure to set up your environment. If you forgot how -to do this, follow the Setting up your Environment section of the -[`freeflyer/simulation/sim_overview.md`](https://github.com/nasa/astrobee/blob/master/simulation/sim_overview.md#setting-up-your-environment). +In every terminal you use, be sure to set up your environment. Refer to the [Simulator Instructions](https://github.com/nasa/astrobee/blob/master/simulation/running_the_sim.md) found in the [`astrobee`](https://github.com/nasa/astrobee.git) repository. + + pushd $BUILD_PATH + source devel/setup.bash + popd + +or for a Zsh session + + pushd $BUILD_PATH + source devel/setup.zsh + popd + ## Build the Astrobee API @@ -45,7 +59,7 @@ Ensure `rosjava` is installed: Build the ff_msgs jar - you@machine:~ $ cd $BUILD_PATH + you@machine:~ $ cd $BUILD_PATH/bulid/ff_msgs you@machine:native $ make rebuild_cache you@machine:native $ make ff_msgs_generate_messages_java_gradle @@ -59,10 +73,10 @@ rosjava generated files into the right location: you@machine:~ $ mkdir -p $HOME/.m2 you@machine:.m2 $ cd $HOME/.m2 - you@machine:.m2 $ ln -s $BUILD_PATH/devel/share/maven repository + you@machine:.m2 $ ln -s $BUILD_PATH/devel/.private/ff_msgs/share/maven repository Otherwise you will have to copy the contents of the maven directory out -of `devel/shared` into `$HOME/.m2/repository`. +of `/share` into `$HOME/.m2/repository`. ### Building the JAR Files From ba988dcb6ef11b4271815475a69ca3cdbb4ac91c Mon Sep 17 00:00:00 2001 From: erobinson-mei Date: Wed, 26 Apr 2023 14:50:02 -0700 Subject: [PATCH 4/6] the g and r arguments when installing the guest science manager need to be separated. --- running_gs_app.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/running_gs_app.md b/running_gs_app.md index 6f1e81b..804af73 100644 --- a/running_gs_app.md +++ b/running_gs_app.md @@ -37,7 +37,7 @@ this. you@machine:~ $ cd $ANDROID_PATH/core_apks/guest_science_manager you@machine:guest_science_manager $ ANDROID_HOME=$HOME/Android/Sdk ./gradlew assembleDebug - you@machine:guest_science_manager $ adb install -gr activity/build/outputs/apk/activity-debug.apk + you@machine:guest_science_manager $ adb install -g -r activity/build/outputs/apk/activity-debug.apk **Important** Please make sure to type the `g` before `r`. If you don't, Android will not grant the APK the right permissions and the APK will fail to excute. @@ -49,7 +49,7 @@ the Astrobee and then moves it in a rectangular shape. you@machine:~ $ cd $ANDROID_PATH/gs_examples/test_simple_trajectory you@machine:guest_science_manager $ ANDROID_HOME=$HOME/Android/Sdk ./gradlew assembleDebug - you@machine:guest_science_manager $ adb install -gr app/build/outputs/apk/app-debug.apk + you@machine:guest_science_manager $ adb install -g -r app/build/outputs/apk/app-debug.apk **Important** Please make sure to type the `g` before `r`. If you don't, Android will not grant the APK the right permissions and the APK will fail to excute. From c7d078be1b0f466d873f43adfba23a9a9c36c8ae Mon Sep 17 00:00:00 2001 From: erobinson-mei Date: Thu, 27 Apr 2023 10:28:44 -0700 Subject: [PATCH 5/6] Updated the prerequisites section of the README.md to include details about the operating system and rosjava dependency issues with using Ubuntu 20.04 --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d278adb..e6eacfc 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,10 @@ page for information on guest science capabilities on Astrobee. Before building the Astrobee Android project, ensure your system meets the following requirements: -- **Operating System**: Ubuntu 16.04 (Xenial Xerus) is needed for compatibility with `ros-kinetic-rosjava` dependencies. +- **Operating System**: Ubuntu 16.04 (Xenial Xerus) is needed for compatibility with `ros-kinetic-rosjava` dependencies. + - Ubuntu 16.04 support will soon be phased out as we migrate to Ubuntu 20.04 + - `rosjava` has not yet been released for ROS Noetic on Ubuntu 20.04, so `ros-kinetic-rosjava` needs to be built from source. [ROS Wiki Source Installation Instructions](http://wiki.ros.org/rosjava/Tutorials/kinetic/Source%20Installation). + - Currently there are [dependency conflicts](https://github.com/nasa/astrobee_android/issues/44) when using `ros-kinetic-rosjava` with ROS Noetic on Ubuntu 20.04. - **Android Studio**: Use version 3.6.3, which is compatible with the project's Gradle 3.3. Download from the [Android Studio archive](https://developer.android.com/studio/archive). - **Java JDK**: Install Java JDK 8 for compatibility with the project's Gradle version. Download from the [Oracle website](https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html). From 8aee4d09f352e1a4d1261a0cdce15ddeb420f43e Mon Sep 17 00:00:00 2001 From: Ethan Robinson <131702292+erobinson-mei@users.noreply.github.com> Date: Wed, 31 May 2023 10:30:01 -0700 Subject: [PATCH 6/6] Fixed a typo in creating_gs_app.md --- creating_gs_app.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/creating_gs_app.md b/creating_gs_app.md index cdc2e01..1d26e89 100644 --- a/creating_gs_app.md +++ b/creating_gs_app.md @@ -59,7 +59,7 @@ Ensure `rosjava` is installed: Build the ff_msgs jar - you@machine:~ $ cd $BUILD_PATH/bulid/ff_msgs + you@machine:~ $ cd $BUILD_PATH/build/ff_msgs you@machine:native $ make rebuild_cache you@machine:native $ make ff_msgs_generate_messages_java_gradle