//------------------------------------------ // 迷路 5 //------------------------------------------ SET:Power:1 ONCALL:&:Gsensor_status:1:9000:2 // 転倒した場合 DO // 無限ループ POSE:AIBO:oStanding WAIT MOVE:HEAD:ABS:0:0:0:1000 WAIT MOVE:LEGS:WALK:0:FORWARD:0 // 前進開始 FOR:t:1:10000 IF:Distance:<:300:BREAK // 障害物を発見するか、t=100でBreak WAIT:1 NEXT PLAY:LEGS:WalkToWS // 歩行停止 WAIT MOVE:HEAD:ABS:0:0:0:1000 // 首振動作開始 MOVE:HEAD:ABS:0:-80:0:1000 MOVE:HEAD:ABS:0:80:0:2000 MOVE:HEAD:ABS:0:0:0:1000 SET:dd:0 // 障害物までの距離が最大な角度を探す WHILE:Wait:>:0 SET:d:Distance SET:p:Head_pan IF:d:>:dd:THEN SET:dd:d SET:pan:p ENDIF WEND IF:pan:<:-15:THEN // 右旋廻 REPEAT MOVE:LEGS:STEP:12:0:1 // 旋廻を繰り返す WAIT WAIT:500 UNTIL:Distance:>:500 // 障害物までの距離が500以上になるまで ELSE IF:pan:>:15:THEN // 左旋廻 REPEAT MOVE:LEGS:STEP:13:0:1 // 旋廻を繰り返す WAIT WAIT:500 UNTIL:Distance:>:500 // 障害物までの距離が500以上になるまで ENDIF ENDIF IF:dd:<:300:THEN // 八方塞の場合(後退) PLAY:SOUND:ang1_xxa:100 MOVE:LEGS:STEP:11:0:10 WAIT WAIT:3000 ENDIF LOOP EXIT :9000 // 転倒回復 QUIT:AIBO MOVE:AIBO:ReactiveGU WAIT RESUME