You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,7 @@ evalio can be used both as a python library and as a CLI for both datasets and p
28
28
Once evalio is installed, datasets can be listed and downloaded via the CLI interface. For example, to list all datasets and then download a sequence from the hilti-2022 dataset,
29
29
```bash
30
30
evalio ls datasets
31
-
evalio download hilti_2022/basement_2
31
+
evalio dl hilti_2022/basement_2
32
32
```
33
33
34
34
Once downloaded, a trajectory can then be easily used in python,
@@ -108,4 +108,4 @@ If you use evalio in your research, please cite the following paper,
Copy file name to clipboardExpand all lines: docs/examples/dataset.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -70,7 +70,7 @@ Additionally, there is a number of optional methods that you can implement to ad
70
70
71
71
defvehicle(self) -> str: ...
72
72
73
-
defdownload(self) -> str: ...
73
+
defdownload(self) -> None: ...
74
74
75
75
defquick_len(self) -> Optional[int]: ...
76
76
```
@@ -82,4 +82,4 @@ The next three are again self-explanatory, all of which provide information for
82
82
83
83
`quick_len` returns a hardcoded number of scans in a dataset, used for `evalio ls` and for computing time estimates in `evalio run`. If not set, evalio will load the data to compute the length.
84
84
85
-
That's all there is to it! Datasets are fairly simple - mostly just parameter setting and easy-to-use iterator wrappers. If you have an dataset implementation of an open-source dataset, feel free to make a PR to add it to evalio so others can use it as well.
85
+
That's all there is to it! Datasets are fairly simple - mostly just parameter setting and easy-to-use iterator wrappers. If you have an dataset implementation of an open-source dataset, feel free to make a PR to add it to evalio so others can use it as well.
Copy file name to clipboardExpand all lines: docs/examples/evaluation.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,6 +63,6 @@ Results will be saved to the `output_dir` specified in the config file, with nes
63
63
64
64
Once trajectories have been run, statistics can be calculated,
65
65
```bash
66
-
evalio stats -d results -m mean -w 200 -s RTEt
66
+
evalio stats results --metric mean --w-meters 200 --sort RTEt_200.0m
67
67
```
68
-
With `-m/--metric` specifying the metric to calculate with options including mean, median, and sse and `-w/--window` specifying the window size for RTE, with a default of 100 scans. Only first part of all trajectories can also be done using the `-l/--length` option. Sorting of the results can be done with the `-s/--sort` option, with any column heading being an allowed option.
68
+
With `--metric` specifying the metric to calculate with options including mean, median, and sse, and `--w-meters` / `--w-seconds` specifying RTE windows (defaults to `--w-meters 30` and can be repeated). Only first part of all trajectories can also be done using the `-l/--length` option. Sorting of the results can be done with `-S/--sort`, with any column heading being an allowed option.
@@ -93,6 +93,8 @@ We'll cover each section of methods in turn.
93
93
94
94
The first four methods are all static methods that provide information about the pipeline. `version`, `url`, and `name` are all self-explanatory. `default_params` is a static method that returns a dictionary of the default parameters for the pipeline. This is used to verify parameters before they are passed in, as well as ensure a consistent output for each run.
95
95
96
+
In C++ there is additionally a number of helper type conversion functions that can make converting between iterators, point types, and geometry types simpler. A good example of this can be found in the `lio_sam.h` binding where it is used to convert pose and point types. These converters can additionally be leveraged by the `save` methods described below.
97
+
96
98
## Getters
97
99
98
100
The next two methods are getters for the pose and map. The pose is the most up-to-date estimate for the IMU and is polled after each lidar measurement is passed in.
@@ -112,7 +114,11 @@ Arguably the most important part.
112
114
113
115
`add_imu` is called for each IMU measurement. This is where the IMU data is processed and used to update the pose.
114
116
115
-
`add_lidar` is called for each lidar measurement. This is where the lidar data is processed and used to update the map. It returns a list of features were extracted from the scan and are used for visualization.
117
+
`add_lidar` is called for each lidar measurement. This is where the lidar data is processed and used to update the map.
118
+
119
+
Saving poses can be done asynchronously, using `save(stamp, pose)`. In C++, the type of `pose` can be anything that has the method `evalio::convert<evalio::SE3>(const MyPose& pose)` implemented.
120
+
121
+
For visualization, features can be save similarly with either `save(stamp, {"key": features})` in python, or `save(stamp, "key1", feat1, "key2", feat2)` in C++. Again, `feat1` and `feat2` can be any type that are iterators with their internal point types convertible to `evalio::Point`.
116
122
117
123
## C++ Building
118
124
@@ -125,11 +131,11 @@ NB_MODULE(_core, m) {
125
131
126
132
// Only have to override the static methods here
127
133
// All the others will be automatically inherited from the base class
That's all there is to it! Pipelines should be fairly easy to implement and are usually just a simple wrapper around your existing code to provide a common interface. Once your pipeline is open-source/published/etc, feel free to make a PR to add it to evalio. This both improves the visibility of your work and of evalio.
154
+
That's all there is to it! Pipelines should be fairly easy to implement and are usually just a simple wrapper around your existing code to provide a common interface. Once your pipeline is open-source/published/etc, feel free to make a PR to add it to evalio. This both improves the visibility of your work and of evalio.
Copy file name to clipboardExpand all lines: docs/install.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ make
23
23
```
24
24
25
25
### Pipelines
26
-
By default, pipelines are not included due to their large dependencies. We use vpckg to handle a reliable build of these dependencies and pipelines. vcpkg and the pipelines can be setup via running
26
+
By default, pipelines are not included due to their large dependencies. We use vcpkg to handle a reliable build of these dependencies and pipelines. vcpkg and the pipelines can be setup via running
Copy file name to clipboardExpand all lines: docs/quickstart.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ evalio can be used both as a python library and as a [CLI](ref/cli.md) for both
12
12
Once evalio is installed, datasets can be listed and downloaded via the [CLI](ref/cli.md) interface. For example, to list all datasets and then download a sequence from the hilti-2022 dataset,
13
13
```bash
14
14
evalio ls datasets
15
-
evalio download hilti_2022/basement_2
15
+
evalio dl hilti_2022/basement_2
16
16
```
17
17
evalio downloads data to the path given by `-D`, `EVALIO_DATA` environment variable, or if both are unset to the local folder `./evalio_data`. All the trajectories in a dataset can also be downloaded by using the wildcard `hilti_2022/*`, making sure to escape the asterisk as needed.
@@ -143,4 +143,4 @@ where m -> map, s -> scan, i -> intensity image, and f -> extracted features can
143
143
144
144
That's about the gist of it! Try playing around the [CLI](ref/cli.md) interface to see what else is possible. Feel free to open an issue if you have any questions, suggestions, or problems.
145
145
146
-
Additionally, we recommend checking out the examples section for specific use cases for evalio.
146
+
Additionally, we recommend checking out the examples section for specific use cases for evalio.
0 commit comments