|
1.
在执行example.py时出现找不到habitat,而我之前已经安装,故又在原来的基础上重新执行pip install -e.
通过conda list -n habitat查看可以看到habitat这个模块了
2.
~/habitat-sim/build$ ./viewer /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb
StageAttributesManager::registerAttributesTemplateFinalize : Render asset template handle : /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb specified in stage template with handle : /path/to/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb does not correspond to any existing file or primitive render asset. Aborting. Segmentation fault (core dumped)
这里的/path/to/data需要换成你下载的路径
./viewer /home/xxx/habitat-test-scenes/data/scene_datasets/habitat-test-scenes/skokloster-castle.glb
3.
执行此部分时/habitat-lab$ python setup.py test 遇到
E RuntimeError: No ffmpeg exe could be found. Install ffmpeg on your system, or set the IMAGEIO_FFMPEG_EXE environment variable.
../miniconda3/envs/habitat/lib/python3.6/site-packages/imageio_ffmpeg-0.4.2-py3.6-linux-x86_64.egg/imageio_ffmpeg/_utils.py:50: RuntimeError
然后通过pip install ffmpeg以及imageio_ffmpeg安装
conda list -n habitat
ffmpeg 1.4 pypi_0 pypi gitdb 4.0.5 pypi_0 pypi gitpython 3.1.11 pypi_0 pypi gym 0.10.9 pypi_0 pypi habitat 0.1.6 dev_0 <develop> habitat-sim 0.1.6 pypi_0 pypi imageio-ffmpeg 0.4.2 pypi_0 pypi
接着执行python setup.py test 还是存在相同的问题
于是sudo apt install ffmpeg
再次执行解决了
5.
when i run python -u habitat_baselines/run.py --exp-config habitat_baselines/config/pointnav/ppo_pointnav_example.yaml --run-type train, it happened assert cls.check_config_paths_exist(config) AssertionError.,and when i exchanged the --exp-config yaml ,it also displayed the same problem. But it succeed before, the example i have changed has been recovered according to the file in the github. I can't find problem until now.
~/habitat-lab$ python -u habitat_baselines/run.py --exp-config habitat_baselines/config/pointnav/ppo_pointnav_example.yaml --run-type train, 2020-11-25 14:06:17,302 config: BASE_TASK_CONFIG_PATH: configs/tasks/pointnav.yaml CHECKPOINT_FOLDER: data/new_checkpoints CHECKPOINT_INTERVAL: 50 CMD_TRAILING_OPTS: [] ENV_NAME: NavRLEnv EVAL: SPLIT: val USE_CKPT_CONFIG: True EVAL_CKPT_PATH_DIR: data/new_checkpoints FORCE_BLIND_POLICY: False LOG_FILE: train.log LOG_INTERVAL: 10 NUM_PROCESSES: 1 NUM_UPDATES: 10000 ORBSLAM2: ANGLE_TH: 0.2617993877991494 BETA: 100 CAMERA_HEIGHT: 1.25 DEPTH_DENORM: 10.0 DIST_REACHED_TH: 0.15 DIST_TO_STOP: 0.05 D_OBSTACLE_MAX: 4.0 D_OBSTACLE_MIN: 0.1 H_OBSTACLE_MAX: 1.25 H_OBSTACLE_MIN: 0.375 MAP_CELL_SIZE: 0.1 MAP_SIZE: 40 MIN_PTS_IN_OBSTACLE: 320.0 NEXT_WAYPOINT_TH: 0.5 NUM_ACTIONS: 3 PLANNER_MAX_STEPS: 500 PREPROCESS_MAP: True SLAM_SETTINGS_PATH: habitat_baselines/slambased/data/mp3d3_small1k.yaml SLAM_VOCAB_PATH: habitat_baselines/slambased/data/ORBvoc.txt RL: DDPPO: backbone: resnet50 distrib_backend: GLOO num_recurrent_layers: 2 pretrained: False pretrained_encoder: False pretrained_weights: data/ddppo-models/gibson-2plus-resnet50.pth reset_critic: True rnn_type: LSTM sync_frac: 0.6 train_encoder: True POLICY: OBS_TRANSFORMS: CENTER_CROPPER: HEIGHT: 256 WIDTH: 256 CUBE2EQ: CUBE_LENGTH: 256 HEIGHT: 256 SENSOR_UUIDS: [] WIDTH: 512 ENABLED_TRANSFORMS: () RESIZE_SHORTEST_EDGE: SIZE: 256 name: PointNavBaselinePolicy PPO: clip_param: 0.1 entropy_coef: 0.01 eps: 1e-05 gamma: 0.99 hidden_size: 512 lr: 0.00025 max_grad_norm: 0.5 num_mini_batch: 1 num_steps: 128 ppo_epoch: 4 reward_window_size: 50 tau: 0.95 use_gae: True use_linear_clip_decay: True use_linear_lr_decay: True use_normalized_advantage: True value_loss_coef: 0.5 REWARD_MEASURE: distance_to_goal SLACK_REWARD: -0.01 SUCCESS_MEASURE: spl SUCCESS_REWARD: 10.0 SENSORS: ['RGB_SENSOR', 'DEPTH_SENSOR'] SIMULATOR_GPU_ID: 0 TASK_CONFIG: DATASET: CONTENT_SCENES: ['*'] DATA_PATH: data/datasets/pointnav/habitat-test-scenes/v1/{split}/{split}.json.gz SCENES_DIR: data/scene_datasets SPLIT: train TYPE: PointNav-v1 ENVIRONMENT: ITERATOR_OPTIONS: CYCLE: True GROUP_BY_SCENE: True MAX_SCENE_REPEAT_EPISODES: -1 MAX_SCENE_REPEAT_STEPS: 10000 NUM_EPISODE_SAMPLE: -1 SHUFFLE: True STEP_REPETITION_RANGE: 0.2 MAX_EPISODE_SECONDS: 10000000 MAX_EPISODE_STEPS: 500 PYROBOT: BASE_CONTROLLER: proportional BASE_PLANNER: none BUMP_SENSOR: TYPE: PyRobotBumpSensor DEPTH_SENSOR: CENTER_CROP: False HEIGHT: 480 MAX_DEPTH: 5.0 MIN_DEPTH: 0.0 NORMALIZE_DEPTH: True TYPE: PyRobotDepthSensor WIDTH: 640 LOCOBOT: ACTIONS: ['BASE_ACTIONS', 'CAMERA_ACTIONS'] BASE_ACTIONS: ['go_to_relative', 'go_to_absolute'] CAMERA_ACTIONS: ['set_pan', 'set_tilt', 'set_pan_tilt'] RGB_SENSOR: CENTER_CROP: False HEIGHT: 480 TYPE: PyRobotRGBSensor WIDTH: 640 ROBOT: locobot ROBOTS: ['locobot'] SENSORS: ['RGB_SENSOR', 'DEPTH_SENSOR', 'BUMP_SENSOR'] SEED: 100 SIMULATOR: ACTION_SPACE_CONFIG: v0 AGENTS: ['AGENT_0'] AGENT_0: ANGULAR_ACCELERATION: 12.56 ANGULAR_FRICTION: 1.0 COEFFICIENT_OF_RESTITUTION: 0.0 HEIGHT: 1.5 IS_SET_START_STATE: False LINEAR_ACCELERATION: 20.0 LINEAR_FRICTION: 0.5 MASS: 32.0 RADIUS: 0.1 SENSORS: ['RGB_SENSOR'] START_POSITION: [0, 0, 0] START_ROTATION: [0, 0, 0, 1] DEFAULT_AGENT_ID: 0 DEPTH_SENSOR: HEIGHT: 256 HFOV: 90 MAX_DEPTH: 10.0 MIN_DEPTH: 0.0 NORMALIZE_DEPTH: True ORIENTATION: [0.0, 0.0, 0.0] POSITION: [0, 1.25, 0] TYPE: HabitatSimDepthSensor WIDTH: 256 FORWARD_STEP_SIZE: 0.25 HABITAT_SIM_V0: ALLOW_SLIDING: True ENABLE_PHYSICS: False GPU_DEVICE_ID: 0 GPU_GPU: False PHYSICS_CONFIG_FILE: ./data/default.phys_scene_config.json RGB_SENSOR: HEIGHT: 256 HFOV: 90 ORIENTATION: [0.0, 0.0, 0.0] POSITION: [0, 1.25, 0] TYPE: HabitatSimRGBSensor WIDTH: 256 SCENE: data/scene_datasets/habitat-test-scenes/van-gogh-room.glb SEED: 100 SEMANTIC_SENSOR: HEIGHT: 480 HFOV: 90 ORIENTATION: [0.0, 0.0, 0.0] POSITION: [0, 1.25, 0] TYPE: HabitatSimSemanticSensor WIDTH: 640 TILT_ANGLE: 15 TURN_ANGLE: 10 TYPE: Sim-v0 TASK: ACTIONS: ANSWER: TYPE: AnswerAction LOOK_DOWN: TYPE: LookDownAction LOOK_UP: TYPE: LookUpAction MOVE_FORWARD: TYPE: MoveForwardAction STOP: TYPE: StopAction TELEPORT: TYPE: TeleportAction TURN_LEFT: TYPE: TurnLeftAction TURN_RIGHT: TYPE: TurnRightAction ANSWER_ACCURACY: TYPE: AnswerAccuracy COLLISIONS: TYPE: Collisions COMPASS_SENSOR: TYPE: CompassSensor CORRECT_ANSWER: TYPE: CorrectAnswer DISTANCE_TO_GOAL: DISTANCE_TO: POINT TYPE: DistanceToGoal EPISODE_INFO: TYPE: EpisodeInfo GOAL_SENSOR_UUID: pointgoal_with_gps_compass GPS_SENSOR: DIMENSIONALITY: 2 TYPE: GPSSensor HEADING_SENSOR: TYPE: HeadingSensor IMAGEGOAL_SENSOR: TYPE: ImageGoalSensor INSTRUCTION_SENSOR: TYPE: InstructionSensor INSTRUCTION_SENSOR_UUID: instruction MEASUREMENTS: ['DISTANCE_TO_GOAL', 'SUCCESS', 'SPL'] OBJECTGOAL_SENSOR: GOAL_SPEC: TASK_CATEGORY_ID GOAL_SPEC_MAX_VAL: 50 TYPE: ObjectGoalSensor POINTGOAL_SENSOR: DIMENSIONALITY: 2 GOAL_FORMAT: POLAR TYPE: PointGoalSensor POINTGOAL_WITH_GPS_COMPASS_SENSOR: DIMENSIONALITY: 2 GOAL_FORMAT: POLAR TYPE: PointGoalWithGPSCompassSensor POSSIBLE_ACTIONS: ['STOP', 'MOVE_FORWARD', 'TURN_LEFT', 'TURN_RIGHT'] PROXIMITY_SENSOR: MAX_DETECTION_RADIUS: 2.0 TYPE: ProximitySensor QUESTION_SENSOR: TYPE: QuestionSensor SENSORS: ['POINTGOAL_WITH_GPS_COMPASS_SENSOR'] SOFT_SPL: TYPE: SoftSPL SPL: TYPE: SPL SUCCESS: SUCCESS_DISTANCE: 0.2 TYPE: Success SUCCESS_DISTANCE: 0.2 TOP_DOWN_MAP: DRAW_BORDER: True DRAW_GOAL_AABBS: True DRAW_GOAL_POSITIONS: True DRAW_SHORTEST_PATH: True DRAW_SOURCE: True DRAW_VIEW_POINTS: True FOG_OF_WAR: DRAW: True FOV: 90 VISIBILITY_DIST: 5.0 MAP_PADDING: 3 MAP_RESOLUTION: 1024 MAX_EPISODE_STEPS: 1000 TYPE: TopDownMap TYPE: Nav-v0 TENSORBOARD_DIR: tb TEST_EPISODE_COUNT: 2 TORCH_GPU_ID: 0 TRAINER_NAME: ppo VIDEO_DIR: video_dir VIDEO_OPTION: ['disk', 'tensorboard'] 2020-11-25 14:06:17,302 Initializing dataset PointNav-v1 Traceback (most recent call last): File "habitat_baselines/run.py", line 79, in main() File "habitat_baselines/run.py", line 40, in main run_exp(**vars(args)) File "habitat_baselines/run.py", line 75, in run_exp execute_exp(config, run_type) File "habitat_baselines/run.py", line 58, in execute_exp trainer.train() File "/home/oot/habitat-lab/habitat_baselines/rl/ppo/ppo_trainer.py", line 287, in train self.config, get_env_class(self.config.ENV_NAME) File "/home/oot/habitat-lab/habitat_baselines/utils/env_utils.py", line 59, in construct_envs scenes = dataset.get_scenes_to_load(config.TASK_CONFIG.DATASET) File "/home/oot/habitat-lab/habitat/datasets/pointnav/pointnav_dataset.py", line 43, in get_scenes_to_load assert cls.check_config_paths_exist(config) AssertionError
如大佬所说,dataset位置不对.可以通过终端打印的配置信息看出,
TASK_CONFIG: DATASET: CONTENT_SCENES: ['*'] DATA_PATH: data/datasets/pointnav/habitat-test-scenes/v1/{split}/{split}.json.gz SCENES_DIR: data/scene_datasets 上面的黑体部分确实没有,位置放错了:(
6.在解决上面的问题也出现了:
BrokenPipeError: [Errno 32] Broken pipe
不过是因为data_path指定的路径是data/datasets/pointnav/gibson/v1/{split}/{split}.json.gz,导致了上面的问题.
但是此路径中确实有文件.问题暂时参考:
BrokenPipeError: [Errno 32] Broken pipe is usually cause by other error with environment running as separate processes. Try to check memory occupation on the GPU as well as decrease number of processes. MP3D 3D scenes take more memory than Gibson's ones.[link]
7.python -u habitat_baselines/run.py --exp-config habitat_baselines/config/pointnav/ppo_pointnav.yaml --run-type train
error:
Traceback (most recent call last): File "habitat_baselines/run.py", line 91, in <module> main() File "habitat_baselines/run.py", line 40, in main run_exp(**vars(args))#读取参数 File "habitat_baselines/run.py", line 87, in run_exp execute_exp(config, run_type)#执行参数,config包含了exp_config,opts File "habitat_baselines/run.py", line 69, in execute_exp trainer.train() File "/home//habitat-lab/habitat_baselines/rl/ppo/ppo_trainer.py", line 291, in train self.config, get_env_class(self.config.ENV_NAME) File "/home//habitat-lab/habitat_baselines/utils/env_utils.py", line 102, in construct_envs workers_ignore_signals=workers_ignore_signals, File "/home//habitat-lab/habitat/core/vector_env.py", line 146, in __init__ read_fn() for read_fn in self._connection_read_fns File "/home//habitat-lab/habitat/core/vector_env.py", line 146, in <listcomp> read_fn() for read_fn in self._connection_read_fns File "/home//miniconda3/envs/habitat/lib/python3.6/multiprocessing/connection.py", line 250, in recv buf = self._recv_bytes() File "/home//miniconda3/envs/habitat/lib/python3.6/multiprocessing/connection.py", line 407, in _recv_bytes buf = self._recv(4) File "/home//miniconda3/envs/habitat/lib/python3.6/multiprocessing/connection.py", line 379, in _recv chunk = read(handle, remaining) ConnectionResetError: [Errno 104] Connection reset by peer Exception ignored in: <bound method VectorEnv.__del__ of <habitat.core.vector_env.VectorEnv object at 0x7fc140e646a0>> Traceback (most recent call last): File "/home//habitat-lab/habitat/core/vector_env.py", line 529, in __del__ self.close() File "/home//habitat-lab/habitat/core/vector_env.py", line 413, in close write_fn((CLOSE_COMMAND, None)) File "/home//miniconda3/envs/habitat/lib/python3.6/multiprocessing/connection.py", line 206, in send self._send_bytes(_ForkingPickler.dumps(obj)) File "/home//miniconda3/envs/habitat/lib/python3.6/multiprocessing/connection.py", line 404, in _send_bytes self._send(header + buf) File "/home//miniconda3/envs/habitat/lib/python3.6/multiprocessing/connection.py", line 368, in _send n = write(self._handle, buf) BrokenPipeError: [Errno 32] Broken pipe
ppo_pointnav.yaml中的base_task_config为*gibson.yaml,因为没有相关的dataset,故改为pointnav.yaml默认读取habitat-scene-test数据.出现了下面这个问题.将其中的num_process改为2或以上就好了
Traceback (most recent call last): File "habitat_baselines/run.py", line 79, in <module> main() File "habitat_baselines/run.py", line 40, in main run_exp(**vars(args)) File "habitat_baselines/run.py", line 75, in run_exp execute_exp(config, run_type) File "habitat_baselines/run.py", line 58, in execute_exp trainer.train() File "/home//habitat-lab/habitat_baselines/rl/ppo/ppo_trainer.py", line 376, in train ) = self._update_agent(ppo_cfg, rollouts) File "/home//habitat-lab/habitat_baselines/rl/ppo/ppo_trainer.py", line 268, in _update_agent value_loss, action_loss, dist_entropy = self.agent.update(rollouts) File "/home//habitat-lab/habitat_baselines/rl/ppo/ppo.py", line 74, in update for sample in data_generator: File "/home//habitat-lab/habitat_baselines/common/rollout_storage.py", line 138, in recurrent_generator "trainer mini batches ({}).".format(num_processes, num_mini_batch) AssertionError: Trainer requires the number of processes (1) to be greater than or equal to the number of trainer mini batches (2). Exception ignored in: <bound method VectorEnv.__del__ of <habitat.core.vector_env.VectorEnv object at 0x7f41a8c17588>> Traceback (most recent call last): File "/home//habitat-lab/habitat/core/vector_env.py", line 529, in __del__ File "/home//habitat-lab/habitat/core/vector_env.py", line 413, in close File "/home//anaconda3/envs/habitat/lib/python3.6/multiprocessing/connection.py", line 206, in send AttributeError: 'NoneType' object has no attribute 'dumps'
|