2012年9月21日金曜日

Developing Robots on Raspberry Pi
 Raspberry Piを使ったロボット開発の考え方


I use Raspberry Pi as robot controllers based on Robot Distributed Computing System  (RDCS). RDCS is an architecture to develop a robot system efficiently and simply.
An agricultural work is a combination of variety of tasks. In large farms, only one robot cannot execute many agricultural tasks. Therefore, we have to control many robots and sensors. For this purpose, we designed  RDCS that is a new robot system architecture. RDCS offer one cohesive integrated control for robots, sensors and variety  of agriculture informations.
RDCS have a databese called 4DS.  4DS is a 4 Dimension database. 4 Dimension data is a very important data for agriculture. 4DS  manage   variety information to require for agricutural production . For example,  geospatial data, growing data, cost data, other many data.
Robots use 4DS information as self-control data, and store a variety of data that is scanned  by robots in work.


Raspberry Pi は、いろいろな所で取り上げられているので、ここでは私のrobot開発における利用方法の概要を記述します。

私のロボットは、「分散コンピューティング上にハードウェアを置く」と、いう考え方で作っています。
これは、これまでのハード中心のロボット作りとは、考え方がまったくことなります。しかし、実際の農場での運用を考えると、そのような考え方に立脚しないと展開できないと考えています。robotが、単機能として物を運ぶ、果実を収穫すると言うのは、大事な機能です。しかし、農場では様々な仕事があり、かつそれぞれの仕事が連動しています。そのような状況のなかで、複数のロボットやセンサーなどを使う為には、全体を統合的に制御できるarchitectureが必要になります。

その分散コンピューティングのノードコンピュータとして、Raspberry Piを位置づけています。これまでは、H8などのマイコンボードをLegacy PCで制御するような構造になっていたと思います。マイコン+Legacy PCをRaspberry Piで置き換える考え方です。それにより、ロボット開発には多くのメリットがあります。軽量化、原価低減、電源の最小化などなど多くの効果が期待できます。これまでも、ARMベースの低価格コンピュータが販売されていましたが、一気に1/3の価格になってしまいまいた。また、GPIOがあるのでデバイスに直接につなげます。
ロボット開発において、軽量化は大変重要です。私は、これまで、Dell mini9を使っていましたが、それにしても2Kg程度あります。それがバッテリー込みで、500g位になります。収穫用のactuatorは、ロボットシステム全体からみると、ひとつのApplicationとして独立していますが、Actuator専用にRaspberry Piを割当てる事も容易にできます。

システム構造です。まだ、案レベルで、実装しながら変更します。
上の図は、私のRobot Distributed Computing Model (RDCM)の構造図です。
この構造モデルに従って、全ての機能が実装されます。この図では、ControllerにARMのCPUを使うこと以外は、デバイスの規定はありません。従って、柔軟に組合わせることができます。
また、このArchitectureでは、他のコンピュータシステムと連携させることができます。例えば、農業生産管理システムとの連携も、簡単にできます。distributed computingモデルを基本にしているという事は、そのような意味です。
これまでの、ロボットは、ロボット中心の考え方をしていますが、私のロボットは、業務で人間と同等の役割を担う事を前提にしています。従って、role-definitionがあります。それらを延長した形で、私のロボットはWork Control Definition(WCD)に基づいて動きます。

温度センサーにしても、「温度を計測する」roleに基づいて役割を実行して、全体業務に貢献します。これは、別な意味で重要で、定義された役割を実行するので、それは、同一の経営体のなかであれば、どこでもいいわけです。もちろん、そのための作り方はあるわけですが、STMの評価ボード、XBee、温度センサーと単三電池を組みわせれば良いだけです。市販のおんどxxなどに比べれば、格安にかつ自由度の高い構成がとれます。

Raspberry Piは、そのような中で、Nodo Computerとして重要な役割を担っています。しかし、Raspberry Piがないと動かないわけでありません。

私のように、640KBの世界で3D-CADプログラムを開発していた人間から見れば、256MBのメモリーの世界は、はかりしれない可能性を持ちます。

人は、欲張りになりすぎました。これはコンピュータの世界だけでなく、全てす。
もっと、Simplifyに、構造化して認識することが大切です。

Simplify、いい言葉です。
ところで、Raspberry PiのOSは、Arch Linuxです。SimplifyなOSです。私は、Raspberry PiでGUIは使いません。Raspberry Piにはその必要性がありません。画像を見たければ、distributed computing上のAndroidで見れば十分です。
Simplifyです。


0 件のコメント:

コメントを投稿