Автопилот Arduplane - открытое ПО
А вот RTL пока работает стабильно, но строго наоборот: гарантированно уводит аппарат от точки старта !
имхо виноват реверс рудера
имхо виноват реверс рудера
Если бы это был только реверс руддера, то и стабилизация не работала бы…
Однако, с обвинениями в косяках я, похоже, чуток погорячился (окончательно убежусь через пару часов, на поле).
Точнее, косяк был, но мой: собирая в один корпус трехосевой сенсор, я промахнулся и перепутал выходы roll и pitch, а поскольку работает X-микшер, то сразу очевидным это не стало… 😊
Добрый день!
Пробовал с помощью ArduPilotConfigTool ввести координаты в ArduPilot. Целые числа вносятся без проблем. Десятичная дробь с разделителем “,” тоже записывает, но не отображает точки с координатами на карте Google. Дробь, где разделителем является “.”, не записываются в ArduPilot, но точки с такими координатами отображаются на карте. В чем может быть проблема?
у меня тоже не работала эта утилита, на рсгруп тоже жаловались на это
похоже работатет только на 328х красных PCB
зы
кто подскажет где купить 328ю в москве?
а то нашел только в китае за 600р с шипингом
На AP с 328й тоже не работает.
кто подскажет где купить 328ю в москве?
Если это только для работы конфигтула, то не знаю…
А так - V2.2, вроде, должна умещаться в 168 с запасом (скажу честно, собирать под этот кристалл не пробовал, но, судя по avr-nm, там получается всего порядка 15К кода и 700 байт данных). И еще там огромное поле для оптимизации как по коду, так и по переменным (да и по скорости - тоже). - Все-таки, не каждый, кто пишет программы, на самом деле является программером ! 😉
Кстати, после того, как я вывел отдалочную инфу с автопилота на экран телеметрии, все стало понятно и RTL у меня заработал. - Оказалось, что мои кривые руки синтерферировали с кривыми руками Джорди, который забыл “проинвертировать” ширину канальных импульсов с приемника при реверсе серв…
И хотя коэффициенты регуляторов в ветер 5м/с подбирать несерьезно, а потому некое перерегулирование (по стабилизации, по крайней мере) осталось, но “у целом” оно живет.
Загрузчик, сидящий в кристалле какое-то место занимает.
Потому и V2.2 не влазит.
Загрузчик, сидящий в кристалле какое-то место занимает.
Потому и V2.2 не влазит.
А подскажите сколько там нехватает (у меня сейчас под рукой тулчейна нет, сам быстро проверить не могу), - глядишь, я его и утопчу до нужного объема… - Там местами ФАНТАСТИЧЕСКИ неэффективный код.
коллеги, стабилизация работает стабильно? есть ли смысл использовать V2 заместо V1 + copilot
коллеги, стабилизация работает стабильно?
А в каком смысле “стабильно” ? Сравнить с работой fma я его не могу, но вообще - работает. При ветре, разумеется, аппарат чуток побалтывает, так что стабилизатор подвеса камеры эта штука не заменит, но и свалиться - тоже не дает. Ручки можно бросать спокойно.
Как оно работает без ветра - сказать тоже не могу, бо на штиль еще не попадал ни разу… 😁
ЗЫ: Правда, у меня пиродатчик трехосевой и со средней точкой (которая, по факту, оказалась лишней), но не думаю, что это всерьез влияет на стабилизацию.
А подскажите сколько там нехватает (у меня сейчас под рукой тулчейна нет, сам быстро проверить не могу), - глядишь, я его и утопчу до нужного объема… - Там местами ФАНТАСТИЧЕСКИ неэффективный код.
Загрузчик занимает 2К.
А сколько на программу- не знаю.
Загрузчик занимает 2К.
А сколько на программу- не знаю.
На программу - 15К (примерно). Значит, нужно поджать всего на килобайт…
На следующей неделе постараюсь сделать.
ЗЫ: Только я это буду делать для обработки NMEA, как самого универсального протокола, ну и чтобы тот же поток в любую телеметрию скармливать можно было.
Проприетарные бинарные режимы выдачи оптимизировать не хочу (впрочем, они и места должны занимать значительно меньше, так что если уместим энмею, то и все остальное должно будет влезть).
Шикарно.
Поделитесь?😃
Разумеется.
“Как только - так сразу…”
ЗЫ: У меня-то как раз 328.
У меня есть оба варианта 😃
Полезно будет в любом случае.
[QUOTE=Artie;1320073ЗЫ: Только я это буду делать для обработки NMEA, как самого универсального протокола, ну и чтобы тот же поток в любую телеметрию скармливать можно было.
).[/QUOTE]
Вопрос от дилетанта-
Пытаюсь освоить программирование.
Есть ли смысл в Ардуино - или лучше сразу Си и не терять времени, про ассемблер не спрашиваю?
Насколько Ардуино ограничит возможности?
Есть ли смысл в Ардуино - или лучше сразу Си и не терять времени, про ассемблер не спрашиваю?
Дык, оно на сях и сделано (вернее, даже на плюсах, что для данного конкретного применения - скорее минус, чем плюс (“Калабур-с, господа !” 😃)
На самом деле, насколько я успел понять, ардуино - это “комплект” из следующих трех вещей:
- Готовая платка с однокристаллкой, в которую зашит загрузчик. - Позволяет ничего не паять (точнее, паять только то, что ты вешаешь снаружи), и не заботиться о программаторе.
- Оболочки для avr-gcc (написанной на жабе, поэтому тупой и тормозной). - Позволяет в один клик скомпилить программу и залить ее в однокристаллку.
- Библиотек, “абстрагирующих” пишущего от всего железа и дающих некий набор более высокоуровневых функций, вроде обмена по I2C, работы с индикаторами, шаговыми двигателями, сервомашинками, и даже с ethernet’ом.
Непосредственно программы пишутся на сях/плюсах, да и ассемблерные вставки тоже не заказаны, благо все это - не “фича” самого адруино, а возможности совершенно штатного gcc.
Насколько Ардуино ограничит возможности?
Как составная часть некоего законченного продукта (например, то же автопилота) - с моей точки зрения, оно никуда не годится (сразу по многим причинам), но вот именно для обучения эмбеддерству (не профессиональному, а так, “для дома, для семьи”) - я считаю, что это платформа практически идеальная.
… Поскольку для начала, эффективность кода - вещь, в общем, не самая важная, а вот возможность практически с первого же дня начать крутить какой-нибудь сервой или ШД, измерить какое-нибудь напряжение и выбросить его значение в красивом текстовом виде в терминалку (встроенную в оболочку), не вдаваясь в изучение периферии однокристаллки, ее ассемблера, процедуры ее программирования, и так далее, - для начинающего штука достаточно ценная…
Самое же правильное в ардуино именно то, что при всей простоте освоения, оно позволяет учиться писать сразу на нормальном языке, а не на разнообразных ублюдках, вроде пикбэйсика, а в дальнейшем - по мере обучения - ничто не мешает отказаться от оболочки и от “плохих” функций работы с железом, благо в основе у него - полноценный кросскомпайлер и открытые сорсы тех же библиотек.
(Например, мне не понравилось то, что в сериальной библиотеке нельзя проконтролировать переполнение приемного буфера или проверить ошибки приема. - Можно было, разумеется, и написать все эти функции с нуля, и портировать их из какого-нибудь старого проекта, но это заняло бы, как минимум, полдня. А так - три минуты на поиск сорсов, еще три на правку, - и у класса HardwareSerial появился новый метод - status…)
Спасибо,понятно.
Меня смущало наличие
некий набор более высокоуровневых функций
Больше плюсов в этом или минусов?
Что более быстро можно обучиться - это ясно.
А вот не послужит ли это тормозом в дальнейшем в написании более эффективных кодов, без использовании этих высокоуровневых функций?
Теперь сомнения сняты.😃
Попробовал “софтовый” полёт в X-Plane и Goole Earth. Забавно 😃
Что более быстро можно обучиться - это ясно.
А вот не послужит ли это тормозом в дальнейшем в написании более эффективных кодов, без использовании этих высокоуровневых функций?
Нет, конечно.
Библиотеки - это такие штуки, которыми можно не пользоваться, если не хочешь. 😁
А когда они еще и открытые, то переход (в любую сторону) становится вообще настолько плавным, насколько пожелаешь.