/ProbRobScene

ProbRobScene: A Probabilistic Specification Language for 3D Robotic Manipulation Environments

Primary LanguagePythonMIT LicenseMIT

ProbRobScene

Implementation of the ProbRobScene language outlined in ProbRobScene: A Probabilistic Specification Language for 3D Robotic Manipulation Environments. Parser for the specifier syntax builds upon the Scenic-Language for autonomous driving.

Wrapper included for the Coppelia-Sim simulator using PyRep.

Setup / Running

The best way to try out ProbRobScene is to clone the git repo and try out some of the example scenarios:

git clone https://github.com/craigiedon/ProbRobScene.git

Raw Visualization

To sample from a raw scenario and just visualize the samples in matplotlib, run

python runScenarioRaw <scenarios/scenario-file> <max_generations>

CoppeliaSim Simulator

To run an example in simulation: First, make sure you have the latest version of Coppellia-Sim installed.

Next, install PyRep by following the instructions on their repository.

NOTE: for some combinations of CoppeliaSim + PyRep, users have reported getting the error:

ImportError: libcoppeliaSim.so.1: cannot open shared object file: No such file or directory

A workaround for this is to create a soft-link. Go to your Coppellia-Sim root and type:

ln -s libcoppeliaSim.so libcoppeliaSim.so.1

To run a scenario in CoppeliaSim, along with example robot controller from the paper, try:

python coppeliaTest.py

To load one of the example scenarios (without a controller), try:

python coppeliaView.py scenarios/<exampleName>

Using ProbRobScene in External Projects

You can install ProbRobScene as an external library dependency using pip by running the following command at the top level directory:

pip install .

NOTE: In order to use the coppelia-sim wrapper, you will still need to install CoppeliaSim and PyRep as discussed above.

Example scenarios:


CoppeliaSim

  • tableCube --- Dual arms mounted on desk with assorted cubes.
  • cupPour --- Table of cups filled with liquid. Another table with bowl for transfer.
  • gearInsert --- A gear with hole in it, and a a peg to insert it on.
  • swingingBucket --- A table with stacked cubes which need to be put into a wobbly swinging basket.
  • rotationRestuarant --- A stacked plate on a rotating sushi conveyor belt must be picked up and placed on a dining table.