本文整理汇总了C++中ARDrone::emergency方法的典型用法代码示例。如果您正苦于以下问题:C++ ARDrone::emergency方法的具体用法?C++ ARDrone::emergency怎么用?C++ ARDrone::emergency使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ARDrone
的用法示例。
在下文中一共展示了ARDrone::emergency方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(){
cout<<"Hol<"<<endl;
//Mat img=imread("/home/mottamx/Pictures/batman.jpg");
//namedWindow("batman");
//imshow("batman", img);
//waitKey(1);
cout<<"Hol<<"<<endl;
ARDrone ardrone;
if (!ardrone.open()){
cout<<"error de comunicación"<<endl;
return -1;
}
cout<<"Bat: "<<ardrone.getBatteryPercentage()<<endl;
sleep(2);
cout<<"Bat: "<<ardrone.getBatteryPercentage()<<endl;
sleep(2);
cout<<"Bat: "<<ardrone.getBatteryPercentage()<<endl;
sleep(2);
time_t start, end;
time (&start);
cout.flush();
double elapsed=0;
namedWindow("dron");
namedWindow("dron2");
while(elapsed<5){
//sleep(2);
IplImage *im=ardrone.getImage();
Mat img = Mat(im);
Mat img2;
resize(img, img2, Size(), 2,2, INTER_AREA);
resize(img, img, Size(), 2,2, INTER_LANCZOS4);
imshow("dron", img);
waitKey(1);
imshow("dron2", img2);
waitKey(1);
time(&end);
elapsed=difftime(end,start);
}
cout<<"Tiempo: "<<setprecision(3)<<elapsed<<"segundos"<<endl;
cout<<"<dios"<<endl;
ardrone.close();
ardrone.emergency();
return 0;
}
示例2: main
// --------------------------------------------------------------------------
// main(Number of arguments, Value of arguments)
// This is the main function.
// Return value Success:0 Error:-1
// --------------------------------------------------------------------------
int main(int argc, char **argv)
{
// AR.Drone class
ARDrone ardrone;
// Initialize
if (!ardrone.open()) {
printf("Failed to initialize.\n");
return -1;
}
// Main loop
while (!GetAsyncKeyState(VK_ESCAPE)) {
// Update your AR.Drone
if (!ardrone.update()) break;
// Get an image
IplImage *image = ardrone.getImage();
// Battery
printf("ardrone.battery = %d [��] (�c���%d��)\n", battery, 12*battery/100);
// Take off / Landing
if (KEY_PUSH(VK_SPACE)) {
if (ardrone.onGround()) ardrone.takeoff();
else ardrone.landing();
}
// Emergency stop
if (KEY_PUSH(VK_RETURN)) ardrone.emergency();
// AR.Drone is flying
if (!ardrone.onGround()) {
double x = 0.0, y = 0.0, z = 0.0, r = 0.0;
// Keyboard
if (KEY_DOWN(VK_UP)) x = 0.5;
if (KEY_DOWN(VK_DOWN)) x = -0.5;
if (KEY_DOWN(VK_LEFT)) r = 0.5;
if (KEY_DOWN(VK_RIGHT)) r = -0.5;
if (KEY_DOWN('Q')) z = 0.5;
if (KEY_DOWN('A')) z = -0.5;
// Joypad
JOYINFOEX JoyInfoEx;
JoyInfoEx.dwSize = sizeof(JOYINFOEX);
JoyInfoEx.dwFlags = JOY_RETURNALL;
// Get joypad infomations
if (joyGetPosEx(0, &JoyInfoEx) == JOYERR_NOERROR) {
int y_pad = -((int)JoyInfoEx.dwXpos - 0x7FFF) / 32512.0*100.0;
int x_pad = -((int)JoyInfoEx.dwYpos - 0x7FFF) / 32512.0*100.0;
int r_pad = -((int)JoyInfoEx.dwZpos - 0x7FFF) / 32512.0*100.0;
int z_pad = ((int)JoyInfoEx.dwRpos - 0x7FFF) / 32512.0*100.0;
printf("X = %d ", x_pad);
printf("Y = %d ", y_pad);
printf("Z = %d ", z_pad);
printf("R = %d\n", r_pad);
x = 0.5 * x_pad / 100;
y = 0.5 * y_pad / 100;
z = 0.5 * z_pad / 100;
r = 0.5 * r_pad / 100;
if (JoyInfoEx.dwButtons & JOY_BUTTON1) ardrone.takeoff();
if (JoyInfoEx.dwButtons & JOY_BUTTON2) ardrone.landing();
}
// Move
ardrone.move3D(x, y, z, r);
}
// Display the image
cvShowImage("camera", image);
cvWaitKey(1);
}
// See you
ardrone.close();
return 0;
}
示例3: controls
// --------------------------------------------------------------------------
// controls()
// This function sends commands to the drone using an Xbox Controller.
// --------------------------------------------------------------------------
void controls()
{
// Check for Xbox Controller
if(player1->IsConnected())
{
// 'A' button
if(player1->GetState().Gamepad.wButtons & XINPUT_GAMEPAD_A)
{
// Change camera
static int cameraToggle = 0;
ardrone.setCamera(++cameraToggle%4);
}
// 'B' button
if(player1->GetState().Gamepad.wButtons & XINPUT_GAMEPAD_B)
{
ardrone.emergency();
}
// 'X' button
if(player1->GetState().Gamepad.wButtons & XINPUT_GAMEPAD_X)
{
ardrone.flatTrim();
}
// 'Y' button
/*if(player1->GetState().Gamepad.wButtons & XINPUT_GAMEPAD_Y)
{
}*/
// 'Start' button
if(player1->GetState().Gamepad.wButtons & XINPUT_GAMEPAD_START)
{
if (ardrone.onGround())
{
ardrone.takeoff();
}
else
{
ardrone.landing();
}
}
// 'Back' button
if(player1->GetState().Gamepad.wButtons & XINPUT_GAMEPAD_BACK)
{
// Exit the program.
if (ardrone.onGround())
{
exit(0);
}
}
// Left Thumb-Stick Press
/*if(player1->GetState().Gamepad.wButtons & XINPUT_GAMEPAD_LEFT_THUMB)
{
}*/
// Right Thumb-Stick Press
/*if(player1->GetState().Gamepad.wButtons & XINPUT_GAMEPAD_RIGHT_THUMB)
{
}*/
// AR.Drone flight controls
//if (!ardrone.onGround())
{
// Check left thumbStick
double leftThumbY = player1->GetState().Gamepad.sThumbLY / STICK_RANGE;
double leftThumbX = player1->GetState().Gamepad.sThumbLX / STICK_RANGE;
// Check the dead zone
if (leftThumbY < STICK_DEAD_ZONE && leftThumbY > -STICK_DEAD_ZONE)
{
leftThumbY = 0;
}
if (leftThumbX < STICK_DEAD_ZONE && leftThumbX > -STICK_DEAD_ZONE)
{
leftThumbX = 0;
}
// Check left thumbStick
double rightThumbY = player1->GetState().Gamepad.sThumbRY / TRIGGER_RANGE;
double rightThumbX = player1->GetState().Gamepad.sThumbRX / TRIGGER_RANGE;
// Check the dead zone
if (rightThumbY < STICK_DEAD_ZONE && rightThumbY > -STICK_DEAD_ZONE)
{
rightThumbY = 0;
}
if (rightThumbX < STICK_DEAD_ZONE && rightThumbX> -STICK_DEAD_ZONE)
{
rightThumbX = 0;
}
double rightTrigger = player1->GetState().Gamepad.bRightTrigger / TRIGGER_RANGE;
double leftTrigger = player1->GetState().Gamepad.bLeftTrigger / TRIGGER_RANGE;
double gaz = rightTrigger - leftTrigger;
// Move
ardrone.move3D(rightThumbY*10, -rightThumbX*10, gaz*10, -leftThumbX*10);
}
//.........这里部分代码省略.........