Carma-platform v4.2.0
CARMA Platform is built on robot operating system (ROS) and utilizes open source software (OSS) that enables Cooperative Driving Automation (CDA) features to allow Automated Driving Systems to interact and cooperate with infrastructure and other vehicles through communication.
MapConformer.cpp File Reference
#include <rclcpp/rclcpp.hpp>
#include <carma_wm/WorldModel.hpp>
#include <lanelet2_core/Attribute.h>
#include <lanelet2_core/utility/Units.h>
#include <boost/algorithm/string.hpp>
#include <carma_wm/MapConformer.hpp>
Include dependency graph for MapConformer.cpp:

Go to the source code of this file.

Namespaces

namespace  lanelet
 
namespace  lanelet::MapConformer
 
namespace  lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}
 

Enumerations

enum class  lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::LaneChangeType { lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::ToRight , lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::ToLeft , lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::Both , lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::None }
 

Functions

std::vector< lanelet::traffic_rules::TrafficRulesUPtr > lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::getAllGermanTrafficRules ()
 Helper function to return the set of all german traffic rules which are currently implemented. More...
 
template<typename Map , typename Key , typename Value >
Value lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::getMapOrDefault (const Map &map, Key key, Value defaultVal)
 Helper function to get a value from a map or return a default value when key is not present. More...
 
bool lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::startswith (const std::string &str, const std::string &substr)
 Helper function to check if a string starts with another string. More...
 
LaneChangeType lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::getChangeType (const std::string &type, const std::string &subtype, const std::string &participant)
 Helper function to determine the type of lane change implicitly allowed by the markings on the road. More...
 
PassingControlLinePtr lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::buildControlLine (LineString3d &bound, const LaneChangeType type, const std::string &participant)
 Helper function constructs a PassingControlLine based off the provided bound and lane change type. More...
 
void lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::addInferredAccessRule (Lanelet &lanelet, lanelet::LaneletMapPtr map, const std::vector< lanelet::traffic_rules::TrafficRulesUPtr > &default_traffic_rules)
 Generate RegionAccessRules from the inferred regulations in the provided map and lanelet. More...
 
void lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::addInferredAccessRule (Area &area, lanelet::LaneletMapPtr map, const std::vector< lanelet::traffic_rules::TrafficRulesUPtr > &default_traffic_rules)
 Generate RegionAccessRules from the inferred regulations in the provided map and area. More...
 
void lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::addInferredPassingControlLine (Lanelet &lanelet, lanelet::LaneletMapPtr map)
 Generate PassingControlLines from the inferred regulations in the provided map and lanelet. More...
 
void lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::addInferredPassingControlLine (Area &area, lanelet::LaneletMapPtr map)
 Generate PassingControlLines from the inferred regulations in the provided map and area. More...
 
void lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::addInferredDirectionOfTravel (Lanelet &lanelet, lanelet::LaneletMapPtr map, const std::vector< lanelet::traffic_rules::TrafficRulesUPtr > &default_traffic_rules)
 Generate DirectionOfTravel from the inferred regulations in the provided map and lanelet Only adds a regulatory element if the direction of travel is not one_way as that is the default. More...
 
void lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::addValidSpeedLimit (Lanelet &lanelet, lanelet::LaneletMapPtr map, lanelet::Velocity config_limit, const std::vector< lanelet::traffic_rules::TrafficRulesUPtr > &default_traffic_rules)
 
void lanelet::MapConformer::ensureCompliance (lanelet::LaneletMapPtr map, lanelet::Velocity config_limit=80_mph)
 Function modifies an existing map to make a best effort attempt at ensuring the map confroms to the expectations of CarmaUSTrafficRules. More...
 

Variables

constexpr size_t lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::PARTICIPANT_COUNT = 12
 
constexpr const char * lanelet::MapConformer::anonymous_namespace{MapConformer.cpp}::participant_types [PARTICIPANT_COUNT]