Jump to content


osnwt

Member Since 26 Jul 2010
Offline Last Active Yesterday, 02:40 PM

Topics I've Started

AeroSimRC: new model simulator supported by OpenPilot HiTL

12 March 2012 - 10:33 AM

Let me show the secret project from Russian developer Dmitry Zaitsev (AKA hhrhhr): the HiTL plugin for the CopterControl and AeroSimRC simulator.

Here is a small and unfortunately not the best video demonstrating it. Dmitry can't make another one since his CC is sold now. But the real appearance is much better than on this old video.


So what's new and what's different comparing to other similar HiTL and SiTL implementations? Here are some of features:
  • AeroSimRC simulator is the first supported by the OpenPilot model simulator. All others are real plane simulators.
  • As result, simulation is more useful for development, PIDs are more realistic, and all fixed wings, helicopters and multirotor airframes are completely supported.
  • Comparing to other similar solutions, the key point is that all stabilization is performed by the CopterControl board using HiTL. It can get from the simulator only raw data from gyros, accels and GPS, and performs the stabilization (including multirotor rate mode) and navigation (fixed wing only using experimental firmware). Thus you can play with PID tuning and see how model reacts.
  • The simulator can provide also stick inputs to the CopterControl using GCS Receiver (not used yet for OpenPilot but used by this plugin). So you can mix any inputs controlling the CC board: take some from AeroSimRC mouse/joystick/keyboard and some from other CC interfaces, using them concurrently (thanks to multi-receiver CC feature).
  • Another important and exclusive feature is that HiTL simulates not stick inputs to the simulator, but real motors and servos. Say, it outputs 4 CC channels to a quad simulated ESCs. Thus real CC mixers are used, not simulator internal. As far as I know, even Octo models can be supported this way.
  • Moreover, it also supports FPV camera stabilization and control. You can stabilize and control FPV camera exactly in the same way as you would with the real camera gimbal. Again, the CC generates outputs for simulated camera servos. Now only 2-axis control is supported by the AeroSimRC, the 3rd axis control is coming.
  • To be done also is the OpenPilot OSD which will use the OP OSD code as soon as it will be ready for sharing. We expect to have the same code for OP OSD, for PFD and for the AeroSimRC plugin. So you can use AeroSimRC for FPV training using its FPV camera view feature with your real Tx connected to the CopterControl board and your favorite kind of model simulated.
The code consists of two parts. The first one is an AeroSimRC proxy running as a AeroSimRC plugin DLL on the AeroSimRC machine (sorry, only Windows is supported). It provides configuration UI, sends raw data to the configured GCS IP and port and listens for incoming data. In short, it just relays data to and from the HiTL part.

The second is the HiTL gadget running as a part of the GCS. It is implemented as separate HiTL plugin since few changes in it required to be ported for other supported simulators. This could be done but isn't yet.

We successfully used all this to simulate another work in progress: CopterControl fixed wing navigation based on the CorvusCorax code and developed further by Astron (not ready for release yet, but probably some videos will be shown by the developer).

So what's about the code: I want to say thanks to all who was involved in the development:
  • Dmitry (hhrhhr) as the author of the plugin and new HiTL gadget.
  • Manuel, the author of the AeroSimRC for his great support of this work. He has donated some AeroSimRC licenses to involved parties. But most important was that he has added few requested features to the simulator interface by our requests. Also the 3rd axis for FPV camera stabilization will be added. So we will be able to use full potential of the 3-axis CameraStab CC module.
  • Steve (3rdeyepro) for great CC images with active buttons (NOT SHOWN in the video above, added to the code later).
  • David (dankers) for supporting it and having hard pressure from some people who tried to prove him that it is a closed secret Russian work led by some core team members which never will be published. I have to say that that pressure didn't help us working on the subject. The real reason was that I don't like to show not finished work. That's why the development was done in a shadow and not in the public repository.
The work is not finished yet. The published code works but it requires new AeroSimRC version with new interface. AFAIK, it currently still is in a beta state which we as developers have, but can't publish here without author permission. I hope that Manuel will release the official build soon, so we can adopt the code to it and finally put the HiTL code into the main branch of OP development. The proxy part also should be put into the source tree as a separate application. Again, I think it will be done as soon as new AeroSimRC will be released. New version also includes rate mode multirotors (current only supports auto leveling mode). Finally the OP OSD code, it could be used to provide the same OSD for simulated flights. The OSD code isn't ready for that yet, while the required interfaces are already built in the proxy DLL. I hope that it will be done so we can reuse the code for this purpose.

More usage info and simulation setup videos to follow... Now only few images:

Great CC image with active buttons (not yet on the video, but in the current code):
Attached File  cc-aerosim-on-hover.png   60.19K   13 downloads

Part of internal fixed wing navigation testing using firmware by Astron (not ready yet) and AeroSimRC HiTL:
Attached File  circle.png   26.25K   13 downloads

Карта пользователей OpenPilot

31 December 2011 - 07:43 AM

На форум проекта добавлена новая возможность - Member Map.

Теперь вы можете самостоятельно добавить свое местонахождение на карту. Открыв ее, легко найти единомышленников возле себя. И больше не придется задавать вопросы вроде "Сколько пользователей CC в моем городе".

Добавить себя легко, просто указав страну и город (можно и улицу с номером дома). Google ищет местонахождение и отмечает его значком (номер дома, разумеется, не сохраняется).

Новые фичи (или о том, чего не хватает для полного счастья)

26 December 2011 - 10:46 AM

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

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

Как предложить новую возможность? Есть несколько путей.
  • Путь формальный. Проект имеет трекер задач (progress.openpilot.org). Можно зарегистрироваться в системе и создать новую задачу типа "New Feature". Тогда она точно не потеряется среди форумов, она будет назначена конкретному человеку, и в итоге там будет принято решение - или сделать, или не делать по каким-то соображениям. Активное участие пользователей в обсуждении задачи, естественно, повышает шансы положительного решения.

    Обращаю внимание на то, что при описании надо описывать то, как оно должно работать. Именно как должно работать, а не как оно сделано в других проектах. Мы действительно не используем чужой код, будучи вполне способными написать свой. Но мы должны, во-первых, четко представлять, что требуется. Во-вторых, быть согласны с тем, что это действительно надо, что этого результата нельзя получить другими средствами, что оно представляет интерес более чем для одного пользователя, и что оно не противоречит стратегии развития системы.
  • Путь неформальный. Можно открыть тему на форуме (англоязычном, поскольку архитекторы системы и подавляющее большинство пользователей там) и начать обсуждение с того же самого: четкого описания, как оно должно работать. Нужно описание требований и четкая аргументация, зачем это нужно, что без этого нельзя обойтись.

    Далее возможны варианты: или будет признано, что это нужно сделать - и тогда кто-то из разработчиков рано или поздно это напишет (вероятнее всего, создав задачу - см. предыдущий вариант). Или же это напишет кто-то из пользователей, а после тестирования оно может войти и в основной код. Есть много примеров таких расширений: отключение обнуления интегралов для самолета, отключение автоматического таймаута (тоже для самолетов), тестируемая сейчас новая версия стабилизации камеры с поддержкой двух режимов управления и плавной работой серв от ручек, обе новых фичи которой были написаны двумя разными людьми, а разработчик проекта потом только привел код в соответствие стилю проекта, и оно, скорее всего, войдет в код следующей версии. По такому же пути шло появление функции автоматической калибровки акселерометров путем висения (только что вошло в состав тестовой версии), и т.д.

  • Путь самостоятельный. Если убедить архитектора системы не удалось (это может быть по многим причинам), то всегда есть возможность взять и написать это самому. В сочетании с предыдущим вариантом можно получить помощь пользователей, кто владеет программированием. И в итоге собрать именно то, что нужно в данном случае.

    По такому пути решена возможность настройки PID ручками передатчика. В официальный код эта возможность не включена, так как не удалось убедить архитектора проекта в ее необходимости. Но это не мешает иметь неофициальную ветку с этой фичей.
В целом следует понимать, что проект не ставит себе целью реализовывать все хотелки по первому требованию. Мы с удовольствием выслушаем пожелания, но оставляем за собой право принимать окончательное решение о том, что будет включено в официальную ветку (так, собственно, поступают и все другие проекты). Тем, что мы сделали, мы делимся со всеми заинтересованными, а git дает идеальную возможность создавать тематические ветки разных фич, из которых можно при желании собрать свою версию с любым их сочетанием.

Если же ни один из названных вариантов не подходит, то всегда остается еще один путь:
  • Найти себе более подходящий проект и контроллер, в котором есть все, что нужно :)
    Идеала не бывает, и если что-то не устраивает - есть много других возможностей.

Багфикс проблемы слета настроек при подаче питания

24 December 2011 - 08:46 PM

Поскольку, к сожалению, выпуск новой прошивки несколько затянулся, я решил выложить багфикс версии 0819 для тех, кто наблюдает проблемы слета настроек при подаче питания.

Описание проблемы: при нечеткой подаче питания (из-за разъемов, слишком плавного запуска BEC, и т.п. причин) возможен запуск процессора раньше, чем надежно начинает работать последовательный flash, хранящий настройки. Если за пару попыток настройки не удалось прочитать, система выполняет стирание флэша, чтобы исключить взлет с поврежденными настройками.

Метод решения проблемы: увеличить количество попыток чтения flash, чтобы он гарантированно успел надежно заработать. Другого решения не может быть, поскольку данный флэш не имеет никаких признаков того, что он готов к работе.

Результат: после данного фикса слета прошивок не наблюдалось ни разу.

Страница для скачивания: http://wiki.openpilo...?pageId=2457605
Прямая ссылка: fw_coptercontrol-20110819-5c691aa6-settings-fix.opfw

Это изменение будет включено в новую сборку, но так как проблема актуальна уже давно, я собрал специальную прошивку с багфиксом.

PS. Собственно, это улучшение (его даже нельзя назвать багфиксом) сделано еще 07.10.11, и эту прошивку получили все, кто столкнулся с данной проблемой и задал соответствующий вопрос на этом сайте. А если нет вопроса - нет проблемы :)

О том, как помочь проекту (или когда выйдет Revolution)

23 December 2011 - 03:03 PM

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

Quote

Поскольку, похоже, слово "коммерческий" означает разные вещи для разных людей, позвольте еще раз ясно обрисовать ситуацию. OpenPilot - это хобби для всех нас, скорее даже страстное увлечение. У проекта нулевой штат сотрудников, и работа ни одного из нас не оплачивается. Причина, по которой OP настолько хорош, - это то, что мы все сильно им увлечены, и мы имеем потрясающую команду. И тут кроется проблема: всевозможные жалобы, нытье и негатив постепенно приводят нас к потере желания вообще иметь каких-либо пользователей. Идея была в том, чтобы поделиться тем, что мы сделали, с заинтересованными людьми в надежде, что они оценят это и присоединятся к нам. Jose - отличный кодер (автор загрузчика и многого другого, это упомянуто в контексте оригинала - тут и далее примечания переводчика), и он нужен нам для GCS, но его время оказалось занятым (европейским) магазином помимо семьи и основной работы. Фактически, все разработчики в точно такой же ситуации.

... Lucien (один из американских дистрибьюторов, это также ответ на вопрос из контекста оригинала) прекрасно осведомлен о наших ограниченных планах производства и знал это еще до начала продаж плат. Мы изначально решили придерживаться определенных правил (например, не принимать дотаций или внешних инвестиций) для сохранения проекта в том виде, в котором мы хотим, и это имеет свои следствия в виде масштаба производства, который мы способны достичь.

Quote

Если сообществу проекта нужна какая-либо помочь, то достаточно только попросить, и я уверен, что будет много помогающих для поддержки сообщества сильным и активным, чтобы сделать его тем, чем мы хотим его видеть.

Нам нужна помощь.

Это действительно общественный проект, и он хорош лишь настолько, насколько таковы люди, в него вовлеченные. Недостаток талантливых и увлеченных людей все время является нашей основной проблемой. Взгляните, к примеру, на PipX (специализированный радиомодем для телеметрии с открытым исходным кодом и множеством уникальных возможностей, до сих пор не выпущенный по причине ухода из проекта его разработчика). Его выпуск задерживается уже многие и многие месяцы, поскольку мы не можем найти ведущего разработчика, желающего взяться за его сопровождение. GCS сильно нуждается в разработчиках, чтобы двигать ее вперед. Плата Revolution (полный автопилот с навигацией, флагман проекта) уже завершена аппаратно, но мы не планируем открыть ее для конечных пользователей до тех пор, пока она не станет абсолютно завершенной (включая прошивку и поддержку ее возможностей в GCS), и есть еще очень много работы в этом направлении.

Нам нужна помощь с версией GCS под платформу Android (поскольку автор того, что есть, также не является частью команды и не поддерживает свой продукт), нам нужна помощь по пользовательскому интерфейсу существующей GCS, нам нужен кто-то для завершения работ по переводу ModelView под QT3D (та самая работа, сделанная на 90%, что я упоминал в других темах, но из-за оставшихся 10% мы не можем ее включить в GCS, и версия под Mac не имеет сейчас ModelView вообще), нам нужен кто-то, кто написал бы красивый плагин для конфигурирования OpenPilot OSD из GCS, и нам нужна помощь с wiki. На самом деле wiki прекрасно отражает суть наших проблем. Мы регулярно получаем сообщения от пользователей о неточностях в документации по конкретным вопросам (речь об английской версии, а в русской можно добавить еще и отсутствие перевода). Но ведь это же wiki – ее идея в том, что любой человек может свободно зарегистрироваться на http://wiki.openpilot.org и самостоятельно исправить или дописать недостающее, оказав помощь другим пользователям и проекту в целом!

Мы стараемся сделать наилучшее из возможного с теми очень ограниченными ресурсами, что мы имеем. Это не только CC, который так хорош. OpenPilot уже оказал большое влияние на весь коптерный мир. Очень интересно наблюдать снижение цен на платы других проектов, и потому даже люди, которые пока не обзавелись своими CC, косвенно выигрывают от нашего существования.

Мне нечего к этому добавить. Тут изложена самая суть того, почему нам намного важнее помощь делами, нежели деньгами.