TurtleBotの状態を調べる

ロボットが動かない間はとても不安なものだが、一度動作させられると途端に楽しく夢が広がる。
ROSはwikiのドキュメントシステムが充実していて素晴らしいのだが、現状とあっていない場合もしばしばあるので、あまり鵜呑みにするのは怖い。あれだけの情報量だから仕方ないところもあるが。流れているメッセージをうまく捉えれば、それが解決の端緒となることも多い。
前回の記事では何とか接続ができているような様子だったが、TurtleBotを文字通り動かすことができていないので、何となく不安が残る。今日はそれを解消するためにいろいろ実験を行ってみた。
まずは、USBなど接続を確認した後でTurtleBot本体だけを動かすシステムを起動する。
roslaunch tutlebot_bringuup minimal.launch
さまざまなプロセスが起動したというメッセージの中でいくつかの警告が現れる。
[WARN] [WallTime: 1352644359.480259] Create : robot not connected yet, sci not available
TurtleBotの接続がされていても2、3回は上記メッセージが表示される。いずれ消えるのでこれは無視してよいようだ。
[WARN] [WallTime: 1352644359.951470] Battery : unable to check laptop battery state [[Errno 2] No such file or directory: '/proc/acpi/battery/BAT0']
ノートPCのバッテリー状態を監視するために、/proc/acpi/battery/BAT0 を参照するが、ubuntu 12.10で/sys/class/power_supply/BAT0に変わったらしい。しかし内部の形式も異なるのでどうにもならないようだ。とりあえず無視する。
[ERROR] [WallTime: 1352644430.487165] Faild to cotact device with error: [Error reading from SCI port. No Data.]. Please check that the Create is powered on and that the connector is plugged into the Create.
USBケーブルが外れていたりTurtleBot本体の電源が入っていないときに生じるエラーで、状態が改善しなければ繰り返し表示される。接続して電源を入れればいずれ出なくなる。
何も新たなメッセージが出なくなれば一応接続は問題ない。ただしちゃんと動いているのかわからないので、ROSのメッセージを受信してみてきちんと動作していることを確かめる。
別にshellを開くかモニタ用のPCで以下のコマンドを入力する。
rostopic list
おそらく以下のような30行ほどの出力が得られるはずで、これがminimal.systemで利用できるさまざまなトピック(Topic)の一覧である。トピックはROSのノード間でやりとりされるデータのチャネルのようなもので、トピックごとに流れるデータの種類や頻度が異なる。
/cmd_vel_mux/active
/cmd_vel_mux/input/navi
/cmd_vel_mux/input/safety_controller
/cmd_vel_mux/input/teleop
/cmd_vel_mux/parameter_descriptions
/cmd_vel_mux/parameter_updates
/diagnostics
/diagnostics_agg
/diagnostics_toplevel_state
/joint_states
...

上のリストのうち、/diagnostics_aggは、diagnostic_aggregatorスタックのaggregator_nodeノードがPublishするトピックで、ロボットのさまざまな状態を1秒ごとに発信する。
rostopic echo /diagnostics_agg
TurtleBotとの接続を確認するために、上記のコマンドを入力してこのトピックをSubscribeし、ロボットの状態を調べることができる。表示される情報は膨大だが1秒ごとにデータが更新されるならロボットとの通信はうまく機能していることがわかる。
以下は一部のデータだが、ロボットのバッテリー状態がわかる。
level: 0
name: /Power System/Battery
message: OK
hardware_id: ''
values:
-
key: Voltage (V)
value: 15.251
-
key: Current (A)
value: -0.111
-
key: Temperature (C)
value: 31
-
key: Charge (Ah)
value: 1.985
-
key: Capacity (Ah)
value: 2.702