15 如何对点云作坐标转换

15.1 概述

本文说明如何使用坐标转换功能,将点云变换到另一个坐标系上去。

警告:

  • 坐标转换显著消耗 CPU 资源。提供这个功能,仅用于测试目的。

  • 不要在发布的产品中使能坐标转换,除非已经仔细评估,确定系统能容忍这些消耗。

15.2 步骤

15.2.1 CMake 编译宏

要使用坐标转换功能,需要使能 CMake 编译选项 ENABLE_TRANSFORM=ON

cmake -DENABLE_TRANSFORM=ON ..

15.2.2 配置参数

配置坐标转换的参数,这些参数的默认值是 0。

  • x, y, z 的单位是

  • azimuth, elevation, roll 的单位是弧度

  • 旋转的顺序是 azimuth -> elevation -> roll

例子如下:

AGDriverParam param;                         // Create a parameter object
param.input_type = InputType::ONLINE_LIDAR;  // get packet from online lidar
param.input_param.msop_port = 51180;         // Set the lidar msop port number, the default is 51180
param.input_param.difop_port = 7788;         // Set the lidar difop port number, the default is 7788
param.lidar_type = LidarType::A0;            // Set the lidar type. Make sure this type is correct

param.decoder_param.transform_param.x = 1;           // unit: m
param.decoder_param.transform_param.y = 0;           // unit: m
param.decoder_param.transform_param.z = 2.5;         // unit: m
param.decoder_param.transform_param.azimuth = 1.57;  // unit: radian
param.decoder_param.transform_param.elevation = 0.2; // unit: radian
param.decoder_param.transform_param.roll = 0.1;      // unit: radian