Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Joctomap - A Java wrapper for Octomap

Octomap is a C++ framework to generate, update and manage 3D occupancy maps. These maps are multi-resolution and widely used in mapping and robotic applications, among others.

Joctomap is a wrapper for this mapping library which allows you to use it in Java/Android projects. It provides access to the main functionalities of Octomap, while retaining the structure and philosophy of the mapping library.


It allows using the main functions of Octomap in Java, but it also has several functionalities which might be interesting for planning and navigation problems, like:

  • Check collisions between circles and oriented rectangles and the obstacles in the map
  • Query the resolution, given a position in the map
  • Query which cells are occupied (and retrieve their positions or keys) within a bounding box
  • Build an adjacency map to easily retrieve the adjacent cells to a given one
  • Build an octree given an image in PPM (ASCII) format

Integration with ROS

Since March 26th, 2018, it is possible to serialize and deserialize octomap_msgs/Octomap messages used in ROS. Thus, it is possible to integrate Octomap in ROS applications written in Java and communicate with other nodes using Rosjava.

Image of ROS message

Build status

  • Branch 1.7.X Build Status
  • Branch 1.8.X Build Status
  • Branch 1.9.X Build Status

How do I use it?

Compiling Joctomap

This project depends on spatial-utils, a lightweight library for geometrical operations in cartesian coordinate systems. This library has to be compiled first:

git clone
cd spatial-utils
mvn install

Joctomap is compatible for JDK1.6+. Compile it as follows:

git clone
cd joctomap
mvn install -DreleaseType=Release -Djdk=$JDK_HOME
  • -DreleaseType can be Release or Debug according to your needs.
  • -Djdk must point to the directory where your JDK is installed. (e.g. /usr/lib/jvm/java-8-oracle)


Afterwards you can import the generated jar file into your project or, if you use maven, add the following dependency:


For gradle, it would be:

compile 'es.usc.citius.lab:joctomap'


You can’t perform that action at this time.