строю свой автопилот, интересуют несколько вопросов

kaveg
Frr:

Такая штука хочет для данных 40K ram памяти примерно. Хватает?

40k ram? так много?
сейчас у меня на борту 8к и в них уже влезло AHRS+калман с состоянием модели из высота-скорость
ну нехватит будем думать - жпс модуль умный - можно на него сливать данные с датчиков, а обратно получать жпс+скорректированные
на жпс модуле оперативки валом)))
правда там питон))) а я питон не люблю и не особо умею)))

Да и судя по картинке - 70 градусов в наших широтах это вы както многовато))) почему я и удивился - на картинках угол в землю начинает быстро расти близко к полюсам, причём на всех картинках что я видел а не только на той которую вы мне показали, вот я и подумал неужели все для простоты картинки от балды рисуют

увидеть бы как эти линии у поверхности вылядят реально судя по модели диполя сильно непрямые они тока у поллюсов магнитных

хех вот и акумуляторы зарядились. можноспать ложиться, завтра если погода не подпортит поробую во второй разкамеру потестить, в прошлый раз много косяков получилось,думал леталку угрублё сразу после взлёта, обошлось)))
вот что получилось с борта tamila.linux-rusnet.org/poleety/03-06-2011
а вот как это выглядило на самалёте disk.tom.ru/8fq11rp
соотвественно косяки -

  1. приемник стоял неудачно, на посадке когда самолёт был у земли всё стало плохо так как передатчик был в тени моей табуретки четырёхколёсной))
  2. кирпичек на крыле сверху кроме того что сильно изменил вес модели адски уменьшил обдув хвоста)))) во время взлётапришлось топнуть на максимум чтоб не взлететь в землю, без кирпича комфортоно взлетает в пол газа
Frr
kaveg:

40k ram? так много?

Чем больше датчиков замешано вместе, тем лучше давятся шумы, меньше глюков. Кол-во РАМ увеличивается примерно в квадрате от размера замеса.
В 32K у ФИ-20/21 видимо поместилось не много 😃

kaveg:

увидеть бы как эти линии у поверхности вылядят реально судя по модели диполя сильно непрямые они тока у поллюсов магнитных

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

kaveg

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

stalcer
serj:

Посмотрите в ветке по фи-20, там Андрей полезную ссылку давал на открытый проект ИНС
www.pololu.com/catalog/product/1253

Из даташита:

On average, the accelerometers measure the gravity vector. The EKF “knows” which way is
down by observing the direction of the gravity vector. There are a number of cases where this
assumption breaks down, particularly in aircraft. When an aircraft makes a coordinated turn,
the measured acceleration will always point in the direction of the bottom of the fuselage. Over
a long turn, the AHRS pitch and roll angle estimates will therefore tend to zero. To correct this
problem, additional sensors must be used for centripetal compensation. The CHR6dm has no
native support for centripetal compensation.

Нада погуглить по словам: centripetal compensation AHRS… Может че интересного найдется…

Вопрос в догонку: GPS датчик высоту не измеряет разве?

kaveg
stalcer:

Вопрос в догонку: GPS датчик высоту не измеряет разве?

Измеряет, но какова точность и скважность измерений
и опятьже жпс жутко ненадёжная штука, а высата очень важный параметр

stalcer

Я думаю вот что:

  1. Если брать относительно большие промежутки времени, ну например 5-10 секунд, то направление движения легко определяется по GPS, т.к. за 10 сек модель далеко улетает. Т.е. точность GPS на таких расстояниях уже позволяет определять направление.
  2. Внутри этих промежутков направление (и положение) нужно считать интегрируя показания акселерометров и гироскопов. Опять же, я думаю, что за 10 сек большая погрешность не накопится.
  3. Через каждые 10 сек мы сверяемся с GPS, т.е. обнуляем погрешность интегрирования.

10 сек - это, наверное, сильно преувеличенный промежуток. Думаю что в реальности его можно сделать гораздо меньше. Хотя, предельно его уменьшать задачи не стоит, главное чтобы он соответствовал идеям пунктов (1) и (2).
Ну и таким образом у нас есть всегда актуальные данные, с достаточно высокой частотой обновления.

ЗЫ: и магнетометр нафег не нужен.
ЗЗЫ: все это верно для самолета, который все время летит, т.е. меняет свое положение. Для вертолета, который может висеть на одном месте уже не совсем пойдет - будет потихоньку крутиться вокруг своей оси (опять же - потихоньку - это со скоростью дрейфа гироскопа, т.е. приемлемо в принципе), а вот наклонятся не должен, т.к. ускорение свободного падения (g) по прежнему засекается.

kaveg:

опятьже жпс жутко ненадёжная штука, а высота очень важный параметр

А есть где-нить графики GPS логов полета модели? Ну так, посмотреть визуально, насколько разброс засекаемой траектории из-за погрешности.

kaveg
stalcer:

А есть где-нить графики GPS логов полета модели? Ну так, посмотреть визуально, насколько разброс засекаемой траектории из-за погрешности.

пока нет, нужен самолёт покрупней а деньгов после отпуска нема)))

stalcer:

ЗЗЫ: все это верно для самолета, который все время летит, т.е. меняет свое положение.

Ключевое слово ветер, даже какието старые гражданские АН-непомнюцифру против ветра умеют летать хвостом в сторону куда ветер дует, модели же даже сильного ветра не нужно чтоб зависнуть чтоб допустим вертикально снизиться или наоборот))) ну или просто посозерцать птичек в статитке)))

Korogodsky:

Еще подобное устройство с примерами кода на закладке Useful links: www.robotshop.com/phidgets-us...d-compass.html

да это 9dof инерциальный сенсор и соотвественно самплы не юзают ничего кроме него)))

а вообще когда говорят “с примерами кода” меня немного дергает, примеры кода ненужны, нужна матмодель, а код под матмодель написать ничего не стоит, кодер не самое высокое звание для “програмиста”. Восстановить матмодель по “примеру кода” конечно можно, но это както…нито))

stalcer
kaveg:

Ключевое слово ветер, даже какието старые гражданские АН-непомнюцифру против ветра умеют летать хвостом в сторону куда ветер дует, модели же даже сильного ветра не нужно чтоб зависнуть чтоб допустим вертикально снизиться или наоборот))) ну или просто посозерцать птичек в статитке)))

А при чем здесь ветер. Ну то есть он конечно мешает, но у нас же система с обратной связью (с тем самым “К”). Нада повернуть модель - поворачиваем. Не поворачивается - поворачиваем сильней 😃 И, кстати, ветер гироскопы/акселерометры не обманет (им же все равно почему модель крутится - из-за ветра или из-за серв), так что направление модели мы все равно будем знать.
…ушел думать 😃

kaveg
stalcer:

А при чем здесь ветер

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

stalcer

Да, ты прав. Компенсация в этом случае страдает… Тут есть такие соображения:

  1. На ошибку по курсу (в горизонтальной плоскости) можно ваще забить, т.к. самолет в это время никуда не двигается. А когда задвигается - она компенсируется.
  2. Все время в голове крутится мысль, что в остальных направлениях для компенсации ошибки (кроме GPS) как-то может пригодится ускорение свободного падения (g). Эта мысль никак пока не формализуется че-то 😃
stalcer
kaveg:

а на околонулевой показания жпс будут вообще сомнительной пригодности, так как самолёт относительно потока воздуха вроде как летит вперёд, а жпс показывает что он летит в бок и ошибка курсовой гиры вернее базиса для ее компенсации станет равно 90гр

Погоди-ка. Здесь ты не прав. Мое решение (в сообщении №53) не требует, чтобы самолет летел носом вперед. Главное - чтобы перемещался в координатах GPS.

Поправка: все, дошло. Таким образом мы можем компенсировать только ошибку акселерометров, а гироскопов - не можем. Чтобы компенсировать гироскопы - да, нужно чтобы модель летела носом вперед. Каюсь 😊

stalcer

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

kaveg

нет магнетометры нужны, зная модуль воздушной скорости и вектор(курс и модуль) с жпснельзя восстановить направление курсовой скорости(V1 V2 на картинке) а нет опорного курса незнаем куда смотрит нос в общем случае в часном случае модет чтото и получится сделать(модуль Vgps== модуль Vair) соотвественно куда направлен реально нос скзать не смогем, определённой последовательностью действий не меняя курс и решив систему уравнений сможем восстановить направление но это можно делать только не меняя курс чего мы сделать не сможем изза дрейфа курсовой гиры, мы просто не будем знать когда курс остается постоянным а когда нет

это было для

stalcer:

А впрочем нет

обалденно седня полетал до отсечки - 22 минуты, заодно понял что надо таки бросить свою последнюю вредную привычку курить - тестил дальность радива - 400-450 метров без косяков, дольше перестал различать махания помошника и решил забить ибо на таком растоянии помошника не видел нормально не то что самалёт

stalcer

Зная вектор Vgps (направление и модуль), мы фактически знаем расположение земли относительно модели, т.е. тот вектор который нам дает магнитометр - тоже можно вычислить. Значит магнитометр не нужен 😛.

Вот в pdf, ссылка на который лежит у тебя на сайте, написано:

An accelerometer and magnetometer will measure the earth’s gravitational and magnetic elds respectively and so provide an absolute reference of orientation.

Замени здесь “magnetometer” на “GPS sensor” - ниче не изменится.

Датчик, который дает Vair - тоже не нужен. Т.е. он может и нужен для чего-нибудь другого (например, для оценки скорости ветра и выбора стратегии управления), но для определения положения модели - не нужен (имхо).

Я рассматриваю систему из GPS, 3dof акселерометра и 3dof гироскопа. И пока все. Интуитивно кажется, что их должно быть достаточно для определения положения/направления модели.

ЗЫ: вчера с дочкой изучили проблему 😁

kaveg
stalcer:

Я рассматриваю систему из GPS, 3dof акселерометра и 3dof гироскопа. И пока все. Интуитивно кажется, что их должно быть достаточно для определения положения/направления модели.

ЗЫ: вчера с дочкой изучили проблему 😁

будет достаточно пока

  1. отсутствует ветер изменяющий направление вектора скорости относительно того куда смотрит самалёт
  2. нет скольжения - вчера только наблюдал когда попозже поднялся ветерок когда самолет летел фактически крылом впёрд))))
    те компенсация возможна только в определённые моменты, вопщемто для “только определённые” магнетометр подходит лучше, с компенсацией магнетометром фишка в том что если предположить что самаолёт летает примерно равномерног - одинаковое количество левых и правых виражей и других изменяющих показания акселерометров возмущений когда среднее значение вектора ускорения соотвествует G и направлено в низ
stalcer
kaveg:

отсутствует ветер изменяющий направление вектора скорости относительно того куда смотрит самалёт

Да не прав ты в этом. Мне все равно какой стороной вперед летит самолет. Более того, используя систему из трех датчиков (GPS, акселерометр и гироскоп) я могу это определить (а определив это, я могу даже аналитически вычислить, куда дует ветер (ну примерно)).

Тут придумалась такая метафора: немного жестоко, но, надеюсь, никто не обидится 😇:

Вот поймали тебя (ну ладно, пусть меня 😵) бандиты. Поставили посередине комнаты, завязали глаза. А потом пнули ногой в живот.
Вопрос: смогу ли я (с завязанными глазами) оценить:

  1. насколько я отлетел? Ну примерно смогу. Скажем, мне показалось, что метра на два.
  2. какой стороной я летел? Конечно смогу! Я же знаю, что меня пнули в живот, т.е. летел я задницей вперед.

Т.е., другими словами, пусть даже я и не знаю куда именно я отлетел (на серев или на северо-запад или еще куда), я вот что знаю точно: то что направление “вектора моей задницы” совпадает с направлением “полета”.

Страшилки продолжаются: Далее, бандит по кличке “GPS” 😁 вдруг сообщает в эфир (другому бандиту, ну и я тоже слышу): “Ооо! Круто пошел 😈, прямо в направлении севера 😁”.

Все, блин! Получив эту информацию, я знаю что в конечной точке я стою лицом на юг.

kaveg
stalcer:

Далее, бандит по кличке “GPS” вдруг сообщает в эфир (другому бандиту, ну и я тоже слышу): "Ооо! Круто пошел , прямо в направлении севера ".

дадада прямо в направлениии севера, но правом боком задницей или или как все передом неясно, бандюган по кличьке жпс тебе этого не скажет, он говорит что целиком ты переместился на север

stalcer:

какой стороной я летел? Конечно смогу! Я же знаю, что меня пнули в живот,

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

blade
kaveg:

бандюган по кличьке жпс тебе этого не скажет

Ребяты, не парьтесь: всё давно украдено (до вас) 😃
Надо корректировать “0” гироскопов (или- горизонта, как нравится) по двум ориентирам :
3Д компасу (грубовато) и наличию-отсутствию скольжения (по ЖПС).
Только не раз в 10 сек, (как тут пИсали) а пять раз в секунду (т.е. с каждым приходом пачки координат с ЖПС модуля) .
И будет- Щастье.

msv

Может пора к формулкам перейти, а то что-то не врублюсь в все эти аналогии… кто и зачем пнул мой самолет… И как он почувствовал куда его пнули… И тем более как из этого или из определения наличия скольжения получить текущий крен… Правильно ли понял, что зреет аналитическое решение а не вероятностное? Это было бы действительно счастье…

stalcer
kaveg:

дадада прямо в направлениии севера, но правом боком задницей или или как все передом неясно, бандюган по кличьке жпс тебе этого не скажет, он говорит что целиком ты переместился на север

Дык, мне этого знать и не нужно.

kaveg:

а бандит жпс может выдать твой курс с погрешностью 180 градусов(случай когда сильный ветер в морду и ты летишь в потоке хвостом вперёд относитенльно земли и жпс показывает не туда куда ты собираешся лететь а совсем в обратную сторону)

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

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

пнули один раз от боли курс в мосгу сбился на градус, пнули второй ещё и так далее

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

Только не раз в 10 сек, (как тут пИсали) а пять раз в секунду (т.е. с каждым приходом пачки координат с ЖПС модуля) .

Я просто хотел сказать, что интервал времени, удовлетворяющий двум следующим условиям, вполне существует:

  1. достаточно большой, чтобы фильтровать погрешность GPS.
  2. достаточно маленький, чтобы ошибка дрейфа была приемлема.