RxTx (12.12.2019 20:23, просмотров: 410) ответил Samx на А просто непрерывно сканировать (измерять расстояние) в районе верхнего выступа и принимать за результат минимальное значение?
В одном из вариантов я это и делаю, двигаю вверх-вниз. В другом - делаю периодический рескан. а) Да, механический рескан в заданных "воротах" высоты это медленно. Это дает скорость порядка ~0.5 Hz, при том что лазер отстреливает 10Hz ... 250Hz.
б) Реализацию задачи как слежение за MAX функции "дистанция до профиля" я рассматриваю и сейчас отчасти так и работаю. Проблема в том, что это проблемно технически. Эта функция терпит разрыв в точке максимума. (Луч сбоку доходит до верхней точки, после чего улетает вдаль - лазерный дальномер сыпет или ошибки или делает паузу, заполняя свои фнутренние буферы фильтров). Еще большая проблема когда луч движется назад из никоткуда на что-то.
в) Брать надо на самом деле не ближайшее, могут быть и препятствия лучу и накладки и болты на профиле, так что мне надо отъезжать вниз на определенную высоту (определенную точку на профиле, откуда и брать общее расстояние). Но это уже детали.
Главный вопрос - реализовать слежение именно по профилю, а не по его границе как сейчас. Потому что этой границы может или не быть, или она ложна. Дальномер выдает ошибку что потерял цель, а на самом деле это ложная ошибка. Приходится фильтровать отшибки и смотреть действительно ли это потеря цели, итд.
Спасибо, князь. Вы настоящий дворянин. И программист.