RosJava Android - NERVE Centernerve.uml.edu/ros-2014/RosJava Android - Jordan Allspaw and...
Transcript of RosJava Android - NERVE Centernerve.uml.edu/ros-2014/RosJava Android - Jordan Allspaw and...
![Page 1: RosJava Android - NERVE Centernerve.uml.edu/ros-2014/RosJava Android - Jordan Allspaw and Eric... · ROSJava Android - Extensions to ROSJava for use with Android. Collision Logger.](https://reader033.fdocuments.us/reader033/viewer/2022051718/5a71cbdb7f8b9aa2538d228f/html5/thumbnails/1.jpg)
RosJava AndroidJordan Allspaw and Eric Marcoux
![Page 2: RosJava Android - NERVE Centernerve.uml.edu/ros-2014/RosJava Android - Jordan Allspaw and Eric... · ROSJava Android - Extensions to ROSJava for use with Android. Collision Logger.](https://reader033.fdocuments.us/reader033/viewer/2022051718/5a71cbdb7f8b9aa2538d228f/html5/thumbnails/2.jpg)
RosJavaROSJava is an all Java implementation of ROS
Does not rely on native code
Publisher’s/ Subscribers referred to as NodeMain’s.Managed by a “NodeMainExecutor”
Why use it?ROSJava Android - Extensions to ROSJava for use with Android
![Page 3: RosJava Android - NERVE Centernerve.uml.edu/ros-2014/RosJava Android - Jordan Allspaw and Eric... · ROSJava Android - Extensions to ROSJava for use with Android. Collision Logger.](https://reader033.fdocuments.us/reader033/viewer/2022051718/5a71cbdb7f8b9aa2538d228f/html5/thumbnails/3.jpg)
Collision Logger
![Page 4: RosJava Android - NERVE Centernerve.uml.edu/ros-2014/RosJava Android - Jordan Allspaw and Eric... · ROSJava Android - Extensions to ROSJava for use with Android. Collision Logger.](https://reader033.fdocuments.us/reader033/viewer/2022051718/5a71cbdb7f8b9aa2538d228f/html5/thumbnails/4.jpg)
Joystick Teleop
![Page 5: RosJava Android - NERVE Centernerve.uml.edu/ros-2014/RosJava Android - Jordan Allspaw and Eric... · ROSJava Android - Extensions to ROSJava for use with Android. Collision Logger.](https://reader033.fdocuments.us/reader033/viewer/2022051718/5a71cbdb7f8b9aa2538d228f/html5/thumbnails/5.jpg)
Google Glass Teleop
![Page 6: RosJava Android - NERVE Centernerve.uml.edu/ros-2014/RosJava Android - Jordan Allspaw and Eric... · ROSJava Android - Extensions to ROSJava for use with Android. Collision Logger.](https://reader033.fdocuments.us/reader033/viewer/2022051718/5a71cbdb7f8b9aa2538d228f/html5/thumbnails/6.jpg)
RViz Point Cloud with Tango
![Page 7: RosJava Android - NERVE Centernerve.uml.edu/ros-2014/RosJava Android - Jordan Allspaw and Eric... · ROSJava Android - Extensions to ROSJava for use with Android. Collision Logger.](https://reader033.fdocuments.us/reader033/viewer/2022051718/5a71cbdb7f8b9aa2538d228f/html5/thumbnails/7.jpg)
Heartaches and Migraines● The compute power in an android device != compute power of your
computer, yet
● Need to seriously consider the publishing rate of messages received by a ROSJava node.○ CPU time○ Blocking UI Thread○ Garbage Collection
● Two Options - Android RenderScript or the Native Development Kit (NDK)
![Page 8: RosJava Android - NERVE Centernerve.uml.edu/ros-2014/RosJava Android - Jordan Allspaw and Eric... · ROSJava Android - Extensions to ROSJava for use with Android. Collision Logger.](https://reader033.fdocuments.us/reader033/viewer/2022051718/5a71cbdb7f8b9aa2538d228f/html5/thumbnails/8.jpg)
Heartaches and Migraines (NDK)● Pros
○ Possible to achieve nearer to real time processing of high rate messages
○ Garbage collection does not occur
● Cons○ Garbage collection does not occur○ Be careful when renaming native methods (use a FooLib class)○ Make sure not to forget env and object parameters added to each
method signature (or use javah)○ Be cautious of JNI overhead from calling native methods from Java
land or java methods from native land.
![Page 9: RosJava Android - NERVE Centernerve.uml.edu/ros-2014/RosJava Android - Jordan Allspaw and Eric... · ROSJava Android - Extensions to ROSJava for use with Android. Collision Logger.](https://reader033.fdocuments.us/reader033/viewer/2022051718/5a71cbdb7f8b9aa2538d228f/html5/thumbnails/9.jpg)
Final NotesGradle / Android Studio support for JNI is not there.
![Page 10: RosJava Android - NERVE Centernerve.uml.edu/ros-2014/RosJava Android - Jordan Allspaw and Eric... · ROSJava Android - Extensions to ROSJava for use with Android. Collision Logger.](https://reader033.fdocuments.us/reader033/viewer/2022051718/5a71cbdb7f8b9aa2538d228f/html5/thumbnails/10.jpg)
Thank you!Jordan Allspaw and Eric Marcoux
http://robotics.cs.uml.edu/