Apollo2.0自动驾驶之apollo/modules/common/configs/proto/vehicle_config.proto

/****************Apollo源码分析****************************

Copyright 2018 The File Authors & zouyu. All Rights Reserved.
Contact with: 1746430162@qq.com 181663309504

源码主要是c++实现的,也有少量python,git下载几百兆,其实代码不太多,主要是地图和数据了大量空间,主要程序
在apollo/modules目录中,
我们把它分成以下几部分(具体说明见各目录下的modules):
感知:感知当前位置,速度,障碍物等等
Apollo/modules/perception
预测:对场景下一步的变化做出预测
Apollo/modules/prediction
规划:
(1) 全局路径规划:通过起点终点计算行驶路径
Apollo/modules/routing
(2) 规划当前轨道:通过感知,预测,路径规划等信息计算轨道
Apollo/modules/planning
(3) 规划转换成命令:将轨道转换成控制汽车的命令(加速,制动,转向等)
Apollo/modules/control
其它
(1) 输入输出
i. Apollo/modules/drivers 设备驱动
ii. Apollo/modules/localization 位置信息
iii. Apollo/modules/monitor 监控模块
iv. Apollo/modules/canbus 与汽车硬件交互
v. Apollo/modules/map 地图数据
vi. Apollo/modules/third_party_perception 三方感知器支持
(2) 交互
i. Apollo/modules/dreamview 可视化模块
ii. Apollo/modules/hmi 把汽车当前状态显示给用户
(3) 工具
i. Apollo/modules/calibration 标注工具
ii. Apollo/modules/common 支持其它模块的公共工具
iii. Apollo/modules/data 数据工具
iv. Apollo/modules/tools 一些Python工具
(4) 其它
i. Apollo/modules/elo 高精度定位系统,无源码,但有文档
ii. Apollo/modules/e2e 收集传感器数据给PX2,ROS

自动驾驶系统先通过起点终点规划出整体路径(routing);然后在行驶过程中感知(perception)当前环境
(识别车辆行人路况标志等),并预测下一步发展;然后把已知信息都传入规划模块(planning),规划出之后的轨道;
控制模块(control)将轨道数据转换成对车辆的控制信号,通过汽车交互模块(canbus)控制汽车.
我觉得这里面算法技术含量最高的是感知perception和规划planning,具体请见本博客中各模块的分析代码。
/****************************************************************************************

下面这个文件是一个比较重要的数据结构文件,它定义了车辆的很多初始化配置。

syntax = "proto2";

package apollo.common;

import "modules/common/proto/header.proto";
import "modules/common/proto/geometry.proto";

message Transform {
  optional bytes source_frame = 1;  // Also known as "frame_id."

  optional bytes target_frame = 2;  // Also known as "child_frame_id."

  // Position of target in the source frame.
  optional Point3D translation = 3;

  // Activate rotation from the source frame to the target frame.
  optional Quaternion rotation = 4;
}

message Extrinsics {
  repeated Transform tansforms = 1;
}

// Vehicle parameters shared among several modules.
// By default, all are measured with the SI units (meters, meters per second,
// etc.).
message VehicleParam {
  // Car center point is car reference point, i.e., center of rear axle.
  optional double front_edge_to_center = 1;
  optional double back_edge_to_center = 2;
  optional double left_edge_to_center = 3;
  optional double right_edge_to_center = 4;

  optional double length = 5;
  optional double width = 6;
  optional double height = 7;

  optional double min_turn_radius = 8;
  optional double max_acceleration = 9;
  optional double max_deceleration = 10;

  // The following items are used to compute trajectory constraints in planning.
  // vehicle max steer angle
  optional double max_steer_angle = 11;
  // vehicle max steer rate; how fast can the steering wheel turn.
  optional double max_steer_angle_rate = 12;
  // ratio between the turn of steering wheel and the turn of wheels
  optional double steer_ratio = 13;
  // the distance between the front and back wheels
  optional double wheel_base = 14;
  // Tire effective rolling radius (vertical distance between the wheel center
  // and the ground).
  optional double wheel_rolling_radius = 15;
}

message VehicleConfig {
  optional apollo.common.Header header = 1;
  optional VehicleParam vehicle_param = 2;
  optional Extrinsics extrinsics = 3;
}

syntax = "proto2";

package apollo.common;

import "modules/common/proto/header.proto";
import "modules/common/proto/geometry.proto";

message Transform {
  optional bytes source_frame = 1;  // Also known as "frame_id."大框架ID

  optional bytes target_frame = 2;  // Also known as "child_frame_id."子框架

  // Position of target in the source frame.
  optional Point3D translation = 3;//3D点云

  // Activate rotation from the source frame to the target frame.
  optional Quaternion rotation = 4;
}

message Extrinsics {
  repeated Transform tansforms = 1;
}

// Vehicle parameters shared among several modules.
// By default, all are measured with the SI units (meters, meters per second,
// etc.).
message VehicleParam {
  // Car center point is car reference point, i.e., center of rear axle.汽车的中心,上 下 左 右 这个很重要。
  optional double front_edge_to_center = 1;
  optional double back_edge_to_center = 2;
  optional double left_edge_to_center = 3;
  optional double right_edge_to_center = 4;

  optional double length = 5;
  optional double width = 6;
  optional double height = 7;

  optional double min_turn_radius = 8;
  optional double max_acceleration = 9;
  optional double max_deceleration = 10;

  // The following items are used to compute trajectory constraints in planning.
  // vehicle max steer angle
  optional double max_steer_angle = 11;
  // vehicle max steer rate; how fast can the steering wheel turn.
  optional double max_steer_angle_rate = 12;
  // ratio between the turn of steering wheel and the turn of wheels
  optional double steer_ratio = 13;
  // the distance between the front and back wheels
  optional double wheel_base = 14;
  // Tire effective rolling radius (vertical distance between the wheel center
  // and the ground).
  optional double wheel_rolling_radius = 15;
}

message VehicleConfig {
  optional apollo.common.Header header = 1;
  optional VehicleParam vehicle_param = 2;
  optional Extrinsics extrinsics = 3;
}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
In file included from /home/acceler/code/apollo_ros/apollo_ros/src/apollo.ros-1.0.0-master/apollo_common/include/apollo_common/apollo_app.h:46:0, from /home/acceler/code/apollo_ros/apollo_ros/src/apollo.ros-1.0.0-master/apollo_common/src/apollo_app.cc:33: /home/acceler/code/apollo_ros/apollo_ros/src/apollo.ros-1.0.0-master/apollo_common/include/apollo_common/log.h:40:10: fatal error: glog/logging.h: No such file or directory #include <glog/logging.h> ^~~~~~~~~~~~~~~~ compilation terminated. apollo.ros-1.0.0-master/apollo_common/CMakeFiles/apollo_common.dir/build.make:62: recipe for target 'apollo.ros-1.0.0-master/apollo_common/CMakeFiles/apollo_common.dir/src/apollo_app.cc.o' failed make[2]: *** [apollo.ros-1.0.0-master/apollo_common/CMakeFiles/apollo_common.dir/src/apollo_app.cc.o] Error 1 make[2]: *** Waiting for unfinished jobs.... In file included from /home/acceler/code/apollo_ros/apollo_ros/src/apollo.ros-1.0.0-master/apollo_common/include/apollo_common/adapters/adapter_manager.h:48:0, from /home/acceler/code/apollo_ros/apollo_ros/src/apollo.ros-1.0.0-master/apollo_common/src/adapters/adapter_manager.cc:33: /home/acceler/code/apollo_ros/apollo_ros/src/apollo.ros-1.0.0-master/apollo_common/include/apollo_common/adapters/adapter.h:49:10: fatal error: glog/logging.h: No such file or directory #include <glog/logging.h> ^~~~~~~~~~~~~~~~ compilation terminated. apollo.ros-1.0.0-master/apollo_common/CMakeFiles/apollo_common.dir/build.make:110: recipe for target 'apollo.ros-1.0.0-master/apollo_common/CMakeFiles/apollo_common.dir/src/adapters/adapter_manager.cc.o' failed make[2]: *** [apollo.ros-1.0.0-master/apollo_common/CMakeFiles/apollo_common.dir/src/adapters/adapter_manager.cc.o] Error 1 CMakeFiles/Makefile2:3894: recipe for target 'apollo.ros-1.0.0-master/apollo_common/CMakeFiles/apollo_common.dir/all' failed make[1]: *** [apollo.ros-1.0.0-master/apollo_common/CMakeFiles/apollo_common.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 54%] Linking CXX executable /home/acceler/code/apollo_ros/apollo_ros/devel/lib/IntegratedNavigation/IntegratedNavigation_node [ 54%] Built target IntegratedNavigation_node [ 55%] Linking CXX executable /home/acceler/code/apollo_ros/apollo_ros/devel/lib/TimeSynchronierProcess/timeSynchronierProcess_node [ 55%] Built target timeSynchronierProcess_node Makefile:140: recipe for target 'all' failed make: *** [all] Error 2 Invoking "make -j4 -l4" failed
最新发布
07-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值