2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 поиск методов связи точки прицепа и геозоны на карте....
Сообщение24.12.2020, 18:57 


10/05/18
15
День добрый.

как определить к какой геозоне принадлежит определенная точка на прицепном устройстве?

Есть у нас тягач с системой GPS + наземная RTK позволяющая получать координаты с точностью +-2,5 см, приемник установлен на крыше, то есть точность тягача мы знаем с точностью 2,5см
К тягачу через шарнирную сцепку прикручен опрыскиватель с одной осью и за осью штанга с 24 форсунками.

Нужно регулировать производительность форсунок на поле картинка поля приложенаhttps://yadi.sk/i/6UVxKm2y06BeyA (не пойму как приложить файл с картинкой) это формат shp, klm, xml .... и могут быть другие векторные но суть не в этом.

Насколько пока понимаю мне чтобы вычислить координату форсунки(каждой) мне нужно сначала вычислить координату сцепки (шарнира) после зная координату шарнира я уже получу координаты форсунок зная геометрию опрыскивателя.
Сразу вопрос по одной точке вычислить не могу ибо не знаю угол поворота опрыскивателя относительно сторон света, значить нужно брать предыдущие и как то вычислять угол движения.

Как определять принадлежность в какой сейчас зоне находиться форсунка? Яж не буду все геозоны перебирать и проверять принадлежит или не принадлежит, может вычислять пересечения линии ограничивающей геозону то есть въезд и выезд?

Как раздел математики называется чтобы вычислять принадлежность точки(GPS) к определенной плоскости на карте заданий.


любые советы и предложения

 Профиль  
                  
 
 Re: поиск методов связи точки прицепа и геозоны на карте....
Сообщение24.12.2020, 23:27 
Заслуженный участник


20/08/14
11867
Россия, Москва
По русски это звучит "определить принадлежность точки конкретному полигону из списка".
Вообще говоря перебором.
Но его конечно можно оптимизировать организовав (отсортировав) полигоны в списки например по координатам x,y, тогда почти всегда достаточно будет проверять всего несколько полигонов.
Для ускорения может быть полезно сначала проверить попадание точки в ограничивающий прямоугольник с параллельными координатным осям сторонами, это уже совсем просто.
Для ещё ускорения можно сначала проверить текущий полигон, не приблизились ли к его границе изнутри и если нет, то остальные и не проверять.
Чтобы упростить проверку на принадлежность полигону можно сначала проверить на внутренние прямоугольник (или даже не один) с ориентацией по координатным осям или на круг.
Отдельный вопрос могут ли полигоны быть не сплошными, т.е. содержащими в себе полностью другой полигон(ы).
Ещё отдельный вопрос будет вблизи границ двух и более полигонов, когда ошибка определения координат станет сравнимой с расстоянием до границы. Тут проще наверное не менять полигон пока не будет гарантии выхода точки из предыдущего, т.е. смещения за границу заведомо дальше возможной ошибки.

Вопрос с ориентацией решается например применением компаса. Или формированием траектории движения по предыдущим измеренным координатам, ведь трактор не сможет развернуться или повернуться не сместившись даже на пару см. Возможно GPS приёмники умеют выдавать и вектор скорости движения ... Возможно и применение двух GPS приёмников, разнесённых в пространстве на 10-ти и более кратную величину возможной ошибки определения координат, чтобы ошибка определения угла оставалась приемлемой. Возможно и комбинирование методов, это ещё и надёжность повысит.

 Профиль  
                  
 
 Re: поиск методов связи точки прицепа и геозоны на карте....
Сообщение25.12.2020, 11:17 


05/09/16
12108
sirius_b
Если поле 100x100 метров, а точность позиционирования 2.5 сантиметра, и геозон не больше 255, то предвычисленный массив с координатами займет 16 мегабайт всего лишь. Грубо говоря, у вас для такого поля будет растровая карта 4000х4000 8-битных пикселов, принадлежность точки к той или иной зоне будет определяться мгновенно, и скорость не будет зависеть от сложности конфигурации геозон. Даже повысив разрешение карты до 1 сантиметра, размер карты будет всего 100 мегабайт. "Всего", потому что сейчас даже в телефонах 100-мегапиксельные камеры ставят, а это 100 мегабайт "сырых" данных (до байер-интерполяции и упаковки в jpeg).
Карты разных полей можно хранить упакованными, сжатие будет очень существенное (десятки раз).
Есть и готовые библиотеки работы с растровыми изображениями, вам тут придумывать особо ничего не придётся (как хранить и как упаковывать). Это также удобно тем, что вы можете скачать с гугла или яндекса их плитки карт (как это делается тоже, в целом, хорошо описано), и наложить чтобы глазом смотреть туда ли попали геозоны.

Касательно тягача и прицепа, ну тут надо ближе к практике смотреть. Обычно прицеп просто повторяет траекторию тягача, если тянется за ним. Если тягач толкает прицеп (задний ход например), то уже сложнее будет. Наверное тут будет полезно, если есть такая возможность, установить маячок там и там и поэксперемениторавть -- посмотреть насколько совпадут траектории.

-- 25.12.2020, 11:31 --

sirius_b в сообщении #1497679 писал(а):
Сразу вопрос по одной точке вычислить не могу ибо не знаю угол поворота опрыскивателя относительно сторон света, значить нужно брать предыдущие и как то вычислять угол движения.

Касательная к траектории дает вам текущее (в точке) направление движения.

 Профиль  
                  
 
 Re: поиск методов связи точки прицепа и геозоны на карте....
Сообщение25.12.2020, 12:07 
Аватара пользователя


07/03/16

3167
Для начала вам надо посмотреть на размер зоны покрываемой форсункой и исходя из нее определить требуемую точность позиционирования и допустимую погрешность определения границ зон.
Может оказаться, что тягач вместе с прицепом находятся в пределах этой погрешности, и место установки приемника не имеет значения.

 Профиль  
                  
 
 Re: поиск методов связи точки прицепа и геозоны на карте....
Сообщение27.12.2020, 01:53 


10/05/18
15
Dmitriy40
Цитата:
По русски это звучит "определить принадлежность точки конкретному полигону из списка"
. - спасибо!

Цитата:
Для ускорения может быть полезно сначала проверить попадание точки в ограничивающий прямоугольник с параллельными координатным осям сторонами, это уже совсем просто.
- да была такая мысль
Цитата:
Для ещё ускорения можно сначала проверить текущий полигон, не приблизились ли к его границе изнутри и если нет, то остальные и не проверять.
- такой мысли не было, но она позволяет оптимизировать
Цитата:
Чтобы упростить проверку на принадлежность полигону можно сначала проверить на внутренние прямоугольник (или даже не один) с ориентацией по координатным осям или на круг.
- это не понял, но похоже на первый - проверить попадание точки в ограничивающий прямоугольник. Или это не это имели ввиду.
Цитата:
Отдельный вопрос могут ли полигоны быть не сплошными, т.е. содержащими в себе полностью другой полигон(ы).
- картинка по ссылке вроде там вложения в зоне есть другая зона. https://yadi.sk/i/6UVxKm2y06BeyA
Цитата:
Ещё отдельный вопрос будет вблизи границ двух и более полигонов, когда ошибка определения координат станет сравнимой с расстоянием до границы. Тут проще наверное не менять полигон пока не будет гарантии выхода точки из предыдущего, т.е. смещения за границу заведомо дальше возможной ошибки.
- это не критично и пока по факту центр не пересечет зону не переключать мощность.

С ориентацией все решилось она есть в передаваемых данных 181.61, да и скорость тоже есть 41.617 но походу в милях или узлах
$GNRMC,083950.00,A,4634.47570,N,03839.34819,E,41.617,181.61,261220,,,D4F
Цитата:
Возможно и применение двух GPS приёмников, разнесённых в пространстве на 10-ти и более кратную величину
- избыточно, достаточно текущей выдачи.


wrest
Поля 2-3км никакого растра применять ненужно, да, не спорю возможно такое решение, но это лишняя ступень обработки и самое главное в конце всего мне задание в виде файла (естественно klm, xml, srp... или любой другой вектор) нужно по 3G сети переслать на прибор в поле. Растр не протолкнуть.

Emergency
форсунка с плоским распылением (такой узкий овал) ширина 1м то есть вдоль траектории движения ее можно рассматривать в виде линии.
Но можно упростить задачу, зная скорость и расстояние от приемной антенны до линии форсунок, переключать все форсунки с задержкой, и не отслеживать каждую, а только приемную на тягаче.

 Профиль  
                  
 
 Re: поиск методов связи точки прицепа и геозоны на карте....
Сообщение27.12.2020, 02:10 


05/09/16
12108
sirius_b в сообщении #1497893 писал(а):
да и скорость тоже есть 41.617 но походу в милях или узлах

В узлах, см. описание сообщений NMEA.

sirius_b в сообщении #1497893 писал(а):
нужно по 3G сети переслать на прибор в поле. Растр не протолкнуть.

Так сделайте растр на приборе.

Хотя, вам виднее, как знаете...

 Профиль  
                  
 
 Re: поиск методов связи точки прицепа и геозоны на карте....
Сообщение27.12.2020, 03:41 
Заслуженный участник


20/08/14
11867
Россия, Москва
sirius_b в сообщении #1497893 писал(а):
Цитата:
Чтобы упростить проверку на принадлежность полигону можно сначала проверить на внутренние прямоугольник (или даже не один) с ориентацией по координатным осям или на круг.
- это не понял, но похоже на первый - проверить попадание точки в ограничивающий прямоугольник. Или это не это имели ввиду.
Проверка точки на попадание в сложный полигон относительно трудоёмкая задача, но если вписать в полигон простой прямоугольник (особенно параллельно осям координат), то пока точка внутри последнего проверка будет простой/тривиальной, а это может занимать бОльшую часть времени работы.
Проверка на ограничивающий прямоугольник быстро отбрасывает точно не подходящие полигоны, а проверка на внутренний прямоугольник ускоряет проверку на принадлежность полигону (не обязательно текущему, можно для всех построить).
Кроме прямоугольника удобно проверять и круг, всего лишь сумму квадратов разностей сравнить с порогом (квадратом радиуса). Для некоторых полей круг более точно описывает форму.
sirius_b в сообщении #1497893 писал(а):
С ориентацией все решилось она есть в передаваемых данных
Насколько я понимаю ориентация выдаётся только в движении, в покое скорость нулевая и ориентация или тоже нулевая или прошлая или произвольная или отсутствует.
Кроме того, эта вот ориентация подвержена шуму (из-за ошибок определения координат), тем более на малых скоростях движения.
Так что советую проверить насколько точно она выдаётся в ваших типичных сценариях работы.

-- 27.12.2020, 03:55 --

sirius_b
Кстати вариант с растром очень хорош.
Только не совсем впрямую, а тоже иерархически: сделать несколько растров, с разной детализацией, скажем 5см, 50см, 5м, 50м (для совсем больших полей) на пиксель и проверять начиная с больших. Можно и с другими шагами. Если самые мелкие хранить упакованно, то места потребуется не слишком много, ведь по мелким придётся проверять лишь фактически границы геозон, а внутренности будут определены по более крупным растрам. Возможно придётся подобрать формат сжатия, позволяющий распаковывать отдельные квадраты независимо от других.
Впрочем, иерархия не обязательна, можно просто хранить распакованными текущий квадрат (100х100 пикселей или сколько там будет грануляция упаковки) и 8 соседних. А чтобы не заморачиваться с условиями соседний/не соседний можно просто использовать кэш распакованных квадратов, любого размера.
И да, растры можно создавать прямо на устройстве по принятому векторному описанию. Будет долгая подготовка (секунды-минуты), зато быстрая работа потом.

 Профиль  
                  
 
 Re: поиск методов связи точки прицепа и геозоны на карте....
Сообщение27.12.2020, 09:56 
Аватара пользователя


07/03/16

3167
Если тягач ездит по полю по прямой, пересекая зоны и переключая форсунки с нужными растворами, то задача является давно решенной - это кусочек драйвера ЭЛТ-монитора на один кадр в котором цвет зоны однозначно определяет комбинацию включенных форсунок.
Понятно, что растр - это оптимальный вариант, делающий задачу примитивной. Его размер - это площадь единовременно обрабатываемого прямоугольного участка в метрах (по размеру зоны покрытия форсунок), а битность соответствует максимальному числу числу зон.

 Профиль  
                  
 
 Re: поиск методов связи точки прицепа и геозоны на карте....
Сообщение27.12.2020, 11:17 


10/05/18
15
Я одного не пойму, как мы растр свяжем с координатой допустим 4634.47570,N,03839.34819,E, и какого вида должен быть растр, понятно что каждый полигон будет слоем допустим определенного цвета. Как текущая координата окраситься в нужный цвет?

Цитата:
Так что советую проверить насколько точно она выдаётся в ваших типичных сценариях работы.

Да при стоящем ни скорости ни направления нет, но это не критично, поехал получил, частота выдачи координат 1Гц на приборе, возможно можно поменять частоту но 1Гц вполне достаточно.
координаты определяет вот этот прибор trimble-gfx-750 а точнее NAV 900 Контроллер и пока между проездами сеялки в перед и назад держится точность +-5см (И да тягач подруливает контролер в автомате, разворачивает человек)
Возможность приема поправок RTK (2–3 см).

Я как понимаю с точностью курса с координатами достаточно нормально.

 Профиль  
                  
 
 Re: поиск методов связи точки прицепа и геозоны на карте....
Сообщение27.12.2020, 12:57 
Аватара пользователя


07/03/16

3167
sirius_b в сообщении #1497919 писал(а):
Я одного не пойму, как мы растр свяжем с координатой допустим 4634.47570,N,03839.34819,E

Поскольку участки для обработки обычно бывают прямоугольной формы, то проще всего назначить углам растра требуемые координаты GPS. Тогда координаты всех точек растры будут известны.
sirius_b в сообщении #1497919 писал(а):
и какого вида должен быть растр

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

 Профиль  
                  
 
 Re: поиск методов связи точки прицепа и геозоны на карте....
Сообщение27.12.2020, 13:40 


10/05/18
15
Emergency в сообщении #1497927 писал(а):
Поскольку участки для обработки обычно бывают прямоугольной формы, то проще всего назначить углам растра требуемые координаты GPS. Тогда координаты всех точек растры будут известны.


Попробую вставить картинку поля с геозонами их тут 3шт и они никак не прямоугольные, это не разные жидкости, это разная мощность внесения одной жидкости - это для понимания естественно методы поиска от этого никак не зависят можно и для разных жидкостей применять все зависит от исполнительных устройств.
https://yadi.sk/i/4l4_fsZA3KKRiA
Не удалось определить размеры изображения.

Если у каждой точки координаты и мы их сравниваем с текущей то какая разница с векторной геозоной заданной 4мя точками ведь там тоже координаты можно получить расчетом причем любой точности.

Про растр до конца не понимаю сути.

 Профиль  
                  
 
 Re: поиск методов связи точки прицепа и геозоны на карте....
Сообщение27.12.2020, 14:36 
Заслуженный участник


20/08/14
11867
Россия, Москва
Как из векторных координат получить растр. Один из вариантов.
Находим минимум широты и долготы всех зон, принимаем эту точку за 0. Теперь все координаты будут только положительными (или нулевыми).
Находим максимум широты и долготы. Делим разницу между максимумом и минимумом на желаемую точность (скажем 5см), получаем размеры растра по двум осям.
Каждой геозоне назначаем свой код больше нуля, ноль принимаем за "нейтральную" территорию.
Теперь каждой точке растра назначаем соответствующую ей геозону, можно делать самому ("рисуя" линию границы и "закрашивая" внутренность полигона, это всё стандартные методы компьютерной графики), а можно воспользоваться средствами графики и просто рисовать в растр закрашенные многоугольники цветом соответствующей геозоны, уж пересчёт географических координат в координаты растра и обратно тривиален. При использовании графики кстати можно даже работать в исходных географических координатах, пересчёт будет делать сам драйвер графики. Можно ещё выделить отдельный цвет для границ геозон (линий) и закрашивать в цвет геозоны лишь внутренность многоугольника, это позволит точнее обрабатывать границы геозон. С графикой будет проблема с многосвязными областями, закраска таких может давать неверный результат, но это (наличие таких геозон) проще проверить глазками (и разбить одну геозону на несколько полигонов с одним кодом зоны) чем писать код.

При работе просто запрашиваем цвет точки с полученными от GPS координатами (возможно с пересчётом в растровые) и по нему принимаем решение какая это геозона и что в этой точке делать. Здесь не нужны практически никакие сравнения, тем более векторные, так что работать будет быстро. Вопрос лишь в хранении довольно больших растров, но он решается упаковкой растра и распаковкой лишь небольших нужных кусочков с текущими координатами (и небольшим кэшем таких кусочков чтобы меньше раз распаковывать при движении около границ).

Кстати точность в 5см может быть и избыточной если обработка ведётся на скорости в 60км/ч, это ведь более 15м/с и даже перенастроив GPS приёмник на 10Гц выдачу координат они всё равно будут прыгать/изменяться на полметра-метр-два каждый раз. Так что если априори известна скорость движения при обработке, можно выбрать шаг растра раза в два (с учётом возможного движения по диагонали) мельче шага по координатам и получить вполне хорошую точность.

-- 27.12.2020, 14:41 --

Под растром фактически понимается простой двухмерный массив кодов геозон, отображаемый на географические координаты. Размеры массива выбираются так чтобы он одновременно покрывал все нужные геозоны, а шаг "пикселей" (географическое расстояние между соседними элементами массива) не превышало желаемую точность позиционирования.

Да, ещё момент, при рисовании в массив нужно отключать любое сглаживание, а то оно будет портить цвет точек.

 Профиль  
                  
 
 Re: поиск методов связи точки прицепа и геозоны на карте....
Сообщение27.12.2020, 15:19 


05/09/16
12108
sirius_b в сообщении #1497931 писал(а):
Попробую вставить картинку поля с геозонами
...
sirius_b в сообщении #1497931 писал(а):
Про растр до конца не понимаю сути.
Ну вот картинка, которую вы вставили - и есть растр. Откуда у вас эта картинка?

P.S. Вы кстати изменение координат gps в изменение положения в метрах умеете пересчитывать? Земля-то круглая...

 Профиль  
                  
 
 Re: поиск методов связи точки прицепа и геозоны на карте....
Сообщение27.12.2020, 15:57 
Аватара пользователя


07/03/16

3167
sirius_b в сообщении #1497931 писал(а):
они никак не прямоугольные

Понятно, что геозоны имеют произвольную форму. Вопрос в другом - как ездить тягачу. Тут всего четыре варианта:
1. Назначить прямоугольный участок и ездить прямыми штрихами, покрывая каждую встретившуюся зоны своим раствором/дозировкой.
2. Выделить геозону и опять же ездить прямыми штрихами, покрывая ее одним раствором.
3. Выделить геозону и ездить по ней начиная вдоль границы и далее непонятно как.
4. Выделить участок, ограниченный дорогами и далее по п. 1.
sirius_b в сообщении #1497931 писал(а):
Если у каждой точки координаты и мы их сравниваем с текущей то какая разница с векторной геозоной заданной 4мя точками ведь там тоже координаты можно получить расчетом причем любой точности.
Про растр до конца не понимаю сути.

Разница в трудоемкости расчета. Точка растра сама говорит вам о дозе химиката, которую на нее требуется нанести, а для точки в векторной карте вам потребуется определять к какой зоне она относится.
Любая точность не нужна. Если вы будете вычислять координату с точностью выше чем точность нанесения раствора, то это будет ошибкой.

 Профиль  
                  
 
 Re: поиск методов связи точки прицепа и геозоны на карте....
Сообщение27.12.2020, 21:48 


10/05/18
15
Emergency в сообщении #1497972 писал(а):
sirius_b в сообщении #1497931 писал(а):
они никак не прямоугольные

Понятно, что геозоны имеют произвольную форму. Вопрос в другом - как ездить тягачу. Тут всего четыре варианта:

Здесь один вариант. тягач ездит змейкой по длинной линии, еще это уменьшает площадь разворотов.


wrest в сообщении #1497962 писал(а):
sirius_b в сообщении #1497931 писал(а):
Ну вот картинка, которую вы вставили - и есть растр. Откуда у вас эта картинка?

P.S. Вы кстати изменение координат gps в изменение положения в метрах умеете пересчитывать? Земля-то круглая...

Да это то пересчитаем. Тут проблем нет.

Конкретно эта картинка из https://onesoil.ai/ru/

Dmitriy40 в сообщении #1497951 писал(а):
Как из векторных координат получить растр.


Ну изначально, они, фотографии полей растровые, фоткаем мультиспектральными камерами типа Parrot Sequoia, MicaSense, RedEdge M или пользуемся бесплатными спутниковыми типа https://onesoil.ai/ru/, ну за масштабы и разрешения тут не нужно писать, у спутника точка 50 метров - это хорошо уже. Вопросы в другом.

Далее снимки растровые сшиваются с помощью ПО Pix4D и есть еще другие для DJI есть Terra .... После получаем индексы разные по суммам или разностям определенных каналов с мультиспектральных камер, конкретно это изображение NVDI индекс равен (NIR минус RED)делим(NIR плюс RED) красный с ближним ифракрасным. Про индексы тоже не будем их много и разные задачи решают. На этом изображении зеленое это отлично взошло, а желтое плоховато. в желтое доза больше, в желто зеленое среднюю дозу. Ну как то так.

Ну вот в ПО получили мы растр, и все ПО которое мы тестили, для оборудования выгружают вектор, у меня этого растрового поля есть 3 файла вектора klm, xml, shp.

И еще допишу, что нужно логировать траекторию движения чтобы после того как основную часть обработаем, последним делом проезжаем паралельно коротких краев поля и так обрабатываем развороты и форсунки должны отключаться на уже обработанном участке.

Ну допустим я сформирую массив координат Х, У, Доза, и Произведена обработка(проехали пометили в true, далее попадая на эту точку видим что была обработка и не включаем ее), Тягач получил координату скорость и направление, зная геометрию опрыскивателя мы получим текущие координаты форсунок, и тут первый ньюанс координаты в массиве пикселей не будут никогда совпадать с координатами форсунок вычисленными их нужно как то округлять и сравнивать, как только режем последний знак точность с 25см падает на 2,5 метров примерно я это пишу. То есть тогда нужен алгоритм приближенных точек, это нужно дублировать массив и отсортировать один по Х другой по У и искать точку в 2х массивах, или между точками если координаты не сошлись до последней цифры.

Возможно с растром будет намного проще, но растр должен генерить уже оборудование опрыскивателя, а передавать туда вектор ибо 3G в поле это не 3G. Буду думать спасибо. Над растром есть о чем подумать.

Неужели в высшей математике нет решения попадает ли точка в полигон, помню по поверхностям проходили и касательные и перпендикуляры к точке на поверхности вычисляли.... да было это давно...

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

Модераторы: photon, profrotter, Парджеттер, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group