Skip to content


Switch branches/tags


Failed to load latest commit information.
Latest commit message
Commit time
Sep 17, 2013
Jan 23, 2019
Jan 23, 2019

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.


An implementation of ROS in pure Java with Android support.






No packages published