Skip to content

MIT-SPARK/Omniplanner

Repository files navigation

Omniplanner

Omniplanner provides an interface to solving DSG-grounded planning problems with a variety of solvers and grounding mechanisms. The goal is to enable module design of command grounding and planning implementations, and a clean hook for transforming the output of a planner into robot-compatible input.

This repo is still under construction, and details are subject to change.

Architecture

The Omniplanner architecture can be thought of in two halves: The Omniplanner ROS node that provides an interface for combining planning commands, scene representations, and robot commands, and the Omniplanner non-ROS code that defines the generic interfaces that a planner or language grounding system needs to implement to work with the Omniplanner node.

The planner plugins that Omniplanner loads are defined in a yaml file like this one. The omniplanner node takes the path to this as a rosparam.

Implementing a planner plugin requires implementing Omniplanner's ground_problem and make_plan interface. At planning time, various planning and grounding methods can be combined through dispatching on the input and output types of these modules. You need to implement an interface like this to give the omniplanner node a hook into your planning and grounding behavior.

The second thing you need to do is implement the ROS hook. This entails writing a class like this with a get_plan_callback function. You also need to implement the config registration at the bottom of the file to enable constructing the plugin based on the plugin YAML definition.

Currently, there is a final step of importing your custom config into the Omniplanner Node here, but the intention is to do automatic plugin discovery. Automatic plugin discovery will enable all downstream planning plugins to be implemented without touching the omniplanner node.

About

Infrastructure for composing multiple types of planning paradigms.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •