Создание собственной системы стабилизации

SergDoc

Это тебе 😃 а я могу и на пару месяцев застрять 😃

VitaliyRU
mahowik:

для спец. рам надо свою табличку спец. миксов идеале, либо примерно зная коэф. прилагаемой силы можно это учесть на roll/pitch пидах…

upd: считается легко, типа как тут:
rcopen.com/forum/f123/topic258132/1454
rcopen.com/forum/f123/topic258132/1501
rcopen.com/forum/f123/topic221574/8662

Это вообще всегда нужно. Рамы чуть не ровные разнотяг моторов и т.д. Идеальноно настроенный, когда на PD. Висит как на PID. Летает потом на порядок лучше и адекватный. Странно что это до сих пор в настройки не вынесено. Я для себя вий перекалохозил использую ПД магнитометра, т.к его не пользую.

SergDoc

в baseflight есть ручной микс, надо будет проверить…

VitaliyRU
SergDoc:

в baseflight есть ручной микс, надо будет проверить…

Я настраиваю в акро моде, естественно, убрав I на ноль. Пока само ровно висеть не начнет. Были мысли сделать адатацию, но по простому не получилось, она уезжает при резких манерах(коптер становится еще более мутным по поведению), а отфильтровать “резкие” маневры не получилось.

mahowik
VitaliyRU:

Странно что это до сих пор в настройки не вынесено.

все вынесено… в 2.2 есть


/***********************      your individual mixing     ***********************/
    /* if you want to override an existing entry in the mixing table, you may want to avoid esditing the
     * mixTable() function for every version again and again.
     * howto: 
     */
    //#define MY_PRIVATE_MIXING "filename.h"
    //#define LEAVE_HEADROOM_FOR_MOTORS 4 // leave room for gyro corrrections only for first 4 motors
VitaliyRU
mahowik:

все вынесено… в 2.2 есть

2.2 я в глаза не видел, совсем отстал
Но по коду ж не вынесен в GUI?
С хардкодом и прочими дефайнами, очень не удобно настраивать.

mahowik

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

VitaliyRU
mahowik:

и всеж в оф. вие больше дефайн-концепция

Просто в моем заблуждении 😃,эта коррекция вещь не менее важная чем PD гирика. Вот и вывел на PD магнитометра, что бы GUI не править(не разбираться чем и как его компилировать и т.д.).

SergDoc

Вот что нужно сделать мне в идеале для конкретной рамы:

но со смещённой назад батареей аппарат ведёт себя адекватно во всех режимах…
вот интересно на видео регуляторы на лучах - как-то не по феншую, у меня всё в раме спрятано - красота 😃 и батарейка тоже внутри рамы - ни проводов торчащих ничего… мои из деревни приедут сделаю фото…

oleg70

Собрался отстроить коэфициенты IMU в Python а он (Python) перестал работать, зараза, картинку показывает а 3Dобъект не двигается, три дня качаю/подбираю/устанавливаю разные версии компонентов Питона - результат НОЛЬ…(а ведь работало раньше)
Уже руки опускаются, может есть у кого заведомо проверенный набор (комплект) pyserial,pywin,Vpython, помогите…
В чем может быть дело то ? (порт работает данные в python/shell тоже идут но что то зависает…)

rual
oleg70:

Уже руки опускаются, может есть у кого заведомо проверенный набор (комплект) pyserial,pywin,Vpython, помогите… В чем может быть дело то ? (порт работает данные в python/shell тоже идут но что то зависает…)

Vpyton нужно переставить, возможно графическая связка с виндой (опенГЛ и ДХ) буксует.

SergDoc

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

oleg70
rual:

Vpyton нужно переставить

Все перепробовал… не ра бо та ет. (точно похоже что видео виснет).
Вообще говоря странное дело, тема всяких ИМУ уже столько лет существует, а такого рода софта под винду (адекватного) практически нет (или я не нашел), все из каких то клочков и палок, аж под 3DMax плагин встречал, видать очень сложно знающему программеру сделать такой код…

mataor

Хм… как вполне реальный вариант - поиграйся с разными версиями драйверов для видеокарты + опенгл обновить. У меня сходная проблема была с прогой калибровки фрииму на моем раб.компе

SergDoc
oleg70:

а такого рода софта под винду

пингвиндовс рулит - так не для стёба…

oleg70

Вывод видео Питона настроил, но он хочет большего… теперь поток данных с порта зависает,
ser.readline() тупить начала (похоже не находит конец строки) а по тайм-ауту работает только при частоте данных с платы ~ 1Гц… Фигня просто какая то (в Питоне я вообще не разбираюсь) главное дело месяца два назад все работало на том же железе, а тут черт дернул “снести” питон и поставить заново…
Есть спецы по Python ???
Что ser.readline() считает за “END of LINE” ???
Новая рама ждет мозгов:)

SergDoc

Не с питоном ещё не баловался…
фотка моего кракозябра 😃

RaJa

коллеги, а не поделитесь ссылочкой на FreeIMU для STM32F103 или F4?
У меня под рукой есть пара сенсорных платок с L3G4200D, HMC5883L, BMP085 и ADXL345. Насчет датчиков поновее думаю пока, стоит ли искать и платить за платку с MPU6000 или достаточно взять GY-86 с популярным MPU6050. C одной стороны I2C ругают, с другой - особых проблем с ней у меня не было.

SergDoc

у меня в коде остались драйвера и автодетект, можно смело брать прошивку и в дискавери ф4 заливать и подключать датчики (правда BMP085 и MPU6050 работать не будут) для 6050 всё в коде с MPU6000 заменить на 6050, а для BMP - подправить драйвер MS5611 (автодетект)… а для 103-го baseflight - там всё работает…

RaJa
SergDoc:

у меня в коде остались драйвера и автодетект, можно смело брать прошивку и в дискавери ф4 заливать и подключать датчики (правда BMP085 и MPU6050 работать не будут) для 6050 всё в коде с MPU6000 заменить на 6050, а для BMP - подправить драйвер MS5611 (автодетект)… а для 103-го baseflight - там всё работает…

Отлично, спасибо, Сергей. Попробую разобраться. А что насчет MPU6050 скажете - сойдет или стоит брать MPU6000? реальная разница на практике есть или только гипотетически разница в том, что SPI быстрее и меньше вероятность подвисания шины или коллизий?

oleg70
RaJa:

а не поделитесь ссылочкой

Я брал здесь:x-io.co.uk/open-source-imu-and-ahrs-algorithms/
, (чисто алгоритм ориентации), на выходе четыре кватерниона (q0-q1), добавите в коде
ROLL_plane = atan2(2 * q1 * q2 - 2 * q0 * q3, 2 * q0*q0 + 2 * q1 * q1 - 1)*TooGRD;
TANG_plane = atan(kx / sqrt(ky*ky + kz*kz))*TooGRD;
KREN_plane = atan(ky / sqrt(kx*kx + kz*kz))*TooGRD;
и получите углы в градусах, работать будет на любом железе (ну почти:))