lane_change_planner.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #ifndef LANE_CHANGE_PLANNER_H
  2. #define LANE_CHANGE_PLANNER_H
  3. #include "base_planner.h"
  4. namespace iv{
  5. namespace decition{
  6. class LaneChangePlanner : public BasePlanner{
  7. public:
  8. LaneChangePlanner();
  9. ~LaneChangePlanner();
  10. /**
  11. * @brief iv::decition::LaneChangePlanner::getPath
  12. * 采用的车道变换的局部路径生成方法。计算原始地图路径偏移offset距离之后的路径。
  13. *
  14. * @param now_gps_ins 实时gps信息
  15. * @param gpsMapLine 地图数据点
  16. * @param PathPoint 地图路线中距离车辆位置最近的一个点的序号
  17. * @param offset 在车辆避障中,地图源路线所在车道 与 即将去往的车道 之间的距离差值。可以为负值。
  18. * @param lidarGridPtr 激光雷达信息网格
  19. * @return 返回一条车辆坐标系下的路径
  20. */
  21. std::vector<iv::Point2D> getPath(GPS_INS now_gps_ins, const std::vector<GPSData>& gpsMapLine, int PathPoint, double offset, iv::LidarGridPtr lidarGridPtr);
  22. bool checkAvoidEnable(const std::vector<double>& obsDisVector, int roadAim);
  23. private:
  24. std::vector<iv::Point2D> getGpsTrace(iv::GPS_INS now_gps_ins, const std::vector<GPSData>& gpsMapLine, int PathPoint);
  25. std::vector<iv::Point2D> getGpsTraceOffset(const std::vector<Point2D>& gpsTrace, double offset);
  26. };
  27. }
  28. }
  29. #endif // LANE_CHANGE_PLANNER_H