next up previous contents index
Next: サーバの停止方法 Up: Getting Started Previous: アンインストール   Contents   Index


シミュレータの実行

サーバを起動するには,実行バイナリを含むディレクトリで

./rcssserver

とタイプするか,PATHが通った場所に実行バイナリがインストールされていれ ば,

rcssserver

とタイプすれば良い.

rcssserverはユーザのホームディレクトリ内に設定ファイルが存在するか同化 を探す:

.rcssserver-server.conf
.rcssserver-player.conf
.rcssserver-landmark.xml

これらのファイルが存在しなければ,rcssserverによってファイルが作成され, デフォルトの値が書き込まれる.

rcssserver の起動オプションに -sfile-pfile を使用することで,別の場所にある設定ファイルを指定することができる. 指定したファイルが存在しない場合,それらはrcssserverによって作成され, デフォルトの値が書き込まれる.

シミュレータ内で起こっていることを確認するには,rcssserverと同様に,

./rcssmonitor または rcssmonitor

とタイプし,サッカーモニタを実行すればよい.

PATHの通った場所に実行バイナリがインストールされていれば, rcsoccersim スクリプトによって,サーバとモニタの両方を起動できる. この場合,rcsoccersim はPATHの通った場所(rcssserverと同じ場所)に インストールされている.このスクリプトは,サーバとモニタを起動し,ユー ザがモニタを閉じれば自動的にサーバを停止させる.

サッカーサーバにおける試合を実際に開始するために,ユーザは各クライアン トをサーバへ接続しなければならない(各チーム最大11人のプレイヤ+コーチ). これらのクライアントの準備が整えば,サッカーモニタのKick Offを押 せば試合が始まる.あなたはまだ自分のクライアントを作成しないかもしれな い.そのような場合,[*]節を読めば,他のRoboCupperが 寄贈したチームを用いて試合をセットアップする方法の手順を知ることができ る.

また,シミュレータの配布パッケージにはサンプルクライアント rcssclient が含まれている.rcssclientは,ncursesインターフェ イス,またはncursesが利用できなければコマンドラインのインターフェイス を持っている.-noguiオプションを用いることで,明示的にコマンドラ インインターフェイスを指定することも可能である.

rcssclient を実行すると,デフォルトパラメータ(host=localhost, port=6000)でサーバへの接続を試みる.もちろん,これらのパラメータはプロ グラム引数で変更可能である.クライアントが起動すると,ユーザはサーバへ の接続を初期化しなければならない.これは,手作業でinitコマンドをタイプ し,エンターを押すことでなされる.よって,接続を初期化するには以下のよ うにタイプする:

  (init MyTeam (version 9))

一方のチームが,``MyTeam''という名前になり,一体のプレイヤがサイドライ ンの側に現れることに気づくだろう.このプレイヤは,あなたが初期化したク ライアントと一致する.更に,クライアントがターミナルに情報を出力してい ることにも気づくだろう.これは,クライアントがサーバから受信したメッセー ジである.

以下のテキスト(分かり易さのために,適宜改行を加えている)では,最初の11 行は初期化に関するメッセージ[*]である.その他のデータはサーバがクライ アントへ送信したセンサ情報である:

(init MyTeam (version 9))
(init l 2 before_kick_off)
(server_param (catch_ban_cycle 5)(clang_advice_win 1)
    (clang_define_win 1)(clang_del_win 1)(clang_info_win 1)
    (clang_mess_delay 50)(clang_mess_per_cycle 1)
    (clang_meta_win 1)(clang_rule_win 1)(clang_win_size 300)
    (coach_port 6001)(connect_wait 300)(drop_ball_time 0)
    (freeform_send_period 20)(freeform_wait_period 600)
    (game_log_compression 0)(game_log_version 3)
    (game_over_wait 100)(goalie_max_moves 2)(half_time -10)
    (hear_decay 1)(hear_inc 1)(hear_max 1)(keepaway_start -1)
    (kick_off_wait 100)(max_goal_kicks 3)(olcoach_port 6002)
    (point_to_ban 5)(point_to_duration 20)(port 6000)
    (recv_step 10)(say_coach_cnt_max 128)
    (say_coach_msg_size 128)(say_msg_size 10)
    (send_step 150)(send_vi_step 100)(sense_body_step 100)
    (simulator_step 100)(slow_down_factor 1)(start_goal_l 0)
    (start_goal_r 0)(synch_micro_sleep 1)(synch_offset 60)
    (tackle_cycles 10)(text_log_compression 0)
    (game_log_dir "/home/thoward/data")
    (game_log_fixed_name "rcssserver")keepaway_log_dir "./")
    (keepaway_log_fixed_name "rcssserver")
    (landmark_file "~/.rcssserver-landmark.xml")
    (log_date_format "%Y%m%d%H%M-")(team_l_start "")
    (team_r_start "")(text_log_dir "/home/thoward/data")
    (text_log_fixed_name "rcssserver")(coach 0)
    (coach_w_referee 1)(old_coach_hear 0)(wind_none 0)
    (wind_random 0)(auto_mode 0)(back_passes 1)
    (forbid_kick_off_offside 1)(free_kick_faults 1)
    (fullstate_l 0)(fullstate_r 0)(game_log_dated 1)
    (game_log_fixed 1)(game_logging 1)(keepaway 0)
    (keepaway_log_dated 1)(keepaway_log_fixed 0)
    (keepaway_logging 1)(log_times 0)(profile 0)
    (proper_goal_kicks 0)(record_messages 0)(send_comms 0)
    (synch_mode 0)(team_actuator_noise 0)(text_log_dated 1)
    (text_log_fixed 1)(text_logging 1)(use_offside 1)
    (verbose 0)(audio_cut_dist 50)(ball_accel_max 2.7)
    (ball_decay 0.94)(ball_rand 0.05)(ball_size 0.085)
    (ball_speed_max 2.7)(ball_weight 0.2)(catch_probability 1)
    (catchable_area_l 2)(catchable_area_w 1)(ckick_margin 1)
    (control_radius 2)(dash_power_rate 0.006)(effort_dec 0.005)
    (effort_dec_thr 0.3)(effort_inc 0.01)(effort_inc_thr 0.6)
    (effort_init 0)(effort_min 0.6)(goal_width 14.02)
    (inertia_moment 5)(keepaway_length 20)(keepaway_width 20)
    (kick_power_rate 0.027)(kick_rand 0)(kick_rand_factor_l 1)
    (kick_rand_factor_r 1)(kickable_margin 0.7)(maxmoment 180)
    (maxneckang 90)(maxneckmoment 180)(maxpower 100)
    (minmoment -180)(minneckang -90)(minneckmoment -180)
    (minpower -100)(offside_active_area_size 2.5)
    (offside_kick_margin 9.15)(player_accel_max 1)
    (player_decay 0.4)(player_rand 0.1)(player_size 0.3)
    (player_speed_max 1)(player_weight 60)(prand_factor_l 1)
    (prand_factor_r 1)(quantize_step 0.1)(quantize_step_l 0.01)
    (recover_dec 0.002)(recover_dec_thr 0.3)(recover_min 0.5)
    (slowness_on_top_for_left_team 1)
    (slowness_on_top_for_right_team 1)(stamina_inc_max 45)
    (stamina_max 4000)(stopped_ball_vel 0.01)
    (tackle_back_dist 0.5)(tackle_dist 2.5)(tackle_exponent 6)
    (tackle_power_rate 0.027)(tackle_width 1.25)
    (visible_angle 90)(visible_distance 3)(wind_ang 0)
    (wind_dir 0)(wind_force 0)(wind_rand 0))
(player_param (player_types 7)(pt_max 3)(random_seed -1)
    (subs_max 3)(dash_power_rate_delta_max 0)
    (dash_power_rate_delta_min 0)
    (effort_max_delta_factor -0.002)
    (effort_min_delta_factor -0.002)
    (extra_stamina_delta_max 100)
    (extra_stamina_delta_min 0)
    (inertia_moment_delta_factor 25)
    (kick_rand_delta_factor 0.5)
    (kickable_margin_delta_max 0.2)
    (kickable_margin_delta_min 0)
    (new_dash_power_rate_delta_max 0.002)
    (new_dash_power_rate_delta_min 0)
    (new_stamina_inc_max_delta_factor -10000)
    (player_decay_delta_max 0.2)
    (player_decay_delta_min 0)
    (player_size_delta_factor -100)
    (player_speed_max_delta_max 0.2)
    (player_speed_max_delta_min 0)
    (stamina_inc_max_delta_factor 0))
(player_type (id 0)(player_speed_max 1)(stamina_inc_max 45)
    (player_decay 0.4)(inertia_moment 5)(dash_power_rate 0.006)
    (player_size 0.3)(kickable_margin 0.7)(kick_rand 0)
    (extra_stamina 0)(effort_max 1)(effort_min 0.6))
(player_type (id 1)(player_speed_max 1.1956)(stamina_inc_max 30.06)
    (player_decay 0.4554)(inertia_moment 6.385)(dash_power_rate 0.007494)
    (player_size 0.3)(kickable_margin 0.829)(kick_rand 0.0645)
    (extra_stamina 9.4)(effort_max 0.9812)(effort_min 0.5812))
(player_type (id 2)(player_speed_max 1.135)(stamina_inc_max 33.4)
    (player_decay 0.4292)(inertia_moment 5.73)(dash_power_rate 0.00716)
    (player_size 0.3)(kickable_margin 0.8198)(kick_rand 0.0599)
    (extra_stamina 31.3)(effort_max 0.9374)(effort_min 0.5374))
(player_type (id 3)(player_speed_max 1.1964)(stamina_inc_max 31.24)
    (player_decay 0.4664)(inertia_moment 6.66)(dash_power_rate 0.007376)
    (player_size 0.3)(kickable_margin 0.88)(kick_rand 0.09)
    (extra_stamina 47.1)(effort_max 0.9058)(effort_min 0.5058))
(player_type (id 4)(player_speed_max 1.151)(stamina_inc_max 37.8)
    (player_decay 0.45)(inertia_moment 6.25)(dash_power_rate 0.00672)
    (player_size 0.3)(kickable_margin 0.8838)(kick_rand 0.0919)
    (extra_stamina 44.1)(effort_max 0.9118)(effort_min 0.5118))
(player_type (id 5)(player_speed_max 1.1544)(stamina_inc_max 34.68)
    (player_decay 0.4352)(inertia_moment 5.88)(dash_power_rate 0.007032)
    (player_size 0.3)(kickable_margin 0.8052)(kick_rand 0.0526)
    (extra_stamina 47.1)(effort_max 0.9058)(effort_min 0.5058))
(player_type (id 6)(player_speed_max 1.193)(stamina_inc_max 36.7)
    (player_decay 0.4738)(inertia_moment 6.845)(dash_power_rate 0.00683)
    (player_size 0.3)(kickable_margin 0.885)(kick_rand 0.0925)
    (extra_stamina 92)(effort_max 0.816)(effort_min 0.416))
(sense_body 0 (view_mode high normal) (stamina 4000 1) (speed 0 0)
    (head_angle 0) (kick 0) (dash 0) (turn 0) (say 0) (turn_neck 0)
    (catch 0) (move 0) (change_view 0) (arm (movable 0) (expires 0)
    (target 0 0) (count 0)) (focus (target none) (count 0)) (tackle
    (expires 0) (count 0)))
(see 0 ((f c t) 6.7 27 0 0) ((f r t) 58.6 3) ((f g r b) 73 37)
    ((g r) 69.4 32) ((f g r t) 66 27) ((f p r c) 55.7 41)
    ((f p r t) 45.2 22) ((f t 0) 6.3 -18 0 0)
    ((f t r 10) 16.1 -7 0 0) ((f t r 20) 26 -4 0 0)
    ((f t r 30) 36.2 -3) ((f t r 40) 46.1 -2)
    ((f t r 50) 56.3 -2) ((f r 0) 73.7 30) ((f r t 10) 68.7 23)
    ((f r t 20) 66 15) ((f r t 30) 64.1 6) ((f r b 10) 79 37)
    ((f r b 20) 85.6 42))
(sense_body 0 (view_mode high normal) (stamina 4000 1) (speed 0 0)
    (head_angle 0) (kick 0) (dash 0) (turn 0) (say 0) (turn_neck 0)
    (catch 0) (move 0) (change_view 0) (arm (movable 0) (expires 0)
    (target 0 0) (count 0)) (focus (target none) (count 0)) (tackle
    (expires 0) (count 0)))
(see 0 ((f c t) 6.7 27 0 0) ((f r t) 58.6 3) ((f g r b) 73 37)
    ((g r) 69.4 32) ((f g r t) 66 27) ((f p r c) 55.7 41)
    ((f p r t) 45.2 22) ((f t 0) 6.3 -18 0 0)
    ((f t r 10) 16.1 -7 0 0) ((f t r 20) 26 -4 0 0)
    ((f t r 30) 36.2 -3) ((f t r 40) 46.1 -2)
    ((f t r 50) 56.3 -2) ((f r 0) 73.7 30) ((f r t 10) 68.7 23)
    ((f r t 20) 66 15) ((f r t 30) 64.1 6) ((f r b 10) 79 37)
    ((f r b 20) 85.6 42))
...

コマンド((move 0 0)(turn 45) など)をタイプすることで, プレイヤがサーバへ送信するコマンドを指示できる.これらのコマンドの結果 は,サッカーモニタで確認することができるだろう.



Hidehisa Akiyama 2004-11-21