jrosclient is a Java module which allows to interact with ROS (Robotic Operation System).

Many people run their applications, webservices in Java. The problems they may encounter is when they try to interact from their existing Java code with ROS. What sounds as easy thing to do is in fact complicated because there are not many Java based ROS clients. Some of them already outdated, other require additional knowledge of catkin, Python or running a separate web service or are only Gradle compatible. With jrosclient none of these is required. It is an ordinary Java module which you can add into your Java project and use.

ROS computation graph model is based on the nodes which can publish messages to certain topics and subscribe to them. Instead of creating a new API for such publisher/subscriber model jrosclient reuses standard Java Flow API. It allows seamless integration of your existing Java Flow Subscribers with ROS model and there is no need to learn yet another publisher/subscriber API.

jrosclient is completely Java based and does not rely on any native libraries. It is not a JNI wrapper around ROS and so it does not require ROS to be installed in the system at all. What it needs is just ROS master endpoint which can be running remotely.

jrosclient implements ROS transport protocol using ICE module which relies on Java Async Channels.

The ultimate goal for jrosclient module is to implement ROS client libraries requirements.

Supported ROS versions