# OpenUSD types

> Learn about the OpenUSD prim types and APIs provided by the Wandelbots NOVA Isaac Sim extension.

The extension provides a new set of OpenUSD prim types and APIs which represent robots, tools and more to configure prims connected to NOVA.

To utilize these prim types, you need to install the Wandelbots USD extension in NVIDIA Isaac Sim. This extension will automatically be installed as dependency of the IsaacSim extension.

![Wandelbots USD extension displayed in NVIDIA Isaac Sim](/assets/nova/omniservice/openusd/wandelbots_usd_extension.webp)

> **Info:** The extension provides OpenUSD types and APIs.
>
> 1. Activate loading upon Isaac Sim start.
> 2. Restart Isaac Sim after installing the extension.

### Motion group API

The motion group API defines properties to connect an articulation root to a NOVA motion group which are, e.g., applied to every robot from the asset library.

The properties can be directly edited in the properties panel of the prim. You can manually add the motion like any other USD API or
use Robot Pad to select a motion group from your NOVA instance.

As the values will be stored within your USD file, you can disable the motion group connection by unchecking the enabled checkbox

![Motion group API properties displayed in IsaacSim](/assets/nova/omniservice/openusd/motion_group_api_properties.webp)

### Tool API

The tool API can be applied to any prim via the context menu.

A tool is a device attached to the flange of the motion group or [articulation](https://docs.omniverse.nvidia.com/kit/docs/omni_physics/latest/dev_guide/rigid_bodies_articulations/articulations.html).

The tool API assumes the tool to be attached via a [physical joint](https://docs.omniverse.nvidia.com/kit/docs/omni_physics/latest/dev_guide/rigid_bodies_articulations/joints.html), e.g., a fixed joint to the flange link of the robot.

![Tool API properties displayed in IsaacSim](/assets/nova/omniservice/openusd/tool_api_properties.webp)

As property, the API defines the rigid tool body as a link body which is connected to the flange link.
The extension inspects the robot assembly by traversing the robot's physical joints. Connections based on tree hierarchy or naming conventions are not ignored.

### Ghost object API

You can create a ghost object via the create context menu of a prim with `Tool API` applied.

Query the ghost objects via the Teaching endpoint `/omniservice/api/v2/teaching/ghost-objects`.

Video: [/video/omniservice/openusd/create\_ghost\_object.webm](/video/omniservice/openusd/create_ghost_object.webm)

### TCP prim

The TCP prim is an explicit [Xformable](https://openusd.org/release/api/class_usd_geom_xformable.html) prim which represents a TCP in NOVA. The extension allows Xforms with a `tcp_*` name prefix as well.

A TCP represents the tool center point of the motion group articulation.

![TCP displayed in Robot Pad](/assets/nova/omniservice/openusd/tcp_prim.webp)

Defining such types allows the extension to query for TCPs and provide poses for prims.

> **Info:** Use these prims to directly create TCPs in NOVA provided they are the child of a tool with `Tool API` applied.
> Open the prim context menu and execute `Create` -> `Wandelbots NOVA` -> `TCP in NOVA`.
