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
-
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".
-
Modification of layout of the environment
- Add/duplicate/delete GameObjects under the "RoomLayout/Others" such as "wall".
-
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.
- Add/duplicate/delete GameObjects under the "RoomLayout/Furniture".
-
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").
- Add/duplicate/delete GameObjects under 'GraspableObjects' as child objects.
-
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).
- Duplicate the GameObject such as 'LayoutX#01/Destinations/destination#01'.
-
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'.
-
Modification of the Configuration file
- Modify the 'taskInfoList' in the HumanNaviConfig.json