/pddl-planning-android

Interface and utilities to manipulate PDDL and planners, for Android. Includes client code for Android services providing a planner.

Primary LanguageKotlinBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

PDDL Planning for Android

This project provides a library to interface third-party PDDL planners on Android.

It includes utilities to parse and manipulate PDDL strings and represent PDDL entities in Kotlin.

It provides various helpers to perform planning around the PlanSearchFunction interface that abstracts away the planner implementation. It also provides a service interface to allow third-party implementations to be deployed as stand-alone applications.

Usage

This library is publicly available on Maven Central, but not in JCenter. The build.gradle at the root of your project should mention:

allprojects {
    repositories {
        mavenCentral()
    }
}

Then add the following dependency in your module's build.gradle:

implementation 'com.softbankrobotics.pddl:pddl-planning:1.4.0'

Testing

This project also provides helpers to check expected plans for given PDDL problems. It also includes some PDDL tests that you can run with a third-party planner. Add the following test dependency in your module's build.gradle:

androidTestImplementation 'com.softbankrobotics.pddl:pddl-planning-test:1.4.0'

Then, let a test extend the interface PlanningInstrumentedTest, to provide the included test units.

You can also get only the non-instrumented tests by defining the following dependency:

testImplementation 'com.softbankrobotics.pddl:pddl-planning-test:1.4.0'

Then, let a test extend the interface PlanningTestUtil, to provide the included test units. However there are much fewer tests with this interface.

License

This project is distributed under the BSD-3 license.