嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
高精地图-车道级对象模型-Lanelet实现
Lanelet2 is a C library for handling map data in the context of automated driving. It is designed to utilize high-definition map data in order to efficiently handle the challenges posed to a vehicle in complex traffic scenarios. Flexibility and extensibility are some of the core principles to handle the upcoming challenges of future maps.
Features:
- 2D and 3D support
- Consistent modification: if one point is modified, all owning objects see the change
- Supports lane changes, routing through areas, etc.
- Separated routing for pedestrians, vehicles, bikes, etc.
- Many customization points to add new traffic rules, routing costs, parsers, etc.
- Simple convenience functions for common tasks when handling maps
- Accurate Projection between the lat/lon geographic world and local metric coordinates
- IO Interface for reading and writing e.g. osm data formats (this does not mean it can deal with osm maps)
- Python bindings for the whole C interface
- Boost Geometry support for all thinkable kinds of geometry calculations on map primitives
- Released under the BSD 3-Clause license
- Support for ROS1, ROS2, Docker and Conan (see instructions below)
.
└── Lanelet2
├── CODEOWNERS
├── Dockerfile
├── LICENSE
├── README.md
├── conanfile.py
├── lanelet2
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── clang-tidy-fixes.yaml
│ ├── codeclimate.json
│ └── package.xml
├── lanelet2_core
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── doc
│ │ ├── Architecture.md
│ │ ├── GeometryPrimer.md
│ │ ├── Lanelet1Compability.md
│ │ ├── LaneletAndAreaTagging.md
│ │ ├── LaneletPrimitives.md
│ │ ├── LinestringTagging.md
│ │ ├── RegulatoryElementTagging.md
│ │ └── images
│ │ ├── architecture.png
│ │ ├── area.png
│ │ ├── lanelet.png
│ │ ├── lanelet2_example_image.png
│ │ ├── linestring.png
│ │ ├── max_hose_problem_small.png
│ │ └── regulatory_element.png
│ ├── example
│ │ └── api_style_example.cpp
│ ├── include
│ │ └── lanelet2_core
│ │ ├── Attribute.h
│ │ ├── Exceptions.h
│ │ ├── Forward.h
│ │ ├── LaneletMap.h
│ │ ├── geometry
│ │ │ ├── Area.h
│ │ │ ├── BoundingBox.h
│ │ │ ├── GeometryHelper.h
│ │ │ ├── Lanelet.h
│ │ │ ├── LaneletMap.h
│ │ │ ├── LineString.h
│ │ │ ├── Point.h
│ │ │ ├── Polygon.h
│ │ │ ├── RegulatoryElement.h
│ │ │ └── impl
│ │ │ ├── Area.h
│ │ │ ├── Lanelet.h
│ │ │ ├── LaneletMap.h
│ │ │ ├── LineString.h
│ │ │ └── Polygon.h
│ │ ├── primitives
│ │ │ ├── Area.h
│ │ │ ├── BasicRegulatoryElements.h
│ │ │ ├── BoundingBox.h
│ │ │ ├── CompoundLineString.h
│ │ │ ├── CompoundPolygon.h
│ │ │ ├── GPSPoint.h
│ │ │ ├── Lanelet.h
│ │ │ ├── LaneletOrArea.h
│ │ │ ├── LaneletSequence.h
│ │ │ ├── LineString.h
│ │ │ ├── LineStringOrPolygon.h
│ │ │ ├── Point.h
│ │ │ ├── Polygon.h
│ │ │ ├── Primitive.h
│ │ │ ├── RegulatoryElement.h
│ │ │ └── Traits.h
│ │ └── utility
│ │ ├── CompoundIterator.h
│ │ ├── HybridMap.h
│ │ ├── Optional.h
│ │ ├── ReverseAndForwardIterator.h
│ │ ├── TransformIterator.h
│ │ ├── Units.h
│ │ └── Utilities.h
│ ├── package.xml
│ ├── res
│ │ ├── lanelet_gdb.py
│ │ └── qtcreator_debugging_helpers.py
│ ├── src
│ │ ├── Attribute.cpp
│ │ ├── BasicRegulatoryElements.cpp
│ │ ├── Lanelet.cpp
│ │ ├── LaneletMap.cpp
│ │ ├── LaneletSequence.cpp
│ │ ├── LineStringGeometry.cpp
│ │ ├── PolygonTriangulationGeometry.cpp
│ │ ├── RegulatoryElement.cpp
│ │ └── RegulatoryElementGeometry.cpp
│ └── test
│ ├── lanelet_map_test_case.h
│ ├── test_area.cpp
│ ├── test_attribute.cpp
│ ├── test_lanelet.cpp
│ ├── test_lanelet_map.cpp
│ ├── test_lanelet_map_geometry.cpp
│ ├── test_lanelet_or_area.cpp
│ ├── test_lanelet_sequence.cpp
│ ├── test_linestring.cpp
│ ├── test_point.cpp
│ ├── test_polygon.cpp
│ └── test_regulatory_element.cpp
├── lanelet2_examples
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── custom.cmake
│ ├── include
│ │ └── lanelet2_examples
│ │ └── internal
│ │ └── ExampleHelpers.h
│ ├── package.xml
│ ├── scripts
│ │ └── tutorial.py
│ ├── src
│ │ ├── 01_dealing_with_lanelet_primitives
│ │ │ └── main.cpp
│ │ ├── 02_regulatory_elements
│ │ │ └── main.cpp
│ │ ├── 03_lanelet_map
│ │ │ └── main.cpp
│ │ ├── 04_reading_and_writing
│ │ │ └── main.cpp
│ │ ├── 05_traffic_rules
│ │ │ └── main.cpp
│ │ └── 06_routing
│ │ └── main.cpp
│ └── test
│ └── test_examples.py
├── lanelet2_io
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── include
│ │ └── lanelet2_io
│ │ ├── Configuration.h
│ │ ├── Exceptions.h
│ │ ├── Io.h
│ │ ├── Projection.h
│ │ ├── internal
│ │ └── io_handlers
│ │ ├── BinHandler.h
│ │ ├── Factory.h
│ │ ├── IoHandler.h
│ │ ├── OsmFile.h
│ │ ├── OsmHandler.h
│ │ ├── Parser.h
│ │ ├── Serialize.h
│ │ └── Writer.h
│ ├── package.xml
│ ├── src
│ │ ├── BinHandler.cpp
│ │ ├── Factory.cpp
│ │ ├── Io.cpp
│ │ ├── OsmFile.cpp
│ │ ├── OsmHandlerLoad.cpp
│ │ └── OsmHandlerWrite.cpp
│ └── test
│ ├── TestBinHandler.cpp
│ ├── TestLanelet2Io.cpp
│ ├── TestOsmFile.cpp
│ ├── TestOsmHandler.cpp
│ ├── TestSetup.h
│ └── TestSimpleUsage.cpp
├── lanelet2_maps
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── include
│ │ └── lanelet2_maps
│ │ └── internal
│ ├── josm
│ │ ├── laneletpresets.xml
│ │ ├── lanelets.mapcss
│ │ ├── lines.mapcss
│ │ └── style_images.zip
│ ├── package.xml
│ └── res
│ ├── mapping_example-debug.osm
│ └── mapping_example.osm
├── lanelet2_matching
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── custom.cmake
│ ├── include
│ │ └── lanelet2_matching
│ │ ├── Exceptions.h
│ │ ├── LaneletMatching.h
│ │ ├── Types.h
│ │ ├── Utilities.h
│ │ └── internal
│ ├── package.xml
│ ├── src
│ │ ├── LaneletMatching.cpp
│ │ └── Utilities.cpp
│ └── test
│ ├── lanelet2_matching.cpp
│ ├── lanelet2_matching_integration.cpp
│ └── mapping_example.osm
├── lanelet2_projection
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── doc
│ │ └── Map_Projections_Coordinate_Systems.md
│ ├── include
│ │ └── lanelet2_projection
│ │ ├── Mercator.h
│ │ ├── UTM.h
│ │ └── internal
│ ├── package.xml
│ ├── src
│ │ └── UTM.cpp
│ └── test
│ ├── test_Mercator.cpp
│ └── test_UTM.cpp
├── lanelet2_python
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── include
│ │ └── lanelet2_python
│ │ └── internal
│ │ └── converter.h
│ ├── package.xml
│ ├── python_api
│ │ ├── core.cpp
│ │ ├── geometry.cpp
│ │ ├── io.cpp
│ │ ├── matching.cpp
│ │ ├── projection.cpp
│ │ ├── routing.cpp
│ │ └── traffic_rules.cpp
│ ├── scripts
│ │ ├── create_debug_routing_graph.py
│ │ ├── make_ids_positive.py
│ │ └── print_ids.py
│ └── test
│ ├── test_lanelet2.py
│ └── test_lanelet2_matching.py
├── lanelet2_routing
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── doc
│ │ ├── images
│ │ │ ├── components.png
│ │ │ ├── components.svg
│ │ │ ├── lanelet_map_route.png
│ │ │ ├── lanelet_map_route.svg
│ │ │ ├── lanelet_map_route_oststadtkreisel_small.jpg
│ │ │ ├── lanelet_map_routing_graph.png
│ │ │ ├── lanelet_map_routing_graph.svg
│ │ │ ├── max-hose.png
│ │ │ ├── max-hose.svg
│ │ │ ├── shortest_path_and_route.png
│ │ │ └── shortest_path_and_route.svg
│ │ └── lanelet2_routing.html
│ ├── include
│ │ └── lanelet2_routing
│ │ ├── Exceptions.h
│ │ ├── Forward.h
│ │ ├── LaneletPath.h
│ │ ├── Route.h
│ │ ├── RoutingCost.h
│ │ ├── RoutingGraph.h
│ │ ├── RoutingGraphContainer.h
│ │ ├── Types.h
│ │ └── internal
│ │ ├── Graph.h
│ │ ├── GraphUtils.h
│ │ ├── RouteBuilder.h
│ │ ├── RoutingGraphBuilder.h
│ │ ├── RoutingGraphVisualization.h
│ │ └── ShortestPath.h
│ ├── package.xml
│ ├── res
│ │ └── routing.mapcss
│ ├── src
│ │ ├── LaneletPath.cpp
│ │ ├── Route.cpp
│ │ ├── RouteBuilder.cpp
│ │ ├── RoutingCost.cpp
│ │ ├── RoutingGraph.cpp
│ │ └── RoutingGraphBuilder.cpp
│ └── test
│ ├── LaneletTestMap.xml
│ ├── test_lanelet_or_area_path.cpp
│ ├── test_relations.cpp
│ ├── test_route.cpp
│ ├── test_routing.cpp
│ ├── test_routing_graph_container.cpp
│ ├── test_routing_map.h
│ └── test_routing_visualization.cpp
├── lanelet2_traffic_rules
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── include
│ │ └── lanelet2_traffic_rules
│ │ ├── Exceptions.h
│ │ ├── GenericTrafficRules.h
│ │ ├── GermanTrafficRules.h
│ │ ├── TrafficRules.h
│ │ ├── TrafficRulesFactory.h
│ │ └── internal
│ ├── package.xml
│ ├── src
│ │ ├── GenericTrafficRules.cpp
│ │ ├── GermanTrafficRules.cpp
│ │ └── TrafficRulesFactory.cpp
│ └── test
│ └── lanelet2_traffic_rules.cpp
├── lanelet2_validation
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── include
│ │ └── lanelet2_validation
│ │ ├── BasicValidator.h
│ │ ├── Cli.h
│ │ ├── Issue.h
│ │ ├── Validation.h
│ │ ├── ValidatorFactory.h
│ │ ├── internal
│ │ └── validators
│ │ ├── mapping
│ │ │ ├── BoolTags.h
│ │ │ ├── CurvatureTooBig.h
│ │ │ ├── DuplicatedPoints.h
│ │ │ ├── MandatoryTags.h
│ │ │ ├── PointsTooClose.h
│ │ │ ├── UnknownTagValue.h
│ │ │ └── UnknownTags.h
│ │ └── routing
│ │ └── RoutingGraphIsValid.h
│ ├── package.xml
│ ├── src
│ │ ├── BasicValidator.cpp
│ │ ├── Cli.cpp
│ │ ├── Validation.cpp
│ │ ├── ValidatorFactory.cpp
│ │ └── validators
│ │ ├── CheckTags.cpp
│ │ ├── CurvatureTooBig.cpp
│ │ ├── DuplicatedPoints.cpp
│ │ ├── PointsTooClose.cpp
│ │ └── RoutingGraphIsValid.cpp
│ ├── test
│ │ └── lanelet2_validation.cpp
│ └── tools
│ └── lanelet2_validate
│ └── main.cpp
└── rosdoc.yaml
88 directories, 272 files