Graph
- class eagerx.core.graph.Graph(state)[source]
The Graph API allows users to form a graph of connected nodes and objects.
- add(entities)[source]
Add nodes/objects to the graph.
- Parameters
entities (
Union
[NodeSpec
,ResetNodeSpec
,ObjectSpec
,EngineSpec
,List
[Union
[NodeSpec
,ResetNodeSpec
,ObjectSpec
,EngineSpec
]]]) – Nodes/objects to add.- Return type
None
- add_component(entry=None, action=None, observation=None)[source]
Selects an available component entry (e.g. input, output, etc…) that was not already selected.
- Parameters
entry (
Optional
[SpecView
]) – Selects the entry, so that it can be connected.action (
Optional
[str
]) – Adds a disconnected action entry.observation (
Optional
[str
]) – Adds a disconnected observation entry.
- Return type
None
- connect(source=None, target=None, action=None, observation=None, window=None, delay=None, skip=None)[source]
Connect an action/source (i.e. node/object component) to an observation/target (i.e. node/object component).
- Parameters
source (
Optional
[SpecView
]) – Compatible source types areoutputs
,sensors
, andstates
.target (
Optional
[SpecView
]) – Compatible target types areinputs
,actuators
,targets
, andfeedthroughs
.action (
Optional
[str
]) – Name of the action to connect (and add).observation (
Optional
[str
]) – Name of the observation to connect (and add).window (
Optional
[int
]) –A non-negative number that specifies the number of messages to pass to the node’s
callback()
.window = 1: Only the last received input message.
window = x > 1: The trailing last x received input messages.
window = 0: All input messages received since the last call to the node’s
callback()
.
Note
With window = 0, the number of input messages may vary and can even be zero.
delay (
Optional
[float
]) – A non-negative simulated delay (seconds). This delay is ignored ifsimulate_delays
= True in the engine’sspec()
.skip (
Optional
[bool
]) – Skip the dependency on this input during the first call to the node’scallback()
. May be necessary to ensure that the connected graph is directed and acyclic.
- Return type
None
- classmethod create(nodes=None, objects=None)[source]
Create a new graph with nodes and objects.
- Parameters
nodes (
Union
[NodeSpec
,ResetNodeSpec
,List
[Union
[NodeSpec
,ResetNodeSpec
]],None
]) – Nodes to add.objects (
Union
[ObjectSpec
,List
[ObjectSpec
],None
]) – Objects to add.
- Return type
- Returns
The graph.
- disconnect(source=None, target=None, action=None, observation=None, remove=False)[source]
Disconnects a source/action from a target/observation.
- Parameters
source (
Optional
[SpecView
]) – Compatible source types areoutputs
,sensors
, andstates
.target (
Optional
[SpecView
]) – Compatible target types areinputs
,actuators
,targets
, andfeedthroughs
.action (
Optional
[str
]) – Name of the action to connect (and add).observation (
Optional
[str
]) – Name of the observation to connect (and add).remove (
bool
) – Flag to also remove observations/actions if they are left disconnected after the entry was disconnected. Actions are only removed if they are completely disconnected.
- Return type
None
- get(entry=None, action=None, observation=None, parameter=None)[source]
Fetches the parameters of a node/object/action/observation.
- Parameters
entry (
Union
[SpecView
,EntitySpec
,None
]) – The entry whose parameters are fetched.action (
Optional
[str
]) – Action name whose parameters are fetched.observation (
Optional
[str
]) – observation name whose parameters are fetched.parameter (
Optional
[str
]) – If only a single parameter needs to be fetched.
- Return type
Any
- Returns
Parameters
- get_spec(name)[source]
Get Spec from the graph
- Parameters
name (
str
) – Name- Return type
EntitySpec
- Returns
The specification of the entity.
- gui(interactive=True, resolution=None, filename=None)[source]
Opens a graphical user interface of the graph.
Note
Requires eagerx-gui:
pip3 install eagerx-gui
- Parameters
interactive (
Optional
[bool
]) – If True, an interactive application is launched. Otherwise, an RGB render of the GUI is returned. This could be useful when using a headless machine.resolution (
Optional
[List
[int
]]) – Specifies the resolution of the returned render when interactive is False. If interactive is True, this argument is ignored.filename (
Optional
[str
]) – If provided, the GUI is rendered to an svg file with this name. If interactive is True, this argument is ignored.
- Return type
Optional
[ndarray
]- Returns
RGB render of the GUI if interactive is False.
- is_valid(plot=True)[source]
Checks the validity of the graph.
Checks if all selected actions, observations,
inputs
,actuators
,targets
, andfeedthroughs
are connected.Checks if the graph is directed and acyclic.
- Parameters
plot – Flag to plot the graph. Can be helpful to identify cycles in the graph that break the required acyclic property.
- Return type
bool
- Returns
flag that specifies the validity of the graph.
- classmethod load(file)[source]
Loads the graph state.
The state is loaded in .yaml format and contains the state of every added node, object, action, and observation and the connections between them.
- Parameters
file (
str
) – A string giving the name (and the file if the file isn’t in the current working directory).
- remove(names, remove=False)[source]
Removes nodes/objects from the graph.
First, all associated connections are disconnected.
Then, removes the node/object.
- Parameters
names (
Union
[str
,EntitySpec
,List
[Union
[str
,EntitySpec
]]]) – Either the name or spec of the node/object that is to be removed.remove (
bool
) – Flag to also remove observations/actions if they are left disconnected after the node/object was removed. Actions are only removed if they are completely disconnected.
- Return type
List
- Returns
list of disconnected connections.
- remove_component(entry=None, action=None, observation=None, remove=False)[source]
Deselects a component entry (e.g. input, output, etc…) that was selected.
First, all associated connections are disconnected.
Then, deselects the component entry. For feedthroughs, it will also remove the corresponding output entry.
- Parameters
entry (
Optional
[SpecView
]) – Deselects the entry.action (
Optional
[str
]) – Removes an action entry.observation (
Optional
[str
]) – Removes an observation entryremove (
bool
) – Flag to also remove observations/actions if they are left disconnected after the entry was removed. Actions are only removed if they are completely disconnected.
- Return type
None
- rename(new, action=None, observation=None)[source]
Renames an action/observation.
- Parameters
new (
str
) – New name.action (
Optional
[str
]) – Old action name.observation (
Optional
[str
]) – Old observation name.
- Return type
None
- render(source, rate, processor=None, window=None, delay=None, skip=None, render_cls=None, process=0, encoding='bgr', **kwargs)[source]
Visualize rgb images produced by a node/sensor in the graph. The rgb images must be of dtype=uint8 and shape=(height, width, 3).
- Parameters
source (
SpecView
) – Compatible source types areoutputs
andsensors
.rate (
float
) – The rate (Hz) at which to render the images.processor (
Optional
[ProcessorSpec
]) – Processes the received message before passing it to the target node’scallback()
.window (
Optional
[int
]) –A non-negative number that specifies the number of messages to pass to the node’s
callback()
.window = 1: Only the last received input message.
window = x > 1: The trailing last x received input messages.
window = 0: All input messages received since the last call to the node’s
callback()
.
Note
With window = 0, the number of input messages may vary and can even be zero.
delay (
Optional
[float
]) – A non-negative simulated delay (seconds). This delay is ignored ifsimulate_delays
= True in the engine’sspec()
.skip (
Optional
[bool
]) – Skip the dependency on this input during the first call to the node’scallback()
. May be necessary to ensure that the connected graph is directed and acyclic.render_cls (
Optional
[Type
[Node
]]) – TheNode
of the render node. By default, it uses the standard RenderNode. In Google colab, the ColabRender class is used.process (
int
) – Process in which the render node is launched. Seeprocess
for all options.encoding (
str
) – The encoding (bgr or rgb) of the render source.kwargs – Optional arguments required by the render node.
- save(file)[source]
Saves the graph state.
The state is saved in .yaml format and contains the state of every added node, object, action, and observation and the connections between them.
- Parameters
file (
str
) – A string giving the name (and the file if the file isn’t in the current working directory).- Return type
None
- set(mapping, entry=None, action=None, observation=None, parameter=None)[source]
Sets the parameters of a node/object/action/observation.
- Parameters
mapping (
Any
) – Either a mapping with key = parameter, or a single value that corresponds to the optional parameter argument.entry (
Optional
[SpecView
]) – The entry whose parameters are mutated.action (
Optional
[str
]) – Action name whose parameters are mutated.observation (
Optional
[str
]) – observation name whose parameters are mutated.parameter (
Optional
[str
]) – If only a single value needs to be set. See documentation for mapping.
- Return type
None