Proto commits in cartographer-project/point_cloud_viewer

These 48 commits are when the Protocol Buffers files have changed:

Commit:4a9c9b8
Author:Marco Feuerstein
Committer:GitHub

Update versions, remove grpc support. (#471) * Update versions, remove grpc support. Signed-off-by: Marco Feuerstein <mfeuerstein@lyft.com> * Remove grpcio-compiler Signed-off-by: Marco Feuerstein <mfeuerstein@lyft.com> * Fix nightly Signed-off-by: Marco Feuerstein <mfeuerstein@lyft.com>

The documentation is generated from this commit.

Commit:94aa138
Author:Marco Feuerstein
Committer:GitHub

Fix oriented beam query. (#381)

Commit:d44c7a0
Author:Marco Feuerstein
Committer:GitHub

Change back to include bounding box for s2 cells. (#365)

Commit:11374af
Author:Nikolai Morin
Committer:GitHub

Implement PointCloud trait for S2Cells (#331)

Commit:163aea2
Author:Nikolai Morin

Make num_points unsigned

Commit:1362170
Author:Nikolai Morin
Committer:GitHub

S2 Meta writing prerequisites (#333)

Commit:aca91a3
Author:Nikolai Morin

Move s2 proto functions

Commit:4f59e7f
Author:Nikolai Morin

Output S2Meta

Commit:f126cef
Author:Caterina Vitadello
Committer:GitHub

S2 Metadata (#309) * wip * meta description also for s2cells * cargo fmt * removed clippy warnings * proto naming * pr changes * pr changes * proto reserved enum 0 * wip read and cast * read to end * removing file * cargo fmt and inserting a todo * fmt * removing test *wrong pr * clippy, fmt, * proto changes * current version * fixing Node -> OctreeNode * fixed proto conversion, moved to lib * reserve proto notation for with 128 bits * WIP * update proto * removed comments * corrections/review changes * cleaning up refactoring * single variables to tuple * cargo fmt

Commit:5a0a4c4
Author:catevita

WIP

Commit:bc8f8b0
Author:catevita

reserve proto notation for with 128 bits

Commit:c50c3a4
Author:catevita

fixing Node -> OctreeNode

Commit:9c722be
Author:catevita

merge master

Commit:067721c
Author:catevita

proto changes

Commit:df14dde
Author:catevita

wip read and cast

Commit:dbd7102
Author:catevita

proto reserved enum 0

Commit:2d74961
Author:catevita

pr changes

Commit:008104e
Author:catevita

pr changes

Commit:c053052
Author:catevita

proto naming

Commit:7124346
Author:catevita

meta description also for s2cells

Commit:5c8cee6
Author:catevita

wip

Commit:1025bba
Author:Nikolai Morin
Committer:Nikolai Morin

Hardcoded camera

Commit:7e005a3
Author:Nikolai Morin
Committer:Wally B. Feed

Oriented beam query (#249) This is an implementation of oriented beam queries. An oriented beam is the same thing as an ortho frustum, so it is not as specific as it might sound. Much like the box query, it only opens nodes intersected by the queried volume to be efficient. To do this, a specialized implementation of a collision check between two oriented cubes/boxes is provided.

Commit:da440c8
Author:Marco Feuerstein
Committer:Wally B. Feed

Change to f64 projection matrix. (#247) Currently when navigating an octree covering the earth, moving around feels like going in steps. This is due to the limited f32 resolution of the translational part of the projection matrix. This PR updates the matrix to an f64 based one, removing the "stuttering".

Commit:256021e
Author:Marco Feuerstein
Committer:Alexander Belyaev

Make xrays upgradable from previous version. (#234) * Made xrays upgradable. * Shortened call.

Commit:06a3f9a
Author:Marco Feuerstein
Committer:Alexander Belyaev

Increase octree precision to double to support octrees covering the world. (#232) * WIP * Added upgrade code. * More conversion logic. * Made octree_viewer running again. * Removed unneeded folder. * Removed comment. * Removed deprecated entry. * Beautifications. * Updated version comment. * xray doesn't support old versions. * Added comment about rendering imprecision. * Improved comment.

Commit:335d6a0
Author:Holger Rapp
Committer:Wally B. Feed

Change octree::NodeId to be a u128 (#204) This removes the limitation of octrees having a deepest level of `resolution*2**(64/3)`. This is ~2500m cube length for the default resolution of 1mm. This change modifies NodeId to be a single 128 bit unsigned integer. The highest 8 bit are the level, while the rest is used used for the index. This fits a max level of 120/3 = 40, which is ~1099512km (~86x the diameter of the earth) for the default resolution. In my tests this comes surprisingly without performance penalties on my machine (see end of PR description). The change is backwards compatible (i.e. existing octrees can be read without change), but the octree version is still bumped, since in the NodeId proto we no longer have (level, index) but instead (high_64bit, low_64bit). This also adds a new binary `upgrade_octree` to update existing octrees to the new version. Timing numbers, commands used: ~~~ target/release/build_octree /Users/hrapp/Downloads/pointcloud.ply --output_directory <dir> target/release/octree_benchmark --no-client <dir> --num-points 100000000 ~~~ Best runs out of 2 or 3, real time: | | Octree Generation | Octree benchmark | | ------------- | ------------- | ------------------ | | master | 11:57.19 | 0:06.42 | | this work | 12:10.94 | 0:05.94 | Detailed runbook in this gist: https://gist.github.com/SirVer/9ba8bd6ca02a1051d0c98ad3cef15383

Commit:816e15c
Author:Marco Feuerstein
Committer:Wally B. Feed

GRPC server with octree ids and octree factory. (#224)

Commit:2e5ebf8
Author:Nikolai Morin
Committer:Wally B. Feed

Add all_points rpc query and benchmark for streaming points (#179) Useful for performance optimization. The GetAllPoints query is helpful because it's a common use case and just using a huge bounding box is hacky. Furthermore, in the benchmark we don't know which pointcloud, and thus bounding box, will be used.

Commit:cf5b718
Author:Avinash Kumar

In memory reservoir sampling

Commit:e942ea0
Author:Avinash Kumar
Committer:Christoph Schütte

Rename Vector4f message to Quaternion (#165)

Commit:84fe965
Author:Avinash Kumar
Committer:Wally B. Feed

Add comments to frustum query proto definition (#162) Add comments to frustum query proto definition

Commit:eaafd31
Author:Avinash Kumar
Committer:gaschler

Add frustum query in octree and frustum query client (#156) * Add frustum query in octree, refactor octree grpc api * Add comment for explaining the buffer size

Commit:995a146
Author:Avinash Kumar
Committer:Christoph Schütte

Refactor octree server grpc response proto (#158)

Commit:704b162
Author:Holger Rapp
Committer:Wally B. Feed

Adapt proto building and naming scheme to follow bazel build. (#122) Also rename grpc/ directory into the name of the crate (point_viewer_grpc).

Commit:792748c
Author:Holger Rapp
Committer:Wally B. Feed

Adaptions for bazel build. (#120)

Commit:2a28ce8
Author:Holger Rapp
Committer:Wally B. Feed

Change gRPC octree to not send RPC for calculating visible nodes. (#115)

Commit:7e30419
Author:thomasschiwietz
Committer:Wally B. Feed

Add GRPC function to get points in box (#102)

Commit:f6482c0
Author:thomasschiwietz
Committer:Wally B. Feed

Remove bounding cube from meta.pb (#95) This change requires to rebuild octrees.

Commit:10061e4
Author:Holger Rapp
Committer:Wally B. Feed

Adds a binary and crate that generates xray quad trees out of an octree. (#94) Related to #90.

Commit:ad002d7
Author:thomasschiwietz
Committer:Wally B. Feed

Add Grpc function to get root bounding cube (#93) Fixes part of #86

Commit:21a5176
Author:thomasschiwietz
Committer:Wally B. Feed

Store meta information of all nodes in root meta.pb (#85) This pull request is part of fixing #86 Things to be done in follow up pull requests: - build_octree: store NodeMeta in HashMap and remove load/store of r*.pb (meta data for each node) - proto: replace 'repeated' by 'map' - proto: get rid of bounding_box - adapt S3Octree

Commit:fc57bf8
Author:Holger Rapp
Committer:Wally B. Feed

Keep the bounding instead of the cube for an octree. (#74) This is changing the on-disk data structure, i.e. is breaking support for old octrees. They need to be regenerated. Fixes #73.

Commit:719717e
Author:Holger Rapp
Committer:Wally B. Feed

Add implementations of the Octree trait in a new gRPC crate. (#68) Related to #53.

Commit:4479471
Author:Holger Rapp
Committer:Wally B. Feed

Small refactorings to clear up responsibility of some structs. (#66) - Make NodeId::get_stem() public. - Consistent naming: everything is named like the crate name now. - Remove stem from NodeMeta, as not every node has a on-disk representation. - Sort Cargo.toml files alphabetically.

Commit:ec8bd8a
Author:Holger Rapp
Committer:Wally B. Feed

Move to using proto3. (#56) Fixes #51.

Commit:1d704f5
Author:Holger Rapp
Committer:GitHub

Use per-node resolution to encode position data on disk. (#7)

Commit:35db634
Author:Holger Rapp
Committer:GitHub

Use protobuf instead of JSON. (#5) I did not manage to automatically create the .rs files from the .proto at build yet, so for now they need to be manually generated.