ROS2与Gazebo11入门教程-LED插件
说明:
- 介绍LED插件
简介
- LedPlugin是Gazebo自带的一个模型插件,可以同步闪烁和熄灭模型上的灯光和视觉对象。通过为该插件提供参数,可以选择要闪烁的灯光和视觉对象,还可以为每个灯光指定闪烁的持续时间和间隔时间。通过继承该插件,还可以使用该插件的内部功能,例如动态地打开/关闭灯光。
用法和插件参数
在
元素内插入filename属性设置为libLedPlugin.so的插件代码块。在下面这个示例(仿真世界文件可以在此处获取)中,模型有两个链接,每个链接都有两个灯光元素。 该插件继承自FlashLightPlugin插件,因此其参数与其父类插件使用的参数相同。区别之处在于,当将同名的
对象和 对象放置在同一个对象下时,视觉对象会与灯光一起在相同的时间内闪烁(即同步闪烁)。
<model name='light_model'>
...
<link name='link'>
...
<light name='lamp' type='spot'>
...
</light>
<visual name='lamp'>
...
</visual>
...
</link>
...
<plugin name='light_control' filename='libLedPlugin.so'>
<light>
<light>link/lamp</light>
<duration>0.5</duration>
<interval>0.5</interval>
</light>
...
</plugin>
</model>
实现细节
- 下图显示了该插件及其组件的抽象结构。LedPlugin类中含有LedSetting对象,每个这种对象都含有一个设置单元,并通过Gazebo传输话题对相应的light元素进行维护。LedPlugin和LedSetting分别是FlashLightPlugin和FlashLightSetting的子类,因此它们具有其父类的功能。
- 它们将消息发送到〜/visual话题上以更新指定的
对象。 在调用Flash()和Dim()函数时,LedSetting()函数会将一条消息发布到该话题上
参考:
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号