Skip to content
An implementation of ROS in pure Java with Android support.
Java Python Other
Branch: kinetic
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.
3rdparty Allow running rosjava tests from Bazel (#277) May 18, 2018
apache_xmlrpc_client Add Bazel build files for the tutorial (#269) Mar 1, 2018
apache_xmlrpc_common Add Bazel build files for the tutorial (#269) Mar 1, 2018
apache_xmlrpc_server Merge pull request #273 from wmlynar/kinetic Mar 29, 2018
bazel Use new http_archive rule for Bazel deps (#286) Nov 21, 2018
docs Using 'doLast' instead of '<<' for clean task in docs. Apr 25, 2018
gradle/wrapper Gradle 3.5.1 --> 4.10.2. Dec 26, 2018
misc Added rospack_nosubdirs file to rosjava_core/misc Nov 2, 2011
rosjava Merge pull request #295 from StefanGlaser/kinetic Apr 10, 2019
rosjava_benchmarks Changes FrameTransformTree to use GraphName instead of FrameName but … Jun 27, 2014
rosjava_helpers Adding tests for ParameterLoaderNode. Aug 28, 2018
rosjava_test test_ros -> rosjava_test_msgs Sep 12, 2013
rosjava_tutorial_pubsub Merge pull request #265 from jubeira/gradle-3-5-1 Apr 25, 2018
rosjava_tutorial_right_hand_rule Updating more versions Dec 18, 2016
rosjava_tutorial_services test_ros -> rosjava_test_msgs Sep 12, 2013
.classpath eclipse files Sep 17, 2013
.gitignore Adds to .gitignore Apr 4, 2019
.hgignore Remove unnecessary ignored file. Apr 4, 2012
.rosinstall Update .rosinstall for hydro-devel version. Aug 20, 2013
CHANGELOG.rst 0.3.7 Jan 23, 2019
CMakeLists.txt Gradle upgrade: 3.5.1 Feb 22, 2018 Add Bazel build files for the tutorial (#269) Mar 1, 2018
WORKSPACE Add Bazel build files for the tutorial (#269) Mar 1, 2018
build.gradle Gradle 3.5.1 --> 4.10.2. Dec 26, 2018
dependencies.yaml Allow running rosjava tests from Bazel (#277) May 18, 2018 Add a comment explaining the disabling of SNI. Jun 27, 2014
gradlew Gradle 3.5.1 --> 4.10.2. Dec 26, 2018
gradlew.bat Gradle 3.5.1 --> 4.10.2. Dec 26, 2018
package.xml 0.3.7 Jan 23, 2019
settings.gradle Parameter Node added to new Helper module. Feb 20, 2017

rosjava is the first pure Java implementation of ROS.

From ROS is an open-source, meta-operating system for your robot. It provides the services you would expect from an operating system, including hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management.

Developed at Google in cooperation with Willow Garage, rosjava enables integration of Android and ROS compatible robots. This project is under active development and currently alpha quality software. Please report bugs and feature requests on the issues list.

To get started, visit the rosjava_core and android_core pages for documentation concerning the core libraries and examples. Also visit the roswiki rosjava and android pages for more general rosjava-android information.

Still have questions? Check out the ros-users discussion list, post questions to ROS Answers with the tag "rosjava," or join #ROS on

rosjava was announced publicly during the Cloud Robotics tech talk at Google I/O 2011.

Looking for a robot platform to experiment with ROS, Android, and cloud robotics? The OSRF TurtleBot is a great mobile perception platform for getting started with robotics development.


The master branch reflects the latest version of rosjava. All development happens on the master branch in the form of pull requests from developers. Unless you are developing rosjava itself, you should not use the master branch.

Named branches are created whenever a new version of ROS is released. These branches are considered stable. No new features will be added to these branches, however, bug fixes may be cherry picked from master.

Pull Requests

You must sign a Contributor License Agreement (CLA) before we can accept any code. The CLA protects you and us.

  • If you are an individual writing original source code and you're sure you own the intellectual property, then you'll need to sign an individual CLA.
  • If you work for a company that wants to allow you to contribute your work to SL4A, then you'll need to sign a corporate CLA.

Follow either of the two links above to access the appropriate CLA and instructions for how to sign and return it. Damon will respond on either github or email to confirm.

Building with Bazel

To build this project with Bazel, simply run:

bazel build //...

To depend on rosjava_core from another project, you'll need to use bazel-deps.

  1. Start by copying (or merging) [dependencies.yaml][dependencies.yaml] in to your project.
  2. Follow the instructions in that file to generate the BUILD files inside your project.
  3. Add the following lines to your WORKSPACE file:
load("//3rdparty:workspace.bzl", "maven_dependencies")


    name = "com_github_rosjava_rosjava_core",
    commit = "{insert commit SHA for HEAD}",
    remote = "",

load("@com_github_rosjava_rosjava_core//bazel:repositories.bzl", "rosjava_repositories")


You may want to use http_archive instead of git_repository for the reasons described in the Bazel docs.

You can now depend on rosjava targets (eg @com_github_rosjava_rosjava_core//rosjava) as required by your application.

You can’t perform that action at this time.