Package Summary

Tags No category tags.
Version 1.2.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/fzi-forschungszentrum-informatik/lanelet2.git
VCS Type git
VCS Version master
Last Updated 2024-02-07
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Library to match objects to lanelets

Additional Links

Maintainers

  • Fabian Immel

Authors

  • Maximilian Naumann

Lanelet2 Matching Module

This module provides functions to determine in which lanelet an object is/could be currently located.

Matching functions

  • Deterministic matching: Find all lanelets to which an object has less than a certain Euclidean distance.
    • as lanelets have an orientation, every lanelet is considered twice: regular and inverted, but with the same distance
  • Probabilistic matching: Compute the squared Mahalanobis distance of the object pose to the lanelet to reason about the probability of that match, as suggested by Petrich et al. (DOI:0.1109/ITSC.2013.6728549)
    • this distance includes the orientation, thus every lanelet is considered twice: regular and inverted, but with different distances
  • Accounting for traffic rules: In case you expect traffic rule compliant behavior, you can remove non-compliant matches by providing a traffic rule element for the participant you were matching (such as pedestrian lanelets for vehicles or inverted one way lanelets, which means driving in the wrong direction).

Usage

C++

#include <lanelet2_matching/LaneletMatching.h>

// create objects to match
lanelet::matching::Object2d obj; // deterministic
lanelet::matching::ObjectWithCovariance2d obj2; // considering uncertainty

// retrieve lanelet matches from map
auto detMatches = getDeterministicMatches(laneletMap, obj, 4.); // max distance = 4m
auto probMatches = getProbabilisticMatches(laneletMap, obj2, 4.); // max distance = 4m

// remove non-compliant matches (such as driving in the wrong direction)
auto compliantDetMatches = removeNonRuleCompliantMatches(detMatches, trafficRulesPtr);
auto compliantProbMatches = removeNonRuleCompliantMatches(probMatches, trafficRulesPtr);

have a look at the C++ unittests for more examples

Python

import lanelet2
# Note: in the standalone version of lanelet2_matching, the python module was named
#  "lanelet2_matching". Now it is a submodule of lanelet2: "lanelet2.matching"

# create objects to match
obj = lanelet2.matching.Object2d()

# retrieve lanelet matches from map
matches = lanelet2.matching.getDeterministicMatches(lanelet_map, obj, 4.)  # max distance = 4m

# remove non-compliant matches (such as driving in the wrong direction)
compliant_matches = lanelet2.matching.removeNonRuleCompliantMatches(matches, traffic_rules)


have a look at the python unittests for more examples, also supports uncertainty

License

This package is distributed under the 3-Clause BSD License, see LICENSE.

CHANGELOG

Changelog for package lanelet2_matching

1.2.1 (2023-05-10)

1.2.0 (2023-01-30)

  • Add CI using GitHub Actions (#256)
  • Move matching integration test to examples
  • Name integration tests correctly and remove utils tests
  • Add unittests with simple map
  • Rename integration test file
  • Remove changelog and license
  • Switch to lanelet2.matching in python
  • Fix package.xml
  • Move python bindings of lanelet2_matching to lanelet2_python
  • Integrate into lanelet2
  • Contributors: Fabian Poggenhans, Maximilian Naumann, Nico Neumann, Fabian Immel

1.1.1 (2020-09-14)

1.0.1 (2020-03-24)

1.0.0 (2020-03-03)

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged lanelet2_matching at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.2.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/fzi-forschungszentrum-informatik/lanelet2.git
VCS Type git
VCS Version master
Last Updated 2024-02-07
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Library to match objects to lanelets

Additional Links

Maintainers

  • Fabian Immel

Authors

  • Maximilian Naumann

Lanelet2 Matching Module

This module provides functions to determine in which lanelet an object is/could be currently located.

Matching functions

  • Deterministic matching: Find all lanelets to which an object has less than a certain Euclidean distance.
    • as lanelets have an orientation, every lanelet is considered twice: regular and inverted, but with the same distance
  • Probabilistic matching: Compute the squared Mahalanobis distance of the object pose to the lanelet to reason about the probability of that match, as suggested by Petrich et al. (DOI:0.1109/ITSC.2013.6728549)
    • this distance includes the orientation, thus every lanelet is considered twice: regular and inverted, but with different distances
  • Accounting for traffic rules: In case you expect traffic rule compliant behavior, you can remove non-compliant matches by providing a traffic rule element for the participant you were matching (such as pedestrian lanelets for vehicles or inverted one way lanelets, which means driving in the wrong direction).

Usage

C++

#include <lanelet2_matching/LaneletMatching.h>

// create objects to match
lanelet::matching::Object2d obj; // deterministic
lanelet::matching::ObjectWithCovariance2d obj2; // considering uncertainty

// retrieve lanelet matches from map
auto detMatches = getDeterministicMatches(laneletMap, obj, 4.); // max distance = 4m
auto probMatches = getProbabilisticMatches(laneletMap, obj2, 4.); // max distance = 4m

// remove non-compliant matches (such as driving in the wrong direction)
auto compliantDetMatches = removeNonRuleCompliantMatches(detMatches, trafficRulesPtr);
auto compliantProbMatches = removeNonRuleCompliantMatches(probMatches, trafficRulesPtr);

have a look at the C++ unittests for more examples

Python

import lanelet2
# Note: in the standalone version of lanelet2_matching, the python module was named
#  "lanelet2_matching". Now it is a submodule of lanelet2: "lanelet2.matching"

# create objects to match
obj = lanelet2.matching.Object2d()

# retrieve lanelet matches from map
matches = lanelet2.matching.getDeterministicMatches(lanelet_map, obj, 4.)  # max distance = 4m

# remove non-compliant matches (such as driving in the wrong direction)
compliant_matches = lanelet2.matching.removeNonRuleCompliantMatches(matches, traffic_rules)


have a look at the python unittests for more examples, also supports uncertainty

License

This package is distributed under the 3-Clause BSD License, see LICENSE.

CHANGELOG

Changelog for package lanelet2_matching

1.2.1 (2023-05-10)

1.2.0 (2023-01-30)

  • Add CI using GitHub Actions (#256)
  • Move matching integration test to examples
  • Name integration tests correctly and remove utils tests
  • Add unittests with simple map
  • Rename integration test file
  • Remove changelog and license
  • Switch to lanelet2.matching in python
  • Fix package.xml
  • Move python bindings of lanelet2_matching to lanelet2_python
  • Integrate into lanelet2
  • Contributors: Fabian Poggenhans, Maximilian Naumann, Nico Neumann, Fabian Immel

1.1.1 (2020-09-14)

1.0.1 (2020-03-24)

1.0.0 (2020-03-03)

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged lanelet2_matching at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.2.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/fzi-forschungszentrum-informatik/lanelet2.git
VCS Type git
VCS Version master
Last Updated 2024-02-07
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Library to match objects to lanelets

Additional Links

Maintainers

  • Fabian Immel

Authors

  • Maximilian Naumann

Lanelet2 Matching Module

This module provides functions to determine in which lanelet an object is/could be currently located.

Matching functions

  • Deterministic matching: Find all lanelets to which an object has less than a certain Euclidean distance.
    • as lanelets have an orientation, every lanelet is considered twice: regular and inverted, but with the same distance
  • Probabilistic matching: Compute the squared Mahalanobis distance of the object pose to the lanelet to reason about the probability of that match, as suggested by Petrich et al. (DOI:0.1109/ITSC.2013.6728549)
    • this distance includes the orientation, thus every lanelet is considered twice: regular and inverted, but with different distances
  • Accounting for traffic rules: In case you expect traffic rule compliant behavior, you can remove non-compliant matches by providing a traffic rule element for the participant you were matching (such as pedestrian lanelets for vehicles or inverted one way lanelets, which means driving in the wrong direction).

Usage

C++

#include <lanelet2_matching/LaneletMatching.h>

// create objects to match
lanelet::matching::Object2d obj; // deterministic
lanelet::matching::ObjectWithCovariance2d obj2; // considering uncertainty

// retrieve lanelet matches from map
auto detMatches = getDeterministicMatches(laneletMap, obj, 4.); // max distance = 4m
auto probMatches = getProbabilisticMatches(laneletMap, obj2, 4.); // max distance = 4m

// remove non-compliant matches (such as driving in the wrong direction)
auto compliantDetMatches = removeNonRuleCompliantMatches(detMatches, trafficRulesPtr);
auto compliantProbMatches = removeNonRuleCompliantMatches(probMatches, trafficRulesPtr);

have a look at the C++ unittests for more examples

Python

import lanelet2
# Note: in the standalone version of lanelet2_matching, the python module was named
#  "lanelet2_matching". Now it is a submodule of lanelet2: "lanelet2.matching"

# create objects to match
obj = lanelet2.matching.Object2d()

# retrieve lanelet matches from map
matches = lanelet2.matching.getDeterministicMatches(lanelet_map, obj, 4.)  # max distance = 4m

# remove non-compliant matches (such as driving in the wrong direction)
compliant_matches = lanelet2.matching.removeNonRuleCompliantMatches(matches, traffic_rules)


have a look at the python unittests for more examples, also supports uncertainty

License

This package is distributed under the 3-Clause BSD License, see LICENSE.

CHANGELOG

Changelog for package lanelet2_matching

1.2.1 (2023-05-10)

1.2.0 (2023-01-30)

  • Add CI using GitHub Actions (#256)
  • Move matching integration test to examples
  • Name integration tests correctly and remove utils tests
  • Add unittests with simple map
  • Rename integration test file
  • Remove changelog and license
  • Switch to lanelet2.matching in python
  • Fix package.xml
  • Move python bindings of lanelet2_matching to lanelet2_python
  • Integrate into lanelet2
  • Contributors: Fabian Poggenhans, Maximilian Naumann, Nico Neumann, Fabian Immel

1.1.1 (2020-09-14)

1.0.1 (2020-03-24)

1.0.0 (2020-03-03)

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged lanelet2_matching at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.2.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/fzi-forschungszentrum-informatik/lanelet2.git
VCS Type git
VCS Version master
Last Updated 2024-02-07
Dev Status MAINTAINED
CI status
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Library to match objects to lanelets

Additional Links

Maintainers

  • Fabian Immel

Authors

  • Maximilian Naumann

Lanelet2 Matching Module

This module provides functions to determine in which lanelet an object is/could be currently located.

Matching functions

  • Deterministic matching: Find all lanelets to which an object has less than a certain Euclidean distance.
    • as lanelets have an orientation, every lanelet is considered twice: regular and inverted, but with the same distance
  • Probabilistic matching: Compute the squared Mahalanobis distance of the object pose to the lanelet to reason about the probability of that match, as suggested by Petrich et al. (DOI:0.1109/ITSC.2013.6728549)
    • this distance includes the orientation, thus every lanelet is considered twice: regular and inverted, but with different distances
  • Accounting for traffic rules: In case you expect traffic rule compliant behavior, you can remove non-compliant matches by providing a traffic rule element for the participant you were matching (such as pedestrian lanelets for vehicles or inverted one way lanelets, which means driving in the wrong direction).

Usage

C++

#include <lanelet2_matching/LaneletMatching.h>

// create objects to match
lanelet::matching::Object2d obj; // deterministic
lanelet::matching::ObjectWithCovariance2d obj2; // considering uncertainty

// retrieve lanelet matches from map
auto detMatches = getDeterministicMatches(laneletMap, obj, 4.); // max distance = 4m
auto probMatches = getProbabilisticMatches(laneletMap, obj2, 4.); // max distance = 4m

// remove non-compliant matches (such as driving in the wrong direction)
auto compliantDetMatches = removeNonRuleCompliantMatches(detMatches, trafficRulesPtr);
auto compliantProbMatches = removeNonRuleCompliantMatches(probMatches, trafficRulesPtr);

have a look at the C++ unittests for more examples

Python

import lanelet2
# Note: in the standalone version of lanelet2_matching, the python module was named
#  "lanelet2_matching". Now it is a submodule of lanelet2: "lanelet2.matching"

# create objects to match
obj = lanelet2.matching.Object2d()

# retrieve lanelet matches from map
matches = lanelet2.matching.getDeterministicMatches(lanelet_map, obj, 4.)  # max distance = 4m

# remove non-compliant matches (such as driving in the wrong direction)
compliant_matches = lanelet2.matching.removeNonRuleCompliantMatches(matches, traffic_rules)


have a look at the python unittests for more examples, also supports uncertainty

License

This package is distributed under the 3-Clause BSD License, see LICENSE.

CHANGELOG

Changelog for package lanelet2_matching

1.2.1 (2023-05-10)

1.2.0 (2023-01-30)

  • Add CI using GitHub Actions (#256)
  • Move matching integration test to examples
  • Name integration tests correctly and remove utils tests
  • Add unittests with simple map
  • Rename integration test file
  • Remove changelog and license
  • Switch to lanelet2.matching in python
  • Fix package.xml
  • Move python bindings of lanelet2_matching to lanelet2_python
  • Integrate into lanelet2
  • Contributors: Fabian Poggenhans, Maximilian Naumann, Nico Neumann, Fabian Immel

1.1.1 (2020-09-14)

1.0.1 (2020-03-24)

1.0.0 (2020-03-03)

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged lanelet2_matching at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.2.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/fzi-forschungszentrum-informatik/lanelet2.git
VCS Type git
VCS Version master
Last Updated 2024-02-07
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Library to match objects to lanelets

Additional Links

Maintainers

  • Fabian Immel

Authors

  • Maximilian Naumann

Lanelet2 Matching Module

This module provides functions to determine in which lanelet an object is/could be currently located.

Matching functions

  • Deterministic matching: Find all lanelets to which an object has less than a certain Euclidean distance.
    • as lanelets have an orientation, every lanelet is considered twice: regular and inverted, but with the same distance
  • Probabilistic matching: Compute the squared Mahalanobis distance of the object pose to the lanelet to reason about the probability of that match, as suggested by Petrich et al. (DOI:0.1109/ITSC.2013.6728549)
    • this distance includes the orientation, thus every lanelet is considered twice: regular and inverted, but with different distances
  • Accounting for traffic rules: In case you expect traffic rule compliant behavior, you can remove non-compliant matches by providing a traffic rule element for the participant you were matching (such as pedestrian lanelets for vehicles or inverted one way lanelets, which means driving in the wrong direction).

Usage

C++

#include <lanelet2_matching/LaneletMatching.h>

// create objects to match
lanelet::matching::Object2d obj; // deterministic
lanelet::matching::ObjectWithCovariance2d obj2; // considering uncertainty

// retrieve lanelet matches from map
auto detMatches = getDeterministicMatches(laneletMap, obj, 4.); // max distance = 4m
auto probMatches = getProbabilisticMatches(laneletMap, obj2, 4.); // max distance = 4m

// remove non-compliant matches (such as driving in the wrong direction)
auto compliantDetMatches = removeNonRuleCompliantMatches(detMatches, trafficRulesPtr);
auto compliantProbMatches = removeNonRuleCompliantMatches(probMatches, trafficRulesPtr);

have a look at the C++ unittests for more examples

Python

import lanelet2
# Note: in the standalone version of lanelet2_matching, the python module was named
#  "lanelet2_matching". Now it is a submodule of lanelet2: "lanelet2.matching"

# create objects to match
obj = lanelet2.matching.Object2d()

# retrieve lanelet matches from map
matches = lanelet2.matching.getDeterministicMatches(lanelet_map, obj, 4.)  # max distance = 4m

# remove non-compliant matches (such as driving in the wrong direction)
compliant_matches = lanelet2.matching.removeNonRuleCompliantMatches(matches, traffic_rules)


have a look at the python unittests for more examples, also supports uncertainty

License

This package is distributed under the 3-Clause BSD License, see LICENSE.

CHANGELOG

Changelog for package lanelet2_matching

1.2.1 (2023-05-10)

1.2.0 (2023-01-30)

  • Add CI using GitHub Actions (#256)
  • Move matching integration test to examples
  • Name integration tests correctly and remove utils tests
  • Add unittests with simple map
  • Rename integration test file
  • Remove changelog and license
  • Switch to lanelet2.matching in python
  • Fix package.xml
  • Move python bindings of lanelet2_matching to lanelet2_python
  • Integrate into lanelet2
  • Contributors: Fabian Poggenhans, Maximilian Naumann, Nico Neumann, Fabian Immel

1.1.1 (2020-09-14)

1.0.1 (2020-03-24)

1.0.0 (2020-03-03)

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged lanelet2_matching at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.2.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/fzi-forschungszentrum-informatik/lanelet2.git
VCS Type git
VCS Version master
Last Updated 2024-02-07
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Library to match objects to lanelets

Additional Links

Maintainers

  • Fabian Immel

Authors

  • Maximilian Naumann

Lanelet2 Matching Module

This module provides functions to determine in which lanelet an object is/could be currently located.

Matching functions

  • Deterministic matching: Find all lanelets to which an object has less than a certain Euclidean distance.
    • as lanelets have an orientation, every lanelet is considered twice: regular and inverted, but with the same distance
  • Probabilistic matching: Compute the squared Mahalanobis distance of the object pose to the lanelet to reason about the probability of that match, as suggested by Petrich et al. (DOI:0.1109/ITSC.2013.6728549)
    • this distance includes the orientation, thus every lanelet is considered twice: regular and inverted, but with different distances
  • Accounting for traffic rules: In case you expect traffic rule compliant behavior, you can remove non-compliant matches by providing a traffic rule element for the participant you were matching (such as pedestrian lanelets for vehicles or inverted one way lanelets, which means driving in the wrong direction).

Usage

C++

#include <lanelet2_matching/LaneletMatching.h>

// create objects to match
lanelet::matching::Object2d obj; // deterministic
lanelet::matching::ObjectWithCovariance2d obj2; // considering uncertainty

// retrieve lanelet matches from map
auto detMatches = getDeterministicMatches(laneletMap, obj, 4.); // max distance = 4m
auto probMatches = getProbabilisticMatches(laneletMap, obj2, 4.); // max distance = 4m

// remove non-compliant matches (such as driving in the wrong direction)
auto compliantDetMatches = removeNonRuleCompliantMatches(detMatches, trafficRulesPtr);
auto compliantProbMatches = removeNonRuleCompliantMatches(probMatches, trafficRulesPtr);

have a look at the C++ unittests for more examples

Python

import lanelet2
# Note: in the standalone version of lanelet2_matching, the python module was named
#  "lanelet2_matching". Now it is a submodule of lanelet2: "lanelet2.matching"

# create objects to match
obj = lanelet2.matching.Object2d()

# retrieve lanelet matches from map
matches = lanelet2.matching.getDeterministicMatches(lanelet_map, obj, 4.)  # max distance = 4m

# remove non-compliant matches (such as driving in the wrong direction)
compliant_matches = lanelet2.matching.removeNonRuleCompliantMatches(matches, traffic_rules)


have a look at the python unittests for more examples, also supports uncertainty

License

This package is distributed under the 3-Clause BSD License, see LICENSE.

CHANGELOG

Changelog for package lanelet2_matching

1.2.1 (2023-05-10)

1.2.0 (2023-01-30)

  • Add CI using GitHub Actions (#256)
  • Move matching integration test to examples
  • Name integration tests correctly and remove utils tests
  • Add unittests with simple map
  • Rename integration test file
  • Remove changelog and license
  • Switch to lanelet2.matching in python
  • Fix package.xml
  • Move python bindings of lanelet2_matching to lanelet2_python
  • Integrate into lanelet2
  • Contributors: Fabian Poggenhans, Maximilian Naumann, Nico Neumann, Fabian Immel

1.1.1 (2020-09-14)

1.0.1 (2020-03-24)

1.0.0 (2020-03-03)

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged lanelet2_matching at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.2.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/fzi-forschungszentrum-informatik/lanelet2.git
VCS Type git
VCS Version master
Last Updated 2024-02-07
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Library to match objects to lanelets

Additional Links

Maintainers

  • Fabian Immel

Authors

  • Maximilian Naumann

Lanelet2 Matching Module

This module provides functions to determine in which lanelet an object is/could be currently located.

Matching functions

  • Deterministic matching: Find all lanelets to which an object has less than a certain Euclidean distance.
    • as lanelets have an orientation, every lanelet is considered twice: regular and inverted, but with the same distance
  • Probabilistic matching: Compute the squared Mahalanobis distance of the object pose to the lanelet to reason about the probability of that match, as suggested by Petrich et al. (DOI:0.1109/ITSC.2013.6728549)
    • this distance includes the orientation, thus every lanelet is considered twice: regular and inverted, but with different distances
  • Accounting for traffic rules: In case you expect traffic rule compliant behavior, you can remove non-compliant matches by providing a traffic rule element for the participant you were matching (such as pedestrian lanelets for vehicles or inverted one way lanelets, which means driving in the wrong direction).

Usage

C++

#include <lanelet2_matching/LaneletMatching.h>

// create objects to match
lanelet::matching::Object2d obj; // deterministic
lanelet::matching::ObjectWithCovariance2d obj2; // considering uncertainty

// retrieve lanelet matches from map
auto detMatches = getDeterministicMatches(laneletMap, obj, 4.); // max distance = 4m
auto probMatches = getProbabilisticMatches(laneletMap, obj2, 4.); // max distance = 4m

// remove non-compliant matches (such as driving in the wrong direction)
auto compliantDetMatches = removeNonRuleCompliantMatches(detMatches, trafficRulesPtr);
auto compliantProbMatches = removeNonRuleCompliantMatches(probMatches, trafficRulesPtr);

have a look at the C++ unittests for more examples

Python

import lanelet2
# Note: in the standalone version of lanelet2_matching, the python module was named
#  "lanelet2_matching". Now it is a submodule of lanelet2: "lanelet2.matching"

# create objects to match
obj = lanelet2.matching.Object2d()

# retrieve lanelet matches from map
matches = lanelet2.matching.getDeterministicMatches(lanelet_map, obj, 4.)  # max distance = 4m

# remove non-compliant matches (such as driving in the wrong direction)
compliant_matches = lanelet2.matching.removeNonRuleCompliantMatches(matches, traffic_rules)


have a look at the python unittests for more examples, also supports uncertainty

License

This package is distributed under the 3-Clause BSD License, see LICENSE.

CHANGELOG

Changelog for package lanelet2_matching

1.2.1 (2023-05-10)

1.2.0 (2023-01-30)

  • Add CI using GitHub Actions (#256)
  • Move matching integration test to examples
  • Name integration tests correctly and remove utils tests
  • Add unittests with simple map
  • Rename integration test file
  • Remove changelog and license
  • Switch to lanelet2.matching in python
  • Fix package.xml
  • Move python bindings of lanelet2_matching to lanelet2_python
  • Integrate into lanelet2
  • Contributors: Fabian Poggenhans, Maximilian Naumann, Nico Neumann, Fabian Immel

1.1.1 (2020-09-14)

1.0.1 (2020-03-24)

1.0.0 (2020-03-03)

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged lanelet2_matching at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.2.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/fzi-forschungszentrum-informatik/lanelet2.git
VCS Type git
VCS Version master
Last Updated 2024-02-07
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Library to match objects to lanelets

Additional Links

Maintainers

  • Fabian Immel

Authors

  • Maximilian Naumann

Lanelet2 Matching Module

This module provides functions to determine in which lanelet an object is/could be currently located.

Matching functions

  • Deterministic matching: Find all lanelets to which an object has less than a certain Euclidean distance.
    • as lanelets have an orientation, every lanelet is considered twice: regular and inverted, but with the same distance
  • Probabilistic matching: Compute the squared Mahalanobis distance of the object pose to the lanelet to reason about the probability of that match, as suggested by Petrich et al. (DOI:0.1109/ITSC.2013.6728549)
    • this distance includes the orientation, thus every lanelet is considered twice: regular and inverted, but with different distances
  • Accounting for traffic rules: In case you expect traffic rule compliant behavior, you can remove non-compliant matches by providing a traffic rule element for the participant you were matching (such as pedestrian lanelets for vehicles or inverted one way lanelets, which means driving in the wrong direction).

Usage

C++

#include <lanelet2_matching/LaneletMatching.h>

// create objects to match
lanelet::matching::Object2d obj; // deterministic
lanelet::matching::ObjectWithCovariance2d obj2; // considering uncertainty

// retrieve lanelet matches from map
auto detMatches = getDeterministicMatches(laneletMap, obj, 4.); // max distance = 4m
auto probMatches = getProbabilisticMatches(laneletMap, obj2, 4.); // max distance = 4m

// remove non-compliant matches (such as driving in the wrong direction)
auto compliantDetMatches = removeNonRuleCompliantMatches(detMatches, trafficRulesPtr);
auto compliantProbMatches = removeNonRuleCompliantMatches(probMatches, trafficRulesPtr);

have a look at the C++ unittests for more examples

Python

import lanelet2
# Note: in the standalone version of lanelet2_matching, the python module was named
#  "lanelet2_matching". Now it is a submodule of lanelet2: "lanelet2.matching"

# create objects to match
obj = lanelet2.matching.Object2d()

# retrieve lanelet matches from map
matches = lanelet2.matching.getDeterministicMatches(lanelet_map, obj, 4.)  # max distance = 4m

# remove non-compliant matches (such as driving in the wrong direction)
compliant_matches = lanelet2.matching.removeNonRuleCompliantMatches(matches, traffic_rules)


have a look at the python unittests for more examples, also supports uncertainty

License

This package is distributed under the 3-Clause BSD License, see LICENSE.

CHANGELOG

Changelog for package lanelet2_matching

1.2.1 (2023-05-10)

1.2.0 (2023-01-30)

  • Add CI using GitHub Actions (#256)
  • Move matching integration test to examples
  • Name integration tests correctly and remove utils tests
  • Add unittests with simple map
  • Rename integration test file
  • Remove changelog and license
  • Switch to lanelet2.matching in python
  • Fix package.xml
  • Move python bindings of lanelet2_matching to lanelet2_python
  • Integrate into lanelet2
  • Contributors: Fabian Poggenhans, Maximilian Naumann, Nico Neumann, Fabian Immel

1.1.1 (2020-09-14)

1.0.1 (2020-03-24)

1.0.0 (2020-03-03)

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged lanelet2_matching at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.2.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/fzi-forschungszentrum-informatik/lanelet2.git
VCS Type git
VCS Version master
Last Updated 2024-02-07
Dev Status MAINTAINED
CI status
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Library to match objects to lanelets

Additional Links

Maintainers

  • Fabian Immel

Authors

  • Maximilian Naumann

Lanelet2 Matching Module

This module provides functions to determine in which lanelet an object is/could be currently located.

Matching functions

  • Deterministic matching: Find all lanelets to which an object has less than a certain Euclidean distance.
    • as lanelets have an orientation, every lanelet is considered twice: regular and inverted, but with the same distance
  • Probabilistic matching: Compute the squared Mahalanobis distance of the object pose to the lanelet to reason about the probability of that match, as suggested by Petrich et al. (DOI:0.1109/ITSC.2013.6728549)
    • this distance includes the orientation, thus every lanelet is considered twice: regular and inverted, but with different distances
  • Accounting for traffic rules: In case you expect traffic rule compliant behavior, you can remove non-compliant matches by providing a traffic rule element for the participant you were matching (such as pedestrian lanelets for vehicles or inverted one way lanelets, which means driving in the wrong direction).

Usage

C++

#include <lanelet2_matching/LaneletMatching.h>

// create objects to match
lanelet::matching::Object2d obj; // deterministic
lanelet::matching::ObjectWithCovariance2d obj2; // considering uncertainty

// retrieve lanelet matches from map
auto detMatches = getDeterministicMatches(laneletMap, obj, 4.); // max distance = 4m
auto probMatches = getProbabilisticMatches(laneletMap, obj2, 4.); // max distance = 4m

// remove non-compliant matches (such as driving in the wrong direction)
auto compliantDetMatches = removeNonRuleCompliantMatches(detMatches, trafficRulesPtr);
auto compliantProbMatches = removeNonRuleCompliantMatches(probMatches, trafficRulesPtr);

have a look at the C++ unittests for more examples

Python

import lanelet2
# Note: in the standalone version of lanelet2_matching, the python module was named
#  "lanelet2_matching". Now it is a submodule of lanelet2: "lanelet2.matching"

# create objects to match
obj = lanelet2.matching.Object2d()

# retrieve lanelet matches from map
matches = lanelet2.matching.getDeterministicMatches(lanelet_map, obj, 4.)  # max distance = 4m

# remove non-compliant matches (such as driving in the wrong direction)
compliant_matches = lanelet2.matching.removeNonRuleCompliantMatches(matches, traffic_rules)


have a look at the python unittests for more examples, also supports uncertainty

License

This package is distributed under the 3-Clause BSD License, see LICENSE.

CHANGELOG

Changelog for package lanelet2_matching

1.2.1 (2023-05-10)

1.2.0 (2023-01-30)

  • Add CI using GitHub Actions (#256)
  • Move matching integration test to examples
  • Name integration tests correctly and remove utils tests
  • Add unittests with simple map
  • Rename integration test file
  • Remove changelog and license
  • Switch to lanelet2.matching in python
  • Fix package.xml
  • Move python bindings of lanelet2_matching to lanelet2_python
  • Integrate into lanelet2
  • Contributors: Fabian Poggenhans, Maximilian Naumann, Nico Neumann, Fabian Immel

1.1.1 (2020-09-14)

1.0.1 (2020-03-24)

1.0.0 (2020-03-03)

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged lanelet2_matching at Robotics Stack Exchange