gggggraziegrazie

graizegrazieさんのやったこと、学んだことを記録する雑記帳です

Grasshopper - Rhinoceros plugin

本記事では、Grasshopperとはなんぞやについて記述します。どう使うのか等の実践的な話については、お手数ですが他サイトを確認くださいますようお願いいたします。

Grasshopperとは、3DモデリングソフトRhinocerosプラグインです。元々はプラグインでしたが、Rhinoceros6からは最初から組み込まれるようになりました。このプラグインを使うことで、アルゴリズムを使って3次元形状を作成したり、シミュレーションが出来たりします。3Dモデリングソフトのプラグインということで、元々デザイナーや建築家等のデザインを専門としている人向けに作られています。そのためプログラミング言語C/C++, Java, Pythonなど)やスクリプト言語シェルスクリプトなど)を学ばずとも、アルゴリズムの記述が出来るように作られています。

f:id:graziegrazie:20181026171759p:plain
Fig. Grasshopperのアイコン[12]

アルゴリズムの記述は、基本的に用意されている部品をキャンバス上にドラッグ&ドロップしていくことで行います。部品には、数値・テクスチャー・AV・触覚に関連するものがあります。これらを使い、構造物、照明環境やエネルギー消費量の解析などが出来ます。またこうしたビジュアルプログラミングだけでなく、C#Pythonを使って実際にプログラミングを行なうことも可能です。

Grasshopperでのビジュアルプログラミングや作成できるモデルの例は下記の通りです。

f:id:graziegrazie:20181026035427p:plainf:id:graziegrazie:20181026035434p:plain
出典: [4]

また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社独自のツールではない。彼らが軽視をしている訳ではないと思うが、どの様な戦略が隠れているのか気になるところである。