next up previous contents index
Next: サンプルクライアントの全体構造 Up: サンプルクライアント Previous: サンプルクライアント   Contents   Index


sampleclientの使用法

ここでは,sampleclientの典型的な使用方法を述べる.

  1. rcssclient を起動する
    % rcssclient -server SERVERHOST
    
    SERVERHOST はサッカーサーバが実行されているホスト名である.

    すると,プログラムはユーザの入力待ちになる.

    サッカーサーバが通常とは異なるポート番号(例えば,標準のポート番号であ る6000の代わりに,6005)を用いている場合は,ユーザは次 のような形式を使用しなければならない.

    % rcssclient -server SERVERHOST -port 6005
    

  2. キーボードから init コマンドをタイプする.
    (init MYTEAMNAME (version 7))
    
    MYTEAMNAME はユーザが使用したいチーム名である.

    すると,プレイヤがフィールド上に現れる. 同時に,プログラムはサーバから送られるセンサ情報をターミナルへ出力し始 める.典型的な出力は次のようになる:

    send 6000 : (init foo (version 7))
    recv 1567 : (init r 1 before_kick_off)
    recv 1567 : (server_param 14.02 5 0.3 0.4 0.1 60 1 1 4000 45 0 0.3 0.5 ...
    recv 1567 : (player_param 7 3 3 0 0.2 -100 0 0.2 25 0 0.002 -100 0 0.2 ...
    recv 1567 : (player_type 0 1 45 0.4 5 0.006 0.3 0.7 0 0 1 0.6)
    recv 1567 : (player_type 1 1.16432 28.5679 0.533438 8.33595 0.00733326 ...
    recv 1567 : (player_type 2 1.19861 25.1387 0.437196 5.92991 0.00717675 ...
    recv 1567 : (player_type 3 1.04904 40.0956 0.436023 5.90057 0.00631769 ...
    recv 1567 : (player_type 4 1.1723 27.7704 0.568306 9.20764 0.00746072 ...
    recv 1567 : (player_type 5 1.12561 32.4392 0.402203 5.05509 0.00621539 ...
    recv 1567 : (player_type 6 1.02919 42.0812 0.581564 9.53909 0.00688457 ...
    recv 1567 : (sense_body 0 (view_mode high normal) (stamina 4000 1) ...
    recv 1567 : (see 0 ((g r) 61.6 37) ((f r t) 49.4 3) ((f p r t) 37 27) ...
    recv 1567 : (sense_body 0 (view_mode high normal) (stamina 4000 1) ...
    ...
    
    最初の行,``send 6000 : (init foo (version 7))'' は,clientが サーバへ送信したものを報告している.二行目,''recv 1567 : (init r 1 before_kick_off) は,サーバからの最初の応答を報告している.ここで サーバは,割り当てられたプレイヤは右サイドのチーム (r)で,その背番 号は1であること,そして現在のプレイモードが before_kick_off であ ることを,クライアントへ伝えている.その次の9行は server_paramplayer_param で,シミュレーションで使用される様々なパラメータを伝 えている.最後に,サーバは通常のセンサ情報,sense_bodysee の送信を開始する.サーバはこれらのセンサ情報を 100ms毎に,または 150ms 毎に送信するため,client はこれらの情報を絶え間なく出力し続ける.

  3. プレイヤを初期位置へ配置するために,move コマンドをタイプ しなさい.プレイヤはフィールド外側のベンチに現れる.ユーザは 次のよ うな move コマンドによって,プレイヤを初期位置へと移動させる必要 がある:

    (move -10 10)
    
    すると,プレイヤは (-10,10) の位置へ移動する.

    前に述べたように,client プログラムは絶え間なくセンサ情報を出力す る.そのため,client がncursesモードで起動していなければ,ユーザは 自身がタイプした文字列を見ることができない.その場合,ユーザは何も見ず にコマンドをタイプしなければならない. [*]

  4. サッカーモニタの `Kick-Off' ボタンをクリックしなさい.すると, 試合が開始される.ユーザは各センサ情報内の時間データ(see または sense_body 情報の最初の数字)が増加していく様子を見ることができ る.

  5. その後,ユーザは任意の通常コマンド,turndashkickなどを使用できる.例えば,次のようにタイプすると,プレイヤを 右に回転させることができる:
    (turn 90)
    
    次のようにタイプすると,プレイヤは最大パワーで前方へダッシュするこ とができる:
    (dash 100)
    
    プレイヤがボールに充分近ければ,次のようにタイプすると,プレイヤは 50のパワーで自身の左方向へボールをキックすることができる:
    (kick 50 -90)
    
    センサ情報の出力は延々と続くため,ncursesを用いていない場合は,ユー ザは入力内容が見えない状態でコマンドをタイプしなければならないこと を再度注意しておく.



Hidehisa Akiyama 2004-11-21