関数の作り込み

画像処理アルゴリズムの大幅変更が完了したことを受けて、関数を作り込む。
今までは各色の座標データを構造体として制御関数に投げていたのだが、今回の変更によってこれは実質不可能になった(ロボット5台で各3色、他1色で合計16個の座標を常時保持するため。これまでは4個)そこで、制御関数に投げる変数を中心座標と現在角度のみと、大幅に切り捨ててみた(中心の他に後ろの角度検出座標もあったほうがいい気も…)まずはこの方向で進め、複数台の個別制御を可能にする。
まだ作り込み途中なのだが、結構苦労している。そもそも制御関数が5台分あるのが大変で、当たり前だが、各変数が5つずつ必要になる。これは各ロボットの制御関数を複数クラスに分解して処理を行う方が楽なのか?しかしそれだと各制御関数間でのやりとり(イメージとしてはプロセス間通信か)が面倒になるだけのような気も。
これを踏まえた上で、明日考える課題としては、「5つの制御関数はメイン関数から呼ばれるべきか」という点を挙げておく。制御関数自体は捕捉した座標を代入する関数とは別に実行するのだから、これはまとめてもいい気がする。また、制御関数呼び出し関数(?)を作ることで、これが行動パタン生成のAI的役割を受け持ち、この部分で行動パタンを生成し、そのパタンに合うよう制御関数を呼び出すようにするのがいいのではないだろうか。しかし俺アルゴリズム的にはこの行動パタン生成ルーチンは制御関数とは完全に別ループの非同期式にするべきのような気もしている。これは機械的な制御と、人間的なアーティフィシャルな部分の分離という課題であって、この辺が俺の(研究室的には違う)今年の研究テーマになるのだろうか。すなわち、
「思考ルーチンは制御関数とどう共存するか」
完全な制御の上でこそ、高度な移動計画が可能となるのか…さて、ぐだぐだ言っていても始まらない。実装あるのみ。