资源简介
1去除激光雷达运动畸变 2结合ROS库,pcl库 3包含2个ros包
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
pcl::visualization::CloudViewer g_PointCloudView(“PointCloud View“);
class LidarMotionCalibrator
{
public:
LidarMotionCalibrator(tf::TransformListener* tf)
{
tf_ = tf;
scan_sub_ = nh_.subscribe(“scan“ 10 &LidarMotionCalibrator::ScanCallBack this);
}
~LidarMotionCalibrator()
{
if(tf_!=NULL)
delete tf_;
}
// 拿到原始的激光数据来进行处理
void ScanCallBack(const sensor_msgs::LaserScanConstPtr& scan_msg)
{
//转换到矫正需要的数据
ros::Time startTime endTime;
startTime = scan_msg->header.stamp;
sensor_msgs::LaserScan laserScanMsg = *scan_msg;
//得到最终点的时间
int beamNum = laserScanMsg.ranges.size();
endTime = startTime + ros::Duration(laserScanMsg.time_increment * beamNum);
// 将数据复制出来
std::vector anglesranges;
for(int i = 0; i < beamNum;i++)
{
double lidar_dist = laserScanMsg.ranges[i];
double lidar_angle = laserScanMsg.angle_min + laserScanMsg.angle_increment * i;
ranges.push_back(lidar_dist);
angles.push_back(lidar_angle);
}
//转换为pcl::pointcloud for visuailization
visual_cloud_.clear();
for(int i = 0; i < ranges.size();i++)
{
if(ranges[i] < 0.05 || std::isnan(ranges[i]) || std::isinf(ranges[i]))
continue;
pcl::PointXYZRGB pt;
pt.x = ranges[i] * cos(angles[i]);
pt.y = ranges[i] * sin(angles[i]);
pt.z = 1.0;
// pack r/g/b into rgb
unsigned char r = 255 g = 0 b = 0; //red color
unsigned int rgb = ((unsigned int)r << 16 | (unsigned int)g << 8 | (unsigned int)b);
pt.rgb = *reinterpret_cast(&rgb);
visual_cloud_.push_back(pt);
}
std::cout << std::endl;
//进行矫正
Lidar_Calibration(rangesangles
startTime
endTime
tf_);
//转换为pcl::pointcloud for visuailization
for(int i = 0; i < ranges.size();i++)
{
if(ranges[i] < 0.05 || std::isnan(ranges[i]) || std::isinf(ranges[i]))
continue;
pcl::PointXYZRGB pt;
pt.x = ranges[i] * cos(angles[i]);
pt.y = ranges[i] * sin(angles[i]);
pt.z = 1.0;
unsigned char r = 0 g = 255 b = 0; // blue color
unsigned int rgb = ((unsigned int)r << 16 | (unsigned int)g << 8 | (unsigned int)b);
pt.rgb = *reinterpret_cast(&rgb);
visual_cloud_
- 上一篇:SVM_Iris.rar
- 下一篇:ARM汇编实现矩阵转置
相关资源
- 基于三维激光雷达的自动驾驶车辆高
- 点云拼接和拟合算法
- 智东西-自动驾驶系列课第7课课件-基
- Robosense 16线激光雷达用户手册
- 镭神激光雷达手册
- 基于Autoware的相机与激光雷达联合标定
- 激光雷达原理PDF 高清
- 基于点云的DEM构建.rar
- STM32F407定高超声波避障激光雷达.rar
- GalaxyT1000参数
- 思岚激光雷达数据读取
- 激光雷达串口控制台
- 激光雷达点云处理软件
- 激光雷达测量气溶胶消光系数
- 高清版本SPAD SiPM 激光雷达sensor 技术简
- IBEO雷达扫描程序
- 有关于SICK LMS511激光雷达的工作原理、
- SPAD SiPM 激光雷达sensor 技术简介
- IBEO 激光雷达手册
- 激光雷达数据.las格式
- 智东西-自动驾驶系列课第5课课件-激
- 激光雷达ros源码
- C1系列脉冲TOF激光雷达通信协议手册
- 镭神激光雷达驱动LS01C_ROS完整文件包
- HOKUYO日本北洋URG-04LX激光雷达用户手册
- 激光雷达数据采集或读取、显示、直
- Complex-YOLO
- 固态&机械激光雷达介绍
- 思岚激光雷达小车程序stm32程序
- CHT8024-2011机载激光雷达数据获取技术
评论
共有 条评论