Ejemplo n.º 1
0
bool LPoint::Equal(const LPoint a_point, B_INT Marge)
{
	B_INT delta_x, delta_y;

	delta_x = babs((_x - a_point._x));
	delta_y = babs((_y - a_point._y));

	if ((delta_x <= Marge) && (delta_y <= Marge))
		return true;
	else
		return false;
}
Ejemplo n.º 2
0
int main(int argc, char** argv)
{

	ROS_INFO("Running babslam_main...");

	srand (static_cast <unsigned> (time(0)));
	ros::init(argc, argv, "babs_slam");

	ros::NodeHandle nh_;

	babs_slam babs(&nh_);
	//sensor_model_test(babs);
	//measurement_model_test(babs);
	//motion_model_test(babs);
	ros::Rate naptime(1/babs.dt);
	bool warmedup = false;
	while(!warmedup){
		ROS_INFO("waiting for data");
		warmedup=babs.warmCallbacks();
		ros::spinOnce();
		naptime.sleep();

	}
	while(ros::ok()){

		babs.update();
		ros::spinOnce();
		naptime.sleep();

	}


    ros::spin();
    return 0;
} 
Ejemplo n.º 3
0
//
// This function finds out which sortfunction to use with sorting
// the crossings.
//
void kbLine::SortLineCrossings()
{
    TDLI<kbNode> I( linecrosslist );

    B_INT dx, dy;
    dx = babs( m_link->GetEndNode()->GetX() - m_link->GetBeginNode()->GetX() );
    dy = babs( m_link->GetEndNode()->GetY() - m_link->GetBeginNode()->GetY() );
    if ( dx > dy )
    { // thislink is more horizontal then vertical
        if ( m_link->GetEndNode()->GetX() > m_link->GetBeginNode()->GetX() )
            I.mergesort( NODE_X_ASCENDING_L );
        else
            I.mergesort( NODE_X_DESCENDING_L );
    }
    else
    { // this link is more vertical then horizontal
        if ( m_link->GetEndNode()->GetY() > m_link->GetBeginNode()->GetY() )
            I.mergesort( NODE_Y_ASCENDING_L );
        else
            I.mergesort( NODE_Y_DESCENDING_L );
    }
}
Ejemplo n.º 4
0
bool LPoint::Equal(const B_INT X, const B_INT Y, B_INT Marge)
{
	return (bool)((babs(_x - X) <= Marge) && (babs(_y - Y) <= Marge));
}