Управление Удаленными Объектами В Blender

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

Поскольку мы активно использовали Блендер для создания моделей для 3D-печати и пользовательского интерфейса мы решили попробовать Игровой движок Blender как среда для моделирования роботов.

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

После этого стал вопрос — как интегрировать BGE с нашей системой связи и управления? Те.

как сделать так, чтобы одна и та же программа могла без доработок управлять реальным или виртуальным роботом в BGE? Для управления роботом по сети используем библиотеку Лед , который, среди многих других, поддерживает Python. Blender также может запускать сценарии Python и предоставляет интерфейс для всех своих объектов и функций.

Таким образом, родился план — написать программу на Python, которая бы реализовывала точно такие же (удаленные) интерфейсы, что и программа, работающая на роботе.

Но вместо реальных моторов он будет изменять свойства объектов в BGE в соответствии с командами, полученными по сети.

В качестве первого шага мы решили сделать очень простой пример, который показывает:

  • как написать и запустить ледовый сервер, написанный на Python, внутри Blender?
  • как изменить атрибуты объекта (например положение), получив информацию по сети?
Для этого необходимо было сделать два файла Python. Первый — с серверным кодом, который будет запускаться внутри Blender, а второй — клиентская программа, отправляющая запросы на изменение позиции серверу по сети.

Вы можете иметь две программы найди это на GitHub .

Testblender.py — это сервер.

Следует отметить, что сервер необходимо было запускать в отдельном потоке, поскольку в противном случае, ожидая сообщения по сети, он блокировал пользовательский интерфейс Blender и изменение положения объекта визуально не отображалось.

Client.py — простая программа, которая отправляет 100 запросов на изменение положения текущего (выделенного) объекта путем перемещения его по кругу в плоскости XZ. В следующем видео показано, как запустить серверную и клиентскую программы, а результатом работы является движение объекта по кругу.

После того, как мы научимся управлять объектами внутри Blender удаленно (по сети), мы планируем реализовать интерфейсы для управления роботом внутри BGE для управления моделью.

На самом деле описанная методика удаленного управления объектами в Blender может использоваться совершенно для разных приложений.

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

Поэтому мы надеемся, что описанный выше простой пример и данная статья будут интересны и полезны читателям :-).

Теги: #3d #блендер #BGE #BGE #дистанционное управление #Робототехника #python

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.