ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I received a very good answer from jubeira on the Discourse site as recommended by gvdhoon. I hope others find it helpful.

https://discourse.ros.org/t/is-rosjava-worth-using-when-not-using-android/1967

  • Rosjava can be used "as is" in a real project. I'm using it myself in a project where roscpp and rospy are not an option, and it does its job. The documentation in the wiki should be good enough to get started, and I offer myself to help to improve it if necessary. It has some issues as you can see in its public repository, but its currently under active maintenance: if you find something that is wrong, or want to contribute a new feature, you will get a response within a short time lapse.
  • I don't have an accurate answer about its performance; it will probably depend on what you want to do. What is your application about? My short answer would be that you shouldn't have problems with it (see next item).
  • You can write native nodes and execute them from a java application if you want; Rosjava kinetic has support for that. I've tried it and it can be done. You can take a look here: http://wiki.ros.org/android_ndk/Tutorials/WrappingNativeRosjavaNode. (The link is under Android, but it can be done for pure java). Then, nodes can communicate through topics as usual in ROS. From the java side of the application, all the nodes have the same interface, so you don't care if the node's implementation is in Java or in native code when you execute it (does this answer your question?).
  • TF2 messages are included in rosjava messages (here's the Maven artifact: https://github.com/rosjava/rosjava_mvn_repo/tree/master/org/ros/rosjava_messages/tf2_msgs)