Skip to content

Commit 0b565fd

Browse files
committed
Docker CUDA 12.3->12.8. Fixed multi-obj result reading. Fixes #8.
1 parent 25ad8e0 commit 0b565fd

File tree

2 files changed

+114
-7
lines changed

2 files changed

+114
-7
lines changed

Dockerfile

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM dsalvat1/cudagl:12.3.1-runtime-ubuntu22.04
1+
FROM nvidia/cuda:12.8.1-cudnn-devel-ubuntu22.04
22

33
# Declare the HM3D argument
44
ARG HM3D
@@ -34,7 +34,6 @@ RUN if [ -z "${HM3D}" ]; then \
3434

3535
WORKDIR /onemap
3636

37-
3837
RUN apt update && apt install -y --no-install-recommends \
3938
build-essential \
4039
git \
@@ -48,10 +47,34 @@ RUN apt update && apt install -y --no-install-recommends \
4847
ninja-build \
4948
python3.10-dev \
5049
python3-pip \
51-
python-is-python3\
52-
libjpeg-dev libglm-dev libgl1-mesa-glx libegl1-mesa-dev mesa-utils xorg-dev freeglut3-dev \
53-
unzip &&\
54-
apt-get clean all &&\
50+
python-is-python3 \
51+
libjpeg-dev \
52+
libglm-dev \
53+
libgl1-mesa-glx \
54+
libegl1-mesa-dev \
55+
mesa-utils \
56+
xorg-dev \
57+
freeglut3-dev \
58+
libegl-dev \
59+
libegl-mesa0 \
60+
libegl1 \
61+
libgl1-mesa-dev \
62+
libgl1-mesa-dri \
63+
libglapi-mesa \
64+
libglu1-mesa \
65+
libglu1-mesa-dev \
66+
libglvnd-core-dev \
67+
libglvnd-dev \
68+
libglvnd0 \
69+
libglx-dev \
70+
libglx-mesa0 \
71+
libglx0 \
72+
libwayland-egl1 \
73+
libxcb-glx0 \
74+
mesa-common-dev \
75+
mesa-utils-bin \
76+
unzip && \
77+
apt-get clean all && \
5578
rm -rf /var/lib/apt/lists/*
5679

5780
# #
@@ -78,6 +101,8 @@ COPY ./spot_utils ./spot_utils
78101
COPY ./vision_models ./vision_models
79102
COPY ./eval_habitat.py .
80103
COPY ./eval_habitat_multi.py .
104+
COPY ./read_results.py .
105+
COPY ./read_results_multi.py .
81106
COPY ./onemap_utils ./onemap_utils
82107
COPY ./habitat_test.py ./
83108
RUN python3 -m pip install ./planning_cpp/
@@ -109,8 +134,18 @@ RUN mv multiobject_episodes datasets/ && rm multiobject_episodes.zip
109134
RUN wget https://dl.fbaipublicfiles.com/habitat/data/datasets/objectnav/hm3d/v1/objectnav_hm3d_v1.zip
110135
RUN unzip objectnav_hm3d_v1.zip
111136
RUN mv objectnav_hm3d_v1 datasets/ && rm objectnav_hm3d_v1.zip
137+
# Need v2 for multi-object lookup.
138+
RUN wget https://dl.fbaipublicfiles.com/habitat/data/datasets/objectnav/hm3d/v2/objectnav_hm3d_v2.zip
139+
RUN unzip objectnav_hm3d_v2.zip
140+
RUN mv objectnav_hm3d_v2 datasets/ && rm objectnav_hm3d_v2.zip
112141

113142

114-
ENTRYPOINT ["sh", "-c", "if [ \"$HM3D\" = \"LOCAL\" ]; then ln -s $(ls /onemap/datasets/versioned_data/hm3d-0.2/hm3d | grep -v \"hm3d_basis.scene_dataset_config.json\" | sed \"s#^#/onemap/datasets/versioned_data/hm3d-0.2/hm3d/#\") /onemap/datasets/scene_datasets/hm3d/; fi && exec \"$@\"", "--"]
143+
ENTRYPOINT ["sh", "-c", "\
144+
if [ \"$HM3D\" = \"LOCAL\" ]; then \
145+
for file in $(ls /onemap/datasets/versioned_data/hm3d-0.2/hm3d | grep -v \"hm3d_basis.scene_dataset_config.json\"); do \
146+
ln -sf \"/onemap/datasets/versioned_data/hm3d-0.2/hm3d/$file\" \"/onemap/datasets/scene_datasets/hm3d/$file\"; \
147+
done; \
148+
ln -sf /onemap/datasets/scene_datasets/hm3d /onemap/datasets/scene_datasets/hm3d_v0.2; \
149+
fi && exec \"$@\"", "--"]
115150

116151
CMD ["/bin/bash"]

README.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@ In summary we open-source:
2828
- The multi-object navigation dataset and benchmark
2929
- The multi-object navigation dataset generation code, such that you can generate your own datasets
3030

31+
## Changes
32+
- [28/10/2025]: Docker build to CUDA 12.8 for RTX 50 series support. Fixed issues with reading the results for multi-object nav.
33+
34+
## Upcoming Changes
35+
- Change annotation format for multi-object nav to match paper naming, see below.
36+
- Release full CUDA port of onemap.
37+
3138
## Abstract
3239
The capability to efficiently search for objects in complex environments is fundamental for many real-world robot
3340
applications. Recent advances in open-vocabulary vision models have resulted in semantically-informed object navigation \
@@ -120,6 +127,68 @@ wget https://github.com/ChaoningZhang/MobileSAM/raw/refs/heads/master/weights/mo
120127
```
121128
### 4. Download the habitat data
122129

130+
Create the datasets directory:
131+
```
132+
mkdir -p datasets
133+
```
134+
135+
#### Download HM3D Scene Dataset
136+
You can obtain access to Matterport for free [here](https://matterport.com/partners/meta). Once you have your credentials, download the HM3D scenes:
137+
138+
```
139+
python3 -m habitat_sim.utils.datasets_download \
140+
--username <MATTERPORT_ID> --password <MATTERPORT_SECRET> \
141+
--uids hm3d_train_v0.2 \
142+
--data-path datasets
143+
144+
python3 -m habitat_sim.utils.datasets_download \
145+
--username <MATTERPORT_ID> --password <MATTERPORT_SECRET> \
146+
--uids hm3d_val_v0.2 \
147+
--data-path datasets
148+
```
149+
150+
Create the `hm3d_v0.2` symlink if not already there:
151+
```
152+
ln -s datasets/scene_datasets/hm3d datasets/scene_datasets/hm3d_v0.2
153+
```
154+
155+
#### Download Navigation Episode Datasets
156+
157+
Download the multi-object episodes dataset:
158+
```
159+
gdown 1lBpYxXRjj8mDSUTI66xv0PfNd-vdSbNj -O multiobject_episodes.zip
160+
unzip multiobject_episodes.zip
161+
mv multiobject_episodes datasets/
162+
rm multiobject_episodes.zip
163+
```
164+
165+
Download ObjectNav HM3D v1 dataset:
166+
```
167+
wget https://dl.fbaipublicfiles.com/habitat/data/datasets/objectnav/hm3d/v1/objectnav_hm3d_v1.zip
168+
unzip objectnav_hm3d_v1.zip
169+
mv objectnav_hm3d_v1 datasets/
170+
rm objectnav_hm3d_v1.zip
171+
```
172+
173+
Download ObjectNav HM3D v2 dataset (required for multi-object navigation):
174+
```
175+
wget https://dl.fbaipublicfiles.com/habitat/data/datasets/objectnav/hm3d/v2/objectnav_hm3d_v2.zip
176+
unzip objectnav_hm3d_v2.zip
177+
mv objectnav_hm3d_v2 datasets/
178+
rm objectnav_hm3d_v2.zip
179+
```
180+
181+
Your `datasets/` directory should now contain:
182+
```
183+
datasets/
184+
├── scene_datasets/
185+
│ ├── hm3d/
186+
│ └── hm3d_v0.2/
187+
├── versioned_data/hm3d-0.2/hm3d/
188+
├── multiobject_episodes/
189+
├── objectnav_hm3d_v1/
190+
└── objectnav_hm3d_v2/
191+
```
123192

124193
## Running the code
125194
### 1. Run the example
@@ -161,6 +230,9 @@ This will run the evaluation and save the results in the `results_multi/` direct
161230
```
162231
python3 read_results_multi.py --config config/mon/eval_multi_conf.yaml
163232
```
233+
234+
**Note that the resulting table will report multiple metrics which correspond to the following names in the paper (table->paper name): SPL->PPL, Progress->PR, s->SR, s_spl->SPL.**
235+
164236
#### Dataset generation
165237
While we provide the generated dataset for the evaluation of multi-object navigation, we also release the code to
166238
generate the datasets with varying parameters. You can generate the dataset with

0 commit comments

Comments
 (0)