2016年10月11日火曜日

【Book】Programming Robots with ROS CHAPTER20 【その4】rostest

こんばんは。

子供の運動会で気づいたら寝落ち。。
おっさんは体力が落ちるんだなー、ということを実感しました。。

前回の続き、そろそろchapter20を読み終わりたい。


Testing a Many-Node System: rostest

・ROSに限らずテストするときは標準的なフレームワーク使いましょう(noseやGoogle Testなどなど)
・これらは単独でのテストには素晴らしく使えるけど、ROS system全体向けにはちょっと厳しいので、rostest を使いましょう。

【使い方】
・roslaunchの拡張で、テストプログラムに関する情報を<test>タグを使って追加しましょう。
例: <test test-name="test_talker" pkg="basics" type="test_talker.py" / >

・roslaunchとの違いは、test nodeを追加でlaunchして、残りのノードが正しく動くか試して、結果を出力する。

【補足】
<test>タグを複数launchファイル内に記載した場合、rostestは順番にそのtestを実行する。その際に、毎回環境をクリーンしてから次のテストを実行するとのこと。

【サンプル】
・テスト用にunittest, rostest, timeをimport。
・"chatter"にSubscribeし、10秒以内に所定の文字列を受信したらテスト成功。
・callbackで文字列受信("hello world")したら内部のフラグをtrueにする。
・テストの実行はrostest.rosrun()で行う。

簡単なサンプルが書いてあって、どう書けばいいか参考になりました。

続きのIntrospection: rosnode, rostopic, rosmsg, rosservice and rossrv について途中までメモ書いてみたけど、意外とまとめるのがめんどくさそうなのでまた後日。

全然関係ないですが、幼稚園児が左の鼻から鼻水、右の鼻から鼻血を同時に出していて(器用!)、まだまだ自分も精進が足りないな、と思いました。


0 件のコメント:

コメントを投稿