Skip to content

Conversation

mraditya01
Copy link
Contributor

Description

This PR introduces a new validator: mapping.lane.road_shoulder. Its purpose is to validate that all road_shoulder subtype lanelets meet the VM-01-15 adjacency and boundary requirements for proper integration with road infrastructure.

Validation subjects

All road_shoulder subtype lanelets (lanelets with subtype="road_shoulder")

What is validated

This validator implements the VM-01-15 requirement and checks three conditions for road_shoulder type lanelets:

  • Whether the lanelet has at least one adjacent lanelet
  • If there is only one adjacent lanelet, checks whether it is a road subtype lanelet
  • If there is an empty side (no adjacent lanelet), checks whether the bound linestring has a road_border type

Added files

Main files:

  • road_shoulder.hpp
  • road_shoulder.cpp
  • road_shoulder.md

Test files:

  • test_road_shoulder.cpp

Test maps:

  • shoulder_road_with_non_road_adjacent.osm
    • road_shoulder_without_adjacent.osm
    • road_shoulder_empty_side_no_road_border.osm

Modified files:

  • issues_info.json

Added issue codes:

  • Lane.RoadShoulder-001: Road shoulder lanelet has no adjacent lanelets
  • Lane.RoadShoulder-002: Road shoulder with only left/right adjacent lanelet must be adjacent to a road subtype lanelet
  • Lane.RoadShoulder-003: Road shoulder with empty left/right side must have a left/right bound with road_border type

How was this PR tested?

Unit tests

Notes for reviewers

None.

Effects on system behavior

None.

@mraditya01 mraditya01 marked this pull request as ready for review September 26, 2025 08:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant