$darkmode
clothoid_fit.hpp File Reference
#include <math.h>
#include <Eigen/Geometry>
#include <map>
#include <memory>
#include <string>
#include <vector>
#include <cloe/component.hpp>
#include <cloe/component/frustum.hpp>
#include <cloe/component/lane_boundary.hpp>
#include <cloe/component/lane_sensor.hpp>
#include <cloe/conf/action.hpp>
#include <cloe/handler.hpp>
#include <cloe/registrar.hpp>
#include <cloe/sync.hpp>
#include <cloe/trigger/set_action.hpp>
#include "g1_fitting.hpp"
Include dependency graph for clothoid_fit.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  cloe::ClothoidFitConf
 
class  cloe::component::LaneBoundaryClothoidFit
 

Functions

double cloe::component::estimate_lane_boundary_length (const std::vector< Eigen::Vector3d > &points)
 
void cloe::component::cleanup_lane_boundary_points (std::vector< Eigen::Vector3d > &points)
 
uint8_t cloe::component::get_plane_mask (const Frustum &frustum, const Eigen::Vector3d &pt)
 
std::vector< Eigen::Vector3d > cloe::component::interpolate_to_frustum_planes (const Frustum &frustum, const Eigen::Vector3d &pt1, uint8_t mask1, const Eigen::Vector3d &pt2, uint8_t mask2)
 
void cloe::component::lane_boundary_point_culling (const Frustum &frustum, std::vector< Eigen::Vector3d > &points, std::vector< Eigen::Vector3d > &pts_out_start, std::vector< Eigen::Vector3d > &pts_out_end)
 
double cloe::component::calc_heading_angle (const Eigen::Vector3d &pt0, const Eigen::Vector3d &pt1)
 
double cloe::component::calc_heading_angle_adv (const Eigen::Vector3d &ptm1, const Eigen::Vector3d &pt0, const Eigen::Vector3d &pt1)
 
bool cloe::component::fit_clothoid (const cloe::Logger &logger, bool frustum_culling, const Frustum &frustum, LaneBoundary &lb)
 

Variables

const uint8_t cloe::component::PLANE_RIGHT_OK {0b0000'0001}
 
const uint8_t cloe::component::PLANE_LEFT_OK {0b0000'0010}
 
const uint8_t cloe::component::PLANE_LOW_OK {0b0000'0100}
 
const uint8_t cloe::component::PLANE_HIGH_OK {0b0000'1000}
 
const uint8_t cloe::component::PLANE_NEAR_OK {0b0001'0000}
 
const uint8_t cloe::component::PLANE_FAR_OK {0b0010'0000}
 
const uint8_t cloe::component::all_set
 

Function Documentation

◆ calc_heading_angle()

double cloe::component::calc_heading_angle ( const Eigen::Vector3d &  pt0,
const Eigen::Vector3d &  pt1 
)

Compute heading angle [rad] from two points (line direction from pt0 to pt1).

Parameters
pt0First line point.
pt1Second line point.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ estimate_lane_boundary_length()

double cloe::component::estimate_lane_boundary_length ( const std::vector< Eigen::Vector3d > &  points)

Estimate lane boundary length by given polyline length.

Parameters
pointsLane boundary polyline points.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fit_clothoid()

bool cloe::component::fit_clothoid ( const cloe::Logger &  logger,
bool  frustum_culling,
const Frustum frustum,
LaneBoundary lb 
)

Fit one clothoid segment to the given polyline using a point and heading angle at the beginning and end of the polyline segment of interest, respectively.

Parameters
lbLane boundary with polyline data.
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ all_set

const uint8_t cloe::component::all_set
Initial value:
=
PLANE_RIGHT_OK | PLANE_LEFT_OK | PLANE_LOW_OK | PLANE_HIGH_OK | PLANE_NEAR_OK | PLANE_FAR_OK