float evalSafety(geometry_msgs::Point &comand, geometry_msgs::Pose2D &target, nav_msgs::Odometry &robotPos, sensor_msgs::LaserScan &currScan) 
{

    float safety = -1;
    double ang_min, dist_min;
    double alfa = atan2(comand.y, comand.x);

    bool isOk = getMinDist(currScan, &dist_min, &ang_min);
    //ROS_INFO("Min dist is (%f), min angle is (%f)",dist_min,ang_min);

    if (isOk) {
        safety = getSafety(ang_min, dist_min, alfa);
    }


    return safety;

}
float evalSafety(geometry_msgs::Point &comand, geometry_msgs::Pose2D &target, 
        nav_msgs::Odometry &robotPos, nav_msgs::GridCells obstacles)
{

    float safety = -1;
    double ang_min, dist_min;
    double alfa = atan2(comand.y, comand.x);

    bool isOk = getMinDist(obstacles,robotPos, &dist_min, &ang_min);
    //ROS_INFO("Min dist is (%f), min angle is (%f)",dist_min,ang_min);

    if (isOk) {
        safety = getSafety(ang_min, dist_min, alfa);
    }


    return safety;

}
Exemple #3
0
int Party::getNextColour(int x, int y)
{
	int limit = 0;
	int color_limit = check.size();
	for(int k = 0; k < (int)colours.size(); ++k){
		int dist = getMinDist(colours[k], x, y);

		if(dist > limit){
			limit = dist;
			color_limit = (int)check.size();
		}
		if(dist == limit){
			if(colours[k] < color_limit){
				color_limit = colours[k];
			}
		}
	}

	return color_limit;
}