自动驾驶车辆控制算法之如何利用查表算法--获取目标车速和转角下的控制扭矩(C++开发)

一、开发思路

1.基于横向控制算法获取目标方向盘转角,基于纵向控制算法获取目标速度

2.创建二维数组,存放目标扭矩,行为目标速度,列为目标转角

3.计算获取的目标速度所在行的索引号x_index,目标转角所在列的索引号y_index

4.查表获取扭矩Torque[x_index][y_index]


二、基于C++的代码开发

测试数据:

struct.hpp 

#ifndef STRUCT_
#define STRUCT_
struct Vehicle_Parameters {
  float Speed[5] = {1.1, 2.5, 3.6, 7.2, 10.5}; // X
  float Steer[5] = {1, 2, 3, 4, 5};            // Y
  float Torque[5][5] = {
  {0.2, 0.3, 0.4, 0.6, 0.8},
                        {0.3, 0.5, 0.6, 0.7, 0.8},
                        {0.4, 0.6, 0.7, 0.8, 0.9},
                        {1.1, 1.2, 1.3, 1.4, 1.5},
                        {1.2, 1.3, 1.5, 1.6, 1.9}}; // Z
  float v_target_value;
  float s_target_value;
  // int v_length = sizeof(Speed) / sizeof(Speed[0]);
  // int s_length = sizeof(Steer) / sizeof(Steer[0]);
  int v_length;
  int s_length;
  int v_index;
  int s_index;
};

你可能感兴趣的:(控制,自动驾驶,人工智能,机器学习,c++,算法)