Kano的编程之旅
瓦力觉启
|主程序原理---避障|
一.雷达避障
(1)
(2)
二.深度避障
1.原理
(1)摄像头的中心与摄像头坐标系统的中心可能存在偏差
(2)摄像头的坐标系和小车的坐标系统方向不一致:
摄像头的x,y,z方向分别对应小车的:水平方向z,y方向,x方向
(3)摄像头存在俯仰视角差值,因此在坐标转换也需要注意
(4)因为深度避障一般考虑小车的正前方和对应小车宽度的范围,故在计算时我们一般注重摄像头z方向的点距离,x方向仅仅考虑小车宽度,y方向仅仅考虑摄像头向下5cm,向上车高点云
(5)后深度避障一般在手动驾驶时作限速手段,另外自动导航如果发生避障后退也会进行避障检测
在计算小车后深度25cm以内的点时:point[2]=cloud_pcl_xyz[i].z *pitchBackCosAngOffserDis -cloud_pcl_xyz[i].y *pitchBackSinAngOffserDis
原理:深度摄像头在小车x方向的分量的向量和的值-》为障碍物实际距离小车的距离
2.控制
3.主要函数
(1).雷达避障主函数
RobotCoreClass::getLaserBZData
(2).相关参数
用于限速参数1m以内速度:speedLaserData & 0x01 isSpeedLaserMin
用于限速参数1.5m以内速度:speedLaserData & 0x02 isSpeedLaserMid
用于限速参数2m以内速度:speedLaserData & 0x04 isSpeedLaserMax