ПредишенСледващото

Влак безпилотен самолет автономия, гласов контрол и разпознаване на лица.

По силата на своята професия, аз често не гледам само за нашумели събития в света на информационните технологии, но също така използва прост радиолюбители (а те от своя страна трябва да бъде все повече и програмисти). Наскоро попаднах на статия на Лукас Bivolda O''Reilly портал, в която той описва подробно как безпилотен самолет от $ 200 (в Русия това струва около 20 хиляди рубли) за събиране на устройството най-малко 5 пъти по-скъпо, отколкото обикновен компютър магия. Тук е превод на статията.

Изборът завършен безпилотен самолет

Най-трудната стъпка в процеса на разбиване на самолет - започнете. Първият ми проект е безпилотен самолет, който събрах от различни части на себе си, и, като всеки друг, моят домашен проект, това ми струва много повече, отколкото купуват готови безпилотен самолет. Честно казано, моята домашна безпилотен самолет летящ не е много добро. Определено си купите готов много по-лесно и по-евтино.

Повечето производители на безпилотни самолети обещават да предоставят програмен интерфейс (API), но няма лидер, който би могъл сред тях ще осигури екосистема за феновете. Повечето безпилотни самолети с лесен за употреба интерфейс, повече от 1000 $, което е сериозна пречка.

След известно търсене, намерих Parrot AR Drone 2.0. които, по мое мнение, е добър избор, ако имате нужда от евтина и лесно програмируем безпилотен самолет забавление. Можете да си купите нов за $ 200, но като се има предвид броя на хората, които ги купуват и никога не използват, по-добре е да си купите втора ръка на иБей за по-малко от $ 130.

Площ радиолюбителски

Parrot AR не е толкова стабилни мухи като много по-скъпо (около $ 550), новият Parrot бибоп 2. но Parrot AR клиентската библиотека на node.js по име на възел-ар-безпилотен самолет. Той е идеален за основа на програмата за безпилотен самолет.

Друго предимство на Parrot AR - това е много трудно да се прекъсне. многократно се разби по време на тестове на самостоятелен режим код безпилотен самолет в моите стени, мебели, саксии за цветя и гости, както и всички мухи все още голям.

Един от търтеите проблемите в сравнение с наземните роботи е малък по време на работа на батерията. Зареждането може да отнеме няколко часа, и това ще бъде достатъчно просто някъде в продължение на 10 минути полет. Аз препоръчвам да си купите 2 допълнителни батерии и да ги променят в процеса на тестване.

Програмиране безпилотен самолет

архитектура

Реших да се създаде логически алгоритъм на лаптоп, както и система за машинно обучение - в облака. Подобна схема е намалил времето за изчакване в сравнение с течаща директно на невронна мрежа Raspberry Pi компютъра. и аз вярвам, че тя е подходяща за любители на проекти с безпилотни самолети.

Microsoft, Google, IBM, Amazon и да предлагат евтини облачни интерфейси, машинно обучение. Избрах Когнитивна услуга на Microsoft за този проект, тъй като това е единственият интерфейс, който поддържа възможност за персонализиране за разпознаване на лица.

Площ радиолюбителски

В началото настройка

По подразбиране Parrot AR 2.0 разпространява своя собствена безжична мрежа клиент. Това е невероятно сложно хакване устройство. Всеки път, когато направи нещо, което трябва да изключите от мрежата си и да се свържете към мрежата на безпилотен самолет. За щастие, има много полезен проект ardrone-WPA2. което ще помогне за създаване на безпилотен самолет, за да се свържете с вашата Wi-Fi мрежа.

Много е забавно да използвате Telnet протокол и експеримент, Parrot започва да прилича на крайната версия на Linux. Когато за последен път са свързани с нещо, чрез Telnet? Ето един пример за това как можете да отворите терминал и влизат директно в системата на безпилотен самолет.

% Script / свързване "The Optics Lab" -p "particleorwave" -а 192.168.0.1 -d 192.168.7.43

полет Management Command Line

След инсталирането на възел библиотека може да направи верига от типа четене изчислителна-напишете (REPL) и по този начин да започне да управлява безпилотен самолет.

Var arDrone = изискват ( "ар-самолет ');

самолет> client.animate ( "yawDance, 1.0)

Ако следвате инструкциите ми, в този момент имате точно няколко пъти са намалели си безпилотен самолет. Аз съм хиляди пъти отстраняващ се защитна конструкция, преди той да се разпадна и аз трябваше да се купи нов. Съмнявам се дали си струва да се говори за това, но Папагала лети много по-добре, без рамката. Но летят без остриета може да хване и се счупи нещо, увреждане на мебели.

Mission Control от уеб страница

Създаване на уеб-базиран интерфейс за полет контрол - лесно и приятно. express.js платформа значително опростява създаването на малък уеб сървър:

VAR експресни = изискват ( "експресира");

app.get ( "/", функция (REQ, ВЕИ)

app.get ( "/ земя", функция (REQ, ВЕИ)

app.get ( "/ излитане", функция (REQ, ВЕИ)

ако (response.length> 0)

Аз бях на отлично ImageMagick библиотеката, за да маркирате лица в PNG. На този етап можете да използвате много различни разширения, например, интерфейсът за определяне емоция API емоции.

Настройка на системата за разпознаване на глас

Най-трудната част от инсталацията на системата за разпознаване на реч, не е само по себе си за разпознаване на реч и превод на аудио запис от уеб страницата на моя локален сървър във формат, който се изисква от Speech API на Microsoft. а това, от своя страна, води до много дълъг код. След спасяването едноканален звук във формат, и с правилната честота за вземане на проби, можете да започнете лесно и успешно използване интерфейс. Цената на 1000 искания - $ 4, така че услугата е на практика безплатно за аматьори проекти.

RecordRTC услуга е с отлична библиотека, и е идеален за записване на първоначалния клиент. От страната на клиента, ние можем да добавите код, който да се задържи на аудиофайл:

app.post ( "/ аудио", функция (REQ, ВЕИ)

Var образуват = нов formidable.IncomingForm ();

// уточни, че искаме да се даде възможност на потребителя да качите няколко файла в една заявка

form.uploadDir = path.join (__ dirname, '/ добавени ");

form.on ( "файл", функция (област файл)

fs.rename (file.path, path.join (form.uploadDir, име на файл));

// влезете някакви грешки, които се случват

console.log ( "възникна грешка: \ п '+ ERR);

// веднъж всички файлове са качени, да изпрати отговор на клиента

// разбор на входяща заявка, съдържащ данните на формуляра

Използвал съм FFmpeg програма, за да се намали качеството на звука и да го направи в един канал за изтегляне от услугата на Microsoft.

exports.parseWav = функция (wavPath, обаждане)

VAR CMD = 'FFMPEG -i' + wavPath + "Аг 8000 -ав-1-ил tmp.wav;

EXEC (CMD, функция (грешка, стандартния изход, STDERR)

console.log (STDERR); // команда изход е в стандартния изход

На този етап можете да използвате Microsoft интерфейс за конвертиране на текст в реч. безпилотен самолет, за да бъде в състояние да ви отговоря.

Самостоятелен маршрут достъп

Използвах ardrone-автономия библиотека за планиране на маршрут автономен достъп за моя безпилотен самолет. След многобройни срещи с мебели и домакински цветове в хола, жена ми любезно ме покани да се движи моята тестване проект в гаража, където има по-малко, че може да се раздели, но по-малко пространство за маневриране.

Площ радиолюбителски

Когато се разшири пространството на лабораторията си, аз ще се по-внимателно изучаване на интелигентни алгоритми за търсене, но на този етап ще ограничи това, което дрона ще се излита и се превърне в търсене на врагове и приятели.

Var автономия = изискват ( "ardrone-автономия ');

console.log ( "Ето ни!")

нула () // Задава текущото състояние за справка

След като всичко е готово и може да контролира робота чрез API, всичко това ще донесе невероятна радост. С новата система за разпознаване на изображения, има много нови функции, вариращи от изследването на планове да рисува по стените. Parrot не е била първоначално предназначена за безопасно изпълнение на операциите в малки къщи като моя, но по-скъпо безпилотен самолет е съвсем в състояние да направи това реалност. В крайна сметка, търтеите ще станат по-стабилни, по-евтини, а броят на начини за тяхното прилагане в ежедневието ще расте много бързо.

Cloud софтуер Microsoft Когнитивна Service интерфейс е много лесен за използване и невероятно ниска цена. В началото бях загрижен, че необичайно широк безпилотен самолет камера може да пречат на нормалното за разпознаване на лица, както и че силен звук от остриетата ще попречи на звука, но в действителност тя е много по-добре, отколкото очаквах. Времето за изчакване не е проблем, който съм си представял, че може да бъде. Продуктът на всички изчислителни облаци в режим на изображението предаване в реално време на първо изглежда малко странно избор на архитектурата, но е вероятно да се превърне в стандарт за много приложения в бъдеще.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!