banner
ホームページ / ブログ / デレク・シュルテ:3Dプリンターのパスプランニング
ブログ

デレク・シュルテ:3Dプリンターのパスプランニング

Jun 21, 2023Jun 21, 2023

[Derek Schulte] は消費者向け 3D プリンターを設計、販売しており、それが彼にプリンターの仕組みについて多くの洞察を与えてくれました。 彼のプリンターである New Matter MOD-t は、現在使用している 3D プリンターとはいくつかの点で異なります。 最も興味深いのは、ステッパーの代わりに閉ループ フィードバックと DC モーターを使用し、多くのプリンターを実行している栄光の Arduino Uno の代わりに、かなり強力な 32 ビット ARM プロセッサを使用していることです。

これらの選択の 1 つ目は、[デレク] が独自のモーター制御および経路計画ソフトウェアを作成する必要があることを意味し、2 つ目は、それをバックアップする処理を備えていることを意味します。 講演の中で、彼はどのようにして経路計画システムを開発したのか、そしてそれがどのように機能するのかについて詳しく説明しています。 物理的なプリントヘッドが勢いに乗って、G コードで指示されている無限に鋭い角をどのように作るかについて真剣に考えたことがあるなら、この話はあなたのためのものです。 (ネタバレ: 物理法則に違反するものではなく、曲線を通過するには数学が必要です。)

パスの計画は 3D プリンター自体の内部で行われます。 受信した G コードを 3D プリンターのファームウェアが処理し、それを X、Y、Z 軸に沿ったモーターや押出機の物理的な動きに変換します。 G コードは普遍的ですが、非現実的でもあります。4D 空間内の一連の点 (押出機、覚えていますか?) と、そこに到達するために必要な速度を指定します。 パス プランニングでは、物理プリンターのモーション コントロール能力の知識を融合し、時間をかけずに、最終結果を合理的に可能な限り G コードと一致させようとします。 理想的な G コードと実際のプリンターの間のインターフェイスであるため、計画ファームウェアは、プリンター自体の設計を、物理的な制限をすべて考慮に入れる必要があります。

アンオブタニウム、ドラゴンの鱗、そして 1 年分の週末の無償労働力を使って、自分だけの 1 回限りの 3D プリンターを作ることができます。 しかし、一般向けに手頃な価格で販売する製品を作りたい場合は、汎用部品を使用して構築され、堅牢に動作する必要があります。 これが、[Derek] が、他のほとんどの 3D プリンタで使用されている、広く普及しており、重く、比較的高価なステッピング モーターの代わりに、エンコーダー付きの DC モーターを使用するように駆り立てた理由です。 開ループ フィードバックで DC モーターを駆動するということは、「標準的な」プリンター ファームウェアがどれも機能しないことを意味しており、独自のファームウェアを作成する必要がありました。 これが、A から C まで、B の角を曲がったところに、できるだけ早く正確に到着することについての話です。

「秒速 50 mm で北に進み、秒速 50 mm で西に進む」という G コードを機械の動きに変える方法はいくつかあります。 1 つは、全速力で北に向かい、急停止してから全速力で西に走り出すことです。 これは、DIY 3D プリンターのファームウェアの初期バージョンで行われたことです。その結果、ノイズやプリント ヘッドの振動が発生し、印刷品質が低下しました。 醜い時代だった。

[Derek] と grbl のパス プランナーは、次に最も複雑な解決策を選択しました。つまり、パスの各セグメントを一定の加速度で移動し、台形の速度プロファイルが得られます。 これは実際にはうまく機能し、計算も簡単であることがわかりました。 [Derek] はルーチンに角の丸めを追加しました。G コードが鋭い角を作るように指示した場合、ファームウェアは見栄えが悪くならない程度に近い曲線の角を描きますが、ノズルの速度を遅くする必要もありません。停止に。 基本的に、この 2 つを組み合わせるのが、うまく機能する最も単純な解決策です。

次のステップは、いくつかのセグメントを接続することですが、これにより、パスの終点で、またはユーザーが一時停止ボタンを押したために、プリンターが最終的に停止します。

ほとんどのステッパー駆動 3D プリンターは、開ループ制御モードで動作します。 ファームウェアはステッピング モーター ドライバーに 10 歩前進するように指示し、最善の結果を期待します。 プリンターがステップを失うと、レイヤー同士の位置がずれます。印刷の途中でこれが壊滅的に起こったことがあれば、これがなぜひどいことになるのかがわかるでしょう。

[デレク] のプリンタは閉ループ モードで動作します。つまり、プリントヘッドがあるべき位置より南にありすぎると、ファームウェアがそのことを認識し、モーターにさらに電力を供給して正常な状態に戻すことができます。 繰り返しますが、[Derek] は、機能する可能性のある最も単純な方法の 1 つである、フィードフォワードを使用した PID 制御を選択しました。 もちろん、これはマシンに合わせてアルゴリズムを調整することを意味しますが、適切に調整された PID アルゴリズムは見ていて楽しいものです。

また、閉制御ループにはさらなる利点があります。 ステッピング モーターは、恐ろしいステップミスを避けるために過剰な仕様にする必要がありますが、閉ループ DC モーターはより低いトルクで十分に対応できます。 しかし、[Derek] がフィードバックを使って行う最もクールなトリックは、モーターの失速を検出してプリンターをホームに戻す機能を利用することです。 3 つの物理軸にはリミット スイッチはありません。 代わりに、モーターが移動能力の限界に達すると、ファームウェアは失速を検出し、これを使用して座標軸をゼロにします。 これにより部品点数が減り、装置が簡素化される。 私たちは皆それを支持しています。

[デレク] は、私たち全員が使用しているのと同じツールで動作計画ルーチンを設計し、基本的にうまく機能する最も単純なアルゴリズムを使用し、それ自体のために「学術的な」複雑さを回避しました。 最終的に、これにより彼は速度を最適化し、15 歩先を見据え、非常に短いセグメントを処理するためのロジックなどの必要な特別な調整を組み込み、手頃な価格で製品を世に出すことができました。 閉ループ システムでのモーション プランニングと制御は決して単純ではありませんが、「可能な限り KISS 原理を適用し、後でパフォーマンスを調整する」ということは、私たちハッカーなら誰でも、身体の適切な長さの部分にタトゥーを入れることを我慢できるものです。身体。 さらに良いことに、思い出させ、模範を示してくれた [デレク] に感謝しましょう。