Previous
SLAM
The world state store service API allows you to retrieve a list of world objects. You can use this list to create custom visualizers to render spatial data related to a machine on the machine’s VISUALIZE tab.
The world state store service supports the following methods:
Method Name | Description |
---|---|
listUUIDs | List all world state transform UUIDs. |
GetTransform | Get a world state transform by UUID. |
StreamTransformChanges | Stream changes to world state transforms. |
DoCommand | Execute model-specific commands that are not otherwise defined by the service API. |
GetResourceName | Get the ResourceName for this Resource with the given name. |
Close | Safely shut down the resource and prevent further use. |
List all world state transform UUIDs.
Parameters:
extra
(Mapping[str, Any]) (optional): Extra options to pass to the underlying RPC call.timeout
(float) (optional): An option to set how long to wait (in seconds) before calling a time-out and closing the underlying RPC call.Returns:
Example:
worldstatestore = WorldStateStoreClient.from_robot(robot=machine, name="builtin")
uuids = await worldstatestore.list_uuids()
For more information, see the Python SDK Docs.
Parameters:
extra
(None) (optional): Additional arguments to the method.callOptions
(CallOptions) (optional)Returns:
Example:
const worldStateStore = new VIAM.WorldStateStoreClient(
machine,
'builtin'
);
// Get all transform UUIDs
const uuids = await worldStateStore.listUUIDs();
For more information, see the TypeScript SDK Docs.
Get a world state transform by UUID.
Parameters:
uuid
(bytes) (required): The UUID of the transform to retrieve.extra
(Mapping[str, Any]) (optional): Extra options to pass to the underlying RPC call.timeout
(float) (optional): An option to set how long to wait (in seconds) before calling a time-out and closing the underlying RPC call.Returns:
Example:
worldstatestore = WorldStateStoreClient.from_robot(robot=machine, name="builtin")
transform = await worldstatestore.get_transform(uuid=b"some-uuid")
For more information, see the Python SDK Docs.
Parameters:
uuid
(string) (required): The UUID of the transform to retrieve.extra
(None) (optional): Additional arguments to the method.callOptions
(CallOptions) (optional)Returns:
Example:
const worldStateStore = new VIAM.WorldStateStoreClient(
machine,
'builtin'
);
// Get a specific transform by UUID
const transform = await worldStateStore.getTransform(uuid);
For more information, see the TypeScript SDK Docs.
Stream changes to world state transforms.
Parameters:
extra
(Mapping[str, Any]) (optional): Extra options to pass to the underlying RPC call.timeout
(float) (optional): An option to set how long to wait (in seconds) before calling a time-out and closing the underlying RPC call.Returns:
Example:
worldstatestore = WorldStateStoreClient.from_robot(robot=machine, name="builtin")
async for change in worldstatestore.stream_transform_changes():
print(f"Transform {change.transform.uuid} {change.change_type}")
For more information, see the Python SDK Docs.
Parameters:
extra
(None) (optional): Additional arguments to the method.callOptions
(CallOptions) (optional)Returns:
Example:
const worldStateStore = new VIAM.WorldStateStoreClient(
machine,
'builtin'
);
// Stream transform changes
const stream = worldStateStore.streamTransformChanges();
for await (const change of stream) {
console.log(
'Transform change:',
change.changeType,
change.transform
);
}
For more information, see the TypeScript SDK Docs.
Execute model-specific commands that are not otherwise defined by the service API.
Most models do not implement DoCommand
.
Any available model-specific commands should be covered in the model’s documentation.
If you are implementing your own vision service and want to add features that have no corresponding built-in API method, you can implement them with DoCommand
.
Parameters:
command
(Mapping[str, ValueTypes]) (required): The command to execute.timeout
(float) (optional): An option to set how long to wait (in seconds) before calling a time-out and closing the underlying RPC call.Returns:
Example:
my_world_state_store_svc = World_State_StoreClient.from_robot(robot=machine, "my_world_state_store_svc")
my_command = {
"cmnd": "dosomething",
"someparameter": 52
}
await my_world_state_store_svc.do_command(command=my_command)
For more information, see the Python SDK Docs.
Parameters:
command
(Struct) (required): The command to execute.callOptions
(CallOptions) (optional)Returns:
Example:
import { Struct } from '@viamrobotics/sdk';
const result = await resource.doCommand(
Struct.fromJson({
myCommand: { key: 'value' },
})
);
For more information, see the TypeScript SDK Docs.
Get the ResourceName for this Resource with the given name.
Parameters:
name
(str) (required): The name of the Resource.Returns:
Example:
my_world_state_store_svc_name = WorldStateStoreClient.get_resource_name("my_world_state_store_svc")
For more information, see the Python SDK Docs.
Parameters:
Returns:
Example:
world_state_store.name
For more information, see the TypeScript SDK Docs.
Safely shut down the resource and prevent further use.
Parameters:
Returns:
Example:
my_world_state_store_svc = World_State_StoreClient.from_robot(robot=machine, name="my_world_state_store_svc")
await my_world_state_store_svc.close()
For more information, see the Python SDK Docs.
Was this page helpful?
Glad to hear it! If you have any other feedback please let us know:
We're sorry about that. To help us improve, please tell us what we can do better:
Thank you!