Технический форум по робототехнике.
Michael_K » 02 дек 2010, 15:49
Вот я тут спрашивал недавно про компасы - сейчас заморачиваюсь с калибровкой...
Тригонометрия в полный рост, вопиюще просится плавающая точка, опять же привязать
туда калмана по уму (у меня два компаса и аксели трехосевые), вот и считайте...
avr123.nm.ru » 02 дек 2010, 15:51
Может потому нет что доступной платформы не было ?

И вот она явилась миру ! Ща попрет.
=DeaD= » 02 дек 2010, 16:01
Michael_K писал(а):вот и считайте...
Вот и считаю, что раньше на ZX-Spectrum на 5!!! МГц делали игрушку Elitе с трёхмерной графикой и звуком в реальном времени. Там тригонометрии было - мама не горюй.
А тут им 16МГц мало для тригонометрии и Калмана. Очуметь

Michael_K » 02 дек 2010, 16:05
дело не в самой тригонометрии, а в потери точности. нафиг мне калибровка, которая точность теряет?
Виталий » 02 дек 2010, 16:11
Вот и считаю, что раньше на ZX-Spectrum на 5!!! МГц делали игрушку Elitе с трёхмерной графикой и звуком в реальном времени. Там тригонометрии было - мама не горюй.
Никто и не мешает сейчас заморочиться с этим делом. Но зачем, если более мощный контроллер стоит столько же, сколько и слабый?
А тут им 16МГц мало для тригонометрии и Калмана.
Мало. Реально мало.
Дело не в самой тригонометрии, а в потери точности. нафиг мне калибровка, которая точность теряет?
Дело мне кажется даже не в этом. Дело в том сколько времени понадобится чтобы самому реализовать все это на 8 битах.
то есть не тупо хватает-кладет, а что-то там думает, глядя на картинку
Навскидку только одно - "фото по улыбке" в современных фотоаппаратах.
=DeaD= » 02 дек 2010, 16:13
2Michael_K: О какой конкретно потери точности речь?
Добавлено спустя 49 секунд:Виталий писал(а):Дело мне кажется даже не в этом. Дело в том сколько времени понадобится чтобы самому реализовать все это на 8 битах.
Не понял о чем речь - нету что ли нормальной библиотеки с нужной точностью плавающей запятой для AVR или о чем?
Michael_K » 02 дек 2010, 16:39
Хотя бы об элементарной разрядной сетке.
У меня в вычислениях получаются 24-х битные значения - оперировать с ними (делить, брать корень) утомительно. Можно, но на 32-х битном проце гораздо приятнее.
В тригонометрии - тоже там получается дважды вращать вектора приходится, это четыре умножения на тригонометрическую функцию - просто таблички уже не катят - как минимум интерполировать приходится. и т.п. Так и набирается... по чуть-чуть.
Добавлено спустя 2 минуты 13 секунд:=DeaD= писал(а):нету что ли нормальной библиотеки с нужной точностью плавающей запятой для AVR или о чем?
Тормозит

=DeaD= » 02 дек 2010, 16:51
Michael_K писал(а):У меня в вычислениях получаются 24-х битные значения - оперировать с ними (делить, брать корень) утомительно.
В смысле ты сам прописываешь эти операции, а не готовыми типами пользуешься?
Michael_K писал(а):Тормозит

Сколько операций делаешь и каких в секунду, если не секрет?
Michael_K » 02 дек 2010, 17:07
Да, пришлось на асме куски написать - вообще я так часто делаю.
Эмм... я так не прикидывал.
У меня критерий другой - там прерывания еще молотят - вот если они успевают отрабатывать без пропусков - значит ОК

... Функционал еще очень сырой - судя по всему поменяется еще десять раз...
=DeaD= » 02 дек 2010, 17:17
У тебя тригонометрия в прерываниях?

Michael_K » 02 дек 2010, 17:21
Не совсем - прерывания, когда накопят данные, ставят флажок, что пора посчитать.
=DeaD= » 02 дек 2010, 17:26
Тогда как прерывания могут не успевать обрабатываться?
Michael_K » 02 дек 2010, 17:34
Прерывания-то молотят, просто они пытаются еще раз запустить расчеты, а предыдущие еще не успели завершиться. Прерывания там отъедают примерно процентов 30-50 времени (как повезет)...
(там канал передачи данных хитроумный обслуживать надо)...
Сейчас у меня, правда, эта платка временно "заморозилась" на полпути...
=DeaD= » 02 дек 2010, 17:36
Сдаётся мне, что проблема искусственная - если будет нужно и информация не закрытая - могу поучаствовать в разгребании по возможности.
Michael_K » 02 дек 2010, 17:46
Там основная проблема в том, что требования никто не может оценить

Формулировка примерно такая: "чем точнее и быстрее - тем лучше"

))
А суть простая - нужно определить положение зонда под землей - есть трехосевой аксель-трехосевой компас. Даже два (на всякий случай - один из них на плате повернут на 45 - вдруг точность удастся поднять

) На плате мега88. компасы-аксели подключены по двум программным I2C.
Хочется сделать калибровку "по уму", то есть и по смещениям нулей и по кривизне "сфер"...
Насколько это нужно, и поможет ли вообще - пока неясно

(там помимо компасов проблем хватает - пока отложил).