Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Data Visualizer #27

Open
manglemix opened this issue Nov 16, 2024 · 0 comments
Open

Data Visualizer #27

manglemix opened this issue Nov 16, 2024 · 0 comments
Assignees

Comments

@manglemix
Copy link
Member

manglemix commented Nov 16, 2024

There is a long data pipeline that starts with the depth camera and involves many data transformations:

  1. Depth Map a black and white image where white means far away. The maximum distance is known before hand.
  2. Point Cloud the projection of the depth map in 3d space. It is just an array of Vector3, where each vector is a point in global space.
  3. Height Map a black and white image where white means maximum height. The maximum height changes every frame. The height is always along the y-axis.
  4. Gradient Map a black and white image where white means maximum steepness. The maximum steepness changes every frame. Gradient refers to the steepness of the heightmap.
  5. Obstacle Map a strictly black and white image where black means safe and white means unsafe.

The dimensions of each image should be hardcoded. Each step should be observable, so we need a new Godot project dedicated to this. There should be tabbed container (or equivalent) that displays each of these steps along with a button that just prints the name of the tab (eg. if we are on the depth map tab, the button should print to the console "Depth Map"). These buttons will be used to advance the pipeline. The depth map button will capture the depth map from the depth camera (handled outside of Godot), and the point cloud button will cause the depth map to be converted to a point cloud (also handled outside of Godot). These tabs should expose a function in gdscript to receive the data it needs (eg. the depth map tab has a function called set_depth_map(depth_map: Image)).

Since all the images are black and white, it would be good if they were colored in some way. The heat map could be colored slightly red or yellow like this, but it doesn't need to be.
image

Visible across all tabs should be some sort of message box just to display messages produced by Rust. This should also just expose a function, something like set_message(msg: String, color: Color)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants