{"id":18621369,"url":"https://github.com/ethz-asl/ssc_exploration","last_synced_at":"2025-04-11T02:31:45.256Z","repository":{"id":56806589,"uuid":"525700433","full_name":"ethz-asl/ssc_exploration","owner":"ethz-asl","description":"Incremental 3D Scene Completion for Safe and Efficient Exploration Mapping and Planning","archived":false,"fork":false,"pushed_at":"2024-06-06T13:12:37.000Z","size":959,"stargazers_count":98,"open_issues_count":3,"forks_count":11,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-03-25T08:23:17.157Z","etag":null,"topics":["3d","completion","exploration","mapping","mav","planning","robotics","sc-explorer","scene","ssc"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ethz-asl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-17T08:19:56.000Z","updated_at":"2025-03-15T08:02:08.000Z","dependencies_parsed_at":"2024-06-06T14:46:29.389Z","dependency_job_id":"d833a3b0-25ae-44ac-b76a-56ea00fe80e9","html_url":"https://github.com/ethz-asl/ssc_exploration","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethz-asl%2Fssc_exploration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethz-asl%2Fssc_exploration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethz-asl%2Fssc_exploration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethz-asl%2Fssc_exploration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ethz-asl","download_url":"https://codeload.github.com/ethz-asl/ssc_exploration/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248329616,"owners_count":21085568,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d","completion","exploration","mapping","mav","planning","robotics","sc-explorer","scene","ssc"],"created_at":"2024-11-07T04:11:25.285Z","updated_at":"2025-04-11T02:31:43.401Z","avatar_url":"https://github.com/ethz-asl.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SSC Exploration\nThis repository contains the code for **SC-Explorer**, our framework for incremental fusion of 3D semantic scene completion and safe and efficient integration thereof into mobile robotic mapping and planning for exploration.\n\n![SC-Explorer](https://user-images.githubusercontent.com/36043993/191210581-530756ed-81f0-4413-8e21-9add00f39450.gif)\n\nIncremental 3D scene completion for safe and efficient exploration mapping and planning.\n\n# Table of Contents\n**Credits**\n* [Paper](#Paper)\n* [Video](#Video)\n   \n\n**Setup**\n* [Installation](#installation)\n* [Simulation](#Simulation)\n\n**Examples**\n- [Training the Model](#training-the-model)\n- [Running the Planner](#running-the-planner)\n- [Evaluating an experiment](#evaluating-an-experiment)\n\n# Paper\nIf you find this useful for your research, please consider citing our paper:\n\n* Lukas Schmid, Mansoor Nasir Cheema, Victor Reijgwart, Roland Siegwart, Federico Tombari, and Cesar Cadena, \"**SC-Explorer: Incremental 3D Scene Completion for Safe and Efficient Exploration Mapping and Planning**\" in *ArXiv Preprint*, 2022.\n  \\[ [ArXiv](https://arxiv.org/abs/2208.08307) | [Video](https://youtu.be/DMXdhCqUqts)\\]\n  ```bibtex\n  @article{schmid2022scexplorer,\n    title={SC-Explorer: Incremental 3D Scene Completion for Safe and Efficient Exploration Mapping and Planning},\n    author={Schmid, Lukas and Cheema, Mansoor Nasir and Reijgwart, Victor and Siegwart, Roland and Tombari, Federico and Cadena, Cesar},\n    journal={arXiv preprint arXiv:2208.08307},\n    year={2022}\n  }\n  ```\n\n# Video\nAn overview of SC-Explorer is available on [YouTube](https://youtu.be/DMXdhCqUqts):\n\n[\u003cimg src=https://github.com/ethz-asl/ssc_exploration/assets/36043993/09c4be47-4842-4bd0-8029-c41af455f7a8 alt=\"Youtube Video\"\u003e](https://youtu.be/DMXdhCqUqts)\n\n\n\n# Setup\n\u003e **ℹ️ Note**\u003cbr\u003e The code is provided on an 'as-is' basis. While everything should work and is tested, photorealistic simulation and GPU inference can be cumbersome and we cannot provide support for setting this up.\n\n## Installation\n1. Install [ROS](http://wiki.ros.org/ROS/Installation) (Desktop full recommended) if not already done so.\n\n2.  Install system dependencies: \n```shell script\nsudo apt install python-wstool python-catkin-tools ros-$ROS_DISTRO-cmake-modules ros-$ROS_DISTRO-control-toolbox ros-$ROS_DISTRO-joy ros-$ROS_DISTRO-octomap-ros ros-$ROS_DISTRO-geographic-msgs autoconf libyaml-cpp-dev protobuf-compiler libgoogle-glog-dev liblapacke-dev libgeographic-dev\n```\n\n3. Setup catkin workspace using [catkin-tools](https://catkin-tools.readthedocs.io/en/latest/)\n```shell script\nmkdir -p ~/catkin_ws/src\ncd ~/catkin_ws\ncatkin init\ncatkin config --extend /opt/ros/$ROS_DISTRO \ncatkin config --cmake-args -DCMAKE_BUILD_TYPE=Release\ncatkin config --merge-devel\n```\n\n5. Checkout the GitHub repository: \n```shell script\ncd ~/catkin_ws/src\ngit clone git@github.com:ethz-asl/ssc_exploration.git # Requires Git SSH\n```\n\n6. Install dependencies\n```shell script\nwstool init . ./ssc_exploration/.rosinstall # Requires Git SSH\nwstool update\n```\n8. Compile\n```shell script\ncatkin build ssc_planning\n```\n\n9. Build the scene completion network based on PAL-Net following the instructions in [`ssc_network/`](https://github.com/ethz-asl/ssc_exploration/tree/main/ssc_network).\n\n## Simulation \nThe following tools were used in our experiments, other simulation or real robot setups should work, too:\n\n* **Unreal Engine**\nSetup [Unreal Engine 4.25.6](https://www.unrealengine.com/en-US/download) (UE4).\n\n* **Airsim**\n[AirSim](https://microsoft.github.io/AirSim/) is a simulation software for simulating a MAV in Unreal Engine. We use the Airsim 1.2 plugin for UE4, which is provided by unreal_airsim below.\n\n* **unreal_airsim** \n[unreal_airsim](https://github.com/ethz-asl/unreal_airsim) is a ROS  interface to the simulated MAV in Unreal Engine for accessing odometry and sending trajectory commands. \n\n* **Dataset**\nThe environment used in our experiments, including all plugins and ground truth can be downloaded [here](https://drive.google.com/drive/folders/1ji11IMJPlsnZQZmM4xNB3s9hnNgV0Ete?usp=sharing). Note that we can not guarantee compatibility with operating systems other than Ubuntu or different versions of AirSim/UE4.\n\n# Experiments \n\n## Training the Model\nInstructions to train and test the SC-Network as well as pretrained weights are given in [`ssc_network/`](https://github.com/ethz-asl/ssc_exploration/tree/main/ssc_network). \n\n\n## Running the Planner\n\n1. Start Unreal Engine: \n```shell script\ncd \u003cUNREAL_INSTALL_DIR\u003e # Move to the unreal install directory\n./Engine/Binaries/Linux/UE4Editor your-project-file.uproject -opengl4\n```\n\n2. Start the SSC Network (Make sure the network is setup as explained in [`ssc_network/`](https://github.com/ethz-asl/ssc_exploration/tree/main/ssc_network) first):\n```shell script\nexport SSC_DIR=/home/$USER/catkin_ws/src/ssc_exploration/ssc_network\npython3 $SSC_DIR/infer_ros.py --model palnet --resume $SSC_DIR/pretrained_models/weights/PALNet.pth.tar\n```\n\n3. Launch planning pipeline with the desired planning configuration specified as argument:\n ```shell script\n roslaunch ssc_planning run.launch planner_config_file:=sc_explorer.yaml output_directory:=path/to/output\n```\nFeel free to play with parameters in `sc_explorer.yaml` or use different gain evaluators by specifying them in the config. Note that all configs are composed of two files, where `baseline` specifies the shared parameters and `sc_explorer` or `exploration` provide specialized parameters for view planning.\n\n## Evaluating an experiment\nRunning the pipeline as explained above will write all output files into a timestamped folder in `path/to/output`. To evaluate the recorded data and visualize the map, run:\n\n```shell script\npython3 ./ssc_mapping/src/eval/eval_plots.py [output_dir] [gt_file_path] [eval_type]\n```\nWhere `output_dir` should point to the previously created data directory, `gt_file_path` points to the ground truth (available [here](https://drive.google.com/drive/folders/1ji11IMJPlsnZQZmM4xNB3s9hnNgV0Ete?usp=sharing) for our simulated scene), and `eval_type` is one of `tsdf` or `hierarchical` to only evaluate measured or also scene completed areas, respectively.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethz-asl%2Fssc_exploration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fethz-asl%2Fssc_exploration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethz-asl%2Fssc_exploration/lists"}