Коли FPGA повинні використовуватися в робототехніці?


12

FPGA має хороші моменти, такі як багато точок вводу-виводу, але знову ж таки, вам потрібно думати про речі на дуже низькому рівні з відкидними пальцями та піонерами в тих областях, де все ще не дозріло - наприклад, дивіться це питання тут щодо інструментів розвитку на FPGA - це я зараз розумію! Тепер FPGA використовується для створення чудової спритності в робототехнічних руках, як тут . Зараз деякі люди продають FPGA для швидкого складання прототипів та проектів "в перспективі", як тут , я не повністю їх розумію: якщо вам не потрібно багато точок вводу-виводу для таких речей, як датчики, навіщо вибирати FPGA для робота? Так

Коли FPGA слід вибрати для проекту з робототехніки?


Якщо вам потрібен паралелізм, то є сенс використовувати FPGA, як ви могли цього досягти. Крім того, ви можете налаштувати власний "чіп-дизайн" та "легко" оновити деякі функціональні можливості без нового апаратного чіпа. Я бачив приклади багаторазового виявлення об'єктів з камери в режимі реального часу. Напевно, це накладні витрати для менших проектів.
Gossamer

Відповіді:


4

Я не впевнений, що у зв’язаному питанні про інструменти розвитку змушує вас думати, що вони не зрілі. Це правда, що більшість з них є власником і не є відкритим кодом. Але я подумав, що інструменти досить зрілі, навіть коли це питання було задано три роки тому. Сьогодні Xilinx , Altera та Lattice мають вільно доступні середовища розробки, які працюють на Windows та Linux із підтримкою 32 та 64 біт. Якщо ви наполягаєте на відкритому коді, Icarus Verilog може зробити небагато. Але я особисто дотримуюся конкретних інструментів продавця.

FPGA - це не просто купа настроюваних шльопанок. Розглянемо Altera NIOS II . 32-розрядний процесор з основними програмами, здатний працювати з Linux. Змішуйте і співставляйте комунікаційні та інші периферійні пристрої від OpenCores або від Xilinx , Altera або Lattice, і ви створили спеціальний мікроконтролер з усім необхідним і нічого, що вам не потрібно. Ви навіть можете написати код C для процесора NIOS II і мати певні функції, реалізовані безпосередньо в апаратному забезпеченні FPGA, якщо вам потрібна швидкість. Це досить високий рівень для вас мислення?

FPGA мають високу початкову інвестиційну вартість. Але дешевше і простіше додати функціональність пізніше в процесі проектування. Ось що мається на увазі під «перспективним» дизайном. Розгляньте проект, де ви хочете додати кілька робочих двигунів до свого робота, але у вас не вистачає генераторів ШІМ на мікроконтролері. Що ти робиш? Додати ще один мікроконтролер? Купуйте окремі PWM мікросхеми та підключаєте їх до комунікаційного інтерфейсу? Що робити, якщо використовуються всі ваші комунікаційні інтерфейси? З FPGA це зводиться майже повністю до операції копіювання та вставки. Набагато простіше, дешевше і швидше масштабувати дизайн, включаючи нові функціональні можливості, не купуючи стільки додаткового обладнання з FPGA.

Але, мабуть, найбільшою причиною використання FPGA є швидкість. Я не кажу про чисту тактову частоту. Але коли потрібно одночасно багато чого. Як згадував Госсамер, паралелізм - це те, в чому FPGA справді хороші. Дизайн фільтрів особливо виграє від цього виду паралельної архітектури. Якщо вам потрібно відфільтрувати та реагувати на швидкозмінний датчик, тоді вам потрібна FPGA. Вони також дуже хороші в обробці відео, оскільки це теж виграє від паралельної обробки.

Візьмемо для прикладу цього швидкісного ручного робота . Для цього потрібно обробити відео з високошвидкісної (1000 кадрів в секунду) камери машинного зору, а також тактильних датчиків і реагувати, маніпулюючи численними приводами всього за кілька мілісекунд. Цей тип проекту - це коли потрібно вибрати FPGA.

масово паралельна обробка зору


Чи можете ви пояснити це, "у ПЗІГ є висока початкова вартість інвестицій." Тут пов'язано : ціни виглядають дуже низькими. Ви маєте на увазі високу вартість навчання чи якусь іншу цифру?
hhh

1
@hhh Я не говорив про вартість сировинних чіпів. Я говорив про вартість розробки. Розглянемо набір для розробки мікроконтролерів, такий як у PandaBoard . Містить ARM Cortext A9 за $ 181. Плата розробки FPGA, яка вміщує A9, такий як Cyclone V, становить 1099 доларів.
embedded.kyle

@hhh Є, звичайно, дешевші набори для розробки FPGA. Але я намагався знайти якийсь показник, за допомогою якого можна порівняти дві речі, які так відрізняються. Таким чином, набір для розробки, який має (дуже) приблизно однакову потужність обробки, приблизно в 10 разів більше.
embedded.kyle

@hhh Найдешевший ARM на Mouser - 0,80 долара . Найдешевша FPGA - $ 2,80 .
embedded.kyle

2
@hhh Ця рука є передовим дослідженням, ймовірно, десятками, якщо не сотнями тисяч доларів користувальницького обладнання, яким воно працює. Загалом, обробка відео має тенденцію до вищого рівня. Дивіться тут і тут . І, ймовірно, жоден не міг обробити 1kfps відео. Більше, як 30-60 кадрів в секунду. На дошці, яку ви перерахували, немає відеовходів. Хоча це, безумовно, може керувати приводами та обробляти тактильні датчики. Заперечно може наслідувати руку, яку ви пов’язали.
embedded.kyle

2

Я думаю, що може виникнути помилкове уявлення про те, що FPGA насправді є, і коли він використовується в конструкціях. Тому дозвольте спробувати пояснити цю частину спочатку.

FPGA і коли можна захотіти мати один ...

Загрожує спрощенням, FPGA - це трохи більше, ніж процесор, який, можливо, «налаштовується».

Чому хтось хоче «налаштовувати» мікропроцесор? Ну, тому що для виготовлення кремнієвого процесора це коштує занадто багато, щоб дозволити це зробити для однієї, двох, а то й двохсот мікросхем. Вам потрібно буде запускати партії тисяч чіпів, щоб зробити це економічно доцільним.

Оскільки жодна конструкція не буває помилками в перший раз, проходження кремнієвого маршруту ефективно зобов'язує компанію принаймні до двох, якщо не більше тестових пробігів, все це за величезні витрати на виготовлення.

Це по суті означає, що дуже мало комерційних компаній будуть зацікавлені в розробці та доведенні до виготовлення нічого іншого, крім чіпа з досить широким комерційним привабливістю.

Так що , якщо ви прийшли з блискучим дизайном , який обґрунтовує призначений для користувача мікропроцесор, то ви могли б спробувати привести вашу ідею в життя на убогий бюджет за рахунок впровадження її в FPGA, де фактичний чіп є просто набір воріт і 'програма' (як правило, VHDL або Verilog) влаштовує ці ворота у фактичний мікропроцесор.

Але це зовсім інші шляхи вниз по зовсім іншій (мікропроцесорної конструкції!) Дорозі ...

Що приводить мене до того, що я припускаю

... FPGA не є важливими для робототехніки - принаймні на самому початку

Що вам потрібно для робототехніки - це процесор . FPGA - це лише особливий вид процесора (який можна налаштувати).

Ви запитуєте, чи варто "слід"? Ну, це залежить від ваших знань, а також, де лежать ваші реальні інтереси - спочатку дизайн мікропроцесора чи спочатку робототехніка?

Якщо мікропроцесори - ваша пристрасть, то будь-якими способами! І робототехніка є чудовою областю застосування для користувацьких мікропроцесорів - можливо, кору зору з багатьма паралельними шляхами прийняття рішень, що обробляються безпосередньо апаратними засобами, або спеціальне множення тензорів у апаратному забезпеченні - в основному все, що загальні процесори не можуть впоратися з нестандартністю.

Але якщо ви збираєтесь розробляти мікропроцесори в FPGA, ну, звичайно, вам потрібно буде мати всі ці низькі знання, про які ви згадуєте, і багато іншого - адже принципово ви будете розробляти власний процесор. Що насправді не має нічого спільного з робототехнікою, навіть якщо вашим цільовим додатком може бути робототехніка.

Більшість дизайнерів, ймовірно, можуть знайти існуючий процесор, який зробить більшу частину того, що їм коли-небудь знадобиться.

Тому я думаю, що вам, напевно , не потрібна FPGA.

Початкова дорожня карта: від комерційних можливостей до (можливо) FPGA ...

Перша мета, на мою думку, - спробувати перетворити всі свої творчі концепції в робочий робот (досить інтенсивний виклик сам по собі).

Якщо ви виявите, що у вашому дизайні є конкретні та значні вузькі місця обробки, то наступною метою є оптимізація вибору / дизайну ваших процесорів, досі доступних у продажу мікросхем. Можливо, більший, швидший (компроміс із залученням електроенергії, тепловіддачею). Може бути меншими, виділеними чіпами, які керують конкретними завданнями та взаємодіють з головним мозком (компроміс із алгоритмом / логічними ускладненнями).

Тільки якщо є можливості, з якими ви просто не зможете отримати комерційні чіпи для обробки, тоді ви можете розглянути можливість застосування спеціалізованого процесора всередині FPGA, оскільки в цьому моменті з'являться дуже чіткі переваги, які ви сподіваєтеся отримати, прокатуючи свій власний ', і ви можете зосередитись на тому, щоб просто реалізувати ці можливості, з правильними інтерфейсами для решти вашого дизайну.

В іншому випадку ви, ймовірно, будете відслідковуватися від своєї головної мети (яку я припускаю, це створити робота!)

Підсумок: FPGA - це відволікання від початку роботи з робототехніки --- до тих пір, поки ви не зовсім дороги вниз по дорозі робототехніки - і не отримаєте серйозних відбитків у дизайні цифрової електроніки / мікропроцесорів десь на шляху.


Я можу привести багато прикладів у таких областях, як відеообробка, де паралельна обробка за допомогою FPGA має важливе значення для швидкості та більш точних результатів. Побачені невдачі, коли люди намагаються реалізувати шумове виявлення райдужної оболонки в режимі реального часу за допомогою єдиного процесора. Ні. У FPGA є свої специфічні області, де вони розгойдуються, такі як роботизовані руки з високою спритністю або точна / швидка обробка відео. Я не можу проводити протиставлення FPGA та мікропроцесора таким чином. Вони дуже різні звірі зі своїми хорошими / поганими сторонами. Помилка? Будь-яка ідея, чи є такі добрі області для FPGA десь перелічені?
hhh

Ви, звичайно, правильні, що є безліч областей, де FPGA є перевагою - я не виключив їх у своїй відповіді. Питання полягає в тому, де ви перебуваєте на кривій досвіду, і наскільки чітко ви розумієте конкретні переваги, які ви хочете отримати від використання FPGA. Якщо ви не знаєте відповіді на це, то, ймовірно, вона вам не потрібна! (Це повторює відповідь Якоба нижче.)
Асад Ебрагім

1

Працюючи як з FPGA, так і з мікроконтролерами в проектах з робототехніки, я б фактично сказав зараз: що б людина, що реалізує завдання, має найбільше досвіду. Якщо ви знаєте обох однаково добре, ви б не ставили собі запитання. Якщо ви нічого добре не знаєте, то це були б наступні моменти:

  • Чи потрібні складні терміни на порти вводу / виводу? 3-фазне управління двигуном може мати такі вимоги. Тут є невелика перевага FPGA.
  • Чи можете ви паралелізувати свій алгоритм надмірної затримки? Тут FPGA насправді не конкурує з мікроконтролерами, але більше з вбудованими ПК. Більшість речей я б хотів укласти вбудований ПК, але ви можете мати перевагу з FPGA для деяких конкретних програм. Наприклад, щільна стереообробка часто проводиться в FPGA. Багато камер використовують FPGA для обробки потоку даних.

Також часто використовують гібридні розчини. Або з двома чіпами, таким чином, одним мікроконтролером для програмного коду та FPGA для IO або іншим завданням. Існує також ряд FPGA, які фактично мають вбудований мікроконтролер.

Я не був би таким суворим на FPGA, як деякі інші пости, але також, як правило, стверджую, що, якщо ви добре не знаєте свій VHDL, вам буде краще використовувати мікроконтролер або ще краще вбудовані ПК.


Чи можете ви показати деякі приклади проектів, які допоможуть зрозуміти, які речі добре робити з FPGA, а які - з мікроконтролерами? Припустимо, наприклад, якийсь робочий рядок: він працює дуже добре з одним мікроконтролером на плоскій чистій поверхні до отримання розмитих ліній, які потребують різкості зображення / згортання тощо. Якщо лінія в лісі (чи інша галаслива поверхня), це було б набагато складніше (я сумніваюся, чи можливо це зробити з fpga). Ви робили який-небудь робототехнічний проект у реальному світі, де ви використовували fpga, наприклад, для обробки зображень / відео в режимі реального часу? +1 для VHDL.
hhh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.