Автопилот Arduplane - открытое ПО
А мануал зачетный! Что ж вы раньше то молчали? Надо б его на видное место.
А мануал зачетный! Что ж вы раньше то молчали? Надо б его на видное место.
я только начал его формировать, он еще не дописан и не отшлифован, коге где возможны заблуждения…
так что если что помогайте, подсказывайте, поправлю.
вообще хотелось бы написать по русски то что есть анло-вики и добавить то чего там нет но терзает.
а ситуация тут двоякая пока ты новичком въезжаещь в тему то кажется что все непонятно, а когда уже профи тогда все элементарно и непонятно о чем писать - поэтому сейчас конспектирую все траблы которые возникают, и тут же как решил (невсегда оптимально, но переписать то можно)
заходить лучше не через https на “гуглесайты” а через http доп. домен - так нет в некоторых браузерах глюков с безопасностью смешанного содержимого hobby.msdatabase.ru/project-updates/…/testing
в выходные эксперементровал с иму, попробовал туда залить из программы missionplaner точки маршрута, все залилось, потом несколько раз поменял прошивку, смотрю горизонт у меня в осд дико колбасит, думаю где это я напортачил, - запустил иму тест а там у акселя значения под 300 (норма до 100) гирики тоже скачут. тестером смотрю пол питающего напряжения - гдето 1,6 вольта на выходах - значит сенсоры живы, чтото с процом.
навсякей стер его, залил новый бутлоадер, фьюзы. Прошиваю еще раз, оригинальной прошивой - сенсоры словно сбесились самоль на картинке колбасит как в шторм попал, залил несколько прошив - данные выводит но с сенсорами бредятина полная. заглянул в тип платы ардуино - стоит duemianovе с 328 процом…
типа думаю у меня 5 же вольтовая схема, внешний кварц 16 мгц, поставил arduino pro or pro mini 5v 16 mhz
после прошивки все встало на свои места, странно то как вроде не менял там ничего, почему раньше работало?
барабашки прям какието…
выложил свои правки предложенного выше кода поддерживающего осд,
теперь показывает режим автопилота, иму- горизонт, число спутников с прошивками ремзиби 1_72 и 1_73
hobby.msdatabase.ru/project-updates/…/remzibiosd
перечень правок и хексы прошивок в каждом архиве
единственное “но”- не было возможности облетать ни исходную прошивку ни результирующие (но правки минимальные)
Мнээээээ…
Я что сказать хотел…
Количество спутников есть весьма относительным показателем.
Более важным есть уровень сигнала с них.
Можно иметь 9 с уровнем 27 дБ - и лететь в ж…пу.
А можно иметь 3 с уровнем 45 дБ - и ориентация будет замечательной.
Может имеет смысл поставить какой то порог уровня сигнала?
мысль дельная, но я пока не допетрил где это можно вынуть из передаваемых жпс модулем команд,
пока число спутников используется для того чтобы понять имеет ли смысл захватывать позицию как точку возврата,
но на будущее надобы сделать, может есть какие наработки в какой строке и бите у nmea идет уровень сигнала?
Ну тогда стоит выводить HDOP/GDOP.
дауж погряз я на два дня с HDOP/GDOP
попутно изучил nmea и mtk иниициализацию
для вертикальной и совокупной погрешности надо будет менять инициализацию приемника и делать новый парсер
если по быстрому HDOP уже есть но неиспользуется
на этом и погряз - почему неиспользуется ведь пока погрешность нулевая то можно рулить по жпс, а если значение допов 50 то точность в половину футбольного поля надо больше верить магнитному компасу гирам и барометру…
почему не используется???
вроде регулировка этих факторов это установка ПИДов?
ни у кого не завалялось хорошего толкования что там и к чему?
есть идея динамически регулировать пиды (или ввести коэф) в зависимости от xDOP высоту от VDOP а курс от HDOP
народ помогите чем могете хочу сделать шкалу ожидаемой точности позиционирования (типа как значек антенки у мобилы)
вот результаты испытаний:
C балкона, метров на 50 от карты гугле земля врет но не дрейфует, если отключить питание модулю и включить заново координаты перескакивают метров на 10 но также не дрейфуют
$GPRMC,074214.600,A,5543.8357,N,03744.6306,E,0.00,0.0,221011,*39
$GPGGA,074214.800,5543.8357,N,03744.6306,E,1,08,0.9,158.3,M,0000*04
Тут выделенная единичка = Fix Quality:
- 0 = Invalid
- 1 = GPS fix
- 2 = DGPS fix
на своем модуле я так 2 и не дождался (и тем более тройки описанной в вики дающей точность до см)
$GPGSA,A,3,10,12,25,09,04,31,02,29,1.6,0.9,1.2*3C
тут режим захвата и все допы
$GPGSA
1 = Mode:
M=Manual, forced to operate in 2D or 3D
A=Automatic, 3D/2D
2 = Mode:
1=Fix not available
2=2D
3=3D
3-14 = IDs of SVs used in position fix (null for unused fields)
15 = PDOP
16 = HDOP
17 = VDOP
заэкранировал: bad 2d mode
$GPRMC,075359.600,A,5543.8986,N,03744.6265,E,3.75,0.0,221011,*33
$GPGGA,075359.800,5543.8984,N,03744.6266,E,1,03,3.5,200.0,M,0000*07
$GPGSA,A,2,12,25,29,3.6,3.5,1.0*3E
у $GPGGA фикс, который ардупилот использует остался, а $GPGSA говорит что режим 2D и допы очень нехорошие
после экранировани во глубине бетонных стен - отраженные сигналы ошибка ~400м
$GPRMC,080340.600,A,5543.6992,N,03744.4800,E,0.00,0.0,221011,*30
$GPGGA,080340.800,5543.6992,N,03744.4800,E,1,07,1.6,120.5,M,0000*05
$GPGSA,A,3,10,02,12,04,30,25,29,2.2,1.6,1.6*39
как бы этот комплекс занчений сформулировать для удобной для полетов шкалы на пример из 5 баллов (сами баллы нарисую как шрифт)
на своем модуле я так 2 и не дождался (и тем более тройки описанной в вики дающей точность до см)
Такая точность будет вам доступна после оплаты N000$ в месяц. Погуглите насчет DGPS.
двойку таки получил, и ошибка отоносительно карты гугль и при рестарте сократилась с 150-300м до 1-3м
дело было в том что жпс модуль взял в комплекте с китайской подделкой ремзиби осд, содрав фирменную этикетку с иероглифами обнаружил там надпись ME2530A, найдя на него даташит,
обнаружил буквально пару команд начинавшихся на $PSRF ну думаю какой нить дремучий сирфстар первых редакций…
попробовал утилиту minigps которая идет в вики ардупилота к медиатекам - запросил версию прошивки - говорит медиатек 😃)) с мегадревней прошивой AXN1.30_0000
(а актуальная AXN1.30_2389 ) рискнул, прошил, модуль стал сильно точнее, координаты стал показывать реальные, через несколько минут после запуска появляется 2 = DGPS fix
но обратил внимание что при работе с прогой - модуль быстрее переходит во 2 режим, чем с ардупилотом - поснифил что шлет в компорт прога, нашел пару строк значения которых пока не понимаю, но вроде работает как с прогой
эту отсылаю сразу после паузы при инициализации сериалпорта:
#define MINIGPSINIT “$PMTK414*33\r\n$PMTK400*36\r\n$PMTK602*36\r\n$PMTK401*37\r\n$PMTK419*3E\r\n$PMTK490*3F\r\n$PMTK430*35\r\n” //com sniffed sting
а эту последней, после инициализации sbas
Serial.println(“$PMTK319,0*25”);
исходя из описалова с моим трудным английским предполагаю это дает возможность использовать данные waas со спутников на которых система находится в стадии тестирования
посмотрел библиотеки из комплекта IMU 1.8.2 нашел там gps_imu
в пилоте 2.7 это не используется, очень похоже что должен был быть 2.8
был ли релиз или бэта?
попробовал утилиту minigps которая идет в вики ардупилота к медиатекам - запросил версию прошивки - говорит медиатек )) с мегадревней прошивой AXN1.30_0000
(а актуальная AXN1.30_2389 ) рискнул, прошил, модуль стал сильно точнее, координаты стал показывать реальные, через несколько минут после запуска появляется 2 = DGPS fix
А можно это по-подробнее описать. Где брать прошивки, чем программировать и тд
code.google.com/p/ardupilot/wiki/MediaTek - тут
скачать утилиту, скачать последнюю прошивку(AXN1.30_2389_3329_384.1151100.1_v16.bin), скопировать последнюю прошивку в Flash Tool v1.0.0 for Customer\Firmware
а дальше по инструкции MediaTek_Programming.pdf которая вложена в архив с утилитой,
кстати прога минижпс - там же
единственное что я так и не смог сделать - залить дефолт настройки - мой модуль осталось записей 0, мелькало в форумах что если счетчик достиг 0 то нужно стирать флешку, но при перепрошивке не сбросилось…
Алексей, у Вас заработал полет по точкам в ГПС эмуляторе с 2.7?
Никак не могу заставить работать, уже даже не знаю где копать. Может оно вообще не работает!?
Если вопрос ко мне, то я еще в симуляторе не летал, ЖПС эмулятор от комплекта ремзиби пробовал чтоб разобраться в NMEA протоколе маленько…
вчера шерстил прошивки вдоль и поперек пилот2.6 показался примитивным, пилот2.7 дрожит как шальной, это не только напрягает внешне и приводит к более быстрому расходу батареи но и наводит на мысль что есть бага,
насколько я понял народ пишет что это изза того что код неоптимален, дрожание вызвано тем что пилот не успевает отрабатывать и сериал и прерывания в необходимом ритме.
I tried v2.7 I got servo ‘twitching’ in stabilze mode. Jason thought that this was due to the amount of processing that was now being carried out and that the Ardupilot board was being pushed to the limit. He also mentioned that a new serial driver may help and that this would be incorporated in v2.8. I notice from the SVN that although v2.8 was started there appears to have been no progress since September. I assume that the development teams limited time has been spent on Ardupilot Mega and Adrucopter.
походу ребята решили все переписать на классы, и к маю 2010 сделали иму 1.8.2 “на библиотеках” а при реализации пилота2.8 уперлись в 32к памяти. Скачал их наработки по 2.8 слил в проект, добавил библиотеки от иму1.8.2, недостающие тупо взял от меги, с заданой настройкой GPS на модуль MTK (заняла почти все 32к, но скомпилировалась!), а ардуиму в качестве GPS, увы, не прокатила - не компилируется, пока отложил в сторонку, еще неприятно что если заливать все библиотеки меги втупую то компилироваться небудет а значит не меняя комплект библиотек нельзя будет и меговской прошивкой заниматься и мини
вобщем надежда на 2.8 еще есть, по большому счету нафиг универсальность, убрать оттуда кучу жпс (и кому нужен ардупилот без иму???) - оставить один жпс-иму , убрать раритетные термофилы, попробовать переписать на локальные библиотеки “”- вместо <> чтобы развязать библиотеки меги и мини
Всем привет! Подскажите, пожалуйста, у меня ArduIMU v2 залил прошивку 1.7 При тестировании в ArduIMU Test жёлтый самолетик вращается только вокруг осей X и Y. В строке Z Yaw цифры меняются, но самолет не вращается. В чём может быть причина, неисправен гироскоп?
В чём может быть причина
а кнопочка Enable Yaw нажата?
Да, нажата и не один раз. 😃
вчера шерстил прошивки вдоль и поперек пилот2.6 показался примитивным, пилот2.7 дрожит как шальной, это не только напрягает внешне и приводит к более быстрому расходу батареи но и наводит на мысль что есть бага,
насколько я понял народ пишет что это изза того что код неоптимален, дрожание вызвано тем что пилот не успевает отрабатывать и сериал и прерывания в необходимом ритме.
Мне удалось практически задавить дрожание и сохранить приемлемую динамику для моего сочетания серв и рулей, усредняя сигнал на сервы по последним 3 не то 4 циклам. Меньше - дрожит, больше - тупит. Но, еще раз повторюсь - это для моего ероплана, у других может быть по другому. Это. конечно, лечение симптомов, а не болезни…
Поскольку дайдронцы, похоже, первый пилот забросили окончательно, и новых прошивок скорее всего не будет, код можно ковырять смело. Есть идея подключить IMU по I2C, освободив приемную сторону последовательного порта для общения с наземкой. Этот вариант в wiicopterе работает очень даже быстро.
Ну и с оптимизацией. Надо или вынести напрочь все рудименты вроде поддержки пирометров и непосредственной работы с GPS из кода пилота, или оставить их только внутри #ifdefов. Ну и затащить проект в нормальную оболочку, чтобы проверить и вычистить все неиспользуемые переменные, функции и ссылки…
Есть идея подключить IMU по I2C, освободив приемную сторону последовательного порта для общения с наземкой. Этот вариант в wiicopterе работает очень даже быстро.
Ну и с оптимизацией. Надо или вынести напрочь все рудименты вроде поддержки пирометров и непосредственной работы с GPS из кода пилота, или оставить их только внутри #ifdefов. Ну и затащить проект в нормальную оболочку, чтобы проверить и вычистить все неиспользуемые переменные, функции и ссылки…
прям мои мысли. сделать иму ведомым устройством а чтобы пилот запрашивал нужные ему данные, убрать и пиродатчики и все жпс кроме иму! ведь флай-бай-вире нафиг не уперся - вся суть автопилота в стабилизации.И наоборот подключить осд ремзиби в качестве дополнительной опции GGS
Причину дрожания прошивки 2.7 нашел (этой ночью, и она явная и видна как бревно в глазу!!!), и даже залатал но попутно обнаружено еще несколько явных баг,
попробую все их исправить, откалибрую и выложу на обсуждение
помимо этого, насколько я понял из форумов (ардуино и разработчиков ардупилота) проблема сериал-порта как “пожирателя ресурсов” решена и использована в иму - это подключение fastserial библиотеки на аппаратный ком порт, как утверждается свежая библиотека не только менее ресурсоемкая но и с асинхронным буффером тоесть - вот оно счастье - не будет ошибок чексум, подключается двумя строками - можно подглядеть в иму 1.8.2
моя версия уже почти созрела, но одному мне сложновато комплексно оценить и протестировать как отразятся изменения на остальных процессах
(я хоть и программист по специальности, но C++ не мое, дай мне бэйсик или tsql а от этих кракозябров тошно уже) Поэтому если кто “могет”, я могу поделиться бэта-версией и прокоментировать что к чему
кстати в своей прошиве пилота я сделал прием с иму числа спутников и качества GPS сигнала, качество сигнала сначала хотел писать сам, но оказалось что в последней иму есть скрытая “пропертя” у объекта жпс
Про причину дрожания и другие баги - интересно до дрожи 😃). Я пока не нашел, хотя есть некоторые подозрения. 😦( Увы, на работе нет пилота, а дома времени 😦(
Про фаст сериал пока не думал.
Rembizi вроде как и так без особых проблем снюхивается с ардупилотом, только нужна правильная прошивка.
В каких-то сообщениях GPSа уровень сигнала и количество спутников есть, надо покурить мануал. Насколько я помню, некоторым приемникам при инициализации можно сказать список интересующих сообщений, и приемник не будет гнать остальные. Не исключено, что сообщения со спутниками просто не разрешены…
Если нужен свежий глаз - у меня их есть. На С - пишу крайние лет 20 😃)