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.
|
Functions | |
std::vector< lanelet::ConstLanelet > | getLaneletsFromPoint (const lanelet::LaneletMapConstPtr &semantic_map, const lanelet::BasicPoint2d &point, const unsigned int n=10) |
carma_wm::query namespace contains implementations for query functions (input and output read or write-able) for stand-alone lanelet map without rest of the CARMAWorldModel features. Currently mainly WMBroadcaster (carma_wm_ctrl) is using this to manipulate its own map without creating instance of carma_wm More... | |
std::vector< lanelet::Lanelet > | getLaneletsFromPoint (const lanelet::LaneletMapPtr &semantic_map, const lanelet::BasicPoint2d &point, const unsigned int n=10) |
(non-const version) Gets the underlying lanelet, given the cartesian point on the map More... | |
std::vector< lanelet::ConstLanelet > | nonConnectedAdjacentLeft (const lanelet::LaneletMapConstPtr &semantic_map, const lanelet::BasicPoint2d &input_point, const unsigned int n=10) |
Given the cartesian point on the map, tries to get the opposite direction lanelet on the left This function is intended to find "adjacentLeft lanelets" that doesn't share points between lanelets where adjacentLeft of lanelet library fails. More... | |
std::vector< lanelet::Lanelet > | nonConnectedAdjacentLeft (const lanelet::LaneletMapPtr &semantic_map, const lanelet::BasicPoint2d &input_point, const unsigned int n=10) |
(non-const version) Given the cartesian point on the map, tries to get the opposite direction lanelet on the left This function is intended to find "adjacentLeft lanelets" that doesn't share points between lanelets where adjacentLeft of lanelet library fails More... | |
lanelet::ConstLaneletOrAreas | getAffectedLaneletOrAreas (const lanelet::Points3d &gf_pts, const lanelet::LaneletMapPtr &lanelet_map, std::shared_ptr< const lanelet::routing::RoutingGraph > routing_graph, double max_lane_width) |
Gets the affected lanelet or areas based on the points in the given map's frame. More... | |
std::unordered_set< lanelet::Lanelet > | filterSuccessorLanelets (const std::unordered_set< lanelet::Lanelet > &possible_lanelets, const std::unordered_set< lanelet::Lanelet > &root_lanelets, const lanelet::LaneletMapPtr &lanelet_map, std::shared_ptr< const lanelet::routing::RoutingGraph > routing_graph) |
A function that filters successor lanelets of root_lanelets from possible_lanelets. More... | |
std::unordered_set< lanelet::Lanelet > carma_wm::query::filterSuccessorLanelets | ( | const std::unordered_set< lanelet::Lanelet > & | possible_lanelets, |
const std::unordered_set< lanelet::Lanelet > & | root_lanelets, | ||
const lanelet::LaneletMapPtr & | lanelet_map, | ||
std::shared_ptr< const lanelet::routing::RoutingGraph > | routing_graph | ||
) |
A function that filters successor lanelets of root_lanelets from possible_lanelets.
possible_lanelets | all possible lanelets to check |
root_lanelets | lanelets to filter from |
lanelet_map | Lanelet Map Ptr |
routing_graph | Routing graph of the lanelet map |
NOTE:Mainly used as a helper function for getAffectedLaneletOrAreas
Definition at line 270 of file WorldModelUtils.cpp.
Referenced by getAffectedLaneletOrAreas().
lanelet::ConstLaneletOrAreas carma_wm::query::getAffectedLaneletOrAreas | ( | const lanelet::Points3d & | gf_pts, |
const lanelet::LaneletMapPtr & | lanelet_map, | ||
std::shared_ptr< const lanelet::routing::RoutingGraph > | routing_graph, | ||
double | max_lane_width | ||
) |
Gets the affected lanelet or areas based on the points in the given map's frame.
geofence_msg | lanelet::Points3d in local frame |
lanelet_map | Lanelet Map Ptr |
routing_graph | Routing graph of the lanelet map |
max_lane_width | max lane width of the lanes in the map |
NOTE:Currently this function only checks lanelets and will be expanded to areas in the future.
Definition at line 117 of file WorldModelUtils.cpp.
References carma_wm::TrackPos::downtrack, filterSuccessorLanelets(), carma_wm::geometry::getAngleBetweenVectors(), carma_wm::geometry::trackPos(), process_traj_logs::x, and process_traj_logs::y.
Referenced by carma_wm::SignalizedIntersectionManager::convertLaneToLaneletId(), and carma_wm_ctrl::WMBroadcaster::getAffectedLaneletOrAreas().
std::vector< lanelet::ConstLanelet > carma_wm::query::getLaneletsFromPoint | ( | const lanelet::LaneletMapConstPtr & | semantic_map, |
const lanelet::BasicPoint2d & | point, | ||
const unsigned int | n = 10 |
||
) |
carma_wm::query namespace contains implementations for query functions (input and output read or write-able) for stand-alone lanelet map without rest of the CARMAWorldModel features. Currently mainly WMBroadcaster (carma_wm_ctrl) is using this to manipulate its own map without creating instance of carma_wm
Gets the underlying lanelet, given the cartesian point on the map
semantic_map | Lanelet Map Ptr |
point | Cartesian point to check the corressponding lanelet |
n | Number of lanelets to return. Default is 10. As there could be many lanelets overlapping. |
std::invalid_argument | if the map is not set, contains no lanelets |
Definition at line 24 of file WorldModelUtils.cpp.
References process_traj_logs::point.
Referenced by carma_wm::CARMAWorldModel::getLaneletsFromPoint(), getLaneletsFromPoint(), carma_wm::CARMAWorldModel::nonConnectedAdjacentLeft(), nonConnectedAdjacentLeft(), and carma_wm_ctrl::WMBroadcaster::preprocessWorkzoneGeometry().
std::vector< lanelet::Lanelet > carma_wm::query::getLaneletsFromPoint | ( | const lanelet::LaneletMapPtr & | semantic_map, |
const lanelet::BasicPoint2d & | point, | ||
const unsigned int | n = 10 |
||
) |
(non-const version) Gets the underlying lanelet, given the cartesian point on the map
semantic_map | Lanelet Map Ptr |
point | Cartesian point to check the corressponding lanelet |
n | Number of lanelets to return. Default is 10. As there could be many lanelets overlapping. |
std::invalid_argument | if the map is not set, contains no lanelets |
Definition at line 50 of file WorldModelUtils.cpp.
References getLaneletsFromPoint(), and process_traj_logs::point.
std::vector< lanelet::ConstLanelet > carma_wm::query::nonConnectedAdjacentLeft | ( | const lanelet::LaneletMapConstPtr & | semantic_map, |
const lanelet::BasicPoint2d & | input_point, | ||
const unsigned int | n = 10 |
||
) |
Given the cartesian point on the map, tries to get the opposite direction lanelet on the left This function is intended to find "adjacentLeft lanelets" that doesn't share points between lanelets where adjacentLeft of lanelet library fails.
semantic_map | Lanelet Map Ptr |
point | Cartesian point to check the corressponding lanelet |
n | Number of lanelets to return. Default is 10. As there could be many lanelets overlapping. |
std::invalid_argument | if the map is not set, contains no lanelets, or if adjacent lanelet is not opposite direction NOTE: Only to be used on 2 lane, opposite direction road. Number of points in all linestrings are assumed to be roughly the same. The point is assumed to be on roughly similar shape of overlapping lanelets if any Enhancement issue for protection against checking if the laneis opposite direction here: https://github.com/usdot-fhwa-stol/carma-platform/issues/1381 |
Definition at line 79 of file WorldModelUtils.cpp.
References carma_wm::TrackPos::downtrack, getLaneletsFromPoint(), carma_cooperative_perception::to_string(), and carma_wm::geometry::trackPos().
Referenced by nonConnectedAdjacentLeft(), and carma_wm_ctrl::WMBroadcaster::splitOppositeLaneletWithPoint().
std::vector< lanelet::Lanelet > carma_wm::query::nonConnectedAdjacentLeft | ( | const lanelet::LaneletMapPtr & | semantic_map, |
const lanelet::BasicPoint2d & | input_point, | ||
const unsigned int | n = 10 |
||
) |
(non-const version) Given the cartesian point on the map, tries to get the opposite direction lanelet on the left This function is intended to find "adjacentLeft lanelets" that doesn't share points between lanelets where adjacentLeft of lanelet library fails
semantic_map | Lanelet Map Ptr |
point | Cartesian point to check the corressponding lanelet |
n | Number of lanelets to return. Default is 10. As there could be many lanelets overlapping. |
std::invalid_argument | if the map is not set, contains no lanelets, or if adjacent lanelet is not opposite direction NOTE: Only to be used on 2 lane, opposite direction road. Number of points in all linestrings are assumed to be roughly the same. The point is assumed to be on roughly similar shape of overlapping lanelets if any Enhancement issue for protection against checking if the laneis opposite direction here: https://github.com/usdot-fhwa-stol/carma-platform/issues/1381 |
Definition at line 63 of file WorldModelUtils.cpp.
References nonConnectedAdjacentLeft(), and process_traj_logs::point.