//------------------------------------------ // SoccerDog1 //------------------------------------------ SET:Power:1 SET:mode:0 // 0:サーチモード 1:追っ掛けモード SET:head:0 // サーチモードで頭をグルグルするためのカウンタ SET:lost:0 // ボールを見失った回数 :100 SET:stat:Gsensor_status AND:stat:1 IF:=:stat:1:9000 //ずっこけた? IF:=:mode:0:1000 //サーチモードへ IF:=:mode:1:2000 //追っ掛けモードへ GO:100 :1000 MOVE:LEGS:STEP:RIGHT_TURN:0:4 //右回りしながらボールを捜す IF:=:head:0:1101 //頭をグルグルまわす処理 IF:=:head:1:1102 IF:=:head:2:1103 IF:=:head:3:1104 IF:=:head:4:1105 IF:=:head:5:1106 IF:=:head:6:1107 IF:=:head:7:1108 IF:=:head:8:1109 :1101 MOVE:HEAD:ABS:-15:0:0:500 GO:1200 :1102 MOVE:HEAD:ABS:-15:-40:0:500 GO:1200 :1103 MOVE:HEAD:ABS:-15:-80:0:500 GO:1200 :1104 MOVE:HEAD:ABS:-45:-40:0:500 GO:1200 :1105 MOVE:HEAD:ABS:-45:0:0:500 GO:1200 :1106 MOVE:HEAD:ABS:-45:40:0:500 GO:1200 :1107 MOVE:HEAD:ABS:-45:80:0:500 GO:1200 :1108 MOVE:HEAD:ABS:-15:40:0:500 GO:1200 :1109 MOVE:HEAD:ABS:-15:0:0:500 GO:1200 :1200 ADD:head:1 // head の インクリメント MOD:head:9 IF:<:Cdt_npixel:32:1210 // ボール見えているか? SET:mode:1 // 見えていたら追っ掛けモードへ GO:100 :1210 WAIT GO:100 :2000 IF:<:Cdt_npixel:32:2010:2020 //ボール見えているか? :2010 ADD:lost:1 // lost を +1 GO:2100 :2020 SET:lost:0 // lost を 0クリア GO:2100 :2100 IF:>:lost:0:2110:2120 // lost>0 なら サーチモード へ :2110 SET:mode:0 GO:100 :2120 SET:mode:1 MOVE:HEAD:C-TRACKING:1000 // 追っ掛けモード開始 IF:>:Head_tilt:-58:2300 // 頭の角度で距離推定 IF:>:Psd_range:9999:2300 // 障害物センサーは使えない? IF:>:Head_pan:0:2210:2220 // 近ければキック! :2210 MOVE:LEGS:KICK:LEFT_KICK:0 MOVE:LEGS:STEP:SLOW:FORWARD:1 GO:2900 :2220 MOVE:LEGS:KICK:RIGHT_KICK:0 MOVE:LEGS:STEP:SLOW:FORWARD:1 GO:2900 :2300 // 頭の角度により、ボールに近づく IF:>:Head_pan:60:2310 IF:>:Head_pan:45:2320 IF:>:Head_pan:15:2330 IF:<:Head_pan:-60:2340 IF:<:Head_pan:-45:2350 IF:<:Head_pan:-15:2360 MOVE:LEGS:STEP:SLOW:FORWARD:4 GO:2900 :2310 MOVE:LEGS:STEP:LEFT_TURN:0:4 GO:2900 :2320 MOVE:LEGS:STEP:SLOW:LEFT:4 GO:2900 :2330 MOVE:LEGS:STEP:SLOW:LEFTFORWARD:4 GO:2900 :2340 MOVE:LEGS:STEP:RIGHT_TURN:0:4 GO:2900 :2350 MOVE:LEGS:STEP:SLOW:RIGHT:4 GO:2900 :2360 MOVE:LEGS:STEP:SLOW:RIGHTFORWARD:4 GO:2900 :2900 WAIT GO:100 :9000 QUIT:AIBO MOVE:AIBO:ReactiveGU // 転倒回復 WAIT GO:100