//------------------------------------------ // SoccerDog2 //------------------------------------------ SET:Power:1 SET:mode:0 // 0:サーチモード 1:追っ掛けモード SET:head:0 // サーチモードで頭をグルグルするためのカウンタ SET:lost:0 // ボールを見失った回数 :100 // MainLoop IF:&:Gsensor_status:1:9000 //ずっこけた? IF:=:mode:0:1000 //サーチモードへ IF:=:mode:1:2000 //追っ掛けモードへ GO:100 :1000 // mode:0 サーチモード SET:mode:0 MOVE:LEGS:STEP:RIGHT_TURN:0:4 //右回りしながらボールを捜す SWITCH:head //頭をグルグルまわす処理 CASE:0:MOVE:HEAD:ABS:-15:0:0:500 CASE:1:MOVE:HEAD:ABS:-15:-40:0:500 CASE:2:MOVE:HEAD:ABS:-15:-80:0:500 CASE:3:MOVE:HEAD:ABS:-45:-40:0:500 CASE:4:MOVE:HEAD:ABS:-45:0:0:500 CASE:5:MOVE:HEAD:ABS:-45:40:0:500 CASE:6:MOVE:HEAD:ABS:-45:80:0:500 CASE:7:MOVE:HEAD:ABS:-15:40:0:500 CASE:8:MOVE:HEAD:ABS:-15:0:0:500 ADD:head:1 // head の インクリメント MOD:head:9 WAIT IF:<:Cdt_npixel:32:100 // ボール見えていれば 追っ掛けモード へ :2000 // 追っ掛けモード SET:mode:1 IF:<:Cdt_npixel:32:1000 //ボール見えているか? MOVE:HEAD:C-TRACKING:100 // 色追跡開始 IF:>:Head_tilt:-58:2300 // 頭の角度で距離推定 IF:>:Head_pan:0:2210:2220 // 近ければキック! :2210 MOVE:HEAD:HOME // 自分のアゴを蹴らないように (^^;) ちょと不自然 MOVE:LEGS:KICK:LEFT_KICK:0 MOVE:LEGS:STEP:SLOW:FORWARD:1 GO:2900 :2220 MOVE:HEAD:HOME // 自分のアゴを蹴らないように (^^;) ちょと不自然 MOVE:LEGS:KICK:RIGHT_KICK:0 MOVE:LEGS:STEP:SLOW:FORWARD:1 GO:2900 :2300 // 頭の角度により、ボールに近づく CSET:>:Head_pan:60:1 CSET:>:Head_pan:45:2 CSET:>:Head_pan:15:3 CSET:<:Head_pan:-60:4 CSET:<:Head_pan:-45:5 CSET:<:Head_pan:-15:6 CSET:=:0:0:0 CASE:0:MOVE:LEGS:STEP:SLOW:FORWARD:4 CASE:1:MOVE:LEGS:STEP:SLOW:FORWARD:4 CASE:2:MOVE:LEGS:STEP:LEFT_TURN:0:4 CASE:3:MOVE:LEGS:STEP:SLOW:LEFT:4 CASE:4:MOVE:LEGS:STEP:SLOW:LEFTFORWARD:4 CASE:5:MOVE:LEGS:STEP:RIGHT_TURN:0:4 CASE:6:MOVE:LEGS:STEP:SLOW:RIGHT:4 CASE:7:MOVE:LEGS:STEP:SLOW:RIGHTFORWARD:4 :2900 WAIT GO:100 :9000 // 転倒回復 QUIT:AIBO MOVE:AIBO:ReactiveGU WAIT GO:100