Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions msg/SimulatorFeatures.msg
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ uint8 WORLD_UNLOADING = 43 # Supports UnloadWorld interface
uint8 WORLD_INFO_GETTING = 44 # Supports GetCurrentWorld interface
uint8 AVAILABLE_WORLDS = 45 # Supports GetAvailableWorlds interface

uint8 SPAWNING_ARRAY = 50 # Support array spawning (SpawnEntities)

uint16[] features # A list of simulation features as specified by the list above.

# A list of additional supported formats for spawning, which might be empty. Values may include
Expand Down
46 changes: 46 additions & 0 deletions srv/SpawnEntities.srv
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Spawn entities (a robot, other object) by name or URI
# Support for this interface is indicated through the SPAWNING_ARRAY value in GetSimulationFeatures.

string names[] # A list of names given to every entity
# If string is empty, a name field in the uri file or resource_string will be used,
# if supported and not empty (e.g. "name" field in SDFormat, URDF).
# If the name is still empty or not unique (as determined by the simulator),
# the service returns a generated name in the entity_name response field if the
# allow_renaming field is set to true. Otherwise, the service call fails and an
# error is returned.
bool allow_renaming[] # Determines whether the spawning succeeds with a non-unique name.
# If it is set to true, the user should always check entity_name response field
# and use it for any further interactions.

Resource entity_resources[] # List of resources such as SDFormat, URDF, USD or MJCF file, a native prefab, etc.
# Valid URIs can be determined by calling GetSpawnables first.
# Check simulator format support via the spawn_formats field in GetSimulatorFeatures.
# Using resource_string is supported if GetSimulatorFeatures includes
# the SPAWNING_RESOURCE_STRING feature.

string entity_namespaces[] # Spawn entities with theirs interfaces under those namespaces.
geometry_msgs/PoseStamped initial_poses[] # Array of initial poses for every enttiy.
# The header contains a reference frame, which defaults to global "world" frame.
# This frame must be known to the simulator, e.g. of an object spawned earlier.
# The timestamp field in the header is ignored.

---

# Additional result.result_code values for this service. Check result.error_message for further details.
uint8 NAME_NOT_UNIQUE = 101 # Given name is already taken by entity and allow_renaming is false.
uint8 NAME_INVALID = 102 # Given name is invalid in the simulator (e.g. does not meet naming
# requirements such as allowed characters). This is also returned if name is
# empty and allow_renaming is false.
uint8 UNSUPPORTED_FORMAT = 103 # Format for uri or resource string is unsupported. Check supported formats
# through GetSimulatorFeatures service, in spawn_formats field.
uint8 NO_RESOURCE = 104 # Both uri and resource string are empty.
uint8 NAMESPACE_INVALID = 105 # Namespace does not meet namespace naming standards.
uint8 RESOURCE_PARSE_ERROR = 106 # Resource file or string failed to parse.
uint8 MISSING_ASSETS = 107 # At least one of resource assets (such as meshes) was not found.
uint8 UNSUPPORTED_ASSETS = 108 # At least one of resource assets (such as meshes) is not supported.
uint8 INVALID_POSE = 109 # initial_pose is invalid, such as when the quaternion is invalid or position
# exceeds simulator world bounds.

Result results[]
string entity_names[] # List of names of spawned entities, guaranteed to be unique in the simulation.
# If allow_renaming is true, it may differ from the request name field.