木工プロジェクト支援ツール「Carpentry Compiler」を開発——手持ちの道具と材料から最適な製造方法を提案
2020/01/09 10:00
ワシントン大学などによる研究チームは、木工プロジェクトを設計する際、ユーザーが利用できる材料と器具に応じて最適化された製造指示を作成できる設計支援ツール「Carpentry Compiler」を開発した。研究成果は、オーストラリア・ブリスベンで2019年11月19日に開催された「SIGGRAPH Asia」において発表されている。
研究グループはまず、Carpentry Compilerのために、HELM(Hardware Extensible Languages for Manufacturing:製造向けハードウェア拡張可能言語)と呼ばれるシステムを作った。HELMは、オブジェクト設計用の高級言語と、製造指示のための低級言語の、2つの異なるプログラミング言語から構成されている。
例えば、45度の角度で切られた木片を作りたい場合、ビジュアル環境で対象物を作成、カットしたい場所に線を引き、コンピューターに「この部分を削除」と伝える。これが高級言語だ。これを受けて低級言語が、「2×4材を取り、切断鋸を持ち、45度に構え、木材を調整し、切り落とす」と、具体的に指示する。
ユーザーが標準的なCADソフトウェアに似た高級言語を用いてオブジェクトを設計すると、コンパイラはユーザーが所持している道具や材料に基づいて、その設計が可能かを検証する。ユーザーが設計を完了すると、コンパイラはさまざまなコストを勘案して最適な製造指示を複数提案する。より少ない材料を使うもの、より正確な道具を使ってより正確に作れるもの、より早く作れるがより多くの材料を使用するものなどだ。
このcompilerは、最適な指示を見つけるために、指示の可能な巨大な組み合わせを検証しなければならない。しかし、製造指示をプログラムのように扱うことで検索を簡素化、有望な候補を絞り込むことができる。テーブルの端をうまく作る方法を見つけるプログラムもあれば、テーブルの脚の作り方を見つけるプログラムもある。こうしたプログラムを組み合わせて全体として最適な案を見つけるのです」と、論文の共同著者でアレン校准教授のZachary Tatlock氏は説明する。
研究グループは、将来的には、木材の木目の方向や特定の種類の道具を使用する際の不確実性を考慮するようにしたいと考えている。そして、木工や3Dプリントを必要とするプロジェクトなど、より複雑なプロジェクトに拡大したいとしている。
(fabcross for エンジニアより転載)