From 0618cbfc1d60b34f4bbf3c1ecb168c3de6f066cf Mon Sep 17 00:00:00 2001 From: Benabdellah22 Date: Fri, 24 Oct 2025 11:43:39 +0100 Subject: [PATCH 1/4] Fix: correct joint-passage reward function (issue #145) --- vmas/scenarios/joint_passage.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/vmas/scenarios/joint_passage.py b/vmas/scenarios/joint_passage.py index cea4268a..f5b7b27d 100644 --- a/vmas/scenarios/joint_passage.py +++ b/vmas/scenarios/joint_passage.py @@ -458,11 +458,11 @@ def reward(self, agent: Agent): self.world.get_distance(a, passage) <= self.min_collision_distance ] += self.collision_reward - for wall in self.walls: - self.collision_rew[ - self.world.get_distance(a, wall) - <= self.min_collision_distance - ] += self.collision_reward + for wall in self.walls: + self.collision_rew[ + self.world.get_distance(a, wall) + <= self.min_collision_distance + ] += self.collision_reward # Joint collisions for p in self.passages: From 83212efb97af57b3b3c7077058e9cdd380f8f09e Mon Sep 17 00:00:00 2001 From: Benabdellah22 Date: Sun, 26 Oct 2025 13:57:18 +0100 Subject: [PATCH 2/4] Fix: correct joint-passage reward function (issue proroklab#145) --- vmas/scenarios/joint_passage.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/vmas/scenarios/joint_passage.py b/vmas/scenarios/joint_passage.py index f5b7b27d..61d79e0b 100644 --- a/vmas/scenarios/joint_passage.py +++ b/vmas/scenarios/joint_passage.py @@ -73,7 +73,7 @@ def make_world(self, batch_dim: int, device: torch.device, **kwargs): device, x_semidim=1, y_semidim=1, - substeps=7 if not self.asym_package else 10, + substeps=2, # 7 if not self.asym_package else 10, joint_force=900 if self.asym_package else 400, collision_force=2500 if self.asym_package else 1500, drag=0.25 if not self.asym_package else 0.15, @@ -460,8 +460,7 @@ def reward(self, agent: Agent): ] += self.collision_reward for wall in self.walls: self.collision_rew[ - self.world.get_distance(a, wall) - <= self.min_collision_distance + self.world.get_distance(a, wall) <= self.min_collision_distance ] += self.collision_reward # Joint collisions From 729283b64e954ec3bc39c8155dd3900e35b35722 Mon Sep 17 00:00:00 2001 From: Benabdellah22 Date: Sun, 26 Oct 2025 17:53:27 +0100 Subject: [PATCH 3/4] fix typo --- vmas/scenarios/joint_passage.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/vmas/scenarios/joint_passage.py b/vmas/scenarios/joint_passage.py index 61d79e0b..bae4b3fc 100644 --- a/vmas/scenarios/joint_passage.py +++ b/vmas/scenarios/joint_passage.py @@ -73,7 +73,7 @@ def make_world(self, batch_dim: int, device: torch.device, **kwargs): device, x_semidim=1, y_semidim=1, - substeps=2, # 7 if not self.asym_package else 10, + substeps= 7 if not self.asym_package else 10, joint_force=900 if self.asym_package else 400, collision_force=2500 if self.asym_package else 1500, drag=0.25 if not self.asym_package else 0.15, @@ -458,10 +458,11 @@ def reward(self, agent: Agent): self.world.get_distance(a, passage) <= self.min_collision_distance ] += self.collision_reward - for wall in self.walls: - self.collision_rew[ - self.world.get_distance(a, wall) <= self.min_collision_distance - ] += self.collision_reward + for wall in self.walls: + self.collision_rew[ + self.world.get_distance(a, wall) + <= self.min_collision_distance + ] += self.collision_reward # Joint collisions for p in self.passages: From 6938170541ec775604a4b45776265655e6b985cf Mon Sep 17 00:00:00 2001 From: Benabdellah22 Date: Sun, 26 Oct 2025 17:56:29 +0100 Subject: [PATCH 4/4] fix typo --- vmas/scenarios/joint_passage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vmas/scenarios/joint_passage.py b/vmas/scenarios/joint_passage.py index bae4b3fc..cea4268a 100644 --- a/vmas/scenarios/joint_passage.py +++ b/vmas/scenarios/joint_passage.py @@ -73,7 +73,7 @@ def make_world(self, batch_dim: int, device: torch.device, **kwargs): device, x_semidim=1, y_semidim=1, - substeps= 7 if not self.asym_package else 10, + substeps=7 if not self.asym_package else 10, joint_force=900 if self.asym_package else 400, collision_force=2500 if self.asym_package else 1500, drag=0.25 if not self.asym_package else 0.15,