Commit 7fbc69ea authored by Kotaro Terada's avatar Kotaro Terada

Work (2018.11.14)

parent 3f6647e4
......@@ -3,14 +3,16 @@ import java.util.Timer;
ARDroneForP5 ardrone;
//OpenCV opencv;
boolean stop = false;
char state = 'n';
int start_time = 0;
float yaw_stop = 0;
void setup() {
size(640, 360);
ardrone=new ARDroneForP5("192.168.1.1");
stop = false;
ardrone = new ARDroneForP5("192.168.1.1");
// connect to the AR.Drone
ardrone.connect();
// for getting sensor information
......@@ -42,25 +44,32 @@ void draw() {
float[] velocity = ardrone.getVelocity();
int battery = ardrone.getBatteryPercentage();
String attitude = "pitch:" + pitch + "\nroll:" + roll + "\nyaw:" + yaw + "\naltitude:" + altitude;
String attitude = "pitch:" + pitch + "\nroll:" + roll + "\nyaw:" + yaw + "\naltitude:" + altitude + "\nyaw_stop:" + yaw_stop;
text(attitude, 20, 85);
String vel = "vx:" + velocity[0] + "\nvy:" + velocity[1];
text(vel, 20, 140);
text(vel, 20, 160);
String bat = "battery:" + battery + " %";
text(bat, 20, 170);
text(bat, 20, 190);
String is_stop = "stop:" + stop;
text(is_stop, 20, 210);
float vx = velocity[0], vy = velocity[1];
if(stop){
int lr = (int)vy / 15;
int fb = (int)vx / 15;
ardrone.parallel(-lr, fb);
int lr = (int) vy / 15;
int fb = (int) vx / 15;
int spin = (int) (yaw - yaw_stop);
float yaw_diff = yaw_stop - yaw;
//if(yaw_diff){
//}
ardrone.move3D(-fb, lr, 0, spin);
}
int ms = millis();
String time = "time:" + ms;
text(time, 20, 210);
text(time, 20, 230);
if(state=='w'){
if(state == 'w'){
square(ms);
}
}
......@@ -71,41 +80,39 @@ void keyPressed() {
stop = false;
if (key == CODED) {
if (keyCode == UP) {
state='f';
ardrone.forward(); // go forward
}
else if (keyCode == DOWN) {
state='b';
ardrone.backward(); // go backward
}
else if (keyCode == LEFT) {
state='l';
ardrone.goLeft(); // go left
}
else if (keyCode == RIGHT) {
state='r';
ardrone.goRight(); // go right
}
else if (keyCode == SHIFT) {
ardrone.takeOff(); // take off, AR.Drone cannot move while landing
delay(2500);
stop = true;
yaw_stop = ardrone.getYaw();
}
else if (keyCode == CONTROL) {
ardrone.landing(); // landing
state = 'n';
ardrone.landing();
// landing
stop = false;
}
}
else {
if (key =='w'){
state='w';
state = 'w';
start_time = millis();
}
else if (key == 's') {
else if (key == 's') { // hovering
ardrone.stop();
state = 's';
stop = true;
ardrone.stop();
yaw_stop = ardrone.getYaw();
}
else if (key == 'r') {
ardrone.spinRight(); // spin right
......@@ -135,29 +142,45 @@ void keyPressed() {
ardrone.toggleCamera(); // set next camera setting
}
else if (key == 'e'){
ardrone.parallel(-5,5);
ardrone.parallel(5, -5);
}
}
}
void square(int ms){
int time = ms - start_time;
int speed = 10;
if(time <1000){
stop=true;
}else if(time < 4000){
stop=false;
int speed = 5;
if(time < 1000){ //hitsuyou??
yaw_stop = ardrone.getYaw();
stop = true;
} else if(time < 4000){ //0~4s go forward for 4s
stop = false;
ardrone.forward(speed);
}else if(time < 8000){
} else if(time < 7000){ //4~7s stop for 3s
//yaw_stop = ardrone.getYaw();
stop = true;
} else if (time < 11000){ //7~11s go right for 4s
stop = false;
ardrone.goRight(speed+2);
} else if(time < 14000){ //11~14s stop for 3s
//yaw_stop = ardrone.getYaw();
stop = true;
} else if (time < 11000){
stop=false;
ardrone.goRight(speed);
} else if(time < 16000){
} else if(time < 18000){ //14~18s go backward for 4s
stop = false;
ardrone.backward(speed+2);
} else if(time < 21000){ //18~21s stop for 3s
//yaw_stop = ardrone.getYaw();
stop = true;
} else if(time < 25000){ //21~25s go left for 4s
stop = false;
ardrone.goLeft(speed+2);
} else if(time < 28000){ //25~28s stop for 3s
//yaw_stop = ardrone.getYaw();
stop = true;
} else {
} else { //28s~ landing
stop = false;
state = 'n';
ardrone.landing();
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment