昨日までに作った、C++からALDialogモジュールを使用する一連の作業をロボット上で確認した。いくつか問題が生じた。
(0)モジュールはリモートでも、トピックファイルはロボット上に置かなければならないことがわかった。
(1)今までの呼び出し手順に、ALDialogプロキシから、subscribe("モジュール名")の呼び出しを追加しなければならないことがわかった。いままでは、基本的に、
ALDialogのインスタンス作成
言語の設定
トピックのロード
トッピックの有効化
の手順だったが、言語設定とロードの間に、subscribe("モジュール名")をはさむこと。これによってモジュールの機能がスタートするらしい。
(2)もう一つは、いままでは、三つのトッピックファイルについて、一つずつ、ロードしたら有効化していたのだが、コンパイルから有効化の間に、ログに訳の分からないエラーが出てくる。そこで、まず、三つのトピックファイルを一挙にロードし、コンパイル用に1秒のsleep関数を挟み、次にすべてを有効化する手順にしたら、エラーが消えて、ロボットがトピックファイルに従って返事をするようになった。このあたりになるとほとんど裏技である。
以上は、解決した問題なのだが、未解決の問題。
(3)ロボットの座る立つの動きがぎこちなさすぎる。言葉に従って、動作はするのだが、動きの途中で、素早すぎる動きがわずかに挟まれ、おかしい。原因不明。動きを0.5など、遅くしているのが原因かもしれない。
(4)最後の、坐れなどの動作のあとに、トピックファイルに仕込んだ、変数変化のイベントをコールバックすることがうまくいっていない。