15 #include <boost/asio.hpp>
16 #include <boost/asio/thread_pool.hpp>
37 float velocityReference = 1;
38 bool indicatorLeft =
false;
39 bool indicatorRight =
false;
43 bool startParking =
false;
54 std::unique_ptr<std::pair<std::vector<galaxis::lina::Vector2f>, std::vector<galaxis::lina::Vector2f>>>
m_laneCentersPairVecUPtr;
103 int m_obstacleLookupDistanceCM = 200;
104 int m_obstacleLookupDistanceStepCM = 5;
105 int m_obstacleToLaneCenterMinimumDistanceForDodge = 10;
107 int m_polynomDegree = 3;
108 int m_polynomMinimumPointsAmount = 30;
110 int m_trajPointsToAppendAmount = 5;
111 int m_trajPointsStartAppendingOffset = 20;
113 int m_lineClusterEps = 2;
114 int m_lineClusterMinPts = 2;
116 int m_linePolynomEvaluationStepCM = 1;
117 int m_linePolynomEvaluationStepSizeCM = 8;
118 int m_minNumberOfClusteredLinePoints = 20;
133 void set_obstacle_lookup_distance(
int value);
134 void set_obstacle_lookup_distance_step(
float value);
135 void set_obstacle_to_lane_center_min_distance_for_dodge(
float value);
136 void set_polynom_degree(
int value);
137 void set_polynom_min_points_amount(
int value);
138 void set_traj_points_to_append_amount(
int value);
139 void set_traj_points_start_appending_offset(
int value);
140 void set_line_cluster_eps(
int value);
141 void set_line_cluster_min_pts(
int value);
142 void set_line_polynom_evaluation_step(
int value);
143 void set_line_polynom_evaluation_step_size(
int value);
144 void set_min_number_of_clustered_line_points(
int value);
146 std::shared_ptr<DriveInformation_t> get_drive_information();
149 void cluster_line_object(std::map<int16_t, std::vector<int16_t>>& linePointsMapInputRef, std::shared_ptr<std::map<int16_t, int16_t>> linePointsOutVecSPtr);
150 std::unique_ptr<std::pair<std::vector<galaxis::lina::Vector2f>, std::vector<galaxis::lina::Vector2f>>> get_lane_centers(std::shared_ptr<PositionTimepoint> positionTimepoint);
151 std::unique_ptr<std::pair<std::vector<galaxis::lina::Vector2f>, std::vector<galaxis::lina::Vector2f>>> get_lane_center();
153 void get_lane_centers_thread_helper(Eigen::Rotation2Df p_reverseRotationMat,
154 std::shared_ptr<std::map<int16_t, int16_t>> p_leftLinePointsMapSPtr,
155 std::shared_ptr<std::map<int16_t, int16_t>> p_centerLinePointsMapSPtr,
156 std::shared_ptr<std::map<int16_t, int16_t>> p_rightLinePointsMapSPtr,
160 void get_lane_centers_via_polynom_thread_helper(Eigen::Rotation2Df p_reverseRotationMat,
161 std::shared_ptr<std::map<int16_t, int16_t>> p_leftLinePointsMapSPtr,
162 std::shared_ptr<std::map<int16_t, int16_t>> p_centerLinePointsMapSPtr,
163 std::shared_ptr<std::map<int16_t, int16_t>> p_rightLinePointsMapSPtr,
169 std::tuple<float, float, float, float> get_lane_blocked(std::pair<DynamicPolynom, DynamicPolynom>& lanePolynom);