# HumanDetectingOnLidar
**Repository Path**: mstar666/HumanDetectingOnLidar
## Basic Information
- **Project Name**: HumanDetectingOnLidar
- **Description**: 激光雷达人型识别
- **Primary Language**: Unknown
- **License**: AFL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2020-05-18
- **Last Updated**: 2022-02-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
原文在这 finalobject.cn
这个项目是无人车里的一部分,完成激光雷达的驱动,数据采集然后后期的处理以及人型识别,并不涉及车辆硬件的控制。主要分三个大块讲吧,硬件驱动、数据聚类,以及模式识别,本来还想写一写UI部分的,但是感觉自己的UI写的其实蛮简陋的,所有还是不写了,对UI实现有兴趣的自己拔一下源代码吧。
github:https://github.com/finalObject/HumanDetectingOnLidar
这个项目是我大二时候写的,那时候还不会用github,版本记录都是直接备份实现的,所以在源代码里就会出现很多版本的项目,以最新的为准即可。然后里面files里还有一些项目中用到的硬件驱动库,型号资料。项目里有两个main类,带有radar的是连接雷达实时显示的,不带radar的,是把官方软件储存下来的数据文件作为数据来源。两者就是数据来源不一样。
这是程序的截图
device = new UrgDevice(new EthernetConnection());
device.connect("192.168.0.10");
RangeSensorInformation info = device.getInformation();
if(info != null){
System.out.println("Sensor model:" + info.product);
System.out.println("Sensor serial number:" + info.serial_number);
}else{
System.out.println("Sensor error:" + device.what());
}
device.setCaptureMode(CaptureSettings.CaptureMode.MD_Capture_mode);
//We set the capture type to a continuous mode so we have to start the capture
device.startCapture();
然后通过
capData= device.capture()这个函数就可以获取一帧数据,因为返回的CaptureData类,我写了下面的函数把它解析成了一个数组,以方便后面对于数据的使用
public static int[] setDepthsFromRadar(CaptureData data)这种激光雷达的基础工作模式其实类似于超声波测距,只不过把超声波换成了激光,然后这个传感器还会旋转。这个型号的激光雷达视场角为270度,所以它一帧的数据其实就是不同角度下,激光雷达和最近不透光障碍物之间的距离。data这里存了用官方软件记录下来的数据,txt格式,直接打开看其实也就是一帧一帧的数据,每一帧数据用一些时间之类的标签,主要还是就是一个数组,储存着测量结果。 我这个函数返回的结果就是把一帧里,所有距离储存成一个数据作为结果返回。至此就完成了硬件的驱动和数据采集。