AdvancedExecutionProcedures - RoboCupatHomeSim/human-navigation-unity GitHub Wiki

Advanced Execution Procedures

How to Create New Environments

Configuration of Environment

Environments are in the Unity Scene such as "LayoutX#01".
Each environment includes 'RoomLayout', 'GraspableObjects' and 'Destinations'.

Creating new environment

  1. Set up a new environment object

    • Duplicate an existing environment in the Unity Scene such as "LayoutX#01".
    • Change the GameObject name of the environment (e.g., "LayoutX#01" --> "LayoutZ#01").
      The environment name should be unique. The capital letter after 'Layout' (i.e. 'X') denotes the layout of furniture.
      The number (i.e. '#01') denote the layout of graspable objects.
    • Set a tag in the inspector of the duplicated environment to "Environment".
  2. Modification of layout of the environment

    • Add/duplicate/delete GameObjects under the "RoomLayout/Others" such as "wall".
  3. Modification of layout of furniture

    • Add/duplicate/delete GameObjects under the "RoomLayout/Furniture".
      Basically, prefabs of furniture objects are in the "Assets/Competition/HumanNavi/Models/Furniture" and "Assets/Competition/HumanNavi/Prefabs/Furniture".
    • Set a unique GameObject name. The name should consist of a label name and an ID number (e.g. "door#01").
    • Set "Furniture" tag.
  4. Setup of graspable objects

    • Add/duplicate/delete GameObjects under 'GraspableObjects' as child objects.
      Prefabs of graspable objects are in the "Assets/Competition/HumanNavi/Prefabs/Graspables".
      The graspable object have 'Rigidbody', 'Interactable(Script)', 'Human Navi Throwable(Script)', 'Velocity Estimator(Script)', and a 'Graspables' tag.
    • Change positons and orientation of the GameObject.
    • Set a unique GameObject name. The name should consist of a label name and ID number (e.g. "pink_cup#01").
  5. Setup of destination candidates

    • Duplicate the GameObject such as 'LayoutX#01/Destinations/destination#01'.
      The GameObject have a 'Human Navi Placement Checker (Script)'.
    • Set a unique GameObject name (e.g. "destination#02").
    • Change the position/orientation of the GameObject. The scale of the GameObject should be (x,y,z)=(1,1,1).
    • Change the size of BoxCollider. The center position shoul be (x,y,x)=(0, 0.5 * size of Y, 0).
  6. Assignment of the environment to the moderator

    • Change the size parameter of 'Environments' in the "Human Navi Session manager (Script)" of "Moderator" object.
    • Drag the GameObject of the new environment to an 'Element' in 'Environment'.
  7. Modification of the Configuration file

    • Modify the 'taskInfoList' in the HumanNaviConfig.json