4 配置参数介绍

4.1 概述

文件 ag_sdk/src/ag_driver/driver/driver_param.h 中, 定义了 ag_driver 的配置选项。

这些配置选项定义在如下结构中。

  • AGDriverParam

  • AGDecoderParam

  • AGInputParam

4.2 AGDriverParam

AGDriverParam 包括 AGDecoderParam、AGInputParam 和其他选项。

typedef struct AGDriverParam
{
  LidarType lidar_type = LidarType::A0;           ///< Lidar type
  InputType input_type = InputType::ONLINE_LIDAR; ///< Input type
  AGInputParam input_param;
  AGDecoderParam decoder_param;
} AGDriverParam;

成员 lidar_type - 指定雷达的类型。

enum LidarType
{
  A0 = 1,
};

成员 input_type - 指定雷达的数据源类型。

  • ONLINE_LIDAR 是在线雷达;

  • PCAP_FILE 是包含 MSOP/DIFOP Packet 的 PCAP 文件;

  • RAW_PACKET 是使用者调用 ag_driver 的函数接口获得 MSOP/DIFOP Packet,自己保存的数据。

enum InputType
{
  ONLINE_LIDAR = 1,
  PCAP_FILE,
  RAW_PACKET
};

4.3 AGInputParam

AGInputParam 指定 ag_driver 的网络配置选项。

如下参数针对 ONLINE_LIDARPCAP_FILE

  • msop_port - 指定主机的本地端口,接收 MSOP Packet。

  • difop_port - 指定主机的本地端口,接收 DIFOP Packet。

如下参数仅针对 ONLINE_LIDAR

  • host_address - 指定主机网卡的 IP 地址,接收 MSOP/DIFOP Packet。

  • group_address - 指定一个组播组的 IP 地址。ag_driverhost_address 指定的网卡加入这个组播组,以便接收 MSOP/DIFOP Packet。

如下参数仅针对 PCAP_FILE

  • pcap_path - PCAP 文件的全路径。

  • pcap_repeat - 指定是否重复播放 PCAP 文件。

  • pcap_rate - ag_driver 按理论上的 MSOP Packet 时间间隔,模拟播放 PCAP 文件。pcap_rate 可以在这个速度上指定一个比例值,加快或放慢播放速度。

  • use_vlan - 如果 PCAP 文件中的 MSOP/DIFOP Packet 包含 VLAN 层,可以指定use_vlan = true,跳过这一层。

typedef struct AGInputParam
{
  uint16_t msop_port  = 6699;
  uint16_t difop_port = 7788;
  std::string host_address =  "0.0.0.0";
  std::string group_address = "0.0.0.0";

  // The following parameters are only for PCAP_FILE
  std::string pcap_path = "";
  bool pcap_repeat = true;
  float pcap_rate  = 1.0;
  bool use_vlan    = false;
} AGInputParam;

4.4 AGDecoderParam

AGDecoderParam 指定雷达解码器的配置选项。

typedef struct AGDecoderParam
{
  bool use_lidar_clock = false;
  bool write_pkt_ts    = false;
  bool dense_points    = false;
  bool ts_first_point  = false;
  bool wait_for_difop  = true;
  AGTransformParam transform_param;
  bool config_from_file  = false;
  std::string angle_path = "";
  float min_distance = 0.2f;
  float max_distance = 200.0f;
} AGDecoderParam;

如下参数针对所有雷达。

  • use_lidar_clock - 指定点云的时间采用 MSOP Packet 中的时间(雷达根据自身时间设置),还是主机的系统时间。

    • 如果 use_lidar_clock = true,则采用 MSOP Packet 的,否则采用主机的。

  • write_pkt_ts - 是否用主机侧新产生的时间去覆写 pakcets 中的时间戳。

  • dense_points - 指定点云是否是 dense 的。

    • 如果dense_points = false, 则点云中包含 NAN 点,否则去除点云中的 NAN 点。

  • ts_first_point - 指定点云的时间戳来自它的第一个点,还是最后第一个点。

    • 如果 ts_first_point = true, 则第一个点的时间作为点云的时间戳,否则最后一个点的时间作为点云的时间戳。

  • wait_for_difop - 解析 MSOP Packet 之前,是否等待 DIFOP Packet。

    • DIFOP Packet 中包含垂直角等标定参数。如果没有这些参数,ag_driver 输出的点云将是扁平的。

    • ag_driver 不输出点云时,设置 wait_for_difop=false,可以帮助定位问题。

  • transform_param - 指定点的坐标转换参数。这个选项只有在 CMake 编译宏 ENABLE_TRANSFORM=ON 时才有效。

typedef struct AGTransformParam
{
  float x = 0.0f;          ///< unit, m
  float y = 0.0f;          ///< unit, m
  float z = 0.0f;          ///< unit, m
  float roll = 0.0f;       ///< unit, radian
  float elevation = 0.0f;  ///< unit, radian
  float azimuth = 0.0f;    ///< unit, radian
} AGTransformParam;
  • config_from_file - 指定雷达本身的配置参数是从文件中读入,还是从 DIFOP Packet 中得到。这个选项仅内部调试使用。

  • angle_path - 雷达的角度标定参数文件。仅内部调试使用。

  • min_distance、max_distance - 重置测距的最大、最小值。仅内部调试使用。