Activity
6wings, может быть знаете,
Как организовано взаимодействие в музыкальных видах спорта типа фигурного катания или синхронного плавания между хареографом/композитором и спортсменом/тренером ?
Последовательность упражнений подбирается под мелодию или наоборот, что учитывается для обеспечения синхронности ?
(Это к старой теме про пилотажный каталог Арести, синхрометки на траекторию.
Фигуры, кроме горизонтального пролета, ограниченно “растягиваются” во времени,
автопилот может не справиться с задачей.)
И мой дом (бывший), слева от Донского мон. 😃
Нарисовал немного скриптов на пробу.
//фото-змейка(план), фотик в автомате
void fzp(float hdg1, long dis1, float hdg2, long dis2, long dis3) {
AP_SetFlightMode(FM_ALT);
do {
AP_GotoHdgDisAltC(hdg1, dis1, 0);
AP_GotoHdgDisAltC(hdg2, dis2, 0);
AP_GotoHdgDisAltC(hdg1 + 180.0, dis1, 0);
AP_GotoHdgDisAltC(hdg2, dis2, 0);
} while (XPoint_home.dis < dis3);
AP_SetFlightMode(FM_RTH);
}
//фото-круговая панорама
void fkp(short k) { short az;
AP_SetFlightMode(FM_STAB );
az = XPoint_home.hdg;
AP_WSriteRC(CH_РНаправления, k);
while (az == XPoint_home.hdg);
delay_ms(1000); //если качнет ветром
while (az != XPoint_home.hdg);
AP_WSriteRC(CH_РНаправления, 0);
}
А это на тему “пилотажные скрипты”. К бочке еще бы надо приделать разновидность стабилизации но направлению.
//петля
void petlya(short k) { short pt;
AP_SetFlightMode(FM_MANUAL);
pt = X_pitch;
AP_WSriteRC(CH_Двиг, Двиг_max);
AP_WSriteRC(CH_РВысоты, k);
while (pt == X_pitch);
delay_ms(1000);
while (pt != X_pitch); //не застрять бы
AP_SetFlightMode(FM_STAB );
}
//бочка
void bochka(short k) { short rl;
AP_SetFlightMode(FM_MANUAL);
rl = X_roll;
AP_WSriteRC(CH_Элероны, k);
while (rl == X_roll);
delay_ms(500);
while (rl != X_roll); //
AP_SetFlightMode(FM_STAB );
}
//поворот по дуге
void ppdug(short ang) { short y;
AP_SetFlightMode(FM_STAB );
AP_WaitForCompletion(0);
for (y = (X_yaw + ang) % 3600; y != X_yaw;
AP_GotoHdgDisAltC(X_yaw + 30, 100, 0));
AP_WaitForCompletion(1);
}
Так ?
Или, м.б., сделать обертку: to_script(“str”), чтобы str прочесть fgets’ом на борту ?
Пургу написал 😃
Этот вариант и так уже есть. Все отлично, нет проблем.
Можно писать пилотажные скрипты 😁
Интерпретатор у нас один - на борту.
В НСУ открыт udp-сокет, к нему приконектил внешнюю прогу-интерпретатор, но не с VB, а сишный - это и есть второй(который уже есть).
В КИ на борту написал printf(“rpy %f f %f\n”,…); строчка прилетела в stdin наземного с-скрипта.
Он ее прочел и решил подрулить, сказал printf(“cmd”); строчка cmd прилетела на борт.
Вроде так?
Засада в том, что интерпретатор на борту думает, что это ему, а не передает как есть в stdin бортового скрипта.
Штатное поведение интерпретатора - передать свой вход прямиком в скрипт, проверял.
Можно ли разделить данные: из НСУ - в интерпретатор для обработки, а из udp - прямиком в stdin бортового скрипта ?
Или, м.б., сделать обертку: to_script(“str”), чтобы str прочесть fgets’ом на борту ?
(Т.е на земле говорить: printf(“to_script(\“str\”)”), to_script съест бортовой интерпретатор, а str пойдет в скрипт.)
…можно грузануть сразу из файла одной кнопкой. А можно сидеть и построчно вбивать в окошке терминала. Результат будет одинаковый.
Позапускал в своем, закоментировав ScriptControl_API, все ОК.
Но, если передавать только параметры для ф-ии без самого текста, то меньше трафик.
а первоисточникъ(мануал на КИ) почетать?
Опять перепутал термины, сорри (называл это все(интерпретатор с либой и скрипт) “КИ” или “скрипты” на борту).
Вовлекать каждого пользователя в процесс тестирования очевидно работающих вещей не вижу смысла
Дело ваше.
Что КИ выведет, то и будет. И общаться тоже путем команд КИ. Вариант удаленного текстового терминала.
Это гуд:) Т.е. while(1){print(xyz,rpy);gets(t_point)} на борту и while(1){gets(xyz,rpy);calc(…);print(t_point)} в/из udp на земле (наземный,сишный,такой-же, только без udp уже есть).
А по задержкам - читайте мануал по КИ.
Вроде примерно так и написал 2*периодичность скрипта + период xlog’а + еще немного.
Смотря что вы поодразумеваете под словом КП. Есть СУ (плата) и НСУ (наземка на компе).
Стало быть НСУ.
Значит предложение по наземному авто-тестированию новых прошивок звучит так: в НСУ встроен интерпретатор скриптов, в нем запущен скрипт, который всячески переключает режимы борта(ОСД и др.), если ответы пропали или в них что-то подозрительное то пишет об этом на экран(или в файл). Если через n-часов все ОК, то можно лететь. (на борту включен sys_trace)
Переключать вручную все комбинации очень трудоемко (имхо).
Нсколько понимаю, так будет отловлен случай со стеком. Тест-скрипты у всех могут быть разные.
А в НСУ сделать еще один UDP-сокет, который будет эту текстовуху принимать-передавать на внешнюю прогу,
Из него можно будет читать строчки xlog’а с координатами(,ориентацией и др.) ?
А что и в каком формате в него можно будет писать ?
Задержка от события на борту до прихода на борт ответной реакции ~0.1сек ? (предположим внешния прога без задержки)
Также можно изгаляться вызовом ScriptControl API прямо с земли безо всяких драйверов.
А это что-то новое? (вроде в описании не встречалось и в сообщениях не помню)
Бесполезно. Там вся система колом встает …
КП тоже встает колом при прблеммах на плате или мы про разное ?
(Ващето хорошо бы и режимы КП переключать из тестовых скриптов для проверки на глюки.)
А еще можно карту грузить скриптом.
А уж сколько хотелок можно само-реализовать если в интерпретатор в КП будут встроены ф-ии parse_xlog(uchar *) и send_ppm(ushort []) 😃
(ну и change_script(“скрипт_в_епром”) или даже send_script(“скрипт_из_КП”) до кучи)
Вопщем мне нравятся скрипты в КП 😃
По разбору полетов:
если в КП тоже встроить КИ, чтобы скрипт на компе читал что говорит скрипт из платки и проверял не случилось ли чего плохого(напр. переполнение стека или зависание).
Скрипт в платке включает sys_trace и всячески переключает режимы -
получится система авто-тестирования ?
Делать нечего, лежу в больнице, …
Еще несколько считалок, чтобы скоротать больничное время:
motocalc motocalc.com - ВМГ, есть база параметров аков,моторов,винтов и мануал;
xflr5 www.xflr5.com/xflr5.htm - профили, планер, устойчивость, где-то на форуме была ссылка на перевод старого описания; (тут www.xflr5.com/sail7/sail7.html про паруса)
mmana gal-ana.de/downloadr.htm - антены, в инете встречаются русские описания (в яндексе: mmana).
А Межвежье - это где? (координаты?)
Есть мыс на Итурупе и остров около Шпицбергена, а на Новой Земле не нашел.
Хотел использовать такой подход для последней фазы посадки: курс держать на точку, находящейся на прямой взлета на некотором отдалении от текущей позиции самолета.
Без корней решается такая задача: Найти точку на прямой {(0,0);(x1,y1)}, равноудаленную от (x2,y2) и (0,0).
Решаем: { (x-x2)^2+(y-y2)^2=x^2+y^2; x/x1=y/y1; } относительно x,y.
Получаем: x=x1*(y2^2+x2^2)/(y1*y2+x1*x2)/2; y=y1*(y2^2+x2^2)/(y1*y2+x1*x2)/2;
Кмк. тут хватит char-ов и short-ов из сектора ±60град. от пос.напр.
Точность пос.напр. - пол градуса, положение - 1бит=1м.(удаление 100м.) (или 10м., тогда 1км.)
char x1,y1,x2,y2; short x,y;
int zad2() { short t,z;
t=(y2*y2+x2*x2)/2;z=y1*y2+x1*x2;
x=(x1*t)/z; y=(y1*t)/z;
return 1; }
Траектория - дуга окружности, касательной к ВПП. С изрядной высоты, по маленькой окружности будет похоже на “Баграмский заход”.
То, что за герметичность придётся заплатить весом и сокращением дальности полёта, и так не вызывает сомнений.
Кроме герметичности(в основном от брызг) у тех моделей сильно поднят мотор с винтом, момент приходится компенсировать опущенным РВ, снижается а.-качество.
Если не озабочены копийным взлетом/посадкой с воды, то это не нужно.
Это все модели, заточенные на взлет с воды, за счет потерь в длительности полета.
К.м.к. надо летающее крыло без мелких выступающих деталей, чтобы не оторвались при заныривании, складной винт сзади. Типа зефир(trappy) или Х5 (м.б. Х8).
Где-то был клип от fmkit’a про ‘плюх в море’, все работало, успешно подгреб винтом к берегу (крыло - “тапок”, без середины).
У ТС интересные проекты.
Кат:
yachta-kotoyarvi.narod.ru/imgKurily/396.jpg
Мероприятия:
yachta-kotoyarvi.narod.ru/K-01.html Курильские острова.
yachta-kotoyarvi.narod.ru/NZ-01.html Новая Земля.
Поделки:
windpower-russia.ru/showthread.php?t=269
Лучше помогите решить задачку для 8-го класса:
Для 8-го наверно так:
Решаем систему равнений {1-е: (x2-x)^2+(y2-y)^2=L^2; и 2-е: x/x1=y/y1; } относительно x,y.
Получаем: x = (±sqrt((y1^2+x1^2)*L^2-(x1*y2-x2*y1)^2) + y1*y2+x1*x2)*x1/(y1^2+x1^2);
соответствующий y=x*y1/x1;
На С:
float x1, x2, y1, y2, L; //на входе
float xy[2 + 2]; //результат
int zad() { //возвр. кол-во решений
float r1, d, a, b;
r1 = x1 * x1 + y1 * y1;
if (r1 <= 0.0)
return -1; // прямая не определена
d = x1 * y2 - x2 * y1;
d = r1 * L * L - d * d; // детерминант
if (d < 0.0)
return 0; //нет решений
a = y1 * y2 + x1 * x2;
if (d == 0.0) { //одно решение
b = a / r1;
xy[0] = b * x1;
xy[1] = b * y1;
return 1; //кол-во решений =1
}
//иначе два решения, d>0
d = sqrt(d);
b = (a + d) / r1; //первое решение
xy[0] = b * x1; //это x
xy[1] = b * y1; //это y
b = (a - d) / r1; //второе решение
xy[2] = b * x1; //это x
xy[3] = b * y1; //это y
return 2; // кол-во реш.=2
}
Подходит?
А сколько вылетов за поездку?
Предположим средняя вероятность возврата 0.9. За 10 вылетов вероятность возврата 0.9^10=0.35, за 20 вылетов - 0.9^20=0.12, умножаем (1-0.12) на цену - это стоимость эксплуатации.
Как выходит дешевле? (1 дорогой или много дешевых)
Пока писал уже дважды написали, присоединяюсь.
Вместо паруса(или рядом) поднимать сетку рыболовную мешком, как спинакер; и в нее сажать , как в сачок.
У ГоПро - бокс, а модель максимально дешевая - расходник.
тайл - это 1 картинка 256х256 пикселей.
1час/4сек~=1к.(картинок в час) - не густо.
( Канал 50кбит? Отзывы о провайдерах Лабытнанги: все ругаются на ростелеком
- вместо 500кбит получается 50кбит за 2000р/мес, другие еще хуже.)
404-е в базу не пишу
Картинки дополняются не часто. Чаще, чем раз в месяц(имхо) проверять смысла нет.(после отладки v=)
В теле ответа должен быть только png или jpg-файл (определяю по сигнатуре) и ничего лишнего.
Разные действие, в зависимости от содержимого “лишнего”:
no-data - нет смысла грузить вниз (z++), там тоже no-data, но можно вширь;
“другое” - это лок, картинок не будет нигде.
У меня прогрузка одного тайла занимает около 4 секунд
“тайл” - это одна картинка? (или экран ~30 картинок? )
Меньше 3 картинки/сек. не приверял, не вдохновило. 3-10 - однотипное поведение.
Что значит “мусор”?
В ответ приходит html-файл вместо jpeg’a. (в нем не no-data, )
Летал в симе почти весь день, минут по 20, все грузилось.
Хз. Может успевало разлочится(сбросился счетчик времени) в перерывах.
Syberian, пара соображений по загрузке картинок, может быть пригодится:
- Не стоит прошивать в код “v=144”, через месяц(примерно) число увеличится,
а еще через некоторое время старое число отключится. - Через 20мин. ерзанья на текущий ИП выдается мусор вместо картинки,
помогает смена ИП (если динамический).
Или (м.б.) ерзанье в броузере в соседнем окне, чтобы он слал куку
(контроль по кукам, если не слать, то 20мин. и - блокировка ИП на некоторое время).
почему только элеронное? Водпад крутят РВ, сваливание от РН используется как минимум при штопоре…
Да, действительно на дуги плохо раскладывается. (проблемма в параметрах, контролируемых на борту)
Получается надо задавать траекторию оси вращения, которая не обязательно проходит через ЦТ.
Во-первых - в точках можно задавать тип интерполяции.
Вот и получился обсуждаемый язык.
каталог Арести
Почитал, вполне подходящая система. Если поделить фигуры из каталога на более мелкие кубики - получаются такие элементы:
- прямая с параметрами азимут,возвышение,длинна
- дуга окружности с параметрами центр,радиус,плоскость и длинна дуги
Они сопрягаются по касательной.
Для возможности “внешней синхронизации” надо к каждому элементу еще добавить параметр: скорость или время прохождения.
На каждый элемент может быть наложено элеронное вращение с параметрами угол и угловая скорость. (напр. петля с бочкой наверху = дуга+(дуга с бочкой)+дуга)
Еще бы надо для блока(набора) элементов добавить общий масштаб (по размеру и скорости) и поворот по азимуту.
Что-то из каталога Арести не сложится из таких элементов?
я, вообще-то, имел в виду совершенно иное. А именно рил-тайм “обучение” программы фигурам, выполняемым живым пилотом на целевой модели.
А решаема ли эта задача?
Примерно представляю как по логам многих полетов посчитать параметры модели - это очень большой объем данных и маш.времени.
Совершенно не представляю, что можно поменять, чтобы влезло в реалтайм. (соотв. не понимаю смысла мощного компа на борту)
при воздушном бое для выполнения маневров атаки и уклонения ))
модельные “глаза” - сложная штука.
Причем, сим сгодится любой из хороших - AFPD, AF5, RF.
Сим должен отдавать на сторону координаты,ориентацию и скорости(обычную и угловую). Желательно по сети.
А зачем для управления БПЛА или траекторией аппарата - язык? Достаточно просто жестко заданного вектора. Каждая точка -
А как лететь между точками? Три точки под прямым углом - это что, два отрезка или дуга окружности? Интерполировать надо не абы-как, а так как указано в правилах.
Аналогия - растровые и векторные рисунки. Векторные описываются языками (postscript в pdf-ах, svg, …)
Первое, что приходит в голову - в качестве примитивов языка использовать каталог Арести,
Спасибо. Читаю.
добавлено: хорошая тема для диссера, кстати )))
Присоединяйтесь, тема была тут rcopen.com/forum/f90/topic273212, дисер Ваш (или Вашего сына). 😃
мне кажется, что это излишние ограничения.
Ограничение связано с продающимся железом, хотелось бы начать с простого, доступного немедленно.
также будет забавно рассмотреть процесс настройки/привязки такого типового пилотажного софта к конкретным моделям.
Это для наземного компа - проверка и перевод рисунка в байткод, допустимый для модели. Кажется, что решаемо, если есть сим и описание модели.
Байткод двигает уставки пид-регуляторов по 4-м каналам (в зависимости от времени,ориентации,скорости и т.д.) - это “как-бы ассемблер”.
на земле закладываем в ноут музончик с таймкодом и синхрометками,
А если соотнести характер мелодии и фигуры, то можно не рисовать, микрофон на борту - получится авто-танцор 😃
за свою жизнь я создал несколько специализированных языков и написал компиляторы/интерпретаторы к ним.
Из каких областей ? (если не секрет)
А как бы мог выглядеть язык для описания пилотажного комплекса?
Т.е. на какие элементы-кубики порезать например кубинскую восьмерку или разворот на горке?
(Реализация - видимо так: форт-байткод с наземки заливается в автопилот на avr(ardupilot) или arm(cortex-m3,4).
Ограничена память, интерпретатор и скрипт не должны обмолачивать память)
я пока нашего тест-пилота не могу заставить его выпустить из рук - при полетах следит за дроном как коршун с сведенной от напряжения спиной
Не могли бы Вы выложить несколько клипов с бортовой камеры - пролет коридора, подлет и посадка на крест, не пожатых ютубом, в низком разрешении ?
(для настройки софта)
Разность реактивных моментов можно компенсировать миксом на курс (разно-циклик, вперед/назад).
А зачем рулить по крену ? Это ж не 3Д.
Вроде крен и тангаж нужны только для стабилизации, т.е. малые отклонения,
значит побочные движения еще меньше.
Цикликом по крену теперь не порулишь, лопасти на вал момент не передают.
Передают. Сила - центробежная, вдоль лопасти, а плечо - расстояние между ГШ и центром головы,
(умн. на sin(угол конуса)).
У Dj_smart’а первый вариант был “трехлопастная голова с ГШ” и были подлеты, насколько помню.
… , подстройку и поиск нужно делать прямо в полете.
Почему “нужно” ?
М.б. можно срисовать из клипа Х5-8365 табличку “тангаж от высоты” и залить в епром вместе с настройками.
Или, для начала, считать, что тангаж линейно убывает с высотой от 25гр. на земле до 15гр. на 8000м. (в клипе примерно так). А газ такой, чтобы ток был 20А (иначе рег. сгорит). Цифры, есно, для каждой модели и ВМГ - разные.
Несложно замутить уставку скороподъемности, …
Скороподъемность разная, зависит от высоты.
Тут, вроде, “максимальный срывной”(или м.б. оптимальный) тангаж при фиксированном токе.
Только зачем?
АП-строение тоже хобби. Не?
(И мурманчанам на тестирование, в качестве акции МРХа 😃, с логером.)
Небольшой офтоп,сорри. (не дает покоя вопрос мировой ли рекорд 8365m)
Вот еще рекордсмен: Qinetiq Zephyr “altitude, at 21562 meters”,
на солнечных батареях, совсем безпилотный. Разработка закрытая, рекорд не официальный.
Из другого класса, но м.б. что-то пригодится:
расположение моторов
винт
профиль
размер
Картинки отсюда . Было несколько вариантов, на одном хвост - “обратное V”.
Технические подробности тут.
Много внимания уделено датчику угла атаки (конструкцию пока не понял).
Попутно выяснилось, что в США ограничение по высоте для моделей 400футов и они его соблюдают. Так что конкуренты только в Испании, Украине и Краснодаре.
Если же для других целей то ой, прошу прощения…
Другие варианты тоже интересны, например:
- у товарисча ЯК-52 или 55 или другой ?
- только прибор УС-450К, а на чем он летает ?
- только ЖПС, тогда нужна другая таблица, это самый скучный вариант
(опять учить матчасть). - у ehduarg’а отпуск
- у всех весна
Не делятся инфой в ветке “Тактика и практика”, созданной для обмена опытом только ч…о. Читать чужие посты, использовать чужой опыт и тихариться? У меня слов нет.
Пардон, от Вас так и не дождались логов и даже внятной фотки рекордного крыла
(фотка “с интерьером” не считается, на ней хрен что разглядишь )
Дам вам наводку: что у винта отвечает за тягу, а что за скорость потока?
Подождите, не подсказывайте 😃
Интересная загадка, хочется самостоятельно разгадать.
Это, похоже, мировой рекорд высоты в классе электролетов.
Самое большое, что удалось найти (текст с какого-то форума):
—
Alex Villa of RVOSD fame has 24000 feet (7108 meters)
хттп: youtu.be/ir_vfBTXM8E
FPV altitude record, 7100 meters AGL. Solar power!
—
Делаю картинку для Ozi Главному Мегапирату (😃) для тестирования.
Вот на пробу:
Тут побольше.
Куда-нибудь сдвинуть середину картинки?
вы случайно с sas planet не работали? пытался с их скриптами разобраться, ничего не понял.
Нет. Посмотрел, тоже не понял.
Соорудил файлы для Ozi, в zip’е два файла, какой точнее - не понял.
Картинку из #3574 надо переименовать в tbv.jpg и все это сложить в c:\OziExplorer-trial\Maps (если путь другой, то исправить третью строчку в файлах.map).
К Ozi можно приклеиться ?
точно не потяну
Кажется, что это проще чем трах с DOM’ом 😃
>Дак просто в картинках нет привязки координат
Привязка:
x y lon lat
40 70 41.3933516 52.6972974
4050 70 41.4793968 52.6972974
40 2010 41.3933516 52.6720625
4050 2010 41.4793968 52.6720625
40 4070 41.3933516 52.6452508
4050 4070 41.4793968 52.6452508
Картинку заменил, теперь там поле из test.rar.
они не кешируются
Нельзя ли для офлайна приспособить “карты в большой картинке” ?
Например такие
кликабельно, 2МБ
Записал в баглист, раз обещал.
А чо баглист незнамо где, а не в “домике МПХа” ?
И ваще это роадмап. (или сфероид уже есть, но с багом?)
😃
В дневнике смотрите.
Посмотрел. Здорово. И скорость неплохая, кажется, что больше 200км/ч.
Радиус круга 10м, интервал прохождения 1сек, похоже ?
Это не я летаю. Но когда-нибудь и я так полечу.
Для этого нужна “правильная гора с сильным ветром” (в журнале написано), у них рекорды на одной горе.
Udjin, в ваших краях есть такая гора ? Ткните на карте координаты, плиз (если не секрет).
А может есть и видео попытки, интересно бы глянуть.