【仓库物资识别】七、获取装载车高度

激光雷达的工作原理是向目标发射激光束,然后接受激光束反射回来的信号,来分析处理物体信息

之前直接从文档中获取的z坐标,都只是雷达距离物资某点位置的距离长度,而不是该点在三维坐标系中的具体位置信息。

所以要获取车高,也就是某一点的真实信息,还需要将距离信息转换成某点物体的真实高度。

整个系统的大体环境如下图(画功不足):

这是一个俯视图,当装载车停放后,行吊系统会用安装好的雷达扫描装载车。前面的文章已经对扫描到的文件进行陆陆续续的处理了。下面是求物资点具体高度的代码已经配图。

代码如下:

vector<information_Y> PointY;
	float m_dbLaserHeight = 12.13f; //扫描仪高度
	float fAngleResolution = 0.1667f; //扫描角度分辨率
	float fAngleScanRange = 18.0f;    //扫描角度范围
	float EPI = 3.1415926f / 180;
	unsigned int nAngleMax = (unsigned int)ceil((90 + fAngleScanRange) / fAngleResolution);
	unsigned int nAngleMin = (unsigned int)ceil((90 - fAngleScanRange) / fAngleResolution);  //432
	for (unsigned int n = nAngleMin; n <= nAngleMax; n++)
	{
		information_Y pointy;
		float dbAngle = n * fAngleResolution;
		float db90Angle = (90 - dbAngle)*EPI;  //角度到弧长的转化
		float acty = 10.19 - m_dbLaserHeight*tan(db90Angle);
		pointy.y = acty;
		pointy.angle = sin(dbAngle * EPI);
		PointY.push_back(pointy);
	}

这里要注意的是,需要有一个弧度和角度的转换,求y坐标信息的同时,将该点的角度也求出并保存在一个存储y的结构中,以便后续将所有的信息存储到一个大结构体中,以方便后续的使用。

求车高的思路:

前面的步骤已经求出了12个物资的中心点,拿(219,132)这点来说,取中心点方向,取x=219,y的范围在100~120个点之间,这十二个中心点都这样取点,也就是12*20个点,这些点中,一定存在车面的点(假设车的装载区是平整的),将这些点的Z坐标乘以之前保存好的结构体中的对应sin值,即可得到该点距离雷达点的垂直高度。其中有些点,是车面,有些是线缆盘平面的点,还有一些是由于线缆盘老化形变的表面的点,找到这些距离的最大值,就是雷达距离车面的高度,与之前雷达距离地面的高度12.13做差,即可得到车高,下面是部分代码:

vector<double> high;
	for (int l = 0; l < POINT2.size(); l++) //遍历12个中心点集合
	{
		for (int L = 0; L < Points.size(); L++) //遍历结构体数组中所有的点
		{
			for (int n = 100; n < 120; n++) //在y轴找点的数量范围
			{
				//找到与中心点x坐标(i像素)相同,y轴坐标(j像素)在100-200之间的点
				if ( (Points[L].I == POINT2[l].i) && (Points[L].J == n) ) 
				{
					double h = Points[L].Z * (Points[L].Angle);
					high.push_back(h);
				}
			}
		}
	}

其中所有距离中的最大值为10.6426米,雷达距离地面的高度为12.13米,所以得到车高为 1.4874米

我百度了一下,装载车的高度大概在1.3~1.5米之间,具体的高度,等去现场的时候再验证,至少这个值还是挺靠谱的

虽然想法实现了,可是程序执行的时间太长,以后还是需要改进的~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值