Gazebo仿真中光源的设置

写在前面

最近研究在Gazebo中仿真px4,使用Apriltag-ros包对Apriltag二维码检测的时候发现光源对检测影响非常大,因此想要在仿真世界中设置多个光源以消除背光面(暗面),以提高检测成功率。虽然在.world文件中能够在开头就找到标签,比如:

    <light name='sun' type='directional'>
      <cast_shadows>1</cast_shadows>
      <pose>0 0 10 0 -0 0</pose>
      <diffuse>0.8 0.8 0.8 1</diffuse>
      <specular>0.2 0.2 0.2 1</specular>
      <attenuation>
        <range>1000</range>
        <constant>0.9</constant>
        <linear>0.01</linear>
        <quadratic>0.001</quadratic>
      </attenuation>
      <direction>-0.5 0.1 -0.9</direction>
      <spot>
        <inner_angle>0</inner_angle>
        <outer_angle>0</outer_angle>
        <falloff>0</falloff>
      </spot>
    </light>

但是实在是不理解其中各标签的作用,尤其type,不知道有哪些类型的光源可以选择,在网络上查询没有找到合适的回答,最终在查阅官方文档后找到了相关的资料,想到可能有同学也对这一块比较困惑,因此写这篇文章对标签中各参数进行一个简单的介绍。

官方文档链接

https://gazebosim.org/docs/garden/sdf_worlds
如下:
在这里插入图片描述type中主要包括了point、directional和spot类型,下面对每个类型进行简单介绍。

point类型

点光源类型,此时环境光照受光源pose设置的影响,可以看到图中正方体迎光面被照亮,而背光面明显更加暗。diffuse和specular标签似乎和色调和明度有关系,但注意该标签在Gazebo中可以设置为0-255的整数,而在.world文件中却是设置为0-1的小数,Gazebo根据设置的小数*255并取最近整数在其中显示数值。direction标签在point类型下没有作用。
在这里插入图片描述range标签表示了光源照射范围,将范围设置为20,照射范围明显缩小,范围之外为黑,如图:
在这里插入图片描述attenuation标签中参数设置了光源的某些特性,可以尝试修改观察变化。

可以设置多个光源,环境亮度会随着光源数量增加而增加,如图在对角一共设置了两个光源,亮度显著增加,并且可以观察到光源轮廓(似乎可以用于仿真路灯?):
在这里插入图片描述

directional类型

directional类型为方向光源,默认的sun光源就是这个类型。该类型下环境光照情况与光源位置没有关系,如图:
在这里插入图片描述pose在该类型下没有作用,diffuse和specular标签作用与point类型相同,见上文。direction标签可以改变光线角度,如图改变该标签的值,阴影的方向也会响应变化。attenuation标签在该类型下没有作用。设置多个光源也可以增加环境亮度。
在这里插入图片描述

spot类型

spot类型光源可以模拟射光灯效果,如图所示,其中标签中Inner angle作用不明确,outer angle设置了照射范围的大小,range也是设置照射范围,但所作用不同,试验便知。
在这里插入图片描述falloff设置了照射区域以外的亮度,设置为0时,其他区域完全为黑,如图:
在这里插入图片描述pose标签设置了光源放置位置,对环境光照有影响,和direction标签一起可以控制光照区域的位置。diffuse、specular和attenuation标签作用同point,见上文。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值