#include <rclcpp/rclcpp.hpp>
#include <functional>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>
#include <boost/geometry.hpp>
#include <boost/shared_ptr.hpp>
#include <lanelet2_core/geometry/Point.h>
#include <lanelet2_core/primitives/Lanelet.h>
#include <lanelet2_core/geometry/LineString.h>
#include <carma_planning_msgs/msg/trajectory_plan_point.hpp>
#include <carma_planning_msgs/msg/trajectory_plan.hpp>
#include <carma_planning_msgs/srv/plan_trajectory.hpp>
#include <carma_planning_msgs/msg/maneuver.hpp>
#include <autoware_msgs/msg/lane.hpp>
#include <carma_debug_ros2_msgs/msg/trajectory_curvature_speeds.hpp>
#include <basic_autonomy/basic_autonomy.hpp>
#include <basic_autonomy/helper_functions.hpp>
#include "light_controlled_intersection_tactical_plugin/light_controlled_intersection_tactical_plugin_node.hpp"
Go to the source code of this file.
◆ GET_MANEUVER_PROPERTY
#define GET_MANEUVER_PROPERTY |
( |
|
mvr, |
|
|
|
property |
|
) |
| |
Value: (((mvr).type == carma_planning_msgs::msg::Maneuver::INTERSECTION_TRANSIT_LEFT_TURN ? (mvr).intersection_transit_left_turn_maneuver.property :\
((mvr).type == carma_planning_msgs::msg::Maneuver::INTERSECTION_TRANSIT_RIGHT_TURN ? (mvr).intersection_transit_right_turn_maneuver.property :\
((mvr).type == carma_planning_msgs::msg::Maneuver::INTERSECTION_TRANSIT_STRAIGHT ? (mvr).intersection_transit_straight_maneuver.property :\
((mvr).type == carma_planning_msgs::msg::Maneuver::LANE_FOLLOWING ? (mvr).lane_following_maneuver.property :\
throw std::invalid_argument(
"GET_MANEUVER_PROPERTY (property) called on maneuver with invalid type id " +
std::to_string((mvr).type)))))))
auto to_string(const UtmZone &zone) -> std::string
Macro definition to enable easier access to fields shared across the maneuver types.
- Parameters
-
mvr | The maneuver object to invoke the accessors on |
property | The name of the field to access on the specific maneuver types. Must be shared by all extant maneuver types |
- Returns
- Expands to an expression (in the form of chained ternary operators) that evaluates to the desired field NOTE: Here is the definition of the int_valued, float_valued, and string_valued meta data parameters that is implicitly agreed between LCI Strategic and Tactical plugins All lane_following_maneuver.properties: string_valued_meta_data[0]: light_controlled_intersection_strategy name float_valued_meta_data[0]: Trajectory Segment 1 starting acceleration a1_; float_valued_meta_data[1]: Trajectory Segment 1 starting velocity v1_; float_valued_meta_data[2]: Trajectory Segment 1 starting downtrack x1_; float_valued_meta_data[3]: Trajectory Segment 2 starting acceleration a2_; float_valued_meta_data[4]: Trajectory Segment 2 starting velocity v2_; float_valued_meta_data[5]: Trajectory Segment 2 starting downtrack x2_; float_valued_meta_data[6]: Trajectory Segment 3 starting acceleration a3_; float_valued_meta_data[7]: Trajectory Segment 3 starting velocity v3_; float_valued_meta_data[8]: Trajectory Segment 3 starting downtrack x3_; int_valued_meta_data[0]: Trajectory Smoothing Case Number int_valued_meta_data[1]: Is Trajectory Smoothing Algorithm Successful? (0: False, 1: True)
Definition at line 62 of file light_controlled_intersection_tactical_plugin.hpp.