Skip to content

Commit

Permalink
Release 2.1.0
Browse files Browse the repository at this point in the history
* Added physics::AngleRange, physics::AngluarAcceleration data types and some AngleOperations
* Extended physics Parametric and Ratio Operations to all physics basic types
* Map Matching
  - map::match::MapMatchedPosition get matchedPointDistance member
  - removed distance parameter from match::AdMapMatching::getMapMatchedBoundingBox() and match::AdMapMatching::getLaneOccupiedRegions() functions which is now derived automatically from samplingDistance parameter
  - The occupied regions only consider longitudinal in-lane matches
* Removed misleading functions route::getRouteIntervalStart/End(LaneInterval); directly use the LaneInterval members instead
* route::calculateConnectingRoute() shortens the result route by removing overlapping regions with the objects; the length of the connecting route now reflects the distance of the vehicles much better
* Improved documentation (BUILDING, map_maker)
* Added qgis plugin static build colcon meta file	* Added qgis plugin static build colcon meta file
  • Loading branch information
berndgassmann committed Jul 1, 2020
1 parent 4fc7b6e commit 3b2bccf
Show file tree
Hide file tree
Showing 88 changed files with 4,749 additions and 1,055 deletions.
4 changes: 2 additions & 2 deletions ad_map_access/generated/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
##

cmake_minimum_required(VERSION 3.5)
project(ad_map_access VERSION 2.0.3)
project(ad_map_access VERSION 2.1.0)

include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
Expand Down Expand Up @@ -47,7 +47,7 @@ get_target_property(AD_MAP_OPENDRIVE_READER_INTERFACE_INCLUDE_DIRS ad_map_opendr
list(APPEND INCLUDE_DIRS ${AD_MAP_OPENDRIVE_READER_INTERFACE_INCLUDE_DIRS})
list(APPEND LIBRARIES ad_map_opendrive_reader)

find_package(ad_physics 2.0.3 REQUIRED CONFIG)
find_package(ad_physics 2.1.0 REQUIRED CONFIG)
find_package(spdlog REQUIRED CONFIG)

add_library(${PROJECT_NAME}
Expand Down
2 changes: 1 addition & 1 deletion ad_map_access/generated/cmake/Config.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ get_target_property(AD_MAP_OPENDRIVE_READER_INTERFACE_INCLUDE_DIRS ad_map_opendr
list(APPEND INCLUDE_DIRS ${AD_MAP_OPENDRIVE_READER_INTERFACE_INCLUDE_DIRS})
list(APPEND LIBRARIES ad_map_opendrive_reader)

find_dependency(ad_physics 2.0.3)
find_dependency(ad_physics 2.1.0)
find_dependency(spdlog)

include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include "ad/map/match/LanePoint.hpp"
#include "ad/map/match/MapMatchedPositionType.hpp"
#include "ad/map/point/ECEFPoint.hpp"
#include "ad/physics/Distance.hpp"
#include "ad/physics/Probability.hpp"
/*!
* @brief namespace ad
Expand Down Expand Up @@ -105,7 +106,8 @@ struct MapMatchedPosition
bool operator==(const MapMatchedPosition &other) const
{
return (lanePoint == other.lanePoint) && (type == other.type) && (matchedPoint == other.matchedPoint)
&& (probability == other.probability) && (queryPoint == other.queryPoint);
&& (probability == other.probability) && (queryPoint == other.queryPoint)
&& (matchedPointDistance == other.matchedPointDistance);
}

/**
Expand Down Expand Up @@ -133,6 +135,11 @@ struct MapMatchedPosition
* Point that is used for determining this matched pos.
*/
::ad::map::point::ECEFPoint queryPoint;

/*!
* The distance between the matchedPoint and the queryPoint.
*/
::ad::physics::Distance matchedPointDistance;
};

} // namespace match
Expand Down Expand Up @@ -185,6 +192,9 @@ inline std::ostream &operator<<(std::ostream &os, MapMatchedPosition const &_val
os << ",";
os << "queryPoint:";
os << _value.queryPoint;
os << ",";
os << "matchedPointDistance:";
os << _value.matchedPointDistance;
os << ")";
return os;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include "ad/map/match/MapMatchedPosition.hpp"
#include "ad/map/match/MapMatchedPositionTypeValidInputRange.hpp"
#include "ad/map/point/ECEFPointValidInputRange.hpp"
#include "ad/physics/DistanceValidInputRange.hpp"
#include "ad/physics/ProbabilityValidInputRange.hpp"
#include "spdlog/fmt/ostr.h"
#include "spdlog/spdlog.h"
Expand All @@ -43,7 +44,8 @@ inline bool withinValidInputRange(::ad::map::match::MapMatchedPosition const &in
bool inValidInputRange = true;
inValidInputRange = withinValidInputRange(input.lanePoint, logErrors) && withinValidInputRange(input.type, logErrors)
&& withinValidInputRange(input.matchedPoint, logErrors) && withinValidInputRange(input.probability, logErrors)
&& withinValidInputRange(input.queryPoint, logErrors);
&& withinValidInputRange(input.queryPoint, logErrors)
&& withinValidInputRange(input.matchedPointDistance, logErrors);
if (!inValidInputRange && logErrors)
{
spdlog::error("withinValidInputRange(::ad::map::match::MapMatchedPosition)>> {} has invalid member",
Expand Down
6 changes: 3 additions & 3 deletions ad_map_access/generated/include/ad_map_access/Version.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,14 @@
/*!
* The minor version of ad_map_access
*/
#define AD_MAP_ACCESS_VERSION_MINOR 0
#define AD_MAP_ACCESS_VERSION_MINOR 1

/*!
* The revision of ad_map_access
*/
#define AD_MAP_ACCESS_VERSION_REVISION 3
#define AD_MAP_ACCESS_VERSION_REVISION 0

/*!
* The version of ad_map_access as string
*/
#define AD_MAP_ACCESS_VERSION_STRING "2.0.3"
#define AD_MAP_ACCESS_VERSION_STRING "2.1.0"
8 changes: 2 additions & 6 deletions ad_map_access/impl/include/ad/map/match/AdMapMatching.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -216,16 +216,14 @@ class AdMapMatching
*
* @param[in] enuObjectPosition object position, orientation, dimensions and ENRReferencePoint
* to match against the map in ENU coordinate frame
* @param[in] distance search radius around geoPoint to select a lane as a match
* @param[in] samplingDistance The step size to be used to perform map matching in between the vehicle boundaries
* This parameter is heavily influencing the performance of this function:
* A samplingDistance of 0.1 at a car (3x5m) means 1500x map matching. With a distance of 1.0 we get only 15x map
* matching. To ensure the correctness of the LaneOccupiedRegions, this parameter is set <= distance!
* matching.
*
* @returns the map matched bounding box of the object
*/
MapMatchedObjectBoundingBox getMapMatchedBoundingBox(ENUObjectPosition const &enuObjectPosition,
physics::Distance const &distance,
physics::Distance const &samplingDistance
= physics::Distance(1.));

Expand All @@ -238,15 +236,13 @@ class AdMapMatching
* only works as expected if the the provided enuObjectPositionList covers the whole object.
*
* @param[in] enuObjectPositionList list of ENUObjectPosition entries
* @param[in] distance search radius around geoPoint to select a lane as a match
* @param[in] samplingDistance The step size to be used to perform map matching in between the vehicle boundaries
* A samplingDistance of 0.1 at a car (3x5m) means 1500x map matching. With a distance of 1.0 we get only 15x map
* matching. To ensure the correctness of the LaneOccupiedRegions, this parameter is set <= distance!
* matching.
*
* @returns the map matched bounding box of the object
*/
LaneOccupiedRegionList getLaneOccupiedRegions(ENUObjectPositionList enuObjectPositionList,
physics::Distance const &distance,
physics::Distance const &samplingDistance = physics::Distance(1.));

/**
Expand Down
13 changes: 12 additions & 1 deletion ad_map_access/impl/include/ad/map/point/HeadingOperation.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#include "ad/map/point/ENUPoint.hpp"
#include "ad/map/point/GeoPoint.hpp"
#include "ad/map/point/PointOperation.hpp"
#include "ad/physics/Angle.hpp"
#include "ad/physics/Distance.hpp"

namespace ad {
Expand Down Expand Up @@ -48,10 +49,20 @@ ECEFHeading createECEFHeading(ENUHeading const &yaw, GeoPoint const &enuReferenc
* @param[in] yawAngleRadian heading provided as yaw angle in radians
*
* @returns heading with given yaw angle is normalized in the range -M_PI < heading <= M_PI
*
*/
ENUHeading createENUHeading(double yawAngleRadian);

/**
* @brief create a ENUHeading from angle
*
* Heading in ENU coordinate system as angle measured from East to North axis (yaw) in radians
*
* @param[in] angle heading provided as yaw angle in radians
*
* @returns heading with given yaw angle is normalized in the range -M_PI < heading <= M_PI
*/
ENUHeading createENUHeading(physics::Angle const &angle);

/**
* @brief create a ENUHeading from ECEFHeading value
*
Expand Down
10 changes: 0 additions & 10 deletions ad_map_access/impl/include/ad/map/route/LaneIntervalOperation.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,6 @@ namespace route {
* isRouteDirectionPositive(), isRouteDirectionNegative() provide the expected information.
*/

/**
* @brief get the start point of a LaneInterval considering the route direction
*/
point::ParaPoint getRouteIntervalStart(LaneInterval const &laneInterval);

/**
* @brief get the end point of a LaneInterval considering the route direction
*/
point::ParaPoint getRouteIntervalEnd(LaneInterval const &laneInterval);

/**
* @brief get interval start as ParaPoint
*/
Expand Down
1 change: 1 addition & 0 deletions ad_map_access/impl/src/lane/LaneOperation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -570,6 +570,7 @@ bool findNearestPointOnLane(Lane const &lane, point::ECEFPoint const &pt, match:
mmpos.lanePoint.laneLength = lane.length;
mmpos.lanePoint.laneWidth = point::distance(pt_left, pt_right);
mmpos.queryPoint = pt;
mmpos.matchedPointDistance = point::distance(mmpos.matchedPoint, mmpos.queryPoint);
return true;
}
}
Expand Down
Loading

0 comments on commit 3b2bccf

Please sign in to comment.