Visual ROS
Уважаемая компания eProsima - разработчик middleware FastRTPS, который используется в ROS2 Foxy/Humble и совместим с протоколом DDS - выпустила графический интерфейс для ROS2 Visual-ROS. Приложение представляет собой плагин к редактору NodeRED (проект IBM, графическая среда для программирования приложений IoT), который делает возможным соединение между собой узлов ROS2 - какие ноды на какие топики/сервисы подписаны и через какие типы сообщений. Конфигурация экспортируется в JSON, передаётся в среду исполнения и делает впоследствии возможным отладку через этот графический интерфейс. Взаимодействие с ROS-рантаймом осуществляется через шлюз Integration Service, на базе которого обеспечивается подключение к узлам ROS из сторонних сетей (мы на нём, например, делали мост из DDS к блокчейну Robonomics).
В пресс-релизе достаточно типичное для любых других подобных графических языков обоснование: ROS2 - это крутой фреймворк, но вот для пользователей без навыков программирования он тяжело даётся, поэтому разработчики решили пойти навстречу огромному количеству этих пользователей и создали удобный графический инструмент. Однако, как и в случае с любыми другими графическими языками программирования, по мере роста сложности проекта и увеличения связности его компонентов, графическое представление становится громоздким, сложным для восприятия, затрудняет управление версиями исходных кодов диаграмм, что заставляет переходить разработчиков на текстовые языки.
Это можно наблюдать в жизни. Например, в схемотехнике, где с переходом на интегральные схемы во второй половине XX века состоялся и переход разработчиков от принципиальных схем к языкам описания аппаратуры (VHDL, Verilog) или в языках МЭК 61131-3 для проектирования АСУТП , где для небольших проектов широко применяется графический FBD, который создавался для удобства программирования схемотехниками в те времена, когда их было существенно больше в индустрии, чем программистов, а для проектов посложнее берётся текстовый Pascal-подобный ST. Дополнительную аргументацию по поводу ограничений визуальных способов представления моделей в инженерии можно получить в книге Анатолия Левенчука "Визуальное мышление".
Так что можно смело резюмировать, что Visual ROS вполне допустимо рассматривать для небольших проектов интеграции, где ваш код на ROS2 нужно состыковать с внешними сервисами через Web API, а заодно и использовать Integration Service, достойный отдельной статьи. Однако, не стоит его рассматривать как основной инструмент разработки в сложных проектах.
Также его уместно будет использовать для обучения будущих робототехников, объясняя на визуальном примере основные понятия фреймворка, чтобы в дальнейшем идти вглубь и осваивать стандартные библиотеки rcl. Однако в любом случае графическое представление останется дополнительным к текстовому, но никак не основным, если Вы метите в сценарии использования из реальной жизни.
#ros #eprosima #visual #programming
Уважаемая компания eProsima - разработчик middleware FastRTPS, который используется в ROS2 Foxy/Humble и совместим с протоколом DDS - выпустила графический интерфейс для ROS2 Visual-ROS. Приложение представляет собой плагин к редактору NodeRED (проект IBM, графическая среда для программирования приложений IoT), который делает возможным соединение между собой узлов ROS2 - какие ноды на какие топики/сервисы подписаны и через какие типы сообщений. Конфигурация экспортируется в JSON, передаётся в среду исполнения и делает впоследствии возможным отладку через этот графический интерфейс. Взаимодействие с ROS-рантаймом осуществляется через шлюз Integration Service, на базе которого обеспечивается подключение к узлам ROS из сторонних сетей (мы на нём, например, делали мост из DDS к блокчейну Robonomics).
В пресс-релизе достаточно типичное для любых других подобных графических языков обоснование: ROS2 - это крутой фреймворк, но вот для пользователей без навыков программирования он тяжело даётся, поэтому разработчики решили пойти навстречу огромному количеству этих пользователей и создали удобный графический инструмент. Однако, как и в случае с любыми другими графическими языками программирования, по мере роста сложности проекта и увеличения связности его компонентов, графическое представление становится громоздким, сложным для восприятия, затрудняет управление версиями исходных кодов диаграмм, что заставляет переходить разработчиков на текстовые языки.
Это можно наблюдать в жизни. Например, в схемотехнике, где с переходом на интегральные схемы во второй половине XX века состоялся и переход разработчиков от принципиальных схем к языкам описания аппаратуры (VHDL, Verilog) или в языках МЭК 61131-3 для проектирования АСУТП , где для небольших проектов широко применяется графический FBD, который создавался для удобства программирования схемотехниками в те времена, когда их было существенно больше в индустрии, чем программистов, а для проектов посложнее берётся текстовый Pascal-подобный ST. Дополнительную аргументацию по поводу ограничений визуальных способов представления моделей в инженерии можно получить в книге Анатолия Левенчука "Визуальное мышление".
Так что можно смело резюмировать, что Visual ROS вполне допустимо рассматривать для небольших проектов интеграции, где ваш код на ROS2 нужно состыковать с внешними сервисами через Web API, а заодно и использовать Integration Service, достойный отдельной статьи. Однако, не стоит его рассматривать как основной инструмент разработки в сложных проектах.
Также его уместно будет использовать для обучения будущих робототехников, объясняя на визуальном примере основные понятия фреймворка, чтобы в дальнейшем идти вглубь и осваивать стандартные библиотеки rcl. Однако в любом случае графическое представление останется дополнительным к текстовому, но никак не основным, если Вы метите в сценарии использования из реальной жизни.
#ros #eprosima #visual #programming