Справочници, схемотехника, теория > Програмиране на микроконтролери, програматори, цифрови проекти
GPS-автопилот - алгоритъм
EDM electronics:
--- Цитат на: MTM в Февруари 10, 2020, 09:08:53 pm ---За тая цел, ти трябва нивел.
--- Край на цитат ---
Това беше яка ирония, браво! :D
valex:
Първата производна на ускорението е скорост, а втората е преместване(път).
Така, че от данните за ускорение може да се сметне изместването от позиция.
valex:
--- Цитат на: valex в Февруари 10, 2020, 09:21:58 pm ---Първата производна на ускорението е скорост, а втората е преместване(път).
Така, че от данните за ускорение може да се сметне изместването от позиция.
Поне такива спомени имам
--- Край на цитат ---
Това е интересно:
http://cache.freescale.com/files/sensors/doc/app_note/AN3397.pdf?fsrch=1&sr=2
ppipilica:
--- Цитат на: EDM electronics в Февруари 10, 2020, 09:01:13 pm ---Ще го ползвам за електрически двигател със серво управление за лодка, който трябва да се движи по зададен маршрут от GPS-точки, да ги следва последователно и още за електрическа котва, като спра на едно място да коригира течението и вятъра, които местят лодката, да я връща в тази точка и същото направление, т.е. да не ме обръща с гръб и т.н.
--- Край на цитат ---
При тия условия аз бих потърсил готово управлвние за дрон, не вярвам да няма такова нещо да се продава. То хубаво да си го съчиниш сам ама тва лекинко сложно ми се струва. А как ще задаваш координатите като пуснеш лодката в язовира или реката, Ще трябва да направиш учебно плаване и да запаметиш определени места. Предвиди в алгоритъма и опция Go Home както е при дроновете когато загубят връзка с дистанционното, предвиди и тая опция да се задейства когато батерията падне под критично ниво, то може би ще трябва да смята за да имаш ток за връщане.
Според мен ще ти трябва компас на лодката, по-лесно ще я караш по права под определен ъгъл спрямо север, пък с GPS-а ще си смяташ колко е разстоянието от точка до точка и колко време ще пътува. Не ми се вярва да искаш системата да цепи сантиметъра, нали така, все пак ще пускаш въдица а не бомба. Та за това помисли как да се улесниш в управлението.
nizo:
Алгоритъма според мен е следния. Искаме да преминем от ъгли в плоска координатна система. Плоската координатна система е с координати X,Y. X в нашия случай е 1/4 от периметъра на сечението на Земята, а Y e дължината на екватора на Земята. Това са константи и се задават директно в програмата. След това искаме от ъглите да генерираме координати в нашата плоска координатна система, което става със синус(ширината) умножено по дължината на X и косинус(дължината) умножено по Y. На този момент имаме вече генерирани плоски координати на 2-те точки във формат А(X,Y) и B (X,Y). От тук нататък построяваме правоъгълен триъгълник в който отсечката АB е хипотенуза. Хипотенузата е равна на корен квадратен от квадрата на единия катет плюс квадрата на другия катет (Питагорова теорема). Дължините на катетите се получават с проста математика, модул на разликата на координатите. Дори да имаме 2-5=-3 то модула е 3. Т.е. модула на разликата винаги дава положителната абсолютна дължина на катетите. Получили сме катетите, змятаме по Питагоровата теорема и намираме разстоянието от А до Б.
--- Цитат ---Отсечката между т.А и т.Б представлява реално дъга и тя се изчислява по сложна формула. Мен тази дъга не ме интересува, макар и точно тя да дава реалното разстояние, т.к. автопилота ще се ползва за къси разстояния и това закръгление ще е несъществено, грешката ще е минимална. Интересува ме само правата отсечка, тя дава разстоянието между две точки. Т.е. търся по-опростен вариант на алгоритъма.
--- Край на цитат ---
Естествено тук допускаме грешката, че прехвърляме огъната повърхност в плоскост. По принцип синуса на ширината ни дава точка върху радиуса на Земята, а не върху повърхността. Например синус от 30 градуса е 0.5, но 0.5 върху повърхността е на 45 градуса. Сигурно има начин да се компенсира тази неточност, например задавайки корекция на катетите според съответната им ширина и дължина. Някой ако знае как става да каже.
Навигация
[0] Списък на темите
Премини на пълна версия