ros 避障理解

机器人,地图,障碍物,激光雷达,路径规划,障碍物避障

1。基于激光雷达

常见的激光雷达是基于飞行时间的(ToF, time of flight),通过测量激光的飞行时间来进行测距d=ct/2,其中d是距离,c是光速,t是从发射到接收的时间间隔,激光雷达包括发射器和接收器,发射器用激光照射目标,接收器接收反向回的光波,激光雷达的测量距离可以达到几十米甚至上百米,角度分辨率高,通常可以达到零点几度,测距的精度也高。对于透明材料,比如玻璃,激光雷达就无能为力了。

一些低端的激光雷达会采用三角测距的方案进行测距,但这时它们的量程会受到限制,一般几米以内,并且精度相对低一些,但用于室内低速环境的SLAM或者室外环境用于避障的话,效果还是不错的。

ros 的\ros_include\sensor_msgs\LaserScan.h中,在名称空间sensor_msgs中定义了结构LaserScan_

angle_increment=fabs(angle_increment);

angle_increment=fabs(angle_increment);//fabs()对浮点数取绝对值
IplImage*img = cvCreateImage(cvSize(pictureWdith, pictureHeight),IPL_DEPTH_8U,3);
//函数cvCreateImage创建图像首地址,并分配存储空间。
//IplImage* cvCreateImage(CvSize cvSize(int width, int height), int depth, int channels);

当时

if(LaserCheck.check_show)
		{
			cvZero(img);
		}

// cvZero()函数,就是将图像中的每个像素都置为0,那么显示的img自然就是全黑了。

在obstace_avoidance.h中

CheckObstacle LaserCheck

void init(costmap_2d::Costmap2DROS *costmap_ros);

     

 

你可能感兴趣的:(ros 避障理解)