Notes about ROS on Android
Post date: Jun 06, 2017 1:14:44 PM
The tutorial on the robot operating system (ROS) is given by O'Kane, J. M. (2014). A gentle introduction to ROS.
Ros catkin workspace
+ http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment
+ Must source ws/devel/setup.bash, to verify workspace setup: echo $ROS_PACKAGE_PATH
RosJava:
+ http://rosjava.github.io/rosjava_core/latest/index.html
+ To avoid having genjava run in your non-java source workspaces, use the ROS_LANG_DISABLE environment variable, i.e. to genjava http://wiki.ros.org/rosjava/Tutorials/indigo/RosJava%20Message%20Artifacts
RosAndroid: http://wiki.ros.org/android
Cross-compile ROS packages for Android:
+ http://wiki.ros.org/android_ndk/Tutorials/BuildingNativeROSPackages
+ http://wiki.ros.org/android_ndk/Tutorials/How%20to%20cross-compile%20any%20ROS%20package
Android Gradle+CMake/ndkBuild:
+ https://developer.android.com/studio/build/index.html#build-files
+ https://developer.android.com/studio/projects/add-native-code.html#link-gradle
+ https://developer.android.com/ndk/guides/cmake.html
Android JNI syntax & FAQs:
+ https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html
+ http://journals.ecs.soton.ac.uk/java/tutorial/native1.1/implementing/method.html
+ native-lib must be SHARED, not STATIC https://stackoverflow.com/questions/25862197/importing-static-library-in-to-android-project
+ import-lib must use absolute path https://stackoverflow.com/questions/41478323/cmakemissing-and-no-known-rule-to-make-it-when-i-import-a-prebuilt-library
+ JNI function name must match its package. For C++, must be wrapped by extern "C"
+ crash on System.loadLibrary() => segfault in constructors https://stackoverflow.com/questions/17883185/android-ndk-call-to-system-loadlibrary-results-in-sigsegv-code-1
+ In (static) library linking, the order matters! The library that needs symbols must be first, then the library that resolves the symbol. https://stackoverflow.com/questions/45135/why-does-the-order-in-which-libraries-are-linked-sometimes-cause-errors-in-gcc