Example #1
0
void
SeekerAI::ExecFrame(double seconds)
{
    // setup:
    FindObjective();

    // adaptive behavior:
    Navigator();
}
Example #2
0
int main () {
  
  Navigator n;
  
  n = Navigator();
  
  while (1) {
    std::cout<< n.getLeft() << std::endl;
    sleep(1);
  }
  
}
Example #3
0
 Controller() {
     robot = Robot();
     navigator = Navigator();
     
     if(Collision::occuredWithUpdate()){
         startOnOppositePath = true;
         Actuators::openClaw();
         delay(OPEN_FINGERS_FOR_PASSENGER_DROP_OFF_DURATION); //lift hand off!
         Actuators::closeClaw();
         while(Collision::occuredWithUpdate()){}
         delay(300);
     }
 }
int main(int argc, char **argv)
{
	// Start Node
	ROS_INFO("Starting navigator_node");

	ros::init(argc, argv, "navigator_node");
	ros::NodeHandle node;

	// Start Navigator
	Navigator nav = Navigator(node);
	ROS_INFO("Press Ctrl-C to kill node.");

	// Spin
	ros::MultiThreadedSpinner spinner(2);
	spinner.spin();

	return 0;
}
Example #5
0
void
NavAI::ExecFrame(double s)
{
	if (!ship) return;

	seconds = s;

	ship->SetDirectorInfo(" ");

	if (ship->GetFlightPhase() == Ship::TAKEOFF)
	takeoff = true;

	else if (takeoff && ship->MissionClock() > 10000)
	takeoff = false;

	FindObjective();
	Navigator();

	// watch for disconnect:
	if (ShipCtrl::Toggled(KEY_AUTO_NAV)) {
		NavSystem* navsys = ship->GetNavSystem();
		if (navsys) {
			HUDView::GetInstance()->SetHUDMode(HUDView::HUD_MODE_TAC);
			navsys->DisengageAutoNav();

			Sim* sim = Sim::GetSim();
			if (sim) {
				ship->SetControls(sim->GetControls());
				return;
			}
		}
	}

	static double time_til_change = 0.0;

	if (time_til_change < 0.001) {
		if (ship->GetShield()) {
			Shield* shield = ship->GetShield();
			double  level  = shield->GetPowerLevel();

			if (ShipCtrl::KeyDown(KEY_SHIELDS_FULL)) {
				HUDSounds::PlaySound(HUDSounds::SND_SHIELD_LEVEL);
				shield->SetPowerLevel(100);
				time_til_change = 0.5f;
			}

			else if (ShipCtrl::KeyDown(KEY_SHIELDS_ZERO)) {
				HUDSounds::PlaySound(HUDSounds::SND_SHIELD_LEVEL);
				shield->SetPowerLevel(0);
				time_til_change = 0.5f;
			}

			else if (ShipCtrl::KeyDown(KEY_SHIELDS_UP)) {
				if (level < 25)      level =  25;
				else if (level < 50) level =  50;
				else if (level < 75) level =  75;
				else                 level = 100;

				HUDSounds::PlaySound(HUDSounds::SND_SHIELD_LEVEL);
				shield->SetPowerLevel(level);
				time_til_change = 0.5f;
			}

			else if (ShipCtrl::KeyDown(KEY_SHIELDS_DOWN)) {
				if (level > 75)      level =  75;
				else if (level > 50) level =  50;
				else if (level > 25) level =  25;
				else                 level =   0;

				HUDSounds::PlaySound(HUDSounds::SND_SHIELD_LEVEL);
				shield->SetPowerLevel(level);
				time_til_change = 0.5f;
			}

		}
	}
	else {
		time_til_change -= seconds;
	}

	if (ShipCtrl::Toggled(KEY_DECOY))
	ship->FireDecoy();

	if (ShipCtrl::Toggled(KEY_LAUNCH_PROBE))
	ship->LaunchProbe();

	if (ShipCtrl::Toggled(KEY_GEAR_TOGGLE))
	ship->ToggleGear();

	if (ShipCtrl::Toggled(KEY_NAVLIGHT_TOGGLE))
	ship->ToggleNavlights();

	if (drop_state < 0) {
		ship->DropOrbit();
		return;
	}

	if (drop_state > 0) {
		ship->MakeOrbit();
		return;
	}
}