boschresearch / STAAMS-Solver

Simultaneous task allocation and motion scheduling (STAAMS) solver based on constraint programming and optimization, implemented for the Robot Operating System (ROS)
BSD 3-Clause "New" or "Revised" License
17 stars 4 forks source link
paper-resource robotics ros

STAAMS-Solver repository

This repository provides a Simultaneous Task Allocation And Motion Scheduling (STAAMS) Solver based on Constraint Programming (CP), including a running example. The provided method is described in the paper "A Constraint Programming Approach to Simultaneous Task Allocation and Motion Scheduling for Industrial Dual-Arm Manipulation Tasks" by Behrens et al., accepted for ICRA 2019. An extended version of the paper is available at arXiv:1901.07914 [cs.RO].

Purpose of the project

This software is a research prototype, solely developed for and published as part of the publications cited above. It will neither be maintained nor monitored in any way.

Requirements, how to build, test, install, use, etc.

We developed and tested using Ubuntu 16.04 and ROS Kinetic. Core dependecies are:

echo "deb http://downloads.skewed.de/apt/xenial xenial universe" >> /etc/apt/sources.list
echo "deb-src http://downloads.skewed.de/apt/xenial xenial universe" >> /etc/apt/sources.list

apt-key adv --keyserver pgp.skewed.de --recv-key 612DEFB798507F25

apt-get update && apt-get install -y --allow-unauthenticated \
    build-essential python-pip python-graph-tool liblmdb

pip install --upgrade lmdb pip catkin_tools ortools plotly --user

Clone the repository into a ROS workspace. Execute from inside the src folder

git clone https://github.com/boschresearch/STAAMS-Solver.git
rosdep install --from-paths . --ignore-src -r -y

We use the install space for some example data. To enable the use of the install space, execute:

catkin config --install

Build it using catkin-tools.

catkin build

Running the examples

Four blocks example

This will start a gazebo simulation, RVIZ visualization, the planning infrastructure (scenegraph, planner, and motion executor), and a script using these to plan a small example of moving four blocks from the table.

rosrun nextage_cp_adapter startup.py
rosrun cp_planning_examples example_scene_manager.py
rosrun roadmap_planner prm_planner_node.py
rosrun roadmap_planner motion_dispatcher.py
rosrun cp_planning_examples four_blocks_01.py

Package structure

License

STAAMS-Solver is open-sourced under the BSD-3-Clause license. See the LICENSE file for details.

For a list of other open source components included in Benchmarks, see the file 3rd-party-licenses.txt.