Arduino Unoボードは計算上どのくらい強力ですか?


8

UnoのようなArduinoボードは本当に何ができますか?もちろん、2つのサーボを制御するような単純なことは非常に簡単です。しかし、UnoボードがモバイルロボットのKinectセンサーから収集された点群データからリアルタイム3D SLAMを実行できるとは思いませんか?ロボットがまったく速度を持っていた場合、Arduinoは追いつくことができませんでしたね?移動中に2D SLAMを実行して、追いつくことができますか?Kinectセンサーからポイントの1/10を取り、それらのみを処理するのはどうですか?

基本的に、そのようなArduinoボードのリソース制限の例は何ですか?

回答:


6

それは、機能マップ内のランドマークの数、および速度のためにアルゴリズムを調整するために費やす時間、および特定のアプリケーションで制御できるかどうかに関係なく、他の多くのパラメーターに依存します。

編集:思考実験として、いくつかのコーンが設置されたジムの床の中心など、非常に工夫された環境で非常にシンプルなほぼリアルタイムのSLAMを実行するには、理論的に十分強力であると思います。Kinectから1本のスキャンラインを取得し、低解像度の2D内部マップを更新し、定期的に(たとえば10秒ごとに)更新します。

Unoの2K RAMはおそらく取引ブレーカーですが、Megaは十分(8K)であり、520Kにアップグレードするためのハックがあります。

実際には、8ビットプロセッサで浮動小数点行列計算を行うことはお勧めできません。


さて、あなたはArduinoで2D SLAMを試すことさえ少し難しいだろうと言っています。ありがとう。
golmschenk

6

Arduinoは、常に力不足に陥っています。

1つのarduinoの価格でstm検出または他のARMベースの開発ボードのスタックを取得できます。これらのボードはそれぞれ、arduinoよりも桁違いに強力です。

arduinoの普及はまた、もっとよく知られているはずの多くのプロジェクトの妨げにもなっています。Quadrotorの安定化とReprapスタイルのGコード実行は、Arduinoがその機能をはるかに超えて強制されてきた2つの主要な領域であり、それが示しています。(ardrupilotプロジェクトには3つの arduino が必要です。)

うまくいけば、teensy / due / leaflabsがARM開発をよりフレンドリーにするのに役立つでしょう。スムージー、openpilotなどの多くのより新しい/より良いプロジェクトもジャンプをしました。


1
間違いなく同意しました!古い電気店のヴィンテージ1980でシンプルなロボットアームを購入しました。コントローラは19 MHzで、Arduinoの16、RAMの3倍です。1980年から!悲しいことに、人々は小さな青いボードの魅力に反応します。ArduinoはJavaに似ています-それが何であるかについてはクールですが、何らかの理由でパワー不足で使いすぎです。
クリス

@Chris、公平に言えば、1980年のロボットアームの価格はたったの$ 24であるとは思えません(今日でも、完全にジャンクではない安いものを見つけるのは困難です)。私はまた、それが巨大なコミュニティーユーザーとそれに利用可能なフリーソフトウェアの膨大なライブラリーを持っていたことを疑います。ハードウェアの価値には、クロック速度とメモリだけではありません。多くの製品は、たとえ技術的に優れていたとしても、十分に使用されていなかったために高額だったために失敗しました。
Cerin、2015

4

Arduinoのマイクロコントローラー未加工の仕様では、クロック速度が16または20 MHzと高く、1990年代中期のIntel 386コンピューターの速度とほぼ同じです。

これは、浮動小数点演算をネイティブでサポートしていないという事実、つまりほとんどのCPUを比較する「FLOPS」測定を検討するまでは、有望に思えます。Arduinoの速度を約60 kFLOPSで計算するarduinoデモをいくつか見ましたが、20 MHzのIntel 386は170 kFLOPSのようなものです(このページによると)。

また、Arduinoは8ビットの計算を行い、386は16ビットと32ビットの計算を行うことに注意してください。DSPボードはその種のデータ収集により適しているかもしれませんが、私はそこに助言する立場にはありません。

Arduinoのような制約された環境でコードを機能させることは可能かもしれませんが、多くの最適化が必要になります。より強力なCPUを使用してこれらのアルゴリズムを実装することで、より良いサービスが提供されます。彼らは、強力なCPU上で動作していることを確認し、その後弱いCPU用に最適化することを試みます。


しかし、覚えておく必要があるのは、Apple IIには6502(8ビット、1 MHz)と16KのRAMがあったことです。AppleSoft BASICは浮動小数点であり、その「キラーアプリ」はVisiCalc リンクでした。ハードウェアが限られている場合は、それで十分です。(そして業界全体がその背後にあります)
ポールウィリアムズ

1
マイクロコントローラとマイクロプロセッサを比較しています。386には、6チャネルPWMハードウェアジェネレーター、ADC、アナログコンパレーターがありません。また、誰かが高い浮動小数点スループットを必要とする場合、おそらくFPUを備えたユニットを使用しますが、浮動小数点を必要としない多くのプロジェクトを作成しましたが、これは最適化の問題です。ATMegaは20MHzでほぼ20MIPSになり、386は33MHzで9.9MIPSになります。
ディエゴCナシメント2014年

1
この質問はSLAMに関するものであるため、FLOPSはこれら2つの処理ユニットの比較に使用する唯一の関連メトリックです。
Ian

2

Arduino Uno以下の価格で、最近の代替品は$ 12.99のTI Stellaris Launchpadです(世界規模のFedExを含む):ROMに常駐するStellarisWareと呼ばれる優れた組み込みライブラリセットを備えたArm Cortex M4-フラッシュおよびRAMは、アプリケーションで使用できるように解放されています。

Arduino Unoよりもはるかに高い計算能力ですが、これまでのところ、Arduinoが獲得したユビキタスコミュニティの参加はありません。


1

ArduinoがRaspberry Pisを使用しているため、今ではパワー不足に見え始めているのは事実ですが、アプリケーションに依存していると思います。コードが本当に簡単で、新しいコードをフラッシュするのが本当に簡単で、新しいセンサーを接続するのが本当に簡単なので、私はarduinoが好きです。私はkinectやwebcamのようなビジョンアプリケーションには使用しませんが、サーボと話すよりもはるかに多くのことができます。良い例は、セグウェイタイプのアプリケーションです。arduinoは、加速度センサーと通信したり、3D空間計算を行ったり、サーボと通信して物事のバランスを保つのに最適です。


ここでリンゴを比較し、UnoのATMegaチップを他のマイクロコントローラーと比較することが重要だと思います。Raspberry Piの700MHz ARMはオレンジです。そうは言っても、Arduino Due / LeafLabs MapleのARM Cortex-M3チップやDigilent chipKITボードのPIC32チップなどはすべて、同じプログラミング環境で計算的にUnoを完全に解き放ちます。
Joe Baker
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.