diff --git a/README.md b/README.md
index 8c23ed42..b07c0549 100644
--- a/README.md
+++ b/README.md
@@ -1,100 +1,87 @@
-
Fast Traversability Estimation for Wild Visual Navigation
+
+
+ Wild Visual Navigation
+
+
- Citation •
- Installation •
+ Installation •
Overview •
Experiments •
- Development
-
- ![Formatting](https://github.com/leggedrobotics/wild_visual_navigation/actions/workflows/formatting.yml/badge.svg)
+ Development •
+ Citation
-![Overview](./assets/drawings/header.jpg)
-
-
-
-## Citation
-```
-@INPROCEEDINGS{frey23fast,
- AUTHOR = {Jonas, Frey and Matias, Mattamala and Nived, Chebrolu and Cesar, Cadena and Maurice, Fallon and Marco, Hutter},
- TITLE = {\href{https://arxiv.org/abs/2305.08510}{Fast Traversability Estimation for Wild Visual Navigation}},
- BOOKTITLE = {Proceedings of Robotics: Science and Systems},
- YEAR = {2023},
- ADDRESS = {Daegu, Republic of Korea},
- MONTH = {July},
- DOI = {10.15607/RSS.2023.XIX.054}
-}
-```
-If you are also building up on the STEGO integration or using the pre-trained models for a comparision please cite:
-```
-@INPROCEEDINGS{mattamala24wild,
- AUTHOR = {Mattamala, Matias and Jonas, Frey and Piotr Libera and Chebrolu, Nived and Georg Martius and Cadena, Cesar and Hutter, Marco and Fallon, Maurice},
- TITLE = {{Wild Visual Navigation: Fast Traversability Learning via Pre-Trained Models and Online Self-Supervision}},
- BOOKTITLE = {under review for Autonomous Robots},
- YEAR = {2024}
-}
-```
+
+
+
+
+
+
+
-If you are using the elevation_mapping integration
-```
-@INPROCEEDINGS{erni23mem,
- AUTHOR={Erni, Gian and Frey, Jonas and Miki, Takahiro and Mattamala, Matias and Hutter, Marco},
- TITLE={\href{https://arxiv.org/abs/2309.16818}{MEM: Multi-Modal Elevation Mapping for Robotics and Learning}},
- BOOKTITLE={2023 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
- YEAR={2023},
- PAGES={11011-11018},
- DOI={10.1109/IROS55552.2023.10342108}
-}
-```
+![Overview](./assets/drawings/header.jpg)
-Checkout out also our other works.
## Installation
-1. Clone the WVN and our STEGO reimplementation.
+### Minimal
+Clone the WVN and our STEGO reimplementation.
```shell
mkdir ~/git && cd ~/git
git clone git@github.com:leggedrobotics/wild_visual_navigation.git
git clone git@github.com:leggedrobotics/self_supervised_segmentation.git
```
-2. Install the virtual environment.
+(Recommended) Create new virtual environment.
```shell
-cd ~/git/wild_visual_navigation
-# TODO
+mkdir ~/.venv
+python -m venv ~/venv/wvn
+source ~/venv/wvn/bin/activate
```
-3. Install the wild_visual_navigation package.
+Install the wild_visual_navigation package.
```shell
cd ~/git
pip3 install -e ./wild_visual_navigation
+pip3 install -e ./self_supervised_segmentation
```
-4. [Optionally] Configure custom paths
-Set your custom global paths by defining the ENV_WORKSTATION_NAME and exporting the variable in your `~/.bashrc`.
-
- ```shell
- export ENV_WORKSTATION_NAME=your_workstation_name
- ```
-The paths can be specified by modifying `wild_visual_navigation/wild_visual_navigation/cfg/gloabl_params.py`.
-Add your desired global paths.
-Per default, all results are stored in `wild_visual_navigation/results`.
-
-
-
## Overview
-![Overview](./assets/drawings/software_overview.jpg)
-What we provide:
-- Learning and Feature Extraction Nodes integrated in ROS1
-- Gazebo Test Simulation Envrionment
-- Example ROSbags
-- Pre-trained models with minimalistic inference script (can be used as a easy baseline)
+
+### Repository Structure
+```
+📦wild_visual_navigation
+ ┣ 📂assets
+ ┣ 📂demo_data # Example images
+ ┣ 🖼 example_images.png
+ ┗ ....
+ ┗ 📂checkpoints # Pre-trained model checkpoints
+ ┣ 📜 mountain_bike_trail_v2.pt
+ ┗ ....
+ ┣ 📂docker # Quick start docker container
+ ┣ 📂results
+ ┣ 📂test
+ ┣ 📂wild_visual_navigation # Core implementation of WVN
+ ┣ 📂wild_visual_navigation_anymal # ROS1 ANYmal helper package
+ ┣ 📂wild_visual_navigation_jackal # ROS1 Jackal simulation example
+ ┣ 📂wild_visual_navigation_msgs # ROS1 message definitions
+ ┣ 📂wild_visual_navigation_ros # ROS1 nodes for running WVN
+ ┗ 📂scripts
+ ┗ 📜 wvn_feature_extractor_node.py
+ ┗ 📜 wvn_learning_node.py
+ ┗ 📜 quick_start.py # Inferencing demo_data from pre-trained checkpoints
+```
+### Features
+- quick_start script for inference using pre-trained models (can be used as an easy baseline)
+- ROS1 integration for online deployment
+- Jackal Gazebo simulation demo integration
+- Docker container for easy installation
- Integration into elevation_mapping_cupy
@@ -102,43 +89,52 @@ What we provide:
## Experiments
-### Inference pre-trained model
+### Inference of pre-trained model
+Script to inference traversability of images within input folder (`assets/demo_data/*.png`), given a pre-trained model checkpoint (`assets/checkpoints/model_name.pt`). The script stores the result in the provided output folder (`results/demo_data/*.png`).
+```python
+python3 quick_start.py
-### Online adaptation [Simulation]
+# python3 quick_start.py --help for more CLI information
+# usage: quick_start.py [-h] [--model_name MODEL_NAME] [--input_image_folder INPUT_IMAGE_FOLDER]
+# [--output_folder_name OUTPUT_FOLDER_NAME] [--network_input_image_height NETWORK_INPUT_IMAGE_HEIGHT]
+# [--network_input_image_width NETWORK_INPUT_IMAGE_WIDTH] [--segmentation_type {slic,grid,random,stego}]
+# [--feature_type {dino,dinov2,stego}] [--dino_patch_size {8,16}] [--dino_backbone {vit_small}]
+# [--slic_num_components SLIC_NUM_COMPONENTS] [--compute_confidence] [--no-compute_confidence]
+# [--prediction_per_pixel] [--no-prediction_per_pixel]
+```
+### Online adaptation [Simulation]
+Instructions can be found within [wild_visual_navigation_jackal/README.md](wild_visual_navigation_jackal/README.md).
### Online adaptation [Rosbag]
+#### Download Rosbags:
+To quickly test out online training and adaption we provide some example rosbags ( [GDrive](https://drive.google.com/drive/folders/1Rf2TRPT6auFxOpnV9-ZfVMjmsvdsrSD3?usp=sharing) ), collected with our ANYmal D robot.
-
-
-
-
-
-
-
+#### Example Result:
+
| MPI Outdoor | MPI Indoor | Bahnhofstrasse | Bike Trail |
|----------------|------------|-------------|---------------------|
|
|
|
|
|
-|
|
|
|
|
+|
|
|
|
|
+
-#### Setup
-Let`s set up a new catkin_ws:
+#### ROS-Setup:
```shell
-# Create Workspace
+# Create new catkin workspace
source /opt/ros/noetic/setup.bash
mkdir -r ~/catkin_ws/src && cd ~/catkin_ws/src
catkin init
catkin config --extend /opt/ros/noetic
catkin config --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo
-# Clone Repos
+# Clone repos
git clone git@github.com:ANYbotics/anymal_d_simple_description.git
git clone git@github.com:ori-drs/procman_ros.git
-# Symlink WVN
+# Symlink WVN-repository
ln -s ~/git/wild_visual_navigation ~/catkin_ws/src
# Dependencies
@@ -147,7 +143,6 @@ rosdep install -ryi --from-paths . --ignore-src
# Build
cd ~/catkin_ws
catkin build anymal_d_simple_description
-catkin build procman_ros
catkin build wild_visual_navigation_ros
# Source
@@ -155,8 +150,8 @@ source /opt/ros/noetic/setup.bash
source ~/catkin_ws/devel/setup.bash
```
-After successfully building the ros workspace you can run the full pipeline by either using the launch file (this requires all packages to be installed into your system python installation), or by running the nodes from the virtual environment as plain python scripts.
-
+After successfully building the ros workspace, you can run the entire pipeline by either using the launch file or by running the nodes individually.
+Open multiple terminals and run the following commands:
- Run wild_visual_navigation
```shell
@@ -178,8 +173,7 @@ robag play --clock path_to_mission/*.bag
roslaunch wild_visual_navigation_ros view.launch
```
-
-Degugging (sometimes it is desirable to run the nodes seperate):
+- Debugging (sometimes it is desirable to run the two nodes separately):
```shell
python wild_visual_navigation_ros/scripts/wvn_feature_extractor_node.py
```
@@ -187,13 +181,11 @@ python wild_visual_navigation_ros/scripts/wvn_feature_extractor_node.py
python wild_visual_navigation_ros/scripts/wvn_learning_node.py
```
-
- The general configuration files can be found under: `wild_visual_navigation/cfg/experiment_params.py`
- This configuration is used in the `offline-model-training` and in the `online-ros` mode.
-- When running the `online-ros` mode additional configurations for the individual nodes are defined in `wild_visual_navigation/cfg/ros_params.py`.
+- When running the `online-ros` mode, additional configurations for the individual nodes are defined in `wild_visual_navigation/cfg/ros_params.py`.
- These configuration file is filled based on the rosparameter-server during runtime.
- The default values for this configuration can be found under `wild_visual_navigation/wild_visual_navigation_ros/config/wild_visual_navigation`.
-- We set an environment variable to automatically load the correct global paths and trigger some special behavior e.g. when training on a cluster.
@@ -246,3 +238,42 @@ rosrun procman_ros sheriff -l ~/git/wild_visual_navigation/wild_visual_navigatio
```shell
rosbag_play --tf --sem --flp --wvn mission/*.bag
```
+
+
+
+## Citation
+```
+@INPROCEEDINGS{frey23fast,
+ AUTHOR = {Jonas Frey AND Matias Mattamala AND Nived Chebrolu AND Cesar Cadena AND Maurice Fallon AND Marco Hutter},
+ TITLE = {{Fast Traversability Estimation for Wild Visual Navigation}},
+ BOOKTITLE = {Proceedings of Robotics: Science and Systems},
+ YEAR = {2023},
+ ADDRESS = {Daegu, Republic of Korea},
+ MONTH = {July},
+ DOI = {10.15607/RSS.2023.XIX.054}
+}
+```
+
+If you are also building up on the STEGO integration or using the pre-trained models for comparison, please cite:
+```
+@INPROCEEDINGS{mattamala24wild,
+ AUTHOR = {Jonas Frey AND Matias Mattamala AND Libera Piotr AND Nived Chebrolu AND Cesar Cadena AND Georg Martius AND Marco Hutter AND Maurice Fallon},
+ TITLE = {{Wild Visual Navigation: Fast Traversability Learning via Pre-Trained Models and Online Self-Supervision}},
+ BOOKTITLE = {under review for Autonomous Robots},
+ YEAR = {2024}
+}
+```
+
+If you are using the elevation_mapping integration:
+```
+@INPROCEEDINGS{erni23mem,
+ AUTHOR={Erni, Gian and Frey, Jonas and Miki, Takahiro and Mattamala, Matias and Hutter, Marco},
+ TITLE={{MEM: Multi-Modal Elevation Mapping for Robotics and Learning}},
+ BOOKTITLE={2023 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
+ YEAR={2023},
+ PAGES={11011-11018},
+ DOI={10.1109/IROS55552.2023.10342108}
+}
+```
+
+
diff --git a/assets/images/bahnhofstrasse_raw.png b/assets/demo_data/bahnhofstrasse_raw.png
similarity index 100%
rename from assets/images/bahnhofstrasse_raw.png
rename to assets/demo_data/bahnhofstrasse_raw.png
diff --git a/assets/images/mountain_bike_trail_raw.png b/assets/demo_data/mountain_bike_trail_raw.png
similarity index 100%
rename from assets/images/mountain_bike_trail_raw.png
rename to assets/demo_data/mountain_bike_trail_raw.png
diff --git a/assets/images/mpi_indoor_raw.png b/assets/demo_data/mpi_indoor_raw.png
similarity index 100%
rename from assets/images/mpi_indoor_raw.png
rename to assets/demo_data/mpi_indoor_raw.png
diff --git a/assets/images/mpi_outdoor_raw.png b/assets/demo_data/mpi_outdoor_raw.png
similarity index 100%
rename from assets/images/mpi_outdoor_raw.png
rename to assets/demo_data/mpi_outdoor_raw.png
diff --git a/quick_start.py b/quick_start.py
new file mode 100644
index 00000000..d9e63fb8
--- /dev/null
+++ b/quick_start.py
@@ -0,0 +1,221 @@
+#
+# Copyright (c) 2022-2024, ETH Zurich, Matias Mattamala, Jonas Frey.
+# All rights reserved. Licensed under the MIT license.
+# See LICENSE file in the project root for details.
+#
+from wild_visual_navigation import WVN_ROOT_DIR
+from wild_visual_navigation.feature_extractor import FeatureExtractor
+from wild_visual_navigation.cfg import ExperimentParams
+from wild_visual_navigation.image_projector import ImageProjector
+from wild_visual_navigation.model import get_model
+from wild_visual_navigation.utils import ConfidenceGenerator
+from wild_visual_navigation.utils import AnomalyLoss
+from PIL import Image
+import torch
+import numpy as np
+import torch.nn.functional as F
+from omegaconf import OmegaConf
+from wild_visual_navigation.utils import Data
+from os.path import join
+import os
+from argparse import ArgumentParser
+from wild_visual_navigation.model import get_model
+from pathlib import Path
+from wild_visual_navigation.visu import LearningVisualizer
+
+
+# Function to handle folder creation
+def parse_folders(args):
+ input_image_folder = args.input_image_folder
+ output_folder = args.output_folder_name
+
+ # Check if input folder is global or local
+ if not os.path.isabs(input_image_folder):
+ input_image_folder = os.path.join(WVN_ROOT_DIR, "assets", input_image_folder)
+
+ # Check if output folder is global or local
+ if not os.path.isabs(output_folder):
+ output_folder = os.path.join(WVN_ROOT_DIR, "results", output_folder)
+
+ # Create input folder if it doesn't exist
+ if not os.path.exists(input_image_folder):
+ raise ValueError(f"Input folder '{input_image_folder}' does not exist.")
+
+ # Create output folder if it doesn't exist
+ if not os.path.exists(output_folder):
+ os.makedirs(output_folder)
+ return input_image_folder, output_folder
+
+
+if __name__ == "__main__":
+ parser = ArgumentParser()
+
+ # Define command line arguments
+
+ parser.add_argument("--model_name", default="indoor_mpi", help="Description of model name argument")
+ parser.add_argument(
+ "--input_image_folder",
+ default="demo_data",
+ help="Gloabl path or folder name within the assests directory",
+ )
+ parser.add_argument(
+ "--output_folder_name",
+ default="demo_data",
+ help="Gloabl path or folder name within the results directory",
+ )
+
+ # Fixed values
+ parser.add_argument("--network_input_image_height", type=int, default=224, help="Height of the input image")
+ parser.add_argument("--network_input_image_width", type=int, default=224, help="Width of the input image")
+ parser.add_argument(
+ "--segmentation_type",
+ default="stego",
+ choices=["slic", "grid", "random", "stego"],
+ help="Options: slic, grid, random, stego",
+ )
+ parser.add_argument(
+ "--feature_type", default="stego", choices=["dino", "dinov2", "stego"], help="Options: dino, dinov2, stego"
+ )
+ parser.add_argument("--dino_patch_size", type=int, default=8, choices=[8, 16], help="Options: 8, 16")
+ parser.add_argument("--dino_backbone", default="vit_small", choices=["vit_small"], help="Options: vit_small")
+ parser.add_argument(
+ "--slic_num_components", type=int, default=100, help="Number of components for SLIC segmentation"
+ )
+
+ parser.add_argument(
+ "--compute_confidence", action="store_true", help="Compute confidence for the traversability prediction"
+ )
+ parser.add_argument("--no-compute_confidence", dest="compute_confidence", action="store_false")
+ parser.set_defaults(compute_confidence=True)
+
+ parser.add_argument(
+ "--prediction_per_pixel", action="store_true", help="Inference traversability per-pixel or per-segment"
+ )
+ parser.add_argument("--no-prediction_per_pixel", dest="prediction_per_pixel", action="store_false")
+ parser.set_defaults(prediction_per_pixel=True)
+
+ # Parse the command line arguments
+ args = parser.parse_args()
+
+ input_image_folder, output_folder = parse_folders(args)
+
+ params = OmegaConf.structured(ExperimentParams)
+ anomaly_detection = False
+
+ # Update model from file if possible
+ device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
+
+ visualizer = LearningVisualizer(p_visu=output_folder, store=True)
+
+ if anomaly_detection:
+ confidence_generator = ConfidenceGenerator(
+ method=params.loss_anomaly.method, std_factor=params.loss_anomaly.confidence_std_factor
+ )
+ else:
+ confidence_generator = ConfidenceGenerator(
+ method=params.loss.method, std_factor=params.loss.confidence_std_factor
+ )
+
+ # Load feature and segment extractor
+ feature_extractor = FeatureExtractor(
+ device=device,
+ segmentation_type=args.segmentation_type,
+ feature_type=args.feature_type,
+ patch_size=args.dino_patch_size,
+ backbone_type=args.dino_backbone,
+ input_size=args.network_input_image_height,
+ slic_num_components=args.slic_num_components,
+ )
+
+ # Sorry for that 💩
+ params.model.simple_mlp_cfg.input_size = feature_extractor.feature_dim
+ params.model.double_mlp_cfg.input_size = feature_extractor.feature_dim
+ params.model.simple_gcn_cfg.input_size = feature_extractor.feature_dim
+ params.model.linear_rnvp_cfg.input_size = feature_extractor.feature_dim
+
+ # Load traversability model
+ model = get_model(params.model).to(device)
+ model.eval()
+ torch.set_grad_enabled(False)
+
+ p = join(WVN_ROOT_DIR, "assets", "checkpoints", f"{args.model_name}.pt")
+ model_state_dict = torch.load(p)
+ model.load_state_dict(model_state_dict, strict=False)
+ print(f"\nLoaded model `{args.model_name}` successfully!")
+
+ cg = model_state_dict["confidence_generator"]
+ # Only mean and std are needed
+ confidence_generator.var = cg["var"]
+ confidence_generator.mean = cg["mean"]
+ confidence_generator.std = cg["std"]
+
+ images = [str(s) for s in Path(input_image_folder).rglob("*.png" or "*.jpg")]
+ print(f"Found {len(images)} images in the folder! \n")
+
+ H, W = args.network_input_image_height, args.network_input_image_width
+ for i, img_p in enumerate(images):
+ print(f"Processing image {i+1}/{len(images)}: {img_p}")
+ img = Image.open(img_p)
+ img = img.convert("RGB")
+ torch_image = torch.from_numpy(np.array(img))
+ torch_image = torch_image.to(device).permute(2, 0, 1).float() / 255.0
+
+ C, H_in, W_in = torch_image.shape
+
+ # K can be ignored given that no reprojection is performed
+ image_projector = ImageProjector(
+ K=torch.eye(4, device=device)[None],
+ h=H_in,
+ w=W_in,
+ new_h=H,
+ new_w=W,
+ )
+
+ torch_image = image_projector.resize_image(torch_image)
+ # Extract features
+ _, feat, seg, center, dense_feat = feature_extractor.extract(
+ img=torch_image[None],
+ return_centers=False,
+ return_dense_features=True,
+ n_random_pixels=100,
+ )
+
+ # Forward pass to predict traversability
+ if args.prediction_per_pixel:
+ # Pixel-wise traversability prediction using the dense features
+ data = Data(x=dense_feat[0].permute(1, 2, 0).reshape(-1, dense_feat.shape[1]))
+ else:
+ # input_feat = dense_feat[0].permute(1, 2, 0).reshape(-1, dense_feat.shape[1])
+ # Segment-wise traversability prediction using the average feature per segment
+ input_feat = feat[seg.reshape(-1)]
+ data = Data(x=input_feat)
+
+ # Inference model
+ prediction = model.forward(data)
+
+ # Calculate traversability
+ if not anomaly_detection:
+ out_trav = prediction.reshape(H, W, -1)[:, :, 0]
+ else:
+ losses = prediction["logprob"].sum(1) + prediction["log_det"]
+ confidence = confidence_generator.inference_without_update(x=-losses)
+ trav = confidence
+ out_trav = trav.reshape(H, W, -1)[:, :, 0]
+
+ original_img = visualizer.plot_image(torch_image, store=False)
+ img_ls = [original_img]
+
+ if args.compute_confidence:
+ # Calculate confidence
+ loss_reco = F.mse_loss(prediction[:, 1:], data.x, reduction="none").mean(dim=1)
+ confidence = confidence_generator.inference_without_update(x=loss_reco)
+ out_confidence = confidence.reshape(H, W)
+ conf_img = visualizer.plot_detectron_classification(torch_image, out_confidence, store=False)
+ img_ls.append(conf_img)
+
+ name = img_p.split("/")[-1].split(".")[0]
+ trav_img = visualizer.plot_detectron_classification(torch_image, out_trav, store=False)
+ print(out_trav.sum(), out_trav.max(), torch_image.sum(), data.x.sum(), dense_feat.sum(), torch_image.sum())
+
+ img_ls.append(trav_img)
+ visualizer.plot_list(img_ls, tag=f"{name}_original_conf_trav", store=True)
diff --git a/setup.py b/setup.py
index 6d0d5d64..682e7ce4 100644
--- a/setup.py
+++ b/setup.py
@@ -34,6 +34,8 @@
"liegroups@git+https://github.com/mmattamala/liegroups",
"wget",
"rospkg",
+ "wandb",
+ "opencv-python==4.2.0.34",
]
setup(
name="wild_visual_navigation",
diff --git a/wild_visual_navigation/feature_extractor/feature_extractor.py b/wild_visual_navigation/feature_extractor/feature_extractor.py
index 053a2e82..88e26173 100644
--- a/wild_visual_navigation/feature_extractor/feature_extractor.py
+++ b/wild_visual_navigation/feature_extractor/feature_extractor.py
@@ -36,6 +36,7 @@ def __init__(
self._segmentation_type = segmentation_type
self._feature_type = feature_type
self._input_size = input_size
+ self._stego_features_already_computed_in_segmentation = False
# Prepare segment extractor
self.segment_extractor = SegmentExtractor().to(self._device)
@@ -243,6 +244,8 @@ def segment_stego(self, img, **kwargs):
# Change the segment indices by numbers from 0 to N
for i, k in enumerate(seg.unique()):
seg[seg == k.item()] = i
+
+ self._stego_features_already_computed_in_segmentation = True
return seg
def compute_features(self, img: torch.tensor, seg: torch.tensor, center: torch.tensor, **kwargs):
@@ -296,10 +299,12 @@ def compute_torchvision(self, img: torch.tensor, seg: torch.tensor, center: torc
@torch.no_grad()
def compute_stego(self, img: torch.tensor, seg: torch.tensor, center: torch.tensor, **kwargs):
- try:
+ if self._stego_features_already_computed_in_segmentation:
+ self._stego_features_already_computed_in_segmentation = False
return self._extractor.features
- except Exception:
- self.segment_stego(img, **kwargs)
+ else:
+ img_internal = img.clone()
+ self._extractor.inference(img_internal)
return self._extractor.features
def sparsify_features(self, dense_features: torch.tensor, seg: torch.tensor, cumsum_trick=False):
diff --git a/wild_visual_navigation/utils/confidence_generator.py b/wild_visual_navigation/utils/confidence_generator.py
index 1d920c5b..234ed71b 100644
--- a/wild_visual_navigation/utils/confidence_generator.py
+++ b/wild_visual_navigation/utils/confidence_generator.py
@@ -185,7 +185,7 @@ def inference_without_update(self, x: torch.tensor):
return torch.zeros_like(x)
shifted_mean = self.mean + self.std * self.std_factor
std_fac = 1
- interval_min = max(shifted_mean - std_fac * self.std, 0)
+ interval_min = max(shifted_mean - std_fac * self.std, torch.zeros_like(self.std))
interval_max = shifted_mean + std_fac * self.std
x = torch.clip(x, interval_min, interval_max)
confidence = 1 - ((x - interval_min) / (interval_max - interval_min))
diff --git a/wild_visual_navigation_ros/config/rviz/open_source.rviz b/wild_visual_navigation_ros/config/rviz/open_source.rviz
index baafb702..7614da9a 100644
--- a/wild_visual_navigation_ros/config/rviz/open_source.rviz
+++ b/wild_visual_navigation_ros/config/rviz/open_source.rviz
@@ -12,8 +12,9 @@ Panels:
- /Wild Visual Navigation1/Cameras Resized1
- /Wild Visual Navigation1/Depth Sensors1
- /Wild Visual Navigation1/Prediction1
+ - /GridMaps1
Splitter Ratio: 0.6411483287811279
- Tree Height: 863
+ Tree Height: 856
- Class: rviz/Selection
Name: Selection
- Class: rviz/Tool Properties
@@ -58,178 +59,10 @@ Visualization Manager:
Reference Frame:
Value: false
- Class: rviz/TF
- Enabled: true
+ Enabled: false
Frame Timeout: 1000
Frames:
All Enabled: false
- LF_FOOT:
- Value: true
- LF_HAA_drive:
- Value: true
- LF_HFE_drive:
- Value: true
- LF_HFE_output:
- Value: true
- LF_HIP:
- Value: true
- LF_KFE_drive:
- Value: true
- LF_SHANK:
- Value: true
- LF_THIGH:
- Value: true
- LF_hip_fixed:
- Value: true
- LF_shank_fixed:
- Value: true
- LF_thigh_fixed:
- Value: true
- LH_FOOT:
- Value: true
- LH_HAA_drive:
- Value: true
- LH_HFE_drive:
- Value: true
- LH_HFE_output:
- Value: true
- LH_HIP:
- Value: true
- LH_KFE_drive:
- Value: true
- LH_SHANK:
- Value: true
- LH_THIGH:
- Value: true
- LH_hip_fixed:
- Value: true
- LH_shank_fixed:
- Value: true
- LH_thigh_fixed:
- Value: true
- RF_FOOT:
- Value: true
- RF_HAA_drive:
- Value: true
- RF_HFE_drive:
- Value: true
- RF_HFE_output:
- Value: true
- RF_HIP:
- Value: true
- RF_KFE_drive:
- Value: true
- RF_SHANK:
- Value: true
- RF_THIGH:
- Value: true
- RF_hip_fixed:
- Value: true
- RF_shank_fixed:
- Value: true
- RF_thigh_fixed:
- Value: true
- RH_FOOT:
- Value: true
- RH_HAA_drive:
- Value: true
- RH_HFE_drive:
- Value: true
- RH_HFE_output:
- Value: true
- RH_HIP:
- Value: true
- RH_KFE_drive:
- Value: true
- RH_SHANK:
- Value: true
- RH_THIGH:
- Value: true
- RH_hip_fixed:
- Value: true
- RH_shank_fixed:
- Value: true
- RH_thigh_fixed:
- Value: true
- base:
- Value: true
- base_inertia:
- Value: true
- battery:
- Value: true
- body_top:
- Value: true
- bottom_shell:
- Value: true
- camera_init:
- Value: true
- camera_init_CORRECTED:
- Value: true
- depth_camera_front_lower_camera:
- Value: true
- depth_camera_front_lower_camera_parent:
- Value: true
- depth_camera_front_upper_camera:
- Value: true
- depth_camera_front_upper_camera_parent:
- Value: true
- depth_camera_left_camera:
- Value: true
- depth_camera_left_camera_parent:
- Value: true
- depth_camera_rear_lower_camera:
- Value: true
- depth_camera_rear_lower_camera_parent:
- Value: true
- depth_camera_rear_upper_camera:
- Value: true
- depth_camera_rear_upper_camera_parent:
- Value: true
- depth_camera_right_camera:
- Value: true
- depth_camera_right_camera_parent:
- Value: true
- docking_socket:
- Value: true
- face_front:
- Value: true
- face_rear:
- Value: true
- face_shell_front:
- Value: true
- face_shell_rear:
- Value: true
- feetcenter:
- Value: true
- footprint:
- Value: true
- hatch_shell:
- Value: true
- hbc_receiver:
- Value: true
- imu_link:
- Value: true
- lidar:
- Value: true
- lidar_parent:
- Value: true
- map:
- Value: true
- map_o3d_localization_manager:
- Value: true
- msf_body_imu_map:
- Value: true
- odom:
- Value: true
- top_shell:
- Value: true
- wide_angle_camera_front_camera:
- Value: true
- wide_angle_camera_front_camera_parent:
- Value: true
- wide_angle_camera_rear_camera:
- Value: true
- wide_angle_camera_rear_camera_parent:
- Value: true
Marker Alpha: 1
Marker Scale: 0.5
Name: TF
@@ -237,117 +70,9 @@ Visualization Manager:
Show Axes: true
Show Names: true
Tree:
- odom:
- base:
- LF_HAA_drive:
- LF_HIP:
- LF_hip_fixed:
- LF_HFE_output:
- LF_THIGH:
- LF_HFE_drive:
- LF_thigh_fixed:
- LF_KFE_drive:
- LF_SHANK:
- LF_shank_fixed:
- LF_FOOT:
- {}
- LH_HAA_drive:
- LH_HIP:
- LH_hip_fixed:
- LH_HFE_output:
- LH_THIGH:
- LH_HFE_drive:
- LH_thigh_fixed:
- LH_KFE_drive:
- LH_SHANK:
- LH_shank_fixed:
- LH_FOOT:
- {}
- RF_HAA_drive:
- RF_HIP:
- RF_hip_fixed:
- RF_HFE_output:
- RF_THIGH:
- RF_HFE_drive:
- RF_thigh_fixed:
- RF_KFE_drive:
- RF_SHANK:
- RF_shank_fixed:
- RF_FOOT:
- {}
- RH_HAA_drive:
- RH_HIP:
- RH_hip_fixed:
- RH_HFE_output:
- RH_THIGH:
- RH_HFE_drive:
- RH_thigh_fixed:
- RH_KFE_drive:
- RH_SHANK:
- RH_shank_fixed:
- RH_FOOT:
- {}
- base_inertia:
- {}
- battery:
- {}
- body_top:
- {}
- bottom_shell:
- {}
- depth_camera_left_camera:
- depth_camera_left_camera_parent:
- {}
- depth_camera_right_camera:
- depth_camera_right_camera_parent:
- {}
- docking_socket:
- {}
- face_front:
- depth_camera_front_lower_camera:
- depth_camera_front_lower_camera_parent:
- {}
- depth_camera_front_upper_camera:
- depth_camera_front_upper_camera_parent:
- {}
- face_shell_front:
- {}
- wide_angle_camera_front_camera:
- wide_angle_camera_front_camera_parent:
- {}
- face_rear:
- depth_camera_rear_lower_camera:
- depth_camera_rear_lower_camera_parent:
- {}
- depth_camera_rear_upper_camera:
- depth_camera_rear_upper_camera_parent:
- {}
- face_shell_rear:
- {}
- wide_angle_camera_rear_camera:
- wide_angle_camera_rear_camera_parent:
- {}
- hatch_shell:
- {}
- hbc_receiver:
- {}
- imu_link:
- {}
- lidar_parent:
- lidar:
- {}
- top_shell:
- {}
- feetcenter:
- {}
- footprint:
- {}
- map_o3d_localization_manager:
- {}
- msf_body_imu_map:
- {}
+ {}
Update Interval: 0
- Value: true
+ Value: false
- Class: rviz/Group
Displays:
- Angle Tolerance: 0.10000000149011612
@@ -394,7 +119,348 @@ Visualization Manager:
Expand Joint Details: false
Expand Link Details: false
Expand Tree: false
+ LF_FOOT:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ LF_HAA_drive:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ LF_HFE_drive:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ LF_HFE_output:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ LF_HIP:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ LF_KFE_drive:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ LF_SHANK:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ LF_THIGH:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ LF_hip_fixed:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ LF_shank_fixed:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ LF_thigh_fixed:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ LH_FOOT:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ LH_HAA_drive:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ LH_HFE_drive:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ LH_HFE_output:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ LH_HIP:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ LH_KFE_drive:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ LH_SHANK:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ LH_THIGH:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ LH_hip_fixed:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ LH_shank_fixed:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ LH_thigh_fixed:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
Link Tree Style: Links in Alphabetic Order
+ RF_FOOT:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ RF_HAA_drive:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ RF_HFE_drive:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ RF_HFE_output:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ RF_HIP:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ RF_KFE_drive:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ RF_SHANK:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ RF_THIGH:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ RF_hip_fixed:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ RF_shank_fixed:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ RF_thigh_fixed:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ RH_FOOT:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ RH_HAA_drive:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ RH_HFE_drive:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ RH_HFE_output:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ RH_HIP:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ RH_KFE_drive:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ RH_SHANK:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ RH_THIGH:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ RH_hip_fixed:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ RH_shank_fixed:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ RH_thigh_fixed:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ base:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ base_inertia:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ battery:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ body_top:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ bottom_shell:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ depth_camera_front_lower_camera:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ depth_camera_front_lower_camera_parent:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ depth_camera_front_upper_camera:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ depth_camera_front_upper_camera_parent:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ depth_camera_left_camera:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ depth_camera_left_camera_parent:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ depth_camera_rear_lower_camera:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ depth_camera_rear_lower_camera_parent:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ depth_camera_rear_upper_camera:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ depth_camera_rear_upper_camera_parent:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ depth_camera_right_camera:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ depth_camera_right_camera_parent:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ docking_socket:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ face_front:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ face_rear:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ face_shell_front:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ face_shell_rear:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ hatch_shell:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ hbc_receiver:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ imu_link:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ lidar:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ lidar_parent:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ top_shell:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ wide_angle_camera_front_camera:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ wide_angle_camera_front_camera_parent:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ wide_angle_camera_rear_camera:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ wide_angle_camera_rear_camera_parent:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
Name: RobotModel
Robot Description: anymal_description
TF Prefix: ""
@@ -412,7 +478,7 @@ Visualization Manager:
Marker Topic: /wild_visual_navigation_node/graph_footprints
Name: Footprint
Namespaces:
- footprints: true
+ {}
Queue Size: 100
Value: true
- Alpha: 1
@@ -891,7 +957,7 @@ Visualization Manager:
Color Layer: visual_traversability
Color Transformer: ""
ColorMap: coolwarm
- Enabled: false
+ Enabled: true
Grid Cell Decimation: 1
Grid Line Thickness: 0.10000000149011612
Height Layer: elevation_with_semantics
@@ -907,7 +973,7 @@ Visualization Manager:
Topic: /elevation_mapping/semantic_map
Unreliable: false
Use ColorMap: true
- Value: false
+ Value: true
- Alpha: 1
Autocompute Intensity Bounds: false
Class: grid_map_rviz_plugin/GridMap
@@ -962,7 +1028,7 @@ Visualization Manager:
Views:
Current:
Class: rviz/ThirdPersonFollower
- Distance: 13.404160499572754
+ Distance: 8.189547538757324
Enable Stereo Rendering:
Stereo Eye Separation: 0.05999999865889549
Stereo Focal Distance: 1
@@ -970,17 +1036,17 @@ Visualization Manager:
Value: false
Field of View: 0.7853981852531433
Focal Point:
- X: 2.1661949157714844
- Y: -0.48903560638427734
+ X: 2.6289563179016113
+ Y: 0.7574070692062378
Z: 0
Focal Shape Fixed Size: true
Focal Shape Size: 0.05000000074505806
Invert Z Axis: false
Name: Current View
Near Clip Distance: 0.009999999776482582
- Pitch: 0.4953981041908264
+ Pitch: 0.5653980374336243
Target Frame: base
- Yaw: 0.4853982925415039
+ Yaw: 0.46539831161499023
Saved: ~
Window Geometry:
AB Wide Angle Front:
@@ -995,14 +1061,14 @@ Window Geometry:
collapsed: false
HDR:
collapsed: false
- Height: 1376
+ Height: 1403
Hide Left Dock: false
- Hide Right Dock: false
+ Hide Right Dock: true
Input Image:
collapsed: false
Learning Mask:
collapsed: false
- QMainWindow State: 000000ff00000000fd0000000400000000000001a40000039cfc0200000012fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000005fb000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c00610079007301000001a70000039c000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000c00430061006d00650072006100000002ea000000c80000000000000000fb00000036005300750070006500720076006900730069006f006e0020002d00200049006d0061006700650020004c006100620065006c006500640000000259000000520000000000000000fb00000024005300750070006500720076006900730069006f006e0020002d0020004d00610073006b000000027e000000b80000000000000000fb0000000a0049006d00610067006500000002eb000001280000000000000000fb000000140043006f006e0066006900640065006e0063006500000003b3000000c60000000000000000fb0000003e004600200054007200610076006500720073006100620069006c0069007400790020004f007600650072006c006100790020005200650070006c0061007900000004a40000009f0000000000000000fb00000028004600200054007200610076006500720073006100620069006c00690074007900200052006100770000000482000000c10000000000000000fb00000028004600200054007200610076006500720073006100620069006c00690074007900200052006100770000000482000000c10000000000000000fb0000000a0049006d0061006700650000000249000000210000000000000000fb0000000a0049006d0061006700650000000270000000200000000000000000000000010000010f0000039cfc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a0056006900650077007301000001a70000039c000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b2000000000000000000000002000009b800000164fc0100000015fb0000001c0049006d00610067006500200046006500610074007500720065007300000000bf000003690000000000000000fb000000060048004400520000000000000000950000005400fffffffb00000024004100420020005700690064006500200052006500610072002000460072006f006e00740100000000000001d6000000ba00fffffffc0000012a0000010c0000000000fffffffa000000000200000003fb0000000a0049006d0061006700650000000000ffffffff0000000000000000fb0000002400460072006f006e0074002000280063006f006d007000720065007300730065006400290000000000ffffffff0000000000000000fb0000001e00410053002000460072006f006e00740020002800630061006d00340029000000003d0000010c0000000000000000fc000002570000019b0000000000fffffffa000000000200000001fb0000000a0049006d0061006700650000000000ffffffff0000000000000000fc0000036f000001530000000000fffffffa000000010200000003fb000000160049006e00700075007400200049006d006100670065000000003d000001ac0000001600fffffffb0000001a005200200049006e00700075007400200049006d0061006700650000000000ffffffff0000000000000000fb0000001a004c00200049006e00700075007400200049006d0061006700650000000000ffffffff0000000000000000fb00000028005200200043006f006e0066006900640065006e006300650020004f007600650072006c0061007901000001dc000001ae000000c700fffffffb00000030005200200054007200610076006500720073006100620069006c0069007400790020004f007600650072006c0061007901000003900000016e000000d500fffffffb00000026004100420020005700690064006500200041006e0067006c0065002000460072006f006e00740100000504000001b7000000c200fffffffb00000028004600200043006f006e0066006900640065006e006300650020004f007600650072006c006100790100000709000001540000000000000000fb00000030004600200054007200610076006500720073006100620069006c0069007400790020004f007600650072006c0061007901000006c100000147000000d400fffffffb00000028004600200043006f006e0066006900640065006e006300650020004f007600650072006c00610079010000080e000001aa000000c600fffffffb0000000a0049006d00610067006501000003240000018a0000000000000000fb0000002c0054007200610076006500720073006100620069006c0069007400790020004f007600650072006c0061007900000004ae0000010c0000000000000000fc00000846000000bd0000000000fffffffa000000000200000006fb000000160046002000540072006100760020004f0076006500720000000000ffffffff0000000000000000fb0000003e004600200054007200610076006500720073006100620069006c0069007400790020004f007600650072006c006100790020005200650070006c006100790100000000ffffffff0000000000000000fb000000240054007200610076006500720073006100620069006c0069007400790020005200610077000000003d0000012b0000001600fffffffb00000028005200200054007200610076006500720073006100620069006c00690074007900200052006100770000000000ffffffff0000000000000000fb00000028004c00200054007200610076006500720073006100620069006c00690074007900200052006100770000000000ffffffff0000000000000000fb00000030004600200054007200610076006500720073006100620069006c0069007400790020004f007600650072006c006100790000000000ffffffff0000000000000000fc00000909000000af0000000000fffffffa000000000200000005fb00000036004600200043006f006e0066006900640065006e006300650020004f007600650072006c006100790020005200650070006c006100790100000000ffffffff0000000000000000fb0000001a004c006500610072006e0069006e00670020004d00610073006b000000003d0000012b0000001600fffffffb00000020005200200043006f006e0066006900640065006e0063006500200052006100770000000000ffffffff0000000000000000fb00000020004c00200043006f006e0066006900640065006e0063006500200052006100770000000000ffffffff0000000000000000fb00000028004600200043006f006e0066006900640065006e006300650020004f007600650072006c006100790000000000ffffffff0000000000000000fb000000160050006c0061006300650068006f006c00640065007200000000000000074a0000000000000000fb000000160049006e00700075007400200049006d006100670065010000031e000001790000000000000000fb00000036005300750070006500720076006900730069006f006e0020002d00200049006d0061006700650020004c006100620065006c006500640100000659000001af0000000000000000fb00000024005300750070006500720076006900730069006f006e0020002d0020004d00610073006b010000080e000001aa0000000000000000fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000074a00000042fc010000000dfb000000200052006500700072006f006a00650063007400650064002000500061007400680000000000000000ab000000ab00fffffffb00000024005300750070006500720076006900730069006f006e0020005300690067006e0061006c00000000b10000056e000000b000fffffffb0000001c0054007200610076006500720073006100620069006c00690074007900000006250000009a0000009100fffffffb000000160055006e006300650072007400610069006e0074007900000006c5000000850000008500fffffffb000000160050006c0061006300650068006f006c006400650072000000000000000eb80000000000000000fb0000001c0054007200610076006500720073006100620069006c006900740079010000031f0000017d0000000000000000fb000000160055006e006300650072007400610069006e0074007901000004a2000002960000000000000000fb000000140043006f006e0066006900640065006e006300650000000000000003d40000000000000000fb0000001c0054007200610076006500720073006100620069006c0069007400790000000231000001f20000000000000000fb0000001c004100530020004c0065006600740020002800630061006d003300290000000000000007380000000000000000fb0000001e004100530020005200690067006800740020002800630061006d0035002900000003f0000003480000000000000000fb0000000800540069006d00650000000000000007800000041800fffffffb0000000800540069006d00650100000000000004500000000000000000000006f90000039c00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
+ QMainWindow State: 000000ff00000000fd00000004000000000000016700000395fc0200000012fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000005fb000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c00610079007301000001c900000395000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000c00430061006d00650072006100000002ea000000c80000000000000000fb00000036005300750070006500720076006900730069006f006e0020002d00200049006d0061006700650020004c006100620065006c006500640000000259000000520000000000000000fb00000024005300750070006500720076006900730069006f006e0020002d0020004d00610073006b000000027e000000b80000000000000000fb0000000a0049006d00610067006500000002eb000001280000000000000000fb000000140043006f006e0066006900640065006e0063006500000003b3000000c60000000000000000fb0000003e004600200054007200610076006500720073006100620069006c0069007400790020004f007600650072006c006100790020005200650070006c0061007900000004a40000009f0000000000000000fb00000028004600200054007200610076006500720073006100620069006c00690074007900200052006100770000000482000000c10000000000000000fb00000028004600200054007200610076006500720073006100620069006c00690074007900200052006100770000000482000000c10000000000000000fb0000000a0049006d0061006700650000000249000000210000000000000000fb0000000a0049006d0061006700650000000270000000200000000000000000000000010000010f000003b7fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a0056006900650077007300000001a7000003b7000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000a0000000186fc0100000015fb0000001c0049006d00610067006500200046006500610074007500720065007300000000bf000003690000000000000000fb000000060048004400520000000000000000950000005400fffffffb00000024004100420020005700690064006500200052006500610072002000460072006f006e0074010000000000000210000000ba00fffffffc0000012a0000010c0000000000fffffffa000000000200000003fb0000000a0049006d0061006700650000000000ffffffff0000000000000000fb0000002400460072006f006e0074002000280063006f006d007000720065007300730065006400290000000000ffffffff0000000000000000fb0000001e00410053002000460072006f006e00740020002800630061006d00340029000000003d0000010c0000000000000000fc000002570000019b0000000000fffffffa000000000200000001fb0000000a0049006d0061006700650000000000ffffffff0000000000000000fc0000036f000001530000000000fffffffa000000010200000003fb000000160049006e00700075007400200049006d006100670065000000003d000001ac0000001600fffffffb0000001a005200200049006e00700075007400200049006d0061006700650000000000ffffffff0000000000000000fb0000001a004c00200049006e00700075007400200049006d0061006700650000000000ffffffff0000000000000000fb00000028005200200043006f006e0066006900640065006e006300650020004f007600650072006c00610079010000021600000177000000c700fffffffb00000030005200200054007200610076006500720073006100620069006c0069007400790020004f007600650072006c00610079010000039300000175000000d500fffffffb00000026004100420020005700690064006500200041006e0067006c0065002000460072006f006e0074010000050e0000020c000000c200fffffffb00000028004600200043006f006e0066006900640065006e006300650020004f007600650072006c0061007901000007200000016b000000c600fffffffb00000030004600200054007200610076006500720073006100620069006c0069007400790020004f007600650072006c0061007901000008910000016f000000d400fffffffb00000028004600200043006f006e0066006900640065006e006300650020004f007600650072006c00610079010000080e000001aa0000000000000000fb0000000a0049006d00610067006501000003240000018a0000000000000000fb0000002c0054007200610076006500720073006100620069006c0069007400790020004f007600650072006c0061007900000004ae0000010c0000000000000000fc00000846000000bd0000000000fffffffa000000000200000006fb000000160046002000540072006100760020004f0076006500720000000000ffffffff0000000000000000fb0000003e004600200054007200610076006500720073006100620069006c0069007400790020004f007600650072006c006100790020005200650070006c006100790100000000ffffffff0000000000000000fb000000240054007200610076006500720073006100620069006c0069007400790020005200610077000000003d0000012b0000001600fffffffb00000028005200200054007200610076006500720073006100620069006c00690074007900200052006100770000000000ffffffff0000000000000000fb00000028004c00200054007200610076006500720073006100620069006c00690074007900200052006100770000000000ffffffff0000000000000000fb00000030004600200054007200610076006500720073006100620069006c0069007400790020004f007600650072006c006100790000000000ffffffff0000000000000000fc00000909000000af0000000000fffffffa000000000200000005fb00000036004600200043006f006e0066006900640065006e006300650020004f007600650072006c006100790020005200650070006c006100790100000000ffffffff0000000000000000fb0000001a004c006500610072006e0069006e00670020004d00610073006b000000003d0000012b0000001600fffffffb00000020005200200043006f006e0066006900640065006e0063006500200052006100770000000000ffffffff0000000000000000fb00000020004c00200043006f006e0066006900640065006e0063006500200052006100770000000000ffffffff0000000000000000fb00000028004600200043006f006e0066006900640065006e006300650020004f007600650072006c006100790000000000ffffffff0000000000000000fb000000160050006c0061006300650068006f006c00640065007200000000000000074a0000000000000000fb000000160049006e00700075007400200049006d006100670065010000031e000001790000000000000000fb00000036005300750070006500720076006900730069006f006e0020002d00200049006d0061006700650020004c006100620065006c006500640100000659000001af0000000000000000fb00000024005300750070006500720076006900730069006f006e0020002d0020004d00610073006b010000080e000001aa0000000000000000fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000074a00000042fc010000000dfb000000200052006500700072006f006a00650063007400650064002000500061007400680000000000000000ab000000ab00fffffffb00000024005300750070006500720076006900730069006f006e0020005300690067006e0061006c00000000b10000056e000000b000fffffffb0000001c0054007200610076006500720073006100620069006c00690074007900000006250000009a0000009100fffffffb000000160055006e006300650072007400610069006e0074007900000006c5000000850000008500fffffffb000000160050006c0061006300650068006f006c006400650072000000000000000eb80000000000000000fb0000001c0054007200610076006500720073006100620069006c006900740079010000031f0000017d0000000000000000fb000000160055006e006300650072007400610069006e0074007901000004a2000002960000000000000000fb000000140043006f006e0066006900640065006e006300650000000000000003d40000000000000000fb0000001c0054007200610076006500720073006100620069006c0069007400790000000231000001f20000000000000000fb0000001c004100530020004c0065006600740020002800630061006d003300290000000000000007380000000000000000fb0000001e004100530020005200690067006800740020002800630061006d0035002900000003f0000003480000000000000000fb0000000800540069006d00650000000000000007800000041800fffffffb0000000800540069006d00650100000000000004500000000000000000000008930000039500000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
R Confidence Overlay:
collapsed: false
R Traversability Overlay:
@@ -1024,7 +1090,7 @@ Window Geometry:
Uncertainty:
collapsed: false
Views:
- collapsed: false
- Width: 2488
- X: 72
- Y: 27
+ collapsed: true
+ Width: 2560
+ X: 0
+ Y: 0