佐倉です。
本日は、DARwIn-OPのコンピュータ内での処理を分散させる事を考えます。
今までのプログラムでは全てをC/C++で書いていましたが、これをベースに、メタな部分はPython上で動かそうと考えています。
何故そんなことをやるかというと、例えば、これから作っていくボールトラッキングなどの部分は、画像だけを頼りにすると残念な性能しか得られません。具体的には、フィールド上でのボールの座標、速度、加速度などを統合しなければならないと考えています。このように、多量のデータを扱う場合にはC/C++よりもPythonなどの現代的な言語の方が向いています。
というわけで、高速にC/C++のプログラムとPythonのプログラムで通信するためのIPCの手段を模索していました。最終的にはRTMiddlewareやROSの利用も考えていますが、せっかくの初Linuxシステムなので、色々勉強してみようと思います。
というわけで、今日の作業としては、取っ付きやすかった共有メモリでのIPCを行なってみることにし、とりあえずCのプログラムで送受信両側を作って通信ができる事を確認しました。
共有メモリを確保しっぱなしにしないようにシグナル処理をするなど、Linuxらしいプログラミングになってきていて、楽しみながらやっています。
Ctrl-zのバックグラウンドへの切り替えで処理を切り替えるとfgプロセスはその間止まっているなど、基本的な事の勉強にもなりました。
次回はPythonプロセスとのIPCに挑戦してみようと思います。