ロボティクスは、複数の分野からの設計原理を融合させる、信じられないほど興味深い分野の一つです。例えば、機械学習/AI、エッジコンピューティング、コンピュータビジョン、モータ制御、センサ融合、無線通信などがあります。これらのアプリケーションの中心には、MCU、SoC、FPGAなどの処理ユニットと、それを動かすファームウェアがあります。
ロボティクスシステムの設計を始めたばかりで、MCUを使ってみたいと考えている場合、ロボティクスアプリケーションに最適なMCUを探し始めているかもしれません。ロボティクスシステムのすべてに客観的に最適なMCUはありませんが、ロボットの種類によって重要な仕様があります。小型ロボットに一般的なMCUと、MCUを選択する際に注意すべき仕様について見ていきましょう。
ロボティクスに最適なMCUは一つではありませんが、異なるタイプのロボットには特定のMCUが適しています。それはすべて、MCUの仕様をシステムまたはサブシステムの要件に合わせることにかかっています。アプリケーション用のMCUを選択する前に、次のような質問を自問自答する必要があります:
システムマスターまたはサブシステム? センサーや周辺機器が限られたシンプルなロボットを設計している場合、単一のMCUで仕事ができます。シングルボードコンピュータ(SBC)(Raspberry PiやBeagleBoneが人気の選択肢です)を使用することもできます。ロボティクスシステムのマスター部分を設計している場合、SBCを使用する方が簡単かもしれませんし、サブシステムはより小さなMCUを使用できます。
必要なI/O数とインターフェース。 ロボットの周辺機器やモータ制御とMCUがどのように通信するかによって、そのI/O数と利用可能な低速/高速インターフェースを確認する必要があります。
クロック速度。 ロボットがデバイス上でより多くのデータを処理する必要がある場合、これはより重要になります。現在、組み込みデバイスはデバイス上で単純な計算のみを実行し、残りはクラウド環境で実行されます。単純なMLモデルは高速なMCUで実行できますが、より強力なものを使用すると(以下を参照)、より多くの計算リソースを得ることができます。
SDKと開発者サポート。 MCUをプログラムする必要があるので、選択したコンポーネントにはメーカーから提供されるSDKが必要です。開発中にアプリケーションをテストするために、開発ボードを購入するのも悪くありません。
無線機能。 あなたのロボットは、WiFi、Bluetooth、LoRaWAN、またはその他のプロトコルを介してより大きなネットワークとインターフェースする必要があるかもしれません。一部のMCUには、これらおよびその他のプロトコルで動作するために必要な統合トランシーバが含まれています。
上記の要件のいくつかまたはすべてを満たすMCUの範囲があり、多くはメーカーやオープンソースコミュニティからの開発者サポートのさまざまなレベルを提供しています。Arduinoは、よりシンプルなロボット用のMCUボードのラインとして、おそらく最も人気があります。Arduinoボードや特定のMCU用の開発ボードは、カスタムハードウェアを設計しながらアプリケーションの開発を始めるのに良い場所です。
EspressifからのESP32 MCUは、シンプルなロボティクスシステムに最適な選択肢です(ここに示されているのは開発ボードです)。
ロボティクス用に特別に宣伝されているコンポーネントは多くありませんが、主にその業界がまだ成長中であるためです。しかし、自動車や産業自動化用に市場に出されているMCUや他のプロセッサは、ロボティクスに使用するのに理想的です。これらのアプリケーション向けのコンポーネントは、高い信頼性基準で作られ、ロボティクスシステムに理想的な安全機能を含んでいます。
限られた数のセンサーやサブシステムを持つ比較的シンプルなロボットを設計しているのでなければ、システムを制御するために単一のMCUを使用することはありません。他のMCUがさまざまなサブシステムの制御と処理能力を提供するために関与します。サブシステムだけでなく、システム全体を設計している場合、他のサブシステムからデータを受け取り、コマンドと制御機能を提供するマスターMCUを選択する必要があります。商業的に実行可能なアプリケーションでは、MCUを全く使用しない可能性があります。それらは単純に必要な計算能力を提供しません。
SRAMベースまたはFlashベースのFPGAはMCUの代替品の一つであり、外部通信ポートを通じて必要に応じて再プログラムできます。FPGAは高いI/O数と高速クロックを持っているため、他のサブシステムから受け取ったデータの高レベル処理に適しています。例として、Xilinxはロボティクス用に特別に開発されたFPGAのラインを開発しましたが、これらは高価であり、高レベルの処理と制御に最適です。
XilinxのXC7Z030-1FBG676Cは、ロボティクスシステム専用に設計されました。このコンポーネントには複数の高速インターフェース(CSI、PCIe、DDR)が含まれ、最大1 GHzで動作します。
高レベルの処理能力にFPGAやMCUの代わりに使用するもう一つの素晴らしい代替品は、Texas InstrumentsのSitaraプロセッサラインのようなMPUを使用することです。Sitaraラインには、複雑なロボティクスシステムに必要な高レベルの処理能力を提供するさまざまなオプションが含まれています。このラインのMPUは最大1.5 GHzで動作し、シングルボードコンピューターで期待される複数の高速インターフェースを含んでいます。また、比較可能なFPGAよりも価格が低くなっています。
Texas InstrumentsのAM3352BZCZ080用のコンピュータオンモジュール。
ロボティクスのサブシステムにおける処理能力のもう一つの選択肢は、特にコンピュータビジョンや機械学習/AIアプリケーションを統合するために、GPUです。私の意見では、NVIDIAのJetsonプラットフォームがこの分野でトップの位置を占めており、すでにAIアプリケーション(物体識別、画像セグメンテーション、物体追跡など)に関わるメーカーコミュニティで人気があります。また、Jetsonプラットフォームを始めるためのサポートも、オープンソースコミュニティから豊富に提供されています。
どんなロボットも、電力調整から無線通信まで、さまざまなサブシステムが必要になります。大型および小型のロボットのサブシステムにおいて、おそらく必要となるその他のコンポーネントは以下の通りです:
ロボティクス産業が成熟し、特定のアプリケーションが際立ってくるにつれて、主要なコンポーネントメーカーによってFPGAベースでないSoCがリリースされることでしょう。ロボティクス用の新しいSoCがリリースされると、Octopartは必要なコンポーネントを見つけて購入するお手伝いをします。
ロボティクス用の最適なMCUやその他の必要なコンポーネントを探している場合は、Octopartの高度な検索およびフィルタリング機能を使用してみてください。Octopartの電子部品検索エンジンは、完全な電子部品調達およびサプライチェーン管理ソリューションを提供し、ライフサイクル、仕様、価格によって検索結果を簡単にフィルタリングできます。当社の集積回路ページをご覧ください、ロボットに必要な処理能力を見つけるために。
最新の記事をチェックするには、ニュースレターに登録してください。