Skip to content

Commit

Permalink
Merge pull request #104 from asam-ev/2024-09-25
Browse files Browse the repository at this point in the history
Add maintenance work
  • Loading branch information
andreaskern74 authored Sep 26, 2024
2 parents 081b484 + 56833be commit 2fe8422
Show file tree
Hide file tree
Showing 130 changed files with 14,186 additions and 1,926 deletions.
40 changes: 34 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,11 @@ as an application.
pip install asam-qc-opendrive@git+https://github.com/asam-ev/qc-opendrive@main
```

**Note**: To install from different sources, you can replace `@main` with
your desired target. For example, `develop` branch as `@develop`.
**Note:** The above command will install `asam-qc-opendrive` from the `main` branch. If you want to install `asam-qc-opendrive` from another branch or tag, replace `@main` with the desired branch or tag. It is also possible to install from a local directory.

```bash
pip install /home/user/qc-opendrive
```

#### To use as a library

Expand Down Expand Up @@ -163,10 +166,29 @@ An example configuration file for using this Checker Bundle within the ASAM Qual

<CheckerBundle application="xodrBundle">
<Param name="resultFile" value="xodr_bundle_report.xqar" />
<Checker checkerId="semantic_xodr" maxLevel="1" minLevel="3" />
<Checker checkerId="geometry_xodr" maxLevel="1" minLevel="3" />
<Checker checkerId="performance_xodr" maxLevel="1" minLevel="3" />
<Checker checkerId="smoothness_xodr" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_xml_valid_xml_document" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_xml_root_tag_is_opendrive" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_xml_fileheader_is_present" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_xml_version_is_defined" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_xml_valid_schema" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_road_lane_level_true_one_side" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_road_lane_access_no_mix_of_deny_or_allow" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_road_lane_link_lanes_across_lane_sections" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_road_linkage_is_junction_needed" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_road_lane_link_zero_width_at_start" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_road_lane_link_zero_width_at_end" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_road_lane_link_new_lane_appear" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_junctions_connection_connect_road_no_incoming_road" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_junctions_connection_one_connection_element" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_junctions_connection_one_link_to_incoming" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_junctions_connection_start_along_linkage" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_junctions_connection_end_opposite_linkage" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_road_geometry_parampoly3_length_match" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_road_lane_border_overlap_with_inner_lanes" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_road_geometry_parampoly3_arclength_range" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_road_geometry_parampoly3_normalized_range" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_performance_avoid_redundant_info" maxLevel="1" minLevel="3" />
<Checker checkerId="check_asam_xodr_lane_smoothness_contact_point_no_horizontal_gaps" maxLevel="1" minLevel="3" />
</CheckerBundle>

<ReportModule application="TextReport">
Expand Down Expand Up @@ -231,3 +253,9 @@ You need to have pre-commit installed and install the hooks:
```
pre-commit install
```

[This folder](tests/data/not_implemented_yet/) contains the valid and invalid sample OpenDrive files of the
rules that need to be implemented in the future. It can be used as a reference for anyone who
wants to contribute to the implementation of the rules.

Contributions of valid and invalid OpenDrive sample files are also welcome. New sample files can be added to [the same folder](tests/data/not_implemented_yet/).
118 changes: 109 additions & 9 deletions checker_bundle_doc.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,44 +5,144 @@

## Parameters

* InputFile: The path of the input file.
* InputFile

## Checkers

### semantic_xodr
### check_asam_xodr_xml_valid_xml_document

* Description: Evaluates elements in the file and their semantics to guarantee they are in conformity with the standard.
* Description: The input file must be a valid XML document.
* Addressed rules:
* asam.net:xodr:1.0.0:xml.valid_xml_document

### check_asam_xodr_xml_root_tag_is_opendrive

* Description: The root element of a valid XML document must be OpenSCENARIO.
* Addressed rules:
* asam.net:xodr:1.0.0:xml.root_tag_is_opendrive

### check_asam_xodr_xml_fileheader_is_present

* Description: Below the root element a tag with FileHeader must be defined.
* Addressed rules:
* asam.net:xodr:1.0.0:xml.fileheader_is_present

### check_asam_xodr_xml_version_is_defined

* Description: The FileHeader tag must have the attributes revMajor and revMinor and of type unsignedShort.
* Addressed rules:
* asam.net:xodr:1.0.0:xml.version_is_defined

### check_asam_xodr_xml_valid_schema

* Description: Input xml file must be valid according to the schema.
* Addressed rules:
* asam.net:xodr:1.0.0:xml.valid_schema

### check_asam_xodr_road_lane_level_true_one_side

* Description: Check if there is any @Level=False after being True until the lane border.
* Addressed rules:
* asam.net:xodr:1.7.0:road.lane.level_true_one_side

### check_asam_xodr_road_lane_access_no_mix_of_deny_or_allow

* Description: Check if there is mixed content on access rules for the same sOffset on lanes.
* Addressed rules:
* asam.net:xodr:1.7.0:road.lane.access.no_mix_of_deny_or_allow

### check_asam_xodr_road_lane_link_lanes_across_lane_sections

* Description: Lanes that continues across the lane sections shall be connected in both directions.
* Addressed rules:
* asam.net:xodr:1.4.0:road.lane.link.lanes_across_lane_sections

### check_asam_xodr_road_linkage_is_junction_needed

* Description: Two roads shall only be linked directly, if the linkage is clear. If the relationship to successor or predecessor is ambiguous, junctions shall be used.
* Addressed rules:
* asam.net:xodr:1.4.0:road.linkage.is_junction_needed

### check_asam_xodr_road_lane_link_zero_width_at_start

* Description: Lanes that have a width of zero at the beginning of the lane section shall have no predecessor element.
* Addressed rules:
* asam.net:xodr:1.7.0:road.lane.link.zero_width_at_start

### check_asam_xodr_road_lane_link_zero_width_at_end

* Description: Lanes that have a width of zero at the end of the lane section shall have no successor element.
* Addressed rules:
* asam.net:xodr:1.7.0:road.lane.link.zero_width_at_end

### check_asam_xodr_road_lane_link_new_lane_appear

* Description: If a new lane appears besides, only the continuing lane shall be connected to the original lane, not the appearing lane.
* Addressed rules:
* asam.net:xodr:1.4.0:road.lane.link.new_lane_appear

### check_asam_xodr_junctions_connection_connect_road_no_incoming_road

* Description: Connecting roads shall not be incoming roads.
* Addressed rules:
* asam.net:xodr:1.4.0:junctions.connection.connect_road_no_incoming_road

### check_asam_xodr_junctions_connection_one_connection_element

* Description: Each connecting road shall be represented by exactly one element. A connecting road may contain as many lanes as required.
* Addressed rules:
* asam.net:xodr:1.7.0:junctions.connection.one_connection_element

### check_asam_xodr_junctions_connection_one_link_to_incoming

* Description: Each connecting road shall be associated with at most one <connection> element per incoming road. A connecting road shall only have the <laneLink> element for that direction.
* Addressed rules:
* asam.net:xodr:1.8.0:junctions.connection.one_link_to_incoming

### check_asam_xodr_junctions_connection_start_along_linkage

* Description: The value "start" shall be used to indicate that the connecting road runs along the linkage indicated in the element.
* Addressed rules:
* asam.net:xodr:1.7.0:junctions.connection.start_along_linkage

### check_asam_xodr_junctions_connection_end_opposite_linkage

* Description: The value "end" shall be used to indicate that the connectingroad runs along the opposite direction of the linkage indicated in the element.
* Addressed rules:
* asam.net:xodr:1.7.0:junctions.connection.end_opposite_linkage

### geometry_xodr
### check_asam_xodr_road_geometry_parampoly3_length_match

* Description: Evaluates elements in the file and their geometrys to guarantee they are in conformity with the standard.
* Description: The actual curve length, as determined by numerical integration over the parameter range, should match '@Length'.
* Addressed rules:
* asam.net:xodr:1.7.0:road.geometry.parampoly3.length_match

### check_asam_xodr_road_lane_border_overlap_with_inner_lanes

* Description: Lane borders shall not intersect inner lanes.
* Addressed rules:
* asam.net:xodr:1.4.0:road.lane.border.overlap_with_inner_lanes

### check_asam_xodr_road_geometry_parampoly3_arclength_range

* Description: If @prange='arcLength', p shall be chosen in [0, @Length from geometry].
* Addressed rules:
* asam.net:xodr:1.7.0:road.geometry.parampoly3.arclength_range

### check_asam_xodr_road_geometry_parampoly3_normalized_range

* Description: If @prange='normalized', p shall be chosen in [0, 1].
* Addressed rules:
* asam.net:xodr:1.7.0:road.geometry.parampoly3.normalized_range

### performance_xodr
### check_asam_xodr_performance_avoid_redundant_info

* Description: Evaluates elements in the file to guarantee they are optimized.
* Description: Redundant elements should be avoided.
* Addressed rules:
* asam.net:xodr:1.7.0:performance.avoid_redundant_info

### smoothness_xodr
### check_asam_xodr_lane_smoothness_contact_point_no_horizontal_gaps

* Description: Evaluates elements in the file and their geometries to guarantee they are in conformity with the standard definition of smoothness.
* Description: Two connected drivable lanes shall have no horizontal gaps.
* Addressed rules:
* asam.net:xodr:1.7.0:lane_smoothness.contact_point_no_horizontal_gaps
Loading

0 comments on commit 2fe8422

Please sign in to comment.