Common tasks - AWS RoboMaker

Common tasks

This section contains common tasks for creating simulation world templates. Many of the tasks specify desired connections or desired shapes. Simulation WorldForge makes a best effort to generate worlds according to simulation world template parameters. Generated worlds might not always include all desired properties.

Specifying a list of rooms for a floor

The room type influences the floor plan by contributing to which rooms are adjacent. The room type is also used to determine the types of material for its flooring and walls and the types of furniture to randomly place by default. You may override the default flooring and walls material types and furniture types by room type or room name.

You can select from the following room types: Bedroom, Bathroom, Living Room, Dining Room, Kitchen, Hallway, Closet.

The following examples specifies a three-room house. The sizes and shapes of the rooms are determined by default.

Using the console
  1. In the Simulation world template edit screen, under Floor plan, choose Rooms.

  2. In the Rooms pane, choose Add room.

  3. Add details for the room. You can specify a room Name, Room type, Desired area and Desired aspect ratio.

  4. Choose Save to save the new room. Repeat until you have the rooms you desire. If you add too many, you can delete them from the Rooms pane.

Using the AWS CLI

You can use the following JSON in the templateBody as part of a call to create-world-template.

"Rooms": [ { "Type": "Bedroom", "Name": "My Master Bedroom", }, { "Type": "Bathroom", "Name": "My Ensuite", }, { "Type": "Kitchen", "Name": "My Kitchen", } ]

Requesting a long hallway

You can use the DesiredShape property to request the preferred shape of a room. Type has no affect on the shape. In the following example, the Hallway aspect ratio is low. When it is combined with a large enough Area, it indicates a desire for a long, narrow hallway. Simulation WorldForge attempts to generate rooms similar to the desired shape.

Using the console
  1. On the Simulation world template edit screen, under Floor plan, choose Rooms.

  2. In the Rooms pane, choose Add room.

  3. Specify a room Name, then choose Hallway for Room type.

  4. Specify a Desired area of 20 and a Desired aspect ratio of 4:1.

  5. Choose Save to save the hallway.

Using the AWS CLI

You can use the following JSON in the templateBody as part of a call to create-world-template.

"Rooms": [ { "Type": "Hallway", "Name": "My Hallway", "DesiredShape": { "Area": 20.0, "AspectRatio": { "x": 4, "y": 1 } } } ]

The valid room area range is 10 meters to 300 meters. The valid room aspect ratio range is 1:4 to 4:1.

Requesting a doorway between rooms

If you have two rooms, and the rooms share at least one wall, you can request a DesiredConnections between the two rooms. Simulation WorldForge tries to place the rooms adjacent and, depending on the ConnectionType, either place a Doorway in a random location along an adjacent wall or create an Opening by removing an adjacent wall entirely.

The following example requests an open connection for the living room and kitchen. It also requests a separate doorway connection for the bedroom and bathroom:

Using the console
  1. On the Simulation world template edit screen, under Floor plan, choose Connections.

  2. In the Connections pane, choose Add connection.

  3. In the Desired connections pane, select Opening for Connection type and then select a room for Location 1 and Location 2, such as "My Living Room" and "My Kitchen".

  4. Choose Save to save desired connections.

  5. Repeat to add a Door as a desired connection between two other locations, such as "My Bedroom" and "My Bathroom".

Using the AWS CLI

You can use the following JSON in the templateBody as part of a call to create-world-template.

"DesiredConnections": [ { "Location": [ "My Living Room", "My Kitchen" ], "ConnectionType": "Opening" }, { "Location": [ "My Bedroom", "My Bathroom" ], "ConnectionType": "Doorway" } ]

The valid number of connections per room is 4 and a maximum of one opening connection for each pair of rooms.

Applying a configuration to all rooms

Note

You can only apply a configuration to all rooms by using templates that are Version 2 and above. For more information, see Applying a configuration to all rooms.

You can use the Target.All keyword to apply a configuration to all rooms.

The following example changes the door state for all doors.

Using the console

The following procedure gives you the ability to apply a configuration for all the doors in your world. You can also apply a single configuration to all floors, material sets, walls, and furniture.

  1. On the Simulation world template edit screen, under Interiors, choose Doors.

  2. In the Doors pane, choose Add custom doors.

  3. For Set name, specify a name for your set of custom doors.

  4. For Rooms affected, specify All rooms.

  5. For Door state, choose the open state of the door.

  6. Choose Save to save the doors configuration.

Using the AWS CLI

You can use the following JSON in the templateBody as part of a call to create-world-template. The following example targets all doors within a doorway set.

"Interior": { "Doorways": { "DoorwaySets": [ { "Name": "your-doorway-set", "TargetSet": "Target.All", "Door": { "InitialState": { "OpenPosition": { "Percent": "percentage-that-you-specify" } } } } ] } }

Requesting doors in doorways

Note

You can only configure doorways to have doors using world templates that are Version 2 and above.

You can use a template to specify doors in doorways in your AWS RoboMaker Simulation WorldForge world.

You can specify the following types of doors:

  • Hinged door

You can configure the percentage in which these doors are open. For example, these are some open states that you can specify:

  • 0% open – closed

  • 50% open – halfway open

  • 70% open – mostly open

  • 100% open – entirely open

You can also choose to have AWS RoboMaker assign a randomized open percentage to each door.

You can use the following procedure to add doors to your doorways.

Using the console
  1. On the Simulation world template edit screen, under Interiors, choose Doors.

  2. In the Doors pane, choose Add custom doors.

  3. For Set name, name your custom door set.

  4. For Rooms affected under Location, choose the rooms that you want to have doors.

  5. For Door type under Customizations, choose the type of door that you're adding.

  6. Under Door state, choose whether the door is open, closed, partially open, or in a randomized state.

  7. Choose Save to save the configuration.

Using the AWS CLI

You can use the following JSON in the templateBody as part of a call to create-world-template.

"Interior": { "Doorways": { "DoorwaySets": [ { "Name": "your-doorway-set", "TargetSet": "the-doorways-that-you-want-to-target", "Door": { "InitialState": { "OpenPosition": { "Percent": "the-open-percentage-that-you-specify-for-the-doors-that-you're-targeting" } } } ] } }

Requesting no doors in doorways

Note

You can only explicitly specify no doors in doorways using world templates that are Version 2 and above.

You can use a template to explicitly specify that the doorways in your AWS RoboMaker Simulation WorldForge world have no doors in the doorways.

The following example requests that there are no doors in the doorways between rooms.

Using the console
  1. On the Simulation world template edit screen, under Interiors, choose Doors.

  2. In the Doors pane, choose Add custom doors.

  3. For the Rooms affected pane under Location, choose All rooms.

  4. For Door type under Customizations, choose No door in doorway.

  5. Choose Save.

Using the AWS CLI

You can use the following JSON in the templateBody as part of a call to create-world-template.

"Interior": { "Doorways": { "DoorwaySets": [ { "Name": "doorway-set-name", "TargetSet": "Target.All", "Door": null } ] }

Requesting a wide floor plan footprint

If you want a longer or wider floor plan layout that affects all of the rooms, you can request a DesiredAspectRatio for the Footprint. Simulation WorldForge uses this preference to influence the overall shape and positions of the rooms so the floor plan better fits the requested footprint aspect ratio. The desired aspect ratio is optional and defaults to a square.

The following example overrides the default square ratio (1:1) to a prefer a wider layout where all of the rooms are more likely to be stretched and placed to create a non-square footprint:

Using the console
  1. On the Simulation world template edit screen, under Floor plan, choose World dimensions.

  2. In the World dimensions pane, under Desired aspect ratio, specify a Width of 1 and a Length of 4.

  3. Choose Save to save the new room.

Using the AWS CLI

You can use the following JSON in the templateBody as part of a call to create-world-template.

"Footprint": { "DesiredAspectRatio": { "x": 1, "y": 4 } }

The valid range for DesiredAspectRatio is a range from 1:4 to 4:1.

Requesting a custom ceiling height

The floor plan ceiling height determines the height of the walls for all the rooms. The default ceiling height is 2.4 meters. In this example, we override the default to 3.2 meters:

Using the console
  1. On the Simulation world template edit screen, under Floor plan, choose World dimensions.

  2. In the World dimensions pane, specify a Ceiling height of 3.2.

  3. Choose Save to save the new room.

Using the AWS CLI

You can use the following JSON in the templateBody as part of a call to create-world-template.

"Ceiling": { "Height": 3.2 }

Specifying the same material types for floors in different rooms

Use either room types or room names and list multiple rooms for the interior flooring section. In the following example, all of the bedrooms, living rooms and dining rooms have a random floorboard material assigned.

Using the console
  1. On the Simulation world template edit screen, under Interiors, choose Flooring.

  2. In the Flooring pane, choose Add flooring.

  3. In the Custom flooring pane, specify a flooring Set name, such asor example, "Flooring Material Set 1".

  4. Under Filter type, choose By room type.

  5. Under Room types, select Bedrooms, Living rooms, and Dining rooms.

  6. Under Custom flooring, choose Add material and then choose Floorboard.

  7. Choose Save to save the flooring set.

Using the AWS CLI

You can use the following JSON in the templateBody as part of a call to create-world-template.

"Flooring": { "MaterialSets": [ { "Name": "Flooring Material Set 1", "TargetSet": { "RoomTypes": [ "Bedroom", "Living", "Dining" ] }, "SampleSet": { "MaterialTypes": [ "Floorboards" ] } } ] }

Specifying different material types for floors between rooms of the same type

In the following example, all of the bedrooms, living rooms and dining rooms have a random floorboard material assigned except for Bedroom 3. It is assigned a random carpet material.

Using the console
  1. On the Simulation world template edit screen, under Interiors, choose Flooring.

  2. In the Flooring pane, choose Add flooring.

  3. In the Custom flooring pane, specify a flooring Set name, such as Flooring Material Set 1.

  4. Under Filter type, choose By room type.

  5. Under Room types, select Bedrooms, Living rooms, and Dining rooms.

  6. Under Custom flooring, choose Add material and then choose Floorboard.

  7. Choose Save to save the flooring set.

  8. In the Flooring pane, choose Add flooring.

  9. In the Custom flooring pane, specify a flooring Set name, such as Flooring Material Set for Bedroom 3.

  10. Under Filter type, choose By room name.

  11. Under Room name, select a room name, such as Bedroom 3.

  12. Under Custom flooring, choose Add material and then choose Carpet.

  13. Choose Save to save the flooring set.

Using the AWS CLI

You can use the following JSON in the templateBody as part of a call to create-world-template.

"Flooring": { "MaterialSets": [ { "Name": "Flooring Material Set 1", "TargetSet": { "RoomTypes": [ "Bedroom", "Living", "Dining" ] }, "SampleSet": { "MaterialTypes": [ "Floorboards" ] } }, { "Name": "Flooring Material Set for Bedroom 3", "TargetSet": { "RoomNames": [ "Bedroom 3" ] }, "SampleSet": { "MaterialTypes": [ "Carpet" ] } } ] }

Specifying more and less furniture in rooms

You can specify how densely furniture is spaced by room names or room types. By default, rooms are randomly furnished with moderate spacing. In the following example, all bedrooms are randomly furnished with dense spacings. The living room and dining room are furnished sparsely. All other rooms are furnished by default.

Using the console
  1. On the Simulation world template edit screen, under Interiors, choose Furniture.

  2. In the Furniture pane, choose Add custom furniture.

  3. In the Custom furniture pane, specify a custom furniture Set name, such as Dense Furniture Arrangement.

  4. Under Filter type, choose By room type.

  5. Under Room types, select Bedrooms.

  6. Toggle Override furniture to use default furniture.

  7. Under Furniture density, choose Dense.

  8. Choose Save to save the furniture set.

  9. In the Furniture pane, choose Add custom furniture.

  10. In the Custom furniture pane, specify a custom furniture Set name, such as Sparse Furniture Arrangement.

  11. Under Filter type, choose By room name.

  12. Under Room names, select the rooms you want to have sparse furniture density, such as My Living Room and My Dining Room.

  13. Toggle Override furniture to use default furniture.

  14. Under Furniture density, choose Sparse.

  15. Choose Save to save the furniture set.

Using the AWS CLI

You can use the following JSON in the templateBody as part of a call to create-world-template.

"Furniture": { "FurnitureArrangements": [ { "Name": "Dense Furniture Arrangement", "TargetSet": { "RoomTypes": [ "Bedroom" ] }, "DesiredSpatialDensity": "Dense" }, { "Name": "Sparse Furniture Arrangement", "TargetSet": { "RoomNames": [ "My Living Room", "My Dining Room" ] }, "DesiredSpatialDensity": "Sparse" } ] }

Adding specific furniture types to all bedrooms and a single shared living/dining room

You can specify the types of furniture for a room by room names or room types. In the following example, all bedrooms are moderately furnished with random beds, desks, dressers, and floor lamps. The room “My living/dining room” is densely furnished with random dining tables, dining chairs, floor lamps, sofas, and coffee tables. All other rooms are furnished by default.

Using the console
  1. On the Simulation world template edit screen, under Interiors, choose Furniture.

  2. In the Furniture pane, choose Add custom furniture.

  3. In the Custom furniture pane, specify a custom furniture Set name, such as Bedroom Furniture.

  4. Under Filter type, choose By room type.

  5. Under Room types, select Bedrooms.

  6. Ensure Override furniture is selected. If it is not selected, Simulation WorldForge uses default furniture.

  7. Under Furniture types, choose Add furniture and then select Beds, Desks, Dressers, and Floorlamps.

  8. Choose Save to save the furniture set.

  9. In the Furniture pane, choose Add custom furniture.

  10. In the Custom furniture pane, specify a custom furniture Set name, such as Living and Dining Furniture.

  11. Under Filter type, choose By room name.

  12. Under Room names, select a room, such as My living and dining room.

  13. Ensure Override furniture is selected. If it is not selected, Simulation WorldForge uses default furniture.

  14. Under Furniture types, choose DiningTables, DiningChairs, FloorLamps, Sofas, and CoffeeTables.

  15. Under Furniture density, choose Dense.

  16. Choose Save to save the furniture set.

Using the AWS CLI

You can use the following JSON in the templateBody as part of a call to create-world-template.

"Furniture": { "FurnitureArrangements": [ { "Name": "Bedroom Furniture", "TargetSet": { "RoomTypes": [ "Bedroom" ] }, "SampleSet": { "ModelTypes": [ "Beds", "Desks", "Dressers", "FloorLamps" ] } } { "Name": "Living and Dining Furniture", "TargetSet": { "RoomNames": [ "My living and dining room" ] }, "SampleSet": { "ModelTypes": [ "DiningTables", "DiningChairs", "FloorLamps", "Sofas", "CoffeeTables" ], "DesiredSpatialDensity": "Dense" } } ] }

Specifying a room without furniture

Specify an empty list for the model set for the furnishing arrangement. All other rooms are furnished by default:

Using the console
  1. On the Simulation world template edit screen, under Interiors, choose Furniture.

  2. In the Furniture pane, choose Add custom furniture.

  3. In the Custom furniture pane, specify a custom furniture Set name, such as No furniture.

  4. Under Filter type, choose By room name.

  5. Under Room names, select the rooms that you want to have no furniture, such as My Spare Room.

  6. Ensure Override furniture is selected. If it is not selected, Simulation WorldForge uses default furniture.

  7. Under Furniture types, make sure no types are chosen.

  8. Choose Save to save the furniture set.

Using the AWS CLI

You can use the following JSON in the templateBody as part of a call to create-world-template.

"Furniture": { "FurnitureArrangements": [ { "Name": "No Furniture", "TargetSet": { "RoomNames": [ "My Spare Room" ] }, "SampleSet": { "ModelTypes": [] } } ] }