ArduCopter Mega: порт на обычную Arduino (тестим)

kren-DEL
limon_spb:

да, FPV пока еще в проекте 😃

а) ну тогда всё ещё в переди, я на такие высоты только по FPV поднимаюсь, больше 200м ориентацию коптера не определить уже 😦

limon_spb
kren-DEL:

а) ну тогда всё ещё в переди, я на такие высоты только по FPV поднимаюсь, больше 200м ориентацию коптера не определить уже

Поэтому Lioter и использую: взлетаю пока взлетается на месте, кручусь-делаю фотографии, спускаюсь на месте 😃 Думал сегодня попробовать взлет PILOT_VELZ_MAX = 10м/c, как оно будет (может выше получится), но погода как обычно…

limon_spb

Может быть кто-то[Сэр Алекс? 😃] сможет подсказать мне по коду Пирата?

Залез здесь немного в библиотеки, стало интересно, какая фильтрация применяется… Наткнулся на github.com/MegaPirateNG/…/AP_LeadFilter

Согласно описанию эта либа удялет задержку GPS

1ый непонятный момент: зачем в AP_LeadFilter.h строка

#include <AP_LeadFilter.h>

В С++ уже давно, но иногда чувствую себя новичком 😃

2ой Непонятный для меня момент.
задача, как я её понял:
Дана позиция(pos), известно время между измерениями(lag_in_seconds), известна скорость на предыдущем такте(_last_velocity), известна скорость на этом такте(vel). Нужно спрогнозировать позицию в следующем такте.
Как решается там:

int32_t
AP_LeadFilter::get_position(int32_t pos, int16_t vel, float lag_in_seconds)
{
    // assumes a 1 second delay in the GPS
    int16_t accel_contribution = (vel - _last_velocity) * lag_in_seconds * lag_in_seconds;
    int16_t vel_contribution = vel * lag_in_seconds;

    // store velocity for next iteration
    _last_velocity = vel;

    return pos + vel_contribution + accel_contribution;
}

Здесь, как я понял, предполагается, что движение равноускорено, т.е. из школьных воспоминаний
S = So + Vo * t + a * t*t/2;

Т.е. получается, что accel_contribution должно вычисляться по формуле (если не сокращать ничего):

int16_t accel_contribution = (vel - _last_velocity) / lag_in_seconds * lag_in_seconds * lag_in_seconds / 2.0;

где
(vel - _last_velocity) / lag_in_seconds - это вычисленное ускорение.
lag_in_seconds * lag_in_seconds / 2.0 - время в квадрате пополам.
Ну а в реальном коде это немного не так… Стало очень интересно, в чем дело 😃😃

limon_spb
limon_spb:

Стало очень интересно, в чем дело

Вопрос снимается - оказывается эта библиотечка нигде не используется и даже вроде выпилена из APM коптера.

RTemka

Вопрос не совсем по теме.
Как подключены датчики в AMP 2.5.
SPI или i2c ?

SovGVD
blind_oracle:

i2c

гугл вот такую цитату дал “The IMU board is busy communicating with the processor board on the SPI bus”

blind_oracle
SovGVD:

угл вот такую цитату дал “The IMU board is busy communicating with the processor board on the SPI bus”

Это про PX4 наверное, там две платы, хотя могу ошибаться.
Ошибаюсь, это APM1 судя по всему, двуслойный.

А вообще баро вроде как тоже по SPI подключен, я думал там всё i2c.

/*
        APM_MS5611.cpp - Arduino Library for MS5611-01BA01 absolute pressure sensor
        Code by Jose Julio, Pat Hickey and Jordi Muñoz. 

        This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

        Sensor is conected to standard SPI port
2fast2real

Кто нибудь знает аналоги 3др модемов, милливатт так на 300-500, хочется увеличить дистанцию телеметрии.

blind_oracle
2fast2real:

Кто нибудь знает аналоги 3др модемов, милливатт так на 300-500, хочется увеличить дистанцию телеметрии.

Можно попробовать Digi XBee, с хорошими антеннами обещают до 28 миль на открытой местности.
www.digi.com/products/…/xbee-pro-900hp

У меня есть модули послабее (брал на ебае) - довольно интересные штуки, можно делать mesh-сеть и т.п.

Но для нужд коптера можно просто взять две и завязать в бридж и будет как 3DR. В качестве бонуса для параноиков умеет шифровать траффик в AES.

2fast2real

Жаль у них 433 МГц нету, у меня видео везде на 900 МГц

blind_oracle
2fast2real:

Жаль у них 433 МГц нету, у меня видео везде на 900 МГц

Есть 868Мгц до 80км радиусом: www.digi.com/products/…/xbee-pro-868

Не шибко частота сдвинута от 900, но и то хлеб 😃

2fast2real

Блин нету модемов нормальных, то частота не та то скорость слишком медленная, а так на али их полно, но все до 19200 😦

blind_oracle

ИМХО и 19200 вполне неплохо, ты же не видео передаешь 😃

RTemka

Народ после последнего обновления планнера у всех проблема коннекта пропала ?
Или случайное совпадение.

obion
egor-mav:

Но все равно не реагирует на стики…

Разобрался с проблемой?
У меня похоже такая же проблема случилась после того как турниговский приёмник поменял на FrSKY D8R-II Plus.

Приёмник в обычном PWM режиме подключен, в RCInput_MPNG.cpp установлен SERIAL_PPM_DISABLED.
В Mission Planner не реагирует на стики.
Если для теста подключать сервы напрямую в приёмник, то всё работает.

Может кто-то сталкивался?
Пока нету возможности перешить приёмник в CPPM.

nikr
RTemka:

Народ после последнего обновления планнера у всех проблема коннекта пропала ?
Или случайное совпадение.

Ага, на последнем планере коннектится нормально.

obion
obion:

Разобрался с проблемой?
У меня похоже такая же проблема случилась после того как турниговский приёмник поменял на FrSKY D8R-II Plus.

Приёмник в обычном PWM режиме подключен, в RCInput_MPNG.cpp установлен SERIAL_PPM_DISABLED.
В Mission Planner не реагирует на стики.
Если для теста подключать сервы напрямую в приёмник, то всё работает.

Может кто-то сталкивался?
Пока нету возможности перешить приёмник в CPPM.

Дело было не в бобине, коротил иногда питанием на input пины.

2fast2real

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