Автопилот Arduplane - открытое ПО

lio
alexeykozin:

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

ну как вариант 😃
можно будет подумать …
в тиньке у меня 15 версия была , так и не менял - мну устраивает

alexeykozin

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

вот они фьюзы:

смотри extended 0xff
high 0xdf
low 0xe2

инфа отсюда: www.rcgroups.com/forums/showthread.php?t=1254724

мануал avrdude nongnu.askapache.com/avrdude/avrdude-doc-5.5.pdf

пара батников втч с примерами фьюзов, правда для atmega168/328 - у меня
http://hobby.msdatabase.ru/project-updates/theresultsofoursurvey/ardupilot-imu
(в конце страницы приложен bootloader.rar)

Serj=
alexeykozin:

там вроде мануал был…

Там это где? Я по двум мануалам разбираюсь тынц и тынц
И чего то чем дальше тем меньше понимаю что есть фьюзы, efuse, hfuse и lfuse в avrdude могу задать, а как частоту внутреннего осцилятора настроить?

alexeykozin:

вот они фьюзы:

Так кроме них ничего и не надо?
кстати из после зашивки кода зашивать или до?

lio

для тиньки внутренний ставится … откуда внешний нашли то ?
diydrones.com/…/how-to-program-the-attiny-on

“Then make sure “Device” is Attiny45 and “Read signature”. At the bottom it should say that all’s okay. If so, switch to “Fuses” tab and uncheck CKDIV8”

alexeykozin

я как то всегдашью фьюзы после,

в той же вики по ардупилоту все версии тини 1, 15, 16
code.google.com/p/ardupilot/downloads/list

в тиньке мало того что внутренний так еще и еще деленный, кажись на 4,
вродеб он работает на 2 мегагерцах вместо 8 возможных - и это во фьюзах

Serj=

В 16й версии написано Added Fail Safe for analog radios. Похоже как раз мой вариант.
Вот у меня ручки и зачесались 😃

УРА!!! Спасибо мужики!!!
Мой автопилот опять жив, только с 15й прошивкой, 16я его убивает напрочь, похоже что файл сейв постоянно перезагружает Атмегу.

alexeykozin
Serj=:

А мануал зачетный! Что ж вы раньше то молчали? Надо б его на видное место.

я только начал его формировать, он еще не дописан и не отшлифован, коге где возможны заблуждения…
так что если что помогайте, подсказывайте, поправлю.
вообще хотелось бы написать по русски то что есть анло-вики и добавить то чего там нет но терзает.
а ситуация тут двоякая пока ты новичком въезжаещь в тему то кажется что все непонятно, а когда уже профи тогда все элементарно и непонятно о чем писать - поэтому сейчас конспектирую все траблы которые возникают, и тут же как решил (невсегда оптимально, но переписать то можно)
заходить лучше не через 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
после прошивки все встало на свои места, странно то как вроде не менял там ничего, почему раньше работало?
барабашки прям какието…

alexeykozin

выложил свои правки предложенного выше кода поддерживающего осд,
теперь показывает режим автопилота, иму- горизонт, число спутников с прошивками ремзиби 1_72 и 1_73

hobby.msdatabase.ru/project-updates/…/remzibiosd

перечень правок и хексы прошивок в каждом архиве
единственное “но”- не было возможности облетать ни исходную прошивку ни результирующие (но правки минимальные)

Lazy

Мнээээээ…
Я что сказать хотел…
Количество спутников есть весьма относительным показателем.
Более важным есть уровень сигнала с них.
Можно иметь 9 с уровнем 27 дБ - и лететь в ж…пу.
А можно иметь 3 с уровнем 45 дБ - и ориентация будет замечательной.
Может имеет смысл поставить какой то порог уровня сигнала?

alexeykozin

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

alexeykozin

дауж погряз я на два дня с HDOP/GDOP
попутно изучил nmea и mtk иниициализацию

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

на этом и погряз - почему неиспользуется ведь пока погрешность нулевая то можно рулить по жпс, а если значение допов 50 то точность в половину футбольного поля надо больше верить магнитному компасу гирам и барометру…
почему не используется???

вроде регулировка этих факторов это установка ПИДов?
ни у кого не завалялось хорошего толкования что там и к чему?
есть идея динамически регулировать пиды (или ввести коэф) в зависимости от xDOP высоту от VDOP а курс от HDOP

alexeykozin

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

вот результаты испытаний:
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 баллов (сами баллы нарисую как шрифт)

skydiver
alexeykozin:

на своем модуле я так 2 и не дождался (и тем более тройки описанной в вики дающей точность до см)

Такая точность будет вам доступна после оплаты N000$ в месяц. Погуглите насчет DGPS.

alexeykozin

двойку таки получил, и ошибка отоносительно карты гугль и при рестарте сократилась с 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 со спутников на которых система находится в стадии тестирования

alexeykozin

посмотрел библиотеки из комплекта IMU 1.8.2 нашел там gps_imu
в пилоте 2.7 это не используется, очень похоже что должен был быть 2.8
был ли релиз или бэта?

tusik
alexeykozin:

попробовал утилиту minigps которая идет в вики ардупилота к медиатекам - запросил версию прошивки - говорит медиатек )) с мегадревней прошивой AXN1.30_0000
(а актуальная AXN1.30_2389 ) рискнул, прошил, модуль стал сильно точнее, координаты стал показывать реальные, через несколько минут после запуска появляется 2 = DGPS fix

А можно это по-подробнее описать. Где брать прошивки, чем программировать и тд

alexeykozin

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 то нужно стирать флешку, но при перепрошивке не сбросилось…

Serj=

Алексей, у Вас заработал полет по точкам в ГПС эмуляторе с 2.7?
Никак не могу заставить работать, уже даже не знаю где копать. Может оно вообще не работает!?

alexeykozin

Если вопрос ко мне, то я еще в симуляторе не летал, ЖПС эмулятор от комплекта ремзиби пробовал чтоб разобраться в 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 еще есть, по большому счету нафиг универсальность, убрать оттуда кучу жпс (и кому нужен ардупилот без иму???) - оставить один жпс-иму , убрать раритетные термофилы, попробовать переписать на локальные библиотеки “”- вместо <> чтобы развязать библиотеки меги и мини