IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 百度apollo自动驾驶planning代码学习-Apollo |modules |planning |common |DependencyInjector类代码详解 -> 正文阅读

[人工智能]百度apollo自动驾驶planning代码学习-Apollo |modules |planning |common |DependencyInjector类代码详解

概述

由modules\planning\common\dependency_injector.h实现,无.cc文件。

从类名来看,应该是planning模块依赖的输入数据的注入类。

从代码来看DependencyInjector类主要是实现:

将planning所有涉及到的相关信息都集中存放到这个类里
车辆状态,规划历史数据,障碍物历史状态信息等

dependency_injector.h

#pragma once

#include "modules/common/vehicle_state/vehicle_state_provider.h"
#include "modules/planning/common/ego_info.h"
#include "modules/planning/common/frame.h"
#include "modules/planning/common/history.h"
#include "modules/planning/common/learning_based_data.h"
#include "modules/planning/common/planning_context.h"

namespace apollo {
namespace planning {

class DependencyInjector {
 public:
  //默认构造函数,析构函数
  DependencyInjector() = default;
  ~DependencyInjector() = default;

  //返回DependencyInjector类的数据成员planning_context_
  //planning_context_是PlanningContext类
  //PlanningContext类 google protobuf用法由proto文件定义的message生成
  //proto文件位于modules\planning\proto\planning_status.proto
  //该成员存放planning的状态PlanningStatus
  //planning的状态包括:bare_intersection无保护路口、change_lane变道、
  //creep_decider缓行决策等等
  PlanningContext* planning_context() {
    return &planning_context_;
  }
  
  //返回DependencyInjector类的数据成员frame_history_
  //Frame保存一个规划周期的所有数据,如定位/底盘,道路参考线信息,车辆状态,规划起始点
  //等
  //FrameHistory存放历史的frame信息,默认只存一帧历史信息。
  FrameHistory* frame_history() {
    return &frame_history_;
  }
  
  //返回DependencyInjector类的数据成员history_
  //history_存放历史frame信息以及历史障碍物状态信息?例如绕行,动静态障碍物等
  History* history() {
    return &history_;
  }

  //返回DependencyInjector类的数据成员ego_info_
  //ego_info_存放车辆自身状态信息包括一些周围环境信息,自车box盒,vehicle_state
  //以及轨迹拼接点/自车位置等信息
  EgoInfo* ego_info() {
    return &ego_info_;
  }
  
  //返回DependencyInjector类的数据成员vehicle_state_,就是车辆状态信息
  //定位以及底盘反馈的一些量
  apollo::common::VehicleStateProvider* vehicle_state() {
    return &vehicle_state_;
  }

  //基于学习决策,现阶段先略过,后续掌握传统planning后可以学习下
  LearningBasedData* learning_based_data() {
    return &learning_based_data_;
  }

 private:
  //实际上这个类DependencyInjector就是实现了将planning所有涉及到的相关信息都集中存放
  //到这个类里
  PlanningContext planning_context_;
  FrameHistory frame_history_;
  History history_;
  EgoInfo ego_info_;
  apollo::common::VehicleStateProvider vehicle_state_;
  LearningBasedData learning_based_data_;
};

}  // namespace planning
}  // namespace apollo
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:39:40  更:2022-05-09 12:44:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:43:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码