コード例 #1
0
ファイル: native.cpp プロジェクト: ericyao2013/ARdroneUAV
void initnative() 
{
	corners.erase();

	the_corners.set_max_size(16);
	the_corner_scores.set_max_size(16);
	the_max_corners.set_max_size(16);
	the_max_corner_descriptors.set_max_size(16);
	
	drone_xy_lookup = Image<TooN::Vector<2, float> >(ImageRef(WIDTH, HEIGHT));

	std::ifstream is;
	is.open("dronecamparameters.txt");
	drone_camera_model.load(is);
	is.close();
	
	//TooN::Vector<6> cam_params = drone_camera_model.get_parameters();
	//printf("cam params: %f %f %f %f %f %f\n", cam_params[0], cam_params[1], cam_params[2], cam_params[3], cam_params[4], cam_params[5]);
	generate_xy_lookup(drone_camera_model, drone_xy_lookup);

	client_socket.create(serverip, serverport);
	
	log_file = fopen("udp_logX.csv", "wb");
	if(log_file==NULL)
	{
		printf("File 2 open failed\n");
	}
	fprintf(log_file,"Time,X (m),Y (m),Z (m),Yaw (rad)\n");
	
	/*log_file2 = fopen("udp_log2.csv", "wb");
	if(log_file2==NULL)
	{
		printf("File 3 open failed\n");
	}
	fprintf(log_file2,"Time,Corners\n");*/
	
	//init front camera
	while(video_init((char*) "/dev/video1", WIDTH, HEIGHT, 30))
	{
		printf("Camera initialisation failed. Retry in 2 seconds...\n");
		sleep(2);
	}
	printf("video_init completed\n");
	
	sleep(2);
	
	int rc = pthread_create(&native_thread, NULL, native_thread_main, NULL);
	if (rc)
		printf("ctl_Init: Return code from pthread_create(native_thread) is %d\n", rc);
	
	last_good_location.x = 0.0;	
	last_good_location.y = 0.0;
	last_good_location.z = 0.0;
	last_good_location.yaw = 0.0;
	
	printf("native_init completed\n");
}