Платы CopterControl, CC3D, LibrePilot, Revolution от OpenPilot
Подскажите пожалуйста - как в CC сделать так, чтобы при запуске он всегда был в режиме Stabilized1?
А то включается всегда в Manual почему-то, хоть во 2й закладке Input везде установлено что ручного нет.
Входы на CC не подключены (CC используется как стабилизатор с осд), на выходах CC питч и ролл.
Входы на CC не подключены
должно быть подключено и настроено 5 каналов, минимум - 1 канал с привязкой к FlightMode.
костыль:
подключить ненужный выход на вход (с заданным значением центра).
Маленький апдейт с опенпайлот форума
Они заказали первую партию в 200 штук которая будет у них на руках через 3 недели.
Наверное еше недедю будут мучить и проверять потом выставят на продажу, и через 2 минуты у них упадет сайт от той кровопролитной бойни что там будет. После чего они закажут еще 500 которые придут еще через месяц после этого.
Короче, суммируя - какие-то они дебилы, ну нафига всего 200 заказывать?
Just want to say this: there are 200 CC3Ds on order, as soon as they get back and they work, a further 500 will be ordered. The first 200 should be 3 weeks away, delays and other things can happen but that is the time scales I am working too.
We did only 200 to start with to minimize risk of course but we for sure don’t want to see this happen to people. I love the CopterControl, it;s a great board I can kinda understand why it goes on eBay for the same cost as the Naza but this is clearly nuts!
Retail price of the CC3D is going to be A$84.95 in the global store if all goes well, the new longer serial cable included and of course the RC cable. We also have newer boxes which cost a bit more but look better and are far stronger.
Маленький апдейт, там дальше на воруме написали что первую партию только своим на форуме раздавать будут, по 2 штуки на нос. Так что … По моим скромным расчетам - 2 месяца пока мы это увидим в продаже.
те как я понял официально старая верси СС больше изготавливаться и продаваться небудет …
походу скоро можно будет начинать паять старые версии на продажу …
ну нафига всего 200 заказывать?
кроме заказа плат, их прошивки и проверки, рассылки по всему миру и прочей фигни у людей еще и личная жизнь есть 😉
кроме заказа плат, их прошивки и проверки,
платы заказываются уже прошитые, упакованные, провереные и запаяные в серебристые пакетики. Рассылкой занимаются дистрибьюторы. Так что ваш аргумент не в счет.
Или вы хотите сказать что там эти опенпайлоты сидят в какой-то комнатке и все вместе дружно рассовывают все по пакетикам и коробочкам?
должно быть подключено и настроено 5 каналов, минимум - 1 канал с привязкой к FlightMode.
костыль:
подключить ненужный выход на вход (с заданным значением центра).
Попробовал костылёк исполнить, да пока не сработало (whitewind юзер в конце топика)
forums.openpilot.org/topic/…/page__st__80
Да, костыль работает в плане переключения каналов, но при старте CC всегда в Manual.
Похожее описание проблемы нашёл тут …openpilot.org/…/8669-flight-mode-switch-setting-t… - вопрос 4.
Скрины GCS прилеплю на всякий случай, может опытному глазу сразу всё ясно станет.
ну нафига всего 200 заказывать?
В случае обнаружения бага, если придется переделывать дизайн платы, думаю для этого.
Как я понял CC3D уже на двух сторонней плате ?
паять старые версии на продажу …
Вот интересно, если эта плата комерчески интересна, то почему сейчас её нет у Китайских продавцов?
платы заказываются уже прошитые, упакованные, провереные и запаяные в серебристые пакетики. Рассылкой занимаются дистрибьюторы. Так что ваш аргумент не в счет.
Или вы хотите сказать что там эти опенпайлоты сидят в какой-то комнатке и все вместе дружно рассовывают все по пакетикам и коробочкам?
предыдущую версию , после получения от произвадителя , приходилось тщательно тестировать каждую плату … и на многих платах потом вручную менять чипы … или вы хотите приобрести плату без всяких гарантий её работоспособности ???
Вот интересно, если эта плата комерчески интересна, то почему сейчас её нет у Китайских продавцов?
видимо потому что немогут наладить производство с приемлемым процентом брака даже для официальных поставок …
но при старте CC всегда в Manual.
5 входных каналов - минимальное условие для запуска модуля ManualControl, а значит и всех от него зависимых.
однако стабилизация камеры работает всегда независимо от “есть сигнал/нет сигнала”, эту фишку я советовал SkyWorker-у для юзанья CC вместе с Ikarus-ом, и вроде как у него все получилось. попытайте его насчет способа подключения.
там эти опенпайлоты сидят в какой-то комнатке и все вместе дружно рассовывают все по пакетикам и коробочкам?
этим занимался один человек, dankers. в штаты отсылал проверенные платы без прошивки (из-за каких-то дурацких законов), в остальные страны с последней “официальной” прошивкой, по особым просьбам прошивал последние на тот момент. магазины точно так же получали платы только через него.
В случае обнаружения бага, если придется переделывать дизайн платы, думаю для этого.
Багу в дизайне уже давно выловили, так как этот дизайн они тестируют уже месяца 2 а может и больше
этим занимался один человек, dankers. в штаты отсылал проверенные платы без прошивки (из-за каких-то дурацких законов), в остальные страны с последней “официальной” прошивкой, по особым просьбам прошивал последние на тот момент. магазины точно так же получали платы только через него.
А ну теперь все понятно. Я то думал у них на широкую ногу там все поставлено…
Вот интересно, если эта плата комерчески интересна, то почему сейчас её нет у Китайских продавцов?
На таобао видел полную копию судя по фоткам, но там все на китайском и нифига не понятно что именно они хотят. Мне думается в китае на внутреннем рынке есть.
В очередной раз образовалось немножко свободного времени, повторил издевательства над гексой.
Прошивка: fw_coptercontrol-20120201-213a915f
Сбросил все настройки,
выставил горизонт, откалибровал регуляторы
файл с настройками в uav_data.zip
При запуске коптер старается убежать
Увеличил Ki (на inner и outer loop) до 0,002
В поведении коптера ничего не изменилось, тогда решился на отчаянные меры, поставил его перпендикулярно земле, и дал армингу.
Шестикрылое животное, нехотя, почихивая но начала взлетать практически ровно. Я был в шоке от своего открытия, затем я попытался повторить тоже самое но уже на камеру, и у меня практически получилось,
а теперь вопрос, а что это было?
имхо стандартное поведение на малом газу, надо дать ему взлететь, поддайте газу
а теперь вопрос, а что это было?
Да нормально все, СС главное оторвать от земли подальше, а там он сам со стабилизацией справиться, и будет вести себя отлично.
Смелее газу на отрыв, при этом стиками выправить положение, поднять на 1-1,5 метра и редкими движениями стиков просто подправлять положение аппарата.
Да, и для испытаний гексы помещение маловато, лучше убрать эти громоздкие “треники” и смело идти на улицу, на какую-нибудь полянку побольше. Результат не заставит себя ждать - сами удивитесь как СС может летать.
Незнаю, у меня впринципе трёшка, и псевдоCC на муратовских гирах, но при взлёте (медленном) только по курсу провернутся желает, а в стороны не тягается…
5 входных каналов - минимальное условие для запуска модуля ManualControl, а значит и всех от него зависимых.
однако стабилизация камеры работает всегда независимо от “есть сигнал/нет сигнала”, эту фишку я советовал SkyWorker-у для юзанья CC вместе с Ikarus-ом, и вроде как у него все получилось. попытайте его насчет способа подключения.
Короче говоря - сделал с помощью трюка вход на выход. В первый раз не получилось из-за того что в Input были разные каналы (6й вход на 6й выход подключен). Когда в Input установил ролл, питч, газ, руддер + flightmode - пока не назначил на все эти моменты канал - армед не включался. Вплоть до flightmode.
Теперь flightmode успешно срабатывает и на старте CC в Stabilized.
Помог A*Morale …openpilot.org/…/10978-how-to-start-cc-in-flightmo… уточнением “- configure all the input as PWM/Channel 6.”
Незнаю, у меня впринципе трёшка, и псевдоCC на муратовских гирах, но при взлёте (медленном) только по курсу провернутся желает, а в стороны не тягается…
Подобное я заметил в случае если на трёхе пропы одного вращения. Один проп ставим на обратное вращение и трёха себя ведёт стабильно без неконтролируемых поворотов.
этим занимался один человек, dankers.
Абсолютли! Данкерс ЛИЧНО проверял каждую плату! Все потому что гиры шли партиями с браком, потому Отец проекта сам все тестил чтобы никому не досталась плата с мертвой гирой или акселем. За что ему спасибо огромное.
кроме заказа плат, их прошивки и проверки, рассылки по всему миру и прочей фигни у людей еще и личная жизнь есть
Вот вот. Проект то не коммерческий, не забывайте 😉
с гирами вообще какаято странная картина … инвенсенс их делает уже не первый год … соответственно их покупают и ставят в свои изделия многие разработчики … если бы у всех были такие проблемы как у опенпилотов , то инвенсенс давно-бы разорился … притом это одни из самых древних , простых , аналоговых гир …
даже после тщательного тестирования , у многих пользователей современем возникали проблемы с гирами … притом восновном с ISZ-500 … я их каждый раз заказываю чуть больше чем IDG-500 и их забирают для замены в СС … нужно будет попробовать купить еще ISZ-505 и попробовать впаять вместо 500й , они вроде как на замену сделаны …
лично мне еще ниразу не попаласЪ бракованная 500 гира , да и купившие у меня пока не жаловалисЪ … может сборщику СС просто попаласЪ неудачная партия с браком … ХЗ …
нужно будет попробовать купить еще ISZ-505 и попробовать впаять вместо 500й
Если будет положительный опыт - отпишитесь плиз! Хочется гиры получше на СС, если есть им прямая замена - было бы отлично…
Помогите с кодом. Собрал прошивку на линуксе.
Теперь хочу добавить в нее термокомпенсацию.
--- a/flight/Modules/Attitude/attitude.c
+++ b/flight/Modules/Attitude/attitude.c
@@ -215,11 +215,18 @@ static void updateSensors(AttitudeRawData * attitudeRaw)
return;
}
+ // use temp sensor
+ float compensation = (gyro[0] - GYRO_NEUTRAL) * 0.1;
+ // write a value to monitor in the GSC
+ attitudeRaw->magnetometers[0] = compensation * 100;
// First sample is temperature
- attitudeRaw->gyros[ATTITUDERAW_GYROS_X] = -(gyro[1] - GYRO_NEUTRAL) * gyroGain;
- attitudeRaw->gyros[ATTITUDERAW_GYROS_Y] = (gyro[2] - GYRO_NEUTRAL) * gyroGain;
- attitudeRaw->gyros[ATTITUDERAW_GYROS_Z] = -(gyro[3] - GYRO_NEUTRAL) * gyroGain;
+ float tc1 = 1.0;
+ float tc2 = 0.5;
+ float tc3 = 1.0;
+ attitudeRaw->gyros[0] = -(gyro[1] - GYRO_NEUTRAL - compensation * tc1) * gyroGain;
+ attitudeRaw->gyros[1] = (gyro[2] - GYRO_NEUTRAL - compensation * tc2) * gyroGain;
+ attitudeRaw->gyros[2] = -(gyro[3] - GYRO_NEUTRAL - compensation * tc3) * gyroGain;
int32_t x = 0;
int32_t y = 0;
Но мой синтаксис отличается от Dmitry(HikeR)
Вот мой, я закоментил гиры и добавил термокопенсацию ручками. Ссори я ламер в программировании.
/**
* Get an update from the sensors
* @param[in] attitudeRaw Populate the UAVO instead of saving right here
* @return 0 if successfull, -1 if not
*/
static int32_t updateSensors(AccelsData * accels, GyrosData * gyros)
{
struct pios_adxl345_data accel_data;
float gyro[4];
// Only wait the time for two nominal updates before setting an alarm
if(xQueueReceive(gyro_queue, (void * const) gyro, UPDATE_RATE * 2) == errQUEUE_EMPTY) {
AlarmsSet(SYSTEMALARMS_ALARM_ATTITUDE, SYSTEMALARMS_ALARM_ERROR);
return -1;
}
// Do not read raw sensor data in simulation mode
if (GyrosReadOnly() || AccelsReadOnly())
return 0;
// No accel data available
if(PIOS_ADXL345_FifoElements() == 0)
return -1;
// First sample is temperature
//gyros->x = -(gyro[1] - GYRO_NEUTRAL) * gyroGain;
//gyros->y = (gyro[2] - GYRO_NEUTRAL) * gyroGain;
//gyros->z = -(gyro[3] - GYRO_NEUTRAL) * gyroGain;
static void updateSensors(AttitudeRawData * attitudeRaw)
return;
}
// use temp sensor
float compensation = (gyro[0] - GYRO_NEUTRAL) * 0.1;
// write a value to monitor in the GSC
attitudeRaw->magnetometers[0] = compensation * 100;
// First sample is temperature
float tc1 = 1.0;
float tc2 = 0.5;
float tc3 = 1.0;
attitudeRaw->gyros[0] = -(gyro[1] - GYRO_NEUTRAL - compensation * tc1) * gyroGain;
attitudeRaw->gyros[1] = (gyro[2] - GYRO_NEUTRAL - compensation * tc2) * gyroGain;
attitudeRaw->gyros[2] = -(gyro[3] - GYRO_NEUTRAL - compensation * tc3) * gyroGain;
int32_t x = 0;
int32_t y = 0;
int32_t z = 0;
uint8_t i = 0;
uint8_t samples_remaining;
Теперь прошивка не собирается.
А где скачать оригинал прошивки (закомпиленый вариант термокомпенсации)? Точнее ткните в пост/ссылку, плиз 😃.
А где скачать оригинал прошивки (закомпиленый вариант термокомпенсации)? Точнее ткните в пост/ссылку, плиз 😃.
Теперь прошивка не собирается.
в файле патча знак “минус” в начале строки означает удаленную строчку, знак “плюс” — добавленную. у вас же какой-то ужас получился, это раз.
в текущей прошивке значения акселя, гироскопа и магнетометра из одного объекта attitudeRaw разнесли по трем отдельным, это два. причем магнетометр в CopterControl-е теперь вобще не используется (экономия памяти), поэтому оперативно следить за значением компенсации сходу не получится.
просто “на посмотреть” можно сделать так:
вместо этого кусочка
// First sample is temperature
gyros->x = -(gyro[1] - GYRO_NEUTRAL) * gyroGain;
gyros->y = (gyro[2] - GYRO_NEUTRAL) * gyroGain;
gyros->z = -(gyro[3] - GYRO_NEUTRAL) * gyroGain;
вставить такой
// First sample is temperature
float compensation = (gyro[0] - GYRO_NEUTRAL) * 0.1;
float tc1 = 1.0;
float tc2 = 0.5;
float tc3 = 1.0;
attitudeRaw->gyros[0] = -(gyro[1] - GYRO_NEUTRAL - compensation * tc1) * gyroGain;
attitudeRaw->gyros[1] = (gyro[2] - GYRO_NEUTRAL - compensation * tc2) * gyroGain;
attitudeRaw->gyros[2] = -(gyro[3] - GYRO_NEUTRAL - compensation * tc3) * gyroGain;
и ничего больше не менять (кроме подбора коэффициентов tc(1,2,3) и пересборки/перезаливки).
Спасибо Дмитрий, попробую сегодня.