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 • + InstallationOverviewExperiments • - Development - - ![Formatting](https://github.com/leggedrobotics/wild_visual_navigation/actions/workflows/formatting.yml/badge.svg) + Development • + Citation

-![Overview](./assets/drawings/header.jpg) - -Dino - -## 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} -} -``` + + +

+ MIT License + formatting +

+ -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. Dino ## 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`. - - - Dino ## 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 | |----------------|------------|-------------|---------------------| | MPI Outdoor | MPI Indoor | Bahnhofstrasse | Mountain Bike | -| MPI Outdoor | MPI Indoor | Bahnhofstrasse | Mountain Bike | +| MPI Outdoor | MPI Indoor | Bahnhofstrasse | Mountain Bike | +
-#### 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. Dino @@ -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 ``` + +Dino + +## 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