Skip to content

Commit 26ceb42

Browse files
[Feature] Enable to set the number of lidar rays in navigation, discovery and flocking scenarios (#141)
* introduce "n_lidar_rays_entities" and "n_lidar_rays_agents" * introduce "n_lidar_rays" * introduce "n_lidar_rays" * Update vmas/scenarios/discovery.py Co-authored-by: Matteo Bettini <55539777+matteobettini@users.noreply.github.com> * Update vmas/scenarios/flocking.py Co-authored-by: Matteo Bettini <55539777+matteobettini@users.noreply.github.com> * Update vmas/scenarios/navigation.py Co-authored-by: Matteo Bettini <55539777+matteobettini@users.noreply.github.com> --------- Co-authored-by: Matteo Bettini <55539777+matteobettini@users.noreply.github.com>
1 parent 89882a6 commit 26ceb42

3 files changed

Lines changed: 11 additions & 4 deletions

File tree

vmas/scenarios/discovery.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@ def make_world(self, batch_dim: int, device: torch.device, **kwargs):
2828
self._min_dist_between_entities = kwargs.pop("min_dist_between_entities", 0.2)
2929
self._lidar_range = kwargs.pop("lidar_range", 0.35)
3030
self._covering_range = kwargs.pop("covering_range", 0.25)
31+
3132
self.use_agent_lidar = kwargs.pop("use_agent_lidar", False)
33+
self.n_lidar_rays_entities = kwargs.pop("n_lidar_rays_entities", 15)
34+
self.n_lidar_rays_agents = kwargs.pop("n_lidar_rays_agents", 12)
35+
3236
self._agents_per_target = kwargs.pop("agents_per_target", 2)
3337
self.targets_respawn = kwargs.pop("targets_respawn", True)
3438
self.shared_reward = kwargs.pop("shared_reward", False)
@@ -74,7 +78,7 @@ def make_world(self, batch_dim: int, device: torch.device, **kwargs):
7478
[
7579
Lidar(
7680
world,
77-
n_rays=15,
81+
n_rays=self.n_lidar_rays_entities,
7882
max_range=self._lidar_range,
7983
entity_filter=entity_filter_targets,
8084
render_color=Color.GREEN,
@@ -86,7 +90,7 @@ def make_world(self, batch_dim: int, device: torch.device, **kwargs):
8690
world,
8791
angle_start=0.05,
8892
angle_end=2 * torch.pi + 0.05,
89-
n_rays=12,
93+
n_rays=self.n_lidar_rays_agents,
9094
max_range=self._lidar_range,
9195
entity_filter=entity_filter_agents,
9296
render_color=Color.BLUE,

vmas/scenarios/flocking.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ def make_world(self, batch_dim: int, device: torch.device, **kwargs):
2020
n_obstacles = kwargs.pop("n_obstacles", 5)
2121
self._min_dist_between_entities = kwargs.pop("min_dist_between_entities", 0.15)
2222

23+
self.n_lidar_rays = kwargs.pop("n_lidar_rays", 12)
24+
2325
self.collision_reward = kwargs.pop("collision_reward", -0.1)
2426
self.dist_shaping_factor = kwargs.pop("dist_shaping_factor", 1)
2527
ScenarioUtils.check_kwargs_consumed(kwargs)
@@ -51,7 +53,7 @@ def make_world(self, batch_dim: int, device: torch.device, **kwargs):
5153
sensors=[
5254
Lidar(
5355
world,
54-
n_rays=12,
56+
n_rays=self.n_lidar_rays,
5557
max_range=0.2,
5658
entity_filter=goal_entity_filter,
5759
)

vmas/scenarios/navigation.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ def make_world(self, batch_dim: int, device: torch.device, **kwargs):
4141
self.lidar_range = kwargs.pop("lidar_range", 0.35)
4242
self.agent_radius = kwargs.pop("agent_radius", 0.1)
4343
self.comms_range = kwargs.pop("comms_range", 0)
44+
self.n_lidar_rays = kwargs.pop("n_lidar_rays", 12)
4445

4546
self.shared_rew = kwargs.pop("shared_rew", True)
4647
self.pos_shaping_factor = kwargs.pop("pos_shaping_factor", 1)
@@ -115,7 +116,7 @@ def make_world(self, batch_dim: int, device: torch.device, **kwargs):
115116
[
116117
Lidar(
117118
world,
118-
n_rays=12,
119+
n_rays=self.n_lidar_rays,
119120
max_range=self.lidar_range,
120121
entity_filter=entity_filter_agents,
121122
),

0 commit comments

Comments
 (0)