gazebosim/gz-gui

Add transport interface to insert plugins

开放

#379 创建于 2022年3月29日

 (0 条评论) (0 个反应) (0 位负责人)C++ (68 个派生)auto 404
enhancementhelp wanted

仓库指标

星标
 (103 个星标)
PR 合并指标
 (平均合并 8小时 31分钟) (30 天内合并 3 个 PR)

描述

Desired behavior

A developer should be able to load a new GUI plugin programmatically. For example, they may want to load a plugin to display information to the user whenever an entity is inserted in simulation.

Alternatives considered

Right now, the end user would need to manually load the plugin from the menu and configure it manually every time.

Implementation suggestion

At the moment, GUI plugins can already load other GUI plugins by directly calling Application::LoadPlugin:

https://github.com/ignitionrobotics/ign-gui/blob/ec910ed6de3e1745ac9e9288d9c1c673ed08cd9e/include/ignition/gui/Application.hh#L82-L93

But that's not available to other processes. I think an Ignition Transport interface would be a good way to expose plugin loading to other processes (such as Gazebo's server). The ignition::msgs::Plugin message could be used for the request.

Additional context

The specific use case we have is launching ignition::gazebo::gui::Plot3D plugins whenever a new entity is spawned, so its path is plotted automatically.

贡献者指南