Creating BEHAVIOR Activity Definitions in BDDL

Step-by-step guide to using our annotator to create new definitions for benchmarking embodied agents.

Read through the instructions below for an overview on how to create an activity definition:

  1. Choose an activity you want to define, like “putting away groceries” or “washing dishes”. You can choose from the list of BEHAVIOR activities or you can make your own!
  2. Define the activity in BDDL. You can do this a) with our visual-BDDL annotator at the link below, b) with your own version of our annotation system (download the code), or c) by writing your own BDDL file directly - see the original definitions for examples. Note that our annotator has detailed instructions and checks your definition for correctness! Process for our online annotator:
    1. Enter your activity and choose rooms for it.
    2. Choose objects to use and add in your scene.
    3. If you want, read through an instruction sheet on visual BDDL - even if you know predicate logic well, you’ll learn about our custom operators!
    4. Write an initial state and goal expression in BDDL. The initial state should be completely ground and concrete, not general - you’re making an example for a robot to enter. The goal expression should define what success looks like given your initial state, and should be as general as possible.
    5. If there are any issues with the BDDL, correct them based on the automated feedback.
    6. Collect your definition!

You can now try out the activity annotator by clicking the link at the end of these instructions - it will have more guidance on how to create a definition. If you want to learn about next steps after creating a definition, keep reading!

  1. Check the feasibility of your definition. Your definition will be correct coming out of our annotator, but it might not fit in the scene - if you ask for thirty watermelons in one cabinet, it’s probably not going to work out. To check the feasibility of your definition, try sampling it in iGibson 2.0 and edit it according to the sampler’s feedback if necessary. Use this example of iGibson’s sampling functionality as a guide to try your definition. If you’d like to use a different simulator, you can use the code called in the example to guide your implementation.
  2. Use your awesome new activity definition to test embodied agents! Also, let us know about it! The submission you make to our online annotator will not yet have been checked for feasibility, so once you have feasible definitions, you can submit to BEHAVIOR by making a pull request to the bddl repo.

Click here to access the activity annotator.