Example #1
0
/* Main()*/
int main(int argc, const char **argv)
{
  // Create a client object and connect to the server; the server must
  // be running on "localhost" at port 6665
  client = playerc_client_create(NULL, "gort", 9876);
  if (playerc_client_connect(client) != 0)
  {
    fprintf(stderr, "error: %s\n", playerc_error_str());
    return -1;
  }

  // Create a bumper proxy (device id "bumper:0" and subscribe
   // in read mode
  bumper = playerc_bumper_create(client, 0);
  if(playerc_bumper_subscribe(bumper,PLAYERC_OPEN_MODE)!= 0)
  {
    fprintf(stderr, "error: %s\n", playerc_error_str());
    return -1;
  }

  // Create a position2d proxy (device id "position2d:0") and susbscribe
  // in read/write mode
  position2d = playerc_position2d_create(client, 0);
  if (playerc_position2d_subscribe(position2d, PLAYERC_OPEN_MODE) != 0)
  {
    fprintf(stderr, "error: %s\n", playerc_error_str());
    return -1;
  }
  // Enable the robots motors
  playerc_position2d_enable(position2d, 1);
  playerc_client_read(client);
  
  // Point 1 to Point 2
  Move(client, MOVE1, ANGLE1);
  Turn(client, TURN1);

  // Point 2 to Point 3
  Move(client, MOVE2, ANGLE2);
  Turn(client, TURN2);

  // Point 3 to Point 4
  Move(client, MOVE3, ANGLE3);
  Turn(client, TURN3);

  // Point 4 to Point 5
  Move(client, MOVE4, ANGLE4);

  // Shutdown and tidy up
  playerc_position2d_unsubscribe(position2d);
  playerc_position2d_destroy(position2d);
  playerc_client_disconnect(client);
  playerc_client_destroy(client);

  return 0;
}
Example #2
0
int main(int argc, const char **argv)
{
	double  actual_result_trans;
	double  actual_result_angle;
	int finished;
	playerc_client_t *client;
	playerc_position2d_t *position2d;
	playerc_bumper_t * bumper;
	
	// Create a client object and connect to the server
	client = playerc_client_create(NULL, SERVER, PORT);
	if (playerc_client_connect(client) != 0)
	{
		fprintf(stderr, "error: %s\n", playerc_error_str());
		return -1;
	}
	printf("Connected...");
	
	// Create a position2d proxy (device id "position2d:0") and susbscribe
	// in read/write mode
	position2d = playerc_position2d_create(client, 0);
	if (playerc_position2d_subscribe(position2d, PLAYERC_OPEN_MODE))
	{
		fprintf(stderr, "error: %s\n", playerc_error_str());
		return -1;
	}
	printf("Position2D Subscribed...");
	
	//Creates a Bumper Device Proxy
	bumper = playerc_bumper_create(client, 0);
	if(playerc_bumper_subscribe(bumper, PLAYERC_OPEN_MODE)) {
		fprintf(stderr, "error: %s\n", playerc_error_str());
		return -1;
	}
	printf("Bumper Subscribed...");
	
	// Enable the robots motors
	playerc_position2d_enable(position2d, 1);
	printf("Motor Enabled\n");
	

	
#ifdef ABSOLUTE_COORD
	//calls our move function to move to second point
	actual_result_trans = Move(client,position2d,bumper,3.2,0.0);
	printf("Results Returned from Move: %f\n",actual_result_trans);
	printPos(client,position2d,bumper);
	
	//rotates robot into position for third point
	actual_result_angle = Turn(client,position2d,bumper,(PI/2.0));
	printf("Results Returned from TurnL %f\n",actual_result_angle);
	printPos(client,position2d,bumper);
	
	//moves to third point from second point
	actual_result_trans = Move(client,position2d,bumper,3.2,3.04);
	printf("Results Returned from Move: %f\n",actual_result_trans);
	printPos(client,position2d,bumper);
	
	//rotates robot into position for the fourth point
	actual_result_angle = Turn(client,position2d,bumper,2.75741633);
	printf("Results Returned from TurnL %f\n",actual_result_angle);
	printPos(client,position2d,bumper);
	
	//moves to fouth point from third point
	actual_result_trans = Move(client,position2d,bumper,-0.5,4.7);
	printf("Results Returned from Move: %f\n",actual_result_trans);
	printPos(client,position2d,bumper);
	
	//rotates robot into position for point five
	actual_result_angle = Turn(client,position2d,bumper,(PI/2.0));
	printf("Results Returned from TurnL %f\n",actual_result_angle);
	printPos(client,position2d,bumper);
	
	//moves robot from position four to position five
	actual_result_trans = Move(client,position2d,bumper,-0.55,11.6);
	printf("Results Returned from Move: %f\n",actual_result_trans);
	printPos(client,position2d,bumper);
#else
	//calls our move function to move to second point
	actual_result_trans = Move(client,position2d,bumper,3.2,0.0);
	printf("Results Returned from Move: %f\n",actual_result_trans);
	printPos(client,position2d,bumper);
	
	//rotates robot into position for third point
	actual_result_angle = Turn(client,position2d,bumper,(PI/2.0));
	printf("Results Returned from TurnL %f\n",actual_result_angle);
	printPos(client,position2d,bumper);
	
	//moves to third point from second point
	actual_result_trans = Move(client,position2d,bumper,3.04,0.0);
	printf("Results Returned from Move: %f\n",actual_result_trans);
	printPos(client,position2d,bumper);
	
	//rotates robot into position for the fourth point
	actual_result_angle = Turn(client,position2d,bumper,1.18662);
	printf("Results Returned from TurnL %f\n",actual_result_angle);
	printPos(client,position2d,bumper);
	
	//moves to fouth point from third point
	actual_result_trans = Move(client,position2d,bumper,4.02,0.0);
	printf("Results Returned from Move: %f\n",actual_result_trans);
	printPos(client,position2d,bumper);
	
	//rotates robot into position for point five
	actual_result_angle = Turn(client,position2d,bumper,-1.18662);
	printf("Results Returned from TurnL %f\n",actual_result_angle);
	printPos(client,position2d,bumper);
	
	//moves robot from position four to position five
	actual_result_trans = Move(client,position2d,bumper,6.83,0.0);
	printf("Results Returned from Move: %f\n",actual_result_trans);
	printPos(client,position2d,bumper);
#endif
	
	// Shutdown and Unsubscribe Devices
	playerc_position2d_unsubscribe(position2d);
	playerc_position2d_destroy(position2d);
	playerc_bumper_unsubscribe(bumper);
	playerc_bumper_destroy(bumper);
	playerc_client_disconnect(client);
	playerc_client_destroy(client);
	
	return 0;
}