Skip to content

Commit f708cbb

Browse files
committed
update factors.md
1 parent 24c7043 commit f708cbb

File tree

2 files changed

+31
-30
lines changed

2 files changed

+31
-30
lines changed

docs/blobs.md

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
# Data `BlobEntry=>Blob`
22

3-
Many `BlobEntry`s from various location can all reference the same large and heavy binary data `Blob`. Furthermore, this system allows a distributed usage over a large networked system.
3+
Many `BlobEntry`s from various nodes in the graph can reference the `Blob`. A blob is simply just binary data that is uniquely identified through a uuid. This approach allows for distributed usage over a large networked system including limited connectivity situations.
44

55
:::{tip}
6-
`Blob`s are separate from `BlobEntry`s. Various nodes on the graph can have any number of `BlobEntry`s (including duplicates), but the user does not necessary have the need to pull the bandwidth heavy blobs across all parts of the system network.
6+
`BlobEntry`s and `Blob`s are separate separate by related objects. Various nodes on the graph can have any number of `BlobEntry`s (except for duplicate `blobentry.labels`). A user more likely to work the `BlobEntry`s, and only pull bandwidth heavy binary `Blob`s to differemt parts of the system network when needed. Similarly, these data blobs can be readily cached across the network, since blobs are immutable.
77
:::
88

9-
## What is a `BlobEntry`
9+
## What is a `BlobEntry`
1010

11-
Additional (large) data attached to variables exist in a few different ways. The primary method for storing additional large data as a `Blob`, however, a blob just "barcoded" binary blob. we use `BlobEntry`s to organize, find, share, distribute, make available and useful across the divergent network how a `Blob` is associated with the graph.
12-
13-
A blob entry is small about of structed data that holds reference information to find an actual binary blob which is possibly a massive amount of data.
11+
A blob entry is a small amount of structed data that holds reference information to find an actual binary blob which is possibly a massive amount of data. `BlobEntry`s are plentiful, lightweight, and allow users to more easily organize, find, share, distribute, the contextual information about a data blob over a divergent network how a `Blob` is associated with the graph. The primary method for storing additional large data as a `Blob`, however, a blob just "barcoded" binary blob of data with little context or meaning.
1412

1513
### Listing BlobEntries on a Node
1614

@@ -46,7 +44,7 @@ The entry object is well structured
4644

4745
A binary `Blob` is basically just a "barcoded" piece of data that can be associated (via individual `BlobEntry`s) multiple times across multiple graph nodes, sessions, or robots.
4846

49-
Data blobs can be fetched via, e.g. using the unique `.blobId` as primary (or `.originId` as secondary) reference. Also note that the blob itself may also be replicated across any number of blob stores, depending on the application:
47+
Data blobs can be fetched using the unique `.blobId` as primary (or `.originId` as secondary) reference. Also note that the blob itself may also be replicated across any number of blob stores, depending on the application:
5048
```python
5149
blob = getBlob(fgclient, entry.blobId]; checkhash=false) # legacy versions did not use .hash check
5250
# blob = await getBlobAsync(fgclient, entry.blobId]; checkhash=false)
@@ -57,10 +55,6 @@ The blob contains binary information, for example this `mimeType = application/o
5755
b'{"latitude":41.7325,"altitude":2.211,"header":{"stamp":{"secs":1670378554,"nsecs":000624417},"seq":91,"frame_id":"gps","_type":"ROS1/std_msgs/Header"},"status":{"status":0,"service":1},"position_covariance":[0.265225,0.0,0.0,0.0,0.265225,0.0,0.0,0.0,0.556516],"longitude":-49.946944,"_type":"ROS1/sensor_msgs/NavSatFix","position_covariance_type":2}'
5856
```
5957

60-
:::{tip}
61-
Depending on the blob store, it may also be possible to retrieve a blob using the `.originId` rather than `.blobId`.
62-
:::
63-
6458
:::{tip}
6559
A blob is owned by a `user` and only accessible by other users if allowed via approved roles or permissions.
6660
:::
@@ -72,7 +66,7 @@ A blob is owned by a `user` and only accessible by other users if allowed via ap
7266
## Adding BlobEntries
7367

7468
:::{warning}
75-
Adding `Blob` or `BlobEntry`s from the Python SDK are under construction and expected to be part of the v0.6.1 release. This functionality has already been released with the JuliaLang SDK.
69+
Adding `Blob` or `BlobEntry`s from the Python SDK are under construction and [expected to be part of the v0.6.1 release](https://github.com/NavAbility/NavAbilitySDK.py/milestone/6). This functionality has already been released with the JuliaLang SDK.
7670
:::
7771

7872
Blobs can be linked to any variable (future node) in the graph. This is easily done by adding a BlobEntry:
@@ -83,6 +77,10 @@ res = addBlobEntry(fgclient, 'x12', entries[1].id, entries[1].label, len(blob),
8377

8478
## Adding New Blobs
8579

80+
:::{warning}
81+
Adding `Blob` or `BlobEntry`s from the Python SDK are under construction and [expected to be part of the v0.6.1 release](https://github.com/NavAbility/NavAbilitySDK.py/milestone/6). This functionality has already been released with the JuliaLang SDK.
82+
:::
83+
8684
It is also possible to push data blobs:
8785
```python
8886
client = NavAbilityHttpsClient()

docs/factors.md

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,35 @@ Factors represent the interaction between particular variables. Factors define t
66

77
All factors in a graph can be listed via:
88
```python
9-
flbls = await listFactors(client, context)
9+
flbls = listFactors(fgclient)
10+
# flbls = await listFactorsAsync(fgclient)
1011
# ["x0f_8ebc", ...]
1112
```
1213

13-
Note the factor labels are autogenerated based on the variables and a random sequence. For example a prior factor might have the label `x0f_8ebc`, while factor between three variables might be `x7x49l4f_654t`.
14+
```{eval-rst}
15+
.. autofunction:: navability.services.listFactors
16+
17+
**Note** the factor labels are autogenerated based on the variables and a random sequence. For example a prior factor might have the label `x0f_8ebc`, while factor between three variables might be `x7x49l4f_654t`.
1418
1519
A specific factor can be retrieved using the label:
1620
```python
17-
f = await getFactor(client, context, 'x0f_8ebc')
18-
# Dict{String, Any} with 8 entries:
19-
# "label" => "x0f_8ebc"
20-
# "_variableOrderSymbols" => Any["x0"]
21-
# "data" => "eyJlbGltaW5hdGVkIjpmYWxzZSwicG90ZW50aWFsdXNlZCI6Z…
22-
# "tags" => Any["FACTOR"]
23-
# "timestamp" => "2023-02-11T22:36:49.171Z"
24-
# "_version" => "0.18.6"
25-
# "fnctype" => "PriorPose2"
26-
# "solvable" => 1
21+
f = getFactor(fgclient, 'x7942x7943f_c2c6')
22+
# f = await getFactorAsync(fgclient, 'x7942x7943f_c2c6')
23+
24+
# <Factor(label=x7942x7943f_c2c6,variables=['x7942', 'x7943'])>
2725
```
2826

29-
<!-- ```@docs
30-
listFactors
31-
getFactor
32-
``` -->
27+
```{eval-rst}
28+
.. autofunction:: navability.services.getFactor
29+
```
30+
31+
The `Factor` object consists of the following
32+
33+
```{eval-rst}
34+
.. autoclass:: navability.entities.Factor
35+
```
3336

34-
## App Graph Visualization
37+
<!-- ## App Graph Visualization
3538
3639
The NavAbilityApp can also visualize a specific factor graph session, and a convenient link generator can be used to simplify the session filtering criteria:
3740
```python
@@ -53,7 +56,7 @@ The NavAbilityApp Graph visualization page can also be found in the hamburger me
5356
5457
<!-- ```@docs
5558
GraphVizApp
56-
``` -->
59+
``` --> -->
5760

5861
## SDK Supported Factors
5962

0 commit comments

Comments
 (0)