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