• [rcssserver] バックパス判定をRefereeモジュールに移動. (akiyama) 18:40:33

Stadiumクラススリム化の続き. バックパスの判定処理をRefereeに移した. 残るは,FreeKickFault と CatchFault

  • [rcssserver] 乱数のバグを修正. rcssserver-11.0.4をリリース. (akiyama) 18:40:33

浮動小数の一様乱数の生成にバグがあったので修正した.

boost::variate_generator< rcss::random::DefaultRNG, boost::uniform_real<> >
     gen( rcss::random::DefaultRNG::instance(), rng );

↑こんなことになっていたので, ↓こう直した.

boost::variate_generator< rcss::random::DefaultRNG &, boost::uniform_real<> >
     gen( rcss::random::DefaultRNG::instance(), rng );

違いは,テンプレート引数の型. variate_generatorには乱数エンジンを参照渡ししなければならないのに,値渡ししてしまっていた. これが意味することは,一様乱数の範囲が同じなら毎回同じ値が出力されてしまうということ. 例えば,物体の移動時に速度に加わるノイズが常に一定値になってしまう. つまり,一定の割合で同じ方向に引っ張られ続けていたはず.

あぁ,JapanOpenはこれでやっちゃったなぁ.

  • [rcssserver] make -j? 問題解決. (akiyama) 21:16:17

make時に実行するジョブを複数にすると,リンクエラーになる問題が解決した. LDADDの書き方の問題だったらしい.

rcssserver_LDADD = $(LLLIBS) $(PRELOAD_MODULES) \
librcsstimer.la \
librcssclangparser.la \
librcsspcomparser.la \
librcssresultsaver.la \
-lrcsserror \
-lrcssnet \
-lrcssgz \
-lrcssbase \
$(BOOST_FILESYSTEM_LIB)

ではダメで,

rcssserver_LDADD = $(LLLIBS) $(PRELOAD_MODULES) \
-lrcsstimer \
-lrcssclangparser \
-lrcsspcomparser \
-lrcsserror \
-lrcssnet \
-lrcssgz \
-lrcssbase \
$(BOOST_FILESYSTEM_LIB)

と言う風に,-lオプションで指定すればOK. 両者の違いについて,どこかで読んだことがある気がするけど詳しくは忘れた.

これで,以下のような複数のジョブでのコンパイルが可能になった(=portageでmake.confを修正せずにインストールできるようになった).

$ make -j3

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-03-14 (月) 14:51:37 (1344d)
SourceForge.JP
Creative Commons License
RoboCup tools by Hidehisa Akiyama is licensed under a Creative Commons 表示-非営利 2.1 日本 License.