Skip to content
/ IRS Public

Interpretable Responsibility Sharing as a Heuristic for Task and Motion Planning

License

Notifications You must be signed in to change notification settings

asyncs/IRS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Interpretable Responsibility Sharing as a Heuristic for Task and Motion Planning

Overview

IRS

This article introduces a novel heuristic for Task and Motion Planning (TAMP) named Interpretable Responsibility Sharing (IRS), which enhances planning efficiency in domestic robots by leveraging human-constructed environments and inherent biases. Utilizing auxiliary objects (e.g., trays and pitchers), which are commonly found in household settings, IRS systematically incorporates these elements to simplify and optimize task execution. The heuristic is rooted in the novel concept of Responsibility Sharing (RS), where auxiliary objects share the task's responsibility with the embodied agent, dividing complex tasks into manageable sub-problems. This division not only reflects human usage patterns but also aids robots in navigating and manipulating within human spaces more effectively. By integrating Optimized Rule Synthesis (ORS) for decision-making, IRS ensures that the use of auxiliary objects is both strategic and context-aware, thereby improving the interpretability and effectiveness of robotic planning. Experiments conducted across various household tasks demonstrate that IRS significantly outperforms traditional methods by reducing the effort required in task execution and enhancing the overall decision-making process. This approach not only aligns with human intuitive methods but also offers a scalable solution adaptable to diverse domestic environments.

Installation

Requirments

Assumes a standard Ubuntu 20.04 (or 18.04) machine. The following assumes $HOME/git as your git path, and $HOME/.local to install 3rd-party libs -- please stick to this (no system-wide installs).

sudo apt update
sudo apt install --yes \
  g++ clang make cmake curl git wget \
  liblapack-dev libf2c2-dev libqhull-dev libeigen3-dev libann-dev libccd-dev \
  libjsoncpp-dev libyaml-cpp-dev libpoco-dev libboost-system-dev portaudio19-dev libusb-1.0-0-dev libhidapi-dev \
  libx11-dev libglu1-mesa-dev libglfw3-dev libglew-dev freeglut3-dev libpng-dev libassimp-dev
mkdir -p $HOME/git $HOME/.local

External libraries: You can skip librealsense and libfranka if you disable in CMake.

export MAKEFLAGS="-j $(command nproc --ignore 2)"
wget https://github.com/MarcToussaint/rai-extern/raw/main/install.sh; chmod a+x install.sh
./install.sh fcl
./install.sh physx
./install.sh librealsense
./install.sh libfranka  ## for OLD frankas instead:   ./install.sh -v 0.7.1 libfranka

You can skip this, if you disable pybind11 in CMake.

sudo apt install --yes python3-dev python3 python3-pip
python3 -m pip install --user numpy pybind11 pybind11-stubgen

# add the following to your .bashrc, if not done already
echo 'export PATH="${PATH}:$HOME/.local/bin"' >> ~/.bashrc
echo 'export PYTHONPATH="${PYTHONPATH}:$HOME/.local/lib"' >> ~/.bashrc

Quick Start

cd $HOME/git
git clone --recurse-submodules -j4 https://github.com/asyncs/IRS.git

Build the RAI submodule.

cd IRS/rai
make -j1 printUbuntuAll
make -j1 installUbuntuAll APTGETYES=--yes
make -j4
make -j4 tests bin
make runTests

Build the IRS.

cd ..
mkdir build && cd build
cmake ..
cmake --build .
make

Example Usage

To understand how IRS operates, set the environment and task parameters e.g., in test/serving/main.cpp, build the executable, and then run the provided script.

cd ../test/serving
./../../build/serving 

To understand how ORS operates, you can navigate to its directory, 'ors' to take a closer look.

About

Interpretable Responsibility Sharing as a Heuristic for Task and Motion Planning

Resources

License

Stars

Watchers

Forks

Packages

No packages published