< >
Home » ROS2与Gazebo11入门教程 » ROS2与Gazebo11入门教程-LED插件

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()函数会将一条消息发布到该话题上

参考:

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros2与gazebo11入门教程