Справочници, схемотехника, теория > Програмиране на микроконтролери, програматори, цифрови проекти
GPS-автопилот - алгоритъм
Радико:
Edm
Точно това което Юлиян обяснява ще ти е нужно. Компаса ти е необходим единственно за да знае алгоритъма в каква посока е насочен съда. За нормалните GPSи това не е от значение защото по презумпция се счита, че дали пеша дали с кола вървиш напред. При теб може да вървиш но може и вятъра да те снася странично.
Мисля, че с един универсален алгоритъм няма да се оправиш. По лесно ще е таблица от алгоритми и основния алгоритъм избира подходящото от таблицата. Точно както работи компютъра на автомобилния двигател.
juliang:
Да, за 3-5 метра не е проблем. Можеш да се бориш и с вградената грешка донякъде - ползваш последните примерно 50 точки от ГПС-а и решваш че си някъде на средата :) Така че ако има някаква грешка, тя поне няма да те мести толкова рязко насам-натам.
Проблема ще е управлението на руля и мотора. На пръв поглед изглежда лесно, но на практика ще са стотици редове код. Трябва да се въведе и някаква характеристика на самата лодка - примерно как логиката да определи дали е по-изгодно да те завърти на 180 градуса и да даде напред, или да включи двигателя на реверс без да знае радиуса на завиване на лодката... Така че нещата не са невъзможни, просто са доста пипкави и човек трябва да е много напред с програмирането за да направи нещо работещо прилично. Не ти се иска да обикаляш по 50-100 метра щот прорамаат е решила е е по-добре така :)
И се сещам за един бъг в по-старите навигации... Като ходим в Германия трябва да вървим на север от Австрия към Мюнхен и там да завием на ляво (на запад) към Улм. Обаче Около мюнхем има една хубава магистрала, дето го обикаля ... ма от Изток. По нея нама няма ограничение за скоростта, докато по по-краткия път ограничението е "само" 90 км/ч. И тъпия Гармин винаги решаваше, че е е по-бързо да заобиколим 100 км по магистралата, вмето да минем 30 км по пътя с ограничението. Да, ако караме с 300, вероятно ще е по-бързо, ама ...
П.С. Дори и сега Гугъла твърди че е по-бързо... :) Глупава работа...
https://www.google.bg/maps/dir/47.7722884,12.9647008/48.4342954,10.3066256/@47.976179,11.1834318,8.96z/data=!4m2!4m1!3e0?hl=bg
EDM electronics:
Ето каква идея ми дойде сега за котвата:
Мисля, че алгоритъма ще е дори по-лесен от този за маршрута.
Запаметявам точката. Тя има ширина и дължина - някакви стойности.
Отнася ме течението и позицията ми показва други координати.
Поставям условие:
Ако в изменената позиция ширината е по-голямо число, да се извади от него по-малкото - поставя се флаг за +.
Ако в изменената позиция ширината е по-малко число, да се извади от по-голямото - поставя се друг флаг за -.
Така разбирам дали съм се изместил нагоре или надолу и с колко по направление север-юг, защото е ширина.
После ползвам тези данни - разликата, която показва колко съм се изместил и флага, който ще показва дали съм се изместил нагоре от точката или надолу. От тези данни правя функция.
Същото условие поставям и за дължината, като там ще определя дали съм се изместил в ляво или дясно посока изток - запад.
От тези условия ще определя функциите на 3-те неща за управление: рул, двигател и тригер реверс.
В зависимост от отдалечаването ще се поставят различни обороти на двигателя, колкото по-далече, толкова повече.
Сложното в този алгоритъм е да се намери средния вариант за компенсация на позицията по отношение на компаса и GPS-а, не първо да оправи GPS-а, после компаса, а трябва да става едновременно и оптимално - ей това е сложността тука - смесването на две управления от два датчика.
juliang:
Не е само това сложнотията...
Примерно би ли ми обяснил какво решение може да се вземе, когато си решил че носа на лодката трябва да сочи "юг", обаче има силен източен вятър? Ясно е че лодката не може да се придвижва странично. Тоест алгоритъма трябва да игнорира някое от твоите желания - лодката да е неподвижна, или лодката да сочи на юг. Колкото по-голяма амплитуда "напред-назад" й разрешиш, толкова по-малко ще е отклонението на носа от посоката "юг" при маневрите за да те върне на мястото на което искаш да стоиш.
miromad:
EDM electronics, а защо не пробваш и с жироскоп (не знам дали ще е по-добре от gps-a или дали може да се използва заедно с него за по-прецизно измерване/регулиране/контролиране)?
Навигация
[0] Списък на темите
Премини на пълна версия