diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000000000000000000000000000000000000..d99760119e3fd31b129d6c0943a2bc02043ad405 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,174 @@ +version: 2 +gpu: &gpu + machine: + image: ubuntu-1604:201903-01 + resource_class: gpu.small + environment: + FPS_THRESHOLD: 900 + +jobs: + python_lint: + docker: + - image: circleci/python:3.6 + steps: + - checkout + - run: + name: setup + command: | + sudo pip install black isort + - run: + name: run black + command: | + black . --line-length 79 --check --diff + - run: + name: run isort + command: | + isort . -rc --multi-line 3 --trailing-comma --force-grid-wrap 0 --line-width 79 --combine-as + + install_and_test_ubuntu: + <<: *gpu + steps: + - checkout: + path: ./habitat-api + - run: + name: Install cmake + no_output_timeout: 5m + command: | + echo $(git ls-remote https://github.com/facebookresearch/habitat-sim.git HEAD | awk '{ print $1}') > ./hsim_sha + wget https://github.com/Kitware/CMake/releases/download/v3.13.4/cmake-3.13.4-Linux-x86_64.sh + sudo mkdir /opt/cmake + sudo sh ./cmake-3.13.4-Linux-x86_64.sh --prefix=/opt/cmake --skip-license + sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake + - run: + name: Install dependencies + no_output_timeout: 20m + command: | + sudo apt-get update || true + sudo apt-get install -y --no-install-recommends \ + build-essential \ + git \ + curl \ + vim \ + ca-certificates \ + libjpeg-dev \ + libglm-dev \ + libegl1-mesa-dev \ + xorg-dev \ + freeglut3-dev \ + pkg-config \ + wget \ + zip \ + unzip || true + - run: + name: Install cuda + no_output_timeout: 20m + background: true + command: | + wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.44-1_amd64.deb + sudo dpkg -i cuda-repo-ubuntu1604_8.0.44-1_amd64.deb + sudo apt-get update || true + sudo apt-get --yes --force-yes install cuda + touch ./cuda_installed + nvidia-smi + - restore_cache: + keys: + - conda-{{ checksum "habitat-api/.circleci/config.yml" }} + - run: + name: Install conda and dependencies + no_output_timeout: 20m + command: | + if [ ! -d ~/miniconda ] + then + curl -o ~/miniconda.sh -O https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh + chmod +x ~/miniconda.sh + ~/miniconda.sh -b -p $HOME/miniconda + rm ~/miniconda.sh + export PATH=$HOME/miniconda/bin:$PATH + conda create -y -n habitat python=3.6 + . activate habitat + conda install -q -y -c conda-forge ninja numpy pytest + fi + - run: + name: Install pytorch + no_output_timeout: 20m + background: true + command: | + if [ ! -f ~/miniconda/pytorch_installed ] + then + export PATH=$HOME/miniconda/bin:$PATH + . activate habitat; + conda install -c conda-forge opencv -y + conda install -y pytorch torchvision cudatoolkit=10.0 -c pytorch + fi + touch ~/miniconda/pytorch_installed + - restore_cache: + keys: + - habitat-sim-{{ checksum "./hsim_sha" }} + - run: + name: Build, install habitat-sim and run benchmark + no_output_timeout: 20m + command: | + export PATH=$HOME/miniconda/bin:$PATH + . activate habitat; + if [ ! -d ./habitat-sim ] + then + git clone https://github.com/facebookresearch/habitat-sim.git + cd habitat-sim + python setup.py install --headless + else + if [ ! -f ~/miniconda/pip_deps_installed ] + then + cd habitat-sim + python setup.py install --headless + fi + fi + - save_cache: + key: conda-{{ checksum "habitat-api/.circleci/config.yml" }} + background: true + paths: + - ~/miniconda + - run: + name: Download test data + command: | + + if [ ! -d ./habitat-sim/data ] + then + cd habitat-sim + wget http://dl.fbaipublicfiles.com/habitat/habitat-test-scenes.zip + unzip habitat-test-scenes.zip + rm habitat-test-scenes.zip + fi + - run: + name: Run sim benchmark + command: | + while [ ! -f ./cuda_installed ]; do sleep 2; done # wait for CUDA + export PATH=$HOME/miniconda/bin:$PATH + . activate habitat; cd habitat-sim + python examples/example.py --scene data/scene_datasets/habitat-test-scenes/van-gogh-room.glb --silent --test_fps_regression $FPS_THRESHOLD + - save_cache: + key: habitat-sim-{{ checksum "./hsim_sha" }} + paths: + - ./habitat-sim + - run: + name: Run api tests + command: | + export PATH=$HOME/miniconda/bin:$PATH + . activate habitat; cd habitat-api + while [ ! -f ~/miniconda/pytorch_installed ]; do sleep 2; done # wait for Pytorch + ln -s ../habitat-sim/data data + pip install -r requirements.txt --progress-bar off + touch ~/miniconda/pip_deps_installed + python setup.py test + python setup.py develop --all + python -u habitat_baselines/train_ppo.py --log-file "train.log" --checkpoint-folder "data/checkpoints" --sim-gpu-id 0 --pth-gpu-id 0 --num-processes 1 --num-mini-batch 1 --num-updates 10 + - save_cache: + key: conda-{{ checksum "habitat-api/.circleci/config.yml" }} + paths: + - ~/miniconda + +workflows: + version: 2 + install_and_test: + jobs: + - python_lint + - install_and_test_ubuntu \ No newline at end of file diff --git a/examples/shortest_path_follower_example.py b/examples/shortest_path_follower_example.py index 2cd170f36a19b036d3624375c5b85ec034eb867c..e78cdd363f6d41a77bdfe6c3afdf3fc7ef15abc0 100644 --- a/examples/shortest_path_follower_example.py +++ b/examples/shortest_path_follower_example.py @@ -8,8 +8,9 @@ import os import shutil import cv2 -import habitat import numpy as np + +import habitat from habitat.tasks.nav.shortest_path_follower import ShortestPathFollower from habitat.utils.visualizations import maps from habitat.utils.visualizations.utils import images_to_video diff --git a/habitat/core/dataset.py b/habitat/core/dataset.py index 200c98afc9dcb24a2308dc6d305718929d8946ea..e0219bfd7d2c5b0045b772a571814afe9aebeacb 100644 --- a/habitat/core/dataset.py +++ b/habitat/core/dataset.py @@ -4,15 +4,15 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. -import attr import copy import json -from typing import Dict, List, Type, TypeVar, Generic, Optional, Callable - -from habitat.core.utils import not_none_validator +from typing import Callable, Dict, Generic, List, Optional, Type, TypeVar +import attr import numpy as np +from habitat.core.utils import not_none_validator + @attr.s(auto_attribs=True, kw_only=True) class Episode: diff --git a/habitat/core/embodied_task.py b/habitat/core/embodied_task.py index aa38576a1de957de3687565d48b9ad30a3d3e028..775c1c09b95f161ddafe475248d6a7c897d5819d 100644 --- a/habitat/core/embodied_task.py +++ b/habitat/core/embodied_task.py @@ -4,11 +4,11 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. -from typing import Any, List, Type, Optional, Dict from collections import OrderedDict +from typing import Any, Dict, List, Optional, Type from habitat.config import Config -from habitat.core.dataset import Episode, Dataset +from habitat.core.dataset import Dataset, Episode from habitat.core.simulator import SensorSuite, Simulator diff --git a/habitat/core/env.py b/habitat/core/env.py index cfa3438c2cf5af7a71a3b4a74b3b4e228bfbb9f0..874e69c25148f4100b1675a622f256c378d18c1f 100644 --- a/habitat/core/env.py +++ b/habitat/core/env.py @@ -5,18 +5,19 @@ # LICENSE file in the root directory of this source tree. import time -from typing import Dict, Type, List, Any, Optional, Tuple +from typing import Any, Dict, List, Optional, Tuple, Type import gym import numpy as np from gym.spaces.dict_space import Dict as SpaceDict + from habitat.config import Config from habitat.core.dataset import Dataset, Episode from habitat.core.embodied_task import EmbodiedTask, Metrics from habitat.core.simulator import Observations, Simulator +from habitat.datasets import make_dataset from habitat.sims import make_sim from habitat.tasks import make_task -from habitat.datasets import make_dataset class Env: diff --git a/habitat/core/simulator.py b/habitat/core/simulator.py index fddd6bfddacee772f846018a250fd8a3769a201d..69320bcc38f627ad9adcde9e5f0f13ea3754c5bd 100644 --- a/habitat/core/simulator.py +++ b/habitat/core/simulator.py @@ -5,11 +5,12 @@ # LICENSE file in the root directory of this source tree. from collections import OrderedDict -from typing import Any, Dict, List, Optional from enum import Enum +from typing import Any, Dict, List, Optional from gym import Space from gym.spaces.dict_space import Dict as SpaceDict + from habitat.config import Config diff --git a/habitat/core/vector_env.py b/habitat/core/vector_env.py index 7cccd8cdce421399d0e203261a75091803daa0fa..d5fc6d387587662f60ed81c859cacb4472b9e648 100644 --- a/habitat/core/vector_env.py +++ b/habitat/core/vector_env.py @@ -8,16 +8,17 @@ import multiprocessing as mp from multiprocessing.connection import Connection from queue import Queue from threading import Thread -from typing import Iterable, List, Tuple, Callable, Union, Any, Set, Optional +from typing import Any, Callable, Iterable, List, Optional, Set, Tuple, Union -import habitat +import gym import numpy as np from gym.spaces.dict_space import Dict as SpaceDict + +import habitat from habitat.config import Config from habitat.core.env import Env, Observations from habitat.core.logging import logger from habitat.core.utils import tile_images -import gym STEP_COMMAND = "step" RESET_COMMAND = "reset" diff --git a/habitat/datasets/pointnav/pointnav_dataset.py b/habitat/datasets/pointnav/pointnav_dataset.py index 2795b2ebff4b28bef75eee20983f0ca344f63fdc..c2ce3cbe23dad71933c632c355dd7c70070d87a2 100644 --- a/habitat/datasets/pointnav/pointnav_dataset.py +++ b/habitat/datasets/pointnav/pointnav_dataset.py @@ -12,9 +12,9 @@ from typing import List, Optional from habitat.config import Config from habitat.core.dataset import Dataset from habitat.tasks.nav.nav_task import ( + NavigationEpisode, NavigationGoal, ShortestPathPoint, - NavigationEpisode, ) ALL_SCENES_MASK = "*" diff --git a/habitat/datasets/pointnav/pointnav_generator.py b/habitat/datasets/pointnav/pointnav_generator.py index 99cb542a2ba445b43e0f84b9395208b2bdd43ba7..2fbd79108bc48dedbb8addab0684c607205f955f 100644 --- a/habitat/datasets/pointnav/pointnav_generator.py +++ b/habitat/datasets/pointnav/pointnav_generator.py @@ -4,7 +4,7 @@ import numpy as np from habitat.core.simulator import Simulator from habitat.datasets.utils import get_action_shortest_path -from habitat.tasks.nav.nav_task import NavigationGoal, NavigationEpisode +from habitat.tasks.nav.nav_task import NavigationEpisode, NavigationGoal """ A minimum radius of a plane that a point should be part of to be diff --git a/habitat/sims/habitat_simulator.py b/habitat/sims/habitat_simulator.py index e60ca5518ed8e218d4a0f03866328ea3c7604bf6..8050ca023ed0377a3f615511eb0b165863fa366c 100644 --- a/habitat/sims/habitat_simulator.py +++ b/habitat/sims/habitat_simulator.py @@ -4,18 +4,23 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. -from typing import List, Any, Optional from enum import Enum +from typing import Any, List, Optional + +import numpy as np +from gym import Space, spaces import habitat import habitat_sim -import numpy as np -from gym import spaces, Space -from habitat import SensorSuite, Config +from habitat import Config, SensorSuite from habitat.core.logging import logger -from habitat.core.simulator import AgentState, ShortestPathPoint -from habitat.core.simulator import RGBSensor, DepthSensor, SemanticSensor - +from habitat.core.simulator import ( + AgentState, + DepthSensor, + RGBSensor, + SemanticSensor, + ShortestPathPoint, +) RGBSENSOR_DIMENSION = 3 diff --git a/habitat/tasks/eqa/eqa_task.py b/habitat/tasks/eqa/eqa_task.py index 66d67e47e24ea3746e5b4e11316c0285499182f4..6898db2a2bf3737a639491ed417c0ce9a23e7a7f 100644 --- a/habitat/tasks/eqa/eqa_task.py +++ b/habitat/tasks/eqa/eqa_task.py @@ -7,14 +7,14 @@ from typing import Dict, Optional import attr - import numpy as np from gym import spaces + from habitat.core.simulator import ( + Observations, Sensor, - SensorTypes, SensorSuite, - Observations, + SensorTypes, ) from habitat.core.utils import not_none_validator from habitat.tasks.nav.nav_task import NavigationEpisode, NavigationTask diff --git a/habitat/tasks/nav/nav_task.py b/habitat/tasks/nav/nav_task.py index c0c03b8d1bba512d589f1de4ec8dfe9fa9d96f05..c46cf2e8b52b88fce3ca36f6e1cc069e966619b1 100644 --- a/habitat/tasks/nav/nav_task.py +++ b/habitat/tasks/nav/nav_task.py @@ -6,20 +6,20 @@ from typing import Any, List, Optional, Type -import cv2 import attr +import cv2 import numpy as np from gym import spaces import habitat from habitat.config import Config -from habitat.core.dataset import Episode, Dataset +from habitat.core.dataset import Dataset, Episode from habitat.core.embodied_task import Measurements from habitat.core.simulator import ( - Simulator, - ShortestPathPoint, - SensorTypes, SensorSuite, + SensorTypes, + ShortestPathPoint, + Simulator, ) from habitat.core.utils import not_none_validator from habitat.tasks.utils import cartesian_to_polar, quaternion_rotate_vector diff --git a/habitat/tasks/nav/shortest_path_follower.py b/habitat/tasks/nav/shortest_path_follower.py index 12fdb3b1d9e9b2197701cdbe102464b2fe04b34e..7d6da161ba4a6addc95e19b5627863ae8c29593b 100644 --- a/habitat/tasks/nav/shortest_path_follower.py +++ b/habitat/tasks/nav/shortest_path_follower.py @@ -6,17 +6,15 @@ from typing import Union -import habitat_sim import numpy as np -from habitat.sims.habitat_simulator import HabitatSim -from habitat.sims.habitat_simulator import SimulatorActions +import habitat_sim +from habitat.sims.habitat_simulator import HabitatSim, SimulatorActions from habitat.utils.geometry_utils import ( angle_between_quaternions, quaternion_from_two_vectors, ) - EPSILON = 1e-6 diff --git a/habitat/utils/geometry_utils.py b/habitat/utils/geometry_utils.py index 7249333bb860db2c65175527a24c2b5b963aa675..ac454f4d94f6b1f6c6abc7ed09cbcee97c59bce4 100644 --- a/habitat/utils/geometry_utils.py +++ b/habitat/utils/geometry_utils.py @@ -7,7 +7,6 @@ import numpy as np import quaternion - EPSILON = 1e-8 diff --git a/habitat/utils/visualizations/maps.py b/habitat/utils/visualizations/maps.py index c44302acd69b2d985b33e8545c7e48e8c269d73c..fbd7eb6fe20296f8074c94c157966c5a65aa3b60 100644 --- a/habitat/utils/visualizations/maps.py +++ b/habitat/utils/visualizations/maps.py @@ -5,12 +5,13 @@ # LICENSE file in the root directory of this source tree. import os -from typing import List, Tuple, Optional +from typing import List, Optional, Tuple import cv2 import imageio import numpy as np import scipy.ndimage + from habitat.core.simulator import Simulator from habitat.utils.visualizations import utils diff --git a/habitat/utils/visualizations/utils.py b/habitat/utils/visualizations/utils.py index 474b980a587bb1bb3b37b548fbd4ee09998b37eb..47a21a84c98357f80ae8944aa74da2d85e29ecc8 100644 --- a/habitat/utils/visualizations/utils.py +++ b/habitat/utils/visualizations/utils.py @@ -5,10 +5,10 @@ # LICENSE file in the root directory of this source tree. import os -from typing import Tuple, Optional, List +from typing import List, Optional, Tuple -import numpy as np import imageio +import numpy as np import tqdm diff --git a/habitat_baselines/agents/ppo_agents.py b/habitat_baselines/agents/ppo_agents.py index ea0b53773f2a19b849bfc499ace1a604ee6a5422..26f59a9449207ab5ec658649b59521eeffb37ca2 100644 --- a/habitat_baselines/agents/ppo_agents.py +++ b/habitat_baselines/agents/ppo_agents.py @@ -10,13 +10,13 @@ import random import numpy as np import torch -from gym.spaces import Discrete, Dict, Box +from gym.spaces import Box, Dict, Discrete import habitat -from habitat_baselines.rl.ppo import Policy -from habitat_baselines.rl.ppo.utils import batch_obs from habitat import Config from habitat.core.agent import Agent +from habitat_baselines.rl.ppo import Policy +from habitat_baselines.rl.ppo.utils import batch_obs def get_defaut_config(): diff --git a/habitat_baselines/agents/slam_agents.py b/habitat_baselines/agents/slam_agents.py index c90ecb5f21259a2eca86d2b3732a5fc7ac7a138c..b7694e826f5d42bd9134c598ac20e5c64b679880 100644 --- a/habitat_baselines/agents/slam_agents.py +++ b/habitat_baselines/agents/slam_agents.py @@ -1,39 +1,34 @@ import argparse -import numpy as np -import torch +import os import random +import sys import time -import os -import PIL from math import pi + +import numpy as np +import PIL +import requests +import torch import torch.nn.functional as F -import orbslam2 + import habitat -from habitat_baselines.slambased.utils import generate_2dgrid +import orbslam2 +from habitat.config.default import get_config +from habitat.sims.habitat_simulator import SimulatorActions +from habitat_baselines.config.default import get_config as cfg_baseline +from habitat_baselines.slambased.mappers import DirectDepthMapper +from habitat_baselines.slambased.monodepth import MonoDepthEstimator +from habitat_baselines.slambased.path_planners import DifferentiableStarPlanner from habitat_baselines.slambased.reprojection import ( - homogenize_p, - get_distance, - project_tps_into_worldmap, + angle_to_pi_2_minus_pi_2 as norm_ang, get_direction, + get_distance, habitat_goalpos_to_mapgoal_pos, + homogenize_p, planned_path2tps, - angle_to_pi_2_minus_pi_2, -) -from habitat_baselines.slambased.reprojection import ( - angle_to_pi_2_minus_pi_2 as norm_ang, + project_tps_into_worldmap, ) -from habitat.sims.habitat_simulator import SimulatorActions -from habitat_baselines.slambased.mappers import DirectDepthMapper -from habitat_baselines.slambased.path_planners import DifferentiableStarPlanner - -from habitat_baselines.config.default import get_config as cfg_baseline -from habitat.config.default import get_config - -from habitat_baselines.slambased.monodepth import MonoDepthEstimator - -# https://sumit-ghosh.com/articles/python-download-progress-bar/ -import sys -import requests +from habitat_baselines.slambased.utils import generate_2dgrid def download(url, filename): diff --git a/habitat_baselines/config/default.py b/habitat_baselines/config/default.py index 39a9cc377bed39a7ead66a60a8f002ebb2baa0c8..ee9c62d7d46bdd5f39a6d202adf55fb4b531e750 100644 --- a/habitat_baselines/config/default.py +++ b/habitat_baselines/config/default.py @@ -4,8 +4,10 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. -import numpy as np from typing import List, Optional, Union + +import numpy as np + from habitat import get_config from habitat.config import Config as CN diff --git a/habitat_baselines/evaluate_ppo.py b/habitat_baselines/evaluate_ppo.py index 43f340797fab36e9f5d0ccebbf398bf221ecef2f..ef496589b11fd1adb8677f5ba61b50618200dcd8 100644 --- a/habitat_baselines/evaluate_ppo.py +++ b/habitat_baselines/evaluate_ppo.py @@ -9,12 +9,11 @@ import argparse import torch import habitat -from habitat.config.default import get_config from config.default import get_config as cfg_baseline - -from train_ppo import make_env_fn +from habitat.config.default import get_config from rl.ppo import PPO, Policy from rl.ppo.utils import batch_obs +from train_ppo import make_env_fn def main(): diff --git a/habitat_baselines/rl/ppo/policy.py b/habitat_baselines/rl/ppo/policy.py index 0fa2adca68d511cc8a97e20b49076a68f7eaed0b..5c9e725633fff4666dbab465e01a66e59b3f504f 100644 --- a/habitat_baselines/rl/ppo/policy.py +++ b/habitat_baselines/rl/ppo/policy.py @@ -4,12 +4,11 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. +import numpy as np import torch import torch.nn as nn -from habitat_baselines.rl.ppo.utils import Flatten, CategoricalNet - -import numpy as np +from habitat_baselines.rl.ppo.utils import CategoricalNet, Flatten class Policy(nn.Module): diff --git a/habitat_baselines/rl/ppo/ppo.py b/habitat_baselines/rl/ppo/ppo.py index 6f46ab22523f2516c40c6f5c12a2b6e6f5b81cae..78f113f89d7f167b0bcd20e556d8c9ec0e6e9b71 100644 --- a/habitat_baselines/rl/ppo/ppo.py +++ b/habitat_baselines/rl/ppo/ppo.py @@ -8,7 +8,6 @@ import torch import torch.nn as nn import torch.optim as optim - EPS_PPO = 1e-5 diff --git a/habitat_baselines/slambased/mappers.py b/habitat_baselines/slambased/mappers.py index 527b37cd90d7082b2e4baffc96ba2612625fa94c..90b16cd3b0fd226b526d0802c7ae3aa31b91e905 100644 --- a/habitat_baselines/slambased/mappers.py +++ b/habitat_baselines/slambased/mappers.py @@ -1,6 +1,7 @@ import numpy as np import torch import torch.nn as nn + from habitat_baselines.slambased.reprojection import ( get_map_size_in_cells, project2d_pcl_into_worldmap, diff --git a/habitat_baselines/slambased/monodepth.py b/habitat_baselines/slambased/monodepth.py index 38c7269c53cc8df86c63d289187fb7864a5010ee..a1f87b79370af53a2449e9427114c267b1054e21 100644 --- a/habitat_baselines/slambased/monodepth.py +++ b/habitat_baselines/slambased/monodepth.py @@ -6,26 +6,26 @@ WACV 2019 """ +import math +import os +import pdb + +import numpy as np import torch +import torch.nn as nn +import torch.nn.functional as F import torch.nn.parallel +import torch.utils.model_zoo as model_zoo +from PIL import Image +from torchvision import transforms, utils """ ResNet code gently borrowed from https://github.com/pytorch/vision/blob/master/torchvision/models/py """ -import torch.nn as nn -import math -import torch.utils.model_zoo as model_zoo -import torch.nn.functional as F -import torch -import numpy as np -import pdb -import os -from PIL import Image accimage = None -from torchvision import transforms, utils __all__ = [ diff --git a/habitat_baselines/slambased/path_planners.py b/habitat_baselines/slambased/path_planners.py index eebaebfad5e2b57d98cf873b8a7b9ab9eb4440f3..9e15e15747e00d3fdede0ebfe76f2849e956a7d7 100644 --- a/habitat_baselines/slambased/path_planners.py +++ b/habitat_baselines/slambased/path_planners.py @@ -1,8 +1,9 @@ +import matplotlib.pyplot as plt import numpy as np import torch -import torch.nn.functional as F import torch.nn as nn -import matplotlib.pyplot as plt +import torch.nn.functional as F + from habitat_baselines.slambased.utils import generate_2dgrid diff --git a/habitat_baselines/slambased/reprojection.py b/habitat_baselines/slambased/reprojection.py index e71074b55437ca1044e6da3cc9a89682c703bcb8..7d79f6d7410788bb77e1fa6b730e81079ae88da1 100644 --- a/habitat_baselines/slambased/reprojection.py +++ b/habitat_baselines/slambased/reprojection.py @@ -1,6 +1,7 @@ +from math import ceil, floor + import numpy as np import torch -from math import ceil, floor def p_zx(p): diff --git a/habitat_baselines/slambased/utils.py b/habitat_baselines/slambased/utils.py index 8b39671c7b38c4cc84e9f65a855c48cd283b2ed8..73acc862d0d4d97522613df7c8e5de5c95166d78 100644 --- a/habitat_baselines/slambased/utils.py +++ b/habitat_baselines/slambased/utils.py @@ -1,6 +1,7 @@ +import time + import numpy as np import torch -import time from PIL import Image diff --git a/habitat_baselines/train_ppo.py b/habitat_baselines/train_ppo.py index b71238263630cbee285c20b15f9f36e3afe4092a..90ecc0d82b5ba867b4dd90ff02b47db8aa23319b 100644 --- a/habitat_baselines/train_ppo.py +++ b/habitat_baselines/train_ppo.py @@ -5,20 +5,21 @@ # LICENSE file in the root directory of this source tree. import os -from time import time -from collections import deque import random -import numpy as np +from collections import deque +from time import time +import numpy as np import torch + import habitat +from config.default import get_config as cfg_baseline from habitat import logger -from habitat.sims.habitat_simulator import SimulatorActions from habitat.config.default import get_config as cfg_env -from config.default import get_config as cfg_baseline from habitat.datasets.pointnav.pointnav_dataset import PointNavDatasetV1 +from habitat.sims.habitat_simulator import SimulatorActions from rl.ppo import PPO, Policy, RolloutStorage -from rl.ppo.utils import update_linear_schedule, ppo_args, batch_obs +from rl.ppo.utils import batch_obs, ppo_args, update_linear_schedule class NavRLEnv(habitat.RLEnv): diff --git a/setup.py b/setup.py index bec05a1f77d9fc9513df2b46dc04c722250aeb25..a95bae9b43e933e440f6d76edc993ec0aa7ba9bb 100644 --- a/setup.py +++ b/setup.py @@ -7,12 +7,14 @@ import glob import os.path import sys + import setuptools from setuptools.command.develop import develop as DefaultDevelopCommand from setuptools.command.install import install as DefaultInstallCommand sys.path.insert(0, os.path.join(os.path.dirname(__file__), "habitat")) -from version import VERSION # noqa +from version import VERSION # isort:skip noqa + with open("README.md", encoding="utf8") as f: readme = f.read() diff --git a/test/test_baseline_agents.py b/test/test_baseline_agents.py index fcb6283f06cdc1d0f87994711b2d686969e29762..b69bc82202f0f3ee71b2f1b5162ac70b0f1c763f 100644 --- a/test/test_baseline_agents.py +++ b/test/test_baseline_agents.py @@ -4,9 +4,11 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. -import habitat import os + import pytest + +import habitat from habitat_baselines.agents import simple_agents try: diff --git a/test/test_habitat_example.py b/test/test_habitat_example.py index 39131be2471ffa682fd3cac03f0287f34010bf27..1f95c35f419e19ea401abe86eae9e37ee0408da2 100644 --- a/test/test_habitat_example.py +++ b/test/test_habitat_example.py @@ -7,10 +7,9 @@ import pytest import habitat +from examples import shortest_path_follower_example, visualization_examples from examples.example import example from habitat.datasets.pointnav.pointnav_dataset import PointNavDatasetV1 -from examples import visualization_examples -from examples import shortest_path_follower_example def test_readme_example(): diff --git a/test/test_pointnav_dataset.py b/test/test_pointnav_dataset.py index dbc4b9053dcc16f8aed9b29747c10d0072fbcc71..1701b981fb9d49f178220c1f3db6f1bedb418d85 100644 --- a/test/test_pointnav_dataset.py +++ b/test/test_pointnav_dataset.py @@ -18,8 +18,8 @@ from habitat.core.embodied_task import Episode from habitat.core.logging import logger from habitat.datasets import make_dataset from habitat.datasets.pointnav.pointnav_dataset import ( - PointNavDatasetV1, DEFAULT_SCENE_PATH_PREFIX, + PointNavDatasetV1, ) from habitat.utils.geometry_utils import quaternion_xyzw_to_wxyz diff --git a/test/test_sensors.py b/test/test_sensors.py index 6b6cc3868711a1d7605c15aac988c794a6e4627a..771704089bb09d16ee666ec8f1381652354222e2 100644 --- a/test/test_sensors.py +++ b/test/test_sensors.py @@ -4,19 +4,20 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. -import numpy as np import os -import pytest import random +import numpy as np +import pytest + import habitat from habitat.config.default import get_config +from habitat.sims.habitat_simulator import SimulatorActions from habitat.tasks.nav.nav_task import ( - NavigationEpisode, COLLISION_PROXIMITY_TOLERANCE, + NavigationEpisode, NavigationGoal, ) -from habitat.sims.habitat_simulator import SimulatorActions NON_STOP_ACTIONS = [ v for v in range(len(SimulatorActions)) if v != SimulatorActions.STOP.value diff --git a/test/test_trajectory_sim.py b/test/test_trajectory_sim.py index f3e02f1bef8243f22b54cde5ffba51ce0afb1f9d..8d2302cbaaf1450ac1e39eaa9f9257a4bdb4edef 100644 --- a/test/test_trajectory_sim.py +++ b/test/test_trajectory_sim.py @@ -9,6 +9,7 @@ import os import numpy as np import pytest + from habitat.config.default import get_config from habitat.sims import make_sim from habitat.sims.habitat_simulator import SimulatorActions