Grasshopper - Rhinoceros plugin
本記事では、Grasshopperとはなんぞやについて記述します。どう使うのか等の実践的な話については、お手数ですが他サイトを確認くださいますようお願いいたします。
Grasshopperとは、3DモデリングソフトRhinocerosのプラグインです。元々はプラグインでしたが、Rhinoceros6からは最初から組み込まれるようになりました。このプラグインを使うことで、アルゴリズムを使って3次元形状を作成したり、シミュレーションが出来たりします。3Dモデリングソフトのプラグインということで、元々デザイナーや建築家等のデザインを専門としている人向けに作られています。そのためプログラミング言語(C/C++, Java, Pythonなど)やスクリプト言語(シェルスクリプトなど)を学ばずとも、アルゴリズムの記述が出来るように作られています。
アルゴリズムの記述は、基本的に用意されている部品をキャンバス上にドラッグ&ドロップしていくことで行います。部品には、数値・テクスチャー・AV・触覚に関連するものがあります。これらを使い、構造物、照明環境やエネルギー消費量の解析などが出来ます。またこうしたビジュアルプログラミングだけでなく、C#やPythonを使って実際にプログラミングを行なうことも可能です。
Grasshopperでのビジュアルプログラミングや作成できるモデルの例は下記の通りです。
またGrasshopper介して、ロボットアームのプログラミングも可能です。GrasshopperのプラグインであるHAL Robotics Framework[6]やTACO[5]、KUKA|prc[10]をインストールすると、Grasshopperは対応するロボットのプログラムを出力できます。なおHAL Robotics Frameworkを使えば、RAPID(ABBのロボット用のプログラミング言語)[7]、KRL(KUKA Robot Language、KUKAのロボット用のプログラミング言語)[8]、UR script(Universal Robotのロボット用のプログラミング言語)[9]それぞれのプログラムを生成することが出来る[6]。もしもOSSとして自分のコードを公開したい場合は、使ったことはないですが、HAL Robotics Frameworkを使うのが一番よいと思われます。おそらくHAL Robotics Frameworkだけだと、その汎用性がアダとなり、痒いところに手が届かないという自体が発生しそうに思えます。そのため、チームとしてロボットを持っている場合は、TACOやKRLなどを使うのがよいと、私は考えます。実際に試したわけではないので、責任は持てません。ご自身で確認いただきたくお願いいたします。
余談ですが、Universal RobotだけGrasshopper用のプラグインを用意していないのが面白い。一応ScorpionというOSSのツールがUniversal RobotのTACO/KRL相当になりそうだが、Universal Robot社独自のツールではない。彼らが軽視をしている訳ではないと思うが、どの様な戦略が隠れているのか気になるところである。
参考文献
[1]www.applicraft.com
[2]Grasshopper - algorithmic modeling for Rhino
[3]Grasshopper 3D - Wikipedia
[4]qiita.com
[5]www.grasshopper3d.com
[6]www.food4rhino.com
[7]RAPID - Wikipedia
[8]KUKA Robot Language - Wikipedia
[9]UR Script: | Zacobria Universal-Robots community - a help forum with hints tips and how to use universal robot CB2
[10]www.grasshopper3d.com
[11]www.food4rhino.com
[12]Webinar: Get to Know the ARCHICAD–Rhino–Grasshopper Connection - GRAPHISOFT Community