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

SovGVD
YAN=:

А зачем? Угол, положения аппарата, мы можем вычислить? Можем вычислить и расстояние.

угол то мы знаем, но вот сонар всего 2-3 метра измеряет, а при наклоне расстоние увеличивает, + угол работы самого сонара не более 15*, т.е. отклонится можно максимум на 7 градусов!

YAN=

Ну хоть что-то. На высоте 1 метр, при наклоне 45, тебе будет положить на высоту. Быдешь его сам выравнивать.

SovGVD

на высоте 1 метр при наклоне более 7 градусов коптер увидит что он на высоте НОЛЬ, а ему сказали держать метр… как минимум он резко газанет
а для вычисления высоты от угла есть вот такой код:

#if SONAR_TILT_CORRECTION == 1
				// correct alt for angle of the sonar
				float temp = cos_pitch_x * cos_roll_x;
				temp = max(temp, 0.707);
				sonar_alt = (float)sonar_alt * temp;
			#endif

но похоже что он не используется

Alex_from_Israel

Вносить поправки на величину угла крена-тангажа все же легче, чем городить платформу с сервами. Точность ведь большая не нужна, имхо, конечно.

YAN=

Это, сейчас прийдется, хош или нет, городить подвес под камеру )))

Alex_from_Israel
SovGVD:

на высоте 1 метр при наклоне более 7 градусов коптер увидит что он на высоте НОЛЬ, а ему сказали держать метр… как минимум он резко газанет
а для вычисления высоты от угла есть вот такой код:

#if SONAR_TILT_CORRECTION == 1
				// correct alt for angle of the sonar
				float temp = cos_pitch_x * cos_roll_x;
				temp = max(temp, 0.707);
				sonar_alt = (float)sonar_alt * temp;
			#endif

но похоже что он не используется

А почему НОЛЬ? Скорее метр с чем то… Простейшая тригонометрия. А может проще при крене временно запретить вычислять высоту по сонару и использовать последнее измерение, когда крен был в пределах нормы. Высота то при этом, фактически не меняется. Или вообще ввести программное ограничение на считывание сонара. Только когда крены близки к нулю. При болтнанке все равно через ноль проходит.

SovGVD

сонар “видит” на угол 15 градусов, если он наклонится от плоской поверности больше чем на 7.5 градусов, от отраженный звук может уйти в сторону от приемника (я не уверен в том как распространяются ультразвуковые волны) - поэтому сигнал будет утерян, это будет интерпретироваться как НОЛЬ или БЕСКОНЕЧНОСТЬ (для сонара конечно, для нас это НОЛЬ и 2-3 метра)… код возмет прошлое значение если ничего не вернулось или максимальное или минимальное, отсюда: коптер врежется в землю (будет думать что он на той же высоте, но при наклоне будет снижаться… или подниматься), коптер подумает что он очень высоко и врежется в землю, коптер подумал что он очень низко и газанет, чтобы повыше подняться (и при наклоне разгонится и дрепнется куда нить)
но это ИМХО, при условии что ультразвук не дойдет до сонара, при большом угле наклона
в общем если сильно не накдонятся, то проблем не должно быть =) не думаю что кто-то на высоте 1 метра будет сильно кренить коптер до посинения

Alex_from_Israel

Вот и введите код, ограничивающий считывание эха в зависимости от угла наклона. Болтанку точно скомпенсирует. А потерей высоты на скольжении можно просто принебречь. Врядли ктото будет крутить боевой разворот у самой земли! Не Чкаловы, небось!

SovGVD:

сонар “видит” на угол 15 градусов, если он наклонится от плоской поверности больше чем на 7.5 градусов, от отраженный звук может уйти в сторону от приемника (я не уверен в том как распространяются ультразвуковые волны) - поэтому сигнал будет утерян, это будет интерпретироваться как НОЛЬ или БЕСКОНЕЧНОСТЬ (для сонара конечно, для нас это НОЛЬ и 2-3 метра)… код возмет прошлое значение если ничего не вернулось или максимальное или минимальное, отсюда: коптер врежется в землю (будет думать что он на той же высоте, но при наклоне будет снижаться… или подниматься), коптер подумает что он очень высоко и врежется в землю, коптер подумал что он очень низко и газанет, чтобы повыше подняться (и при наклоне разгонится и дрепнется куда нить)
но это ИМХО, при условии что ультразвук не дойдет до сонара, при большом угле наклона
в общем если сильно не накдонятся, то проблем не должно быть =) не думаю что кто-то на высоте 1 метра будет сильно кренить коптер до посинения

Не совсем верно, это все же звук, а не свет и угол падения вовсе не равен углу отражения. Эхо все равно дойдет, даже при угле больше 45 градусов. Это излучатель узким лучем орудует, приемник эхо ловит искаженное интерференцией от предметов. Как то компенсируется, наверное, на плате, а то бы совсем не могло работать.

SovGVD

ну тогда не стоит заморачиваться вообще
но я на подвес нацелю, на всякий случай… если он будет

Alex_from_Israel

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

SovGVD

имхо мы тут слишком сильно заморочились с сонаром и так - ощущение что все поголовно летают на высоте 1-2 метра =) пора бы уже новые фишки добавлять (ограничение высоты например или OSD от Олега) и/или портировать 2.0.42
с i2c gps получилось у кого?

Alex_from_Israel

Я пока с сонаром воевал забыл, что вот вот придет ЖПС с Хоббикинга! С ОСД который. А эта Олегова прошивка подойдет для того ОСД? А то там все примитивное. Координаты и скорость. Ни горизонта ни вариометра…

YAN=
SovGVD:

и так - ощущение что все поголовно летают на высоте 1-2 метра

Хорошо. Ну а с сонаром, как дела обстоят? Высоту держит?

SovGVD:

ограничение высоты

Будет, одыкватно, работать сонар, проблем не будет.

SovGVD:

OSD от Олега

Отдельным процессором? Неееее. Если тем-же, я ЗА. Тем-более, Олег ограничивался возможностями “того” проца. На 2560, хоть памяти больше.

Еще-б какой-ни какой мониторчик с кнопками, что-б без компа обходиться (ето если полет по точкам не нужен).

SovGVD
YAN=:

Отдельным процессором?

ну процессор который в HK E-OSD используется, там перепрошить надо и чего хитро припаять к атмеге

Alex_from_Israel:

А эта Олегова прошивка подойдет для того ОСД?

понятия не имею =)

YAN=
SovGVD:

ну процессор который в HK E-OSD используется, там перепрошить надо и чего хитро припаять к атмеге

ане проще все в одну атмегу воткнуть?

SovGVD

что всё? атмега в hk e-osd всё рисует (+ обвязка для видео и 2х батареек), основные мозги просто данные засылают (наклон, режим, координаты и прочее)

Alex_from_Israel

Я такую и заказал вместе с ЖПС. Но в спецификации ничего про рисование углов наклона не было. Данные с ЖПС и напряжение батареек. Правда 2х

tusik
SovGVD:

гол работы самого сонара не более 15*

А усли угол в пидах ограничить? Из ВИКИ по мегапирату: В настройках ПИД можно ограничить макс. угол наклона коптера градусов до 20 вместо 45 Параметр Pitch Max *100 в настройках ПИДов. Число умножено на 100, т.е. 4500 = 45 градусов

SovGVD
Alex_from_Israel:

Но в спецификации ничего про рисование углов наклона не было.

e-osd перепрошивается кодом от Олега (хз чего там с другой osdшкой)
в megapirate добавляется код отсыла данных в перепрошитую e-osd
e-osd показывает кучу ништяков

tusik:

А усли угол в пидах ограничить?

не загоняйтесь с сонаром так, как будто он самый важный в коптере