rosjava android - nerve centernerve.uml.edu/ros-2014/rosjava android - jordan allspaw and...

10
RosJava Android Jordan Allspaw and Eric Marcoux

Upload: trinhkhue

Post on 31-Jan-2018

221 views

Category:

Documents


2 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

Thank you!Jordan Allspaw and Eric Marcoux

http://robotics.cs.uml.edu/