最近研究在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>
123456789101112131415161718但是实在是不理解其中各标签的作用,尤其type,不知道有哪些类型的光源可以选择,在网络上查询没有找到合适的回答,最终在查阅官方文档后找到了相关的资料,想到可能有同学也对这一块比较困惑,因此写这篇文章对标签中各参数进行一个简单的介绍。
https://gazebosim.org/docs/garden/sdf_worlds
如下:
type中主要包括了point、directional和spot类型,下面对每个类型进行简单介绍。
点光源类型,此时环境光照受光源pose设置的影响,可以看到图中正方体迎光面被照亮,而背光面明显更加暗。diffuse和specular标签似乎和色调和明度有关系,但注意该标签在Gazebo中可以设置为0-255的整数,而在.world文件中却是设置为0-1的小数,Gazebo根据设置的小数*255并取最近整数在其中显示数值。direction标签在point类型下没有作用。
range标签表示了光源照射范围,将范围设置为20,照射范围明显缩小,范围之外为黑,如图:
attenuation标签中参数设置了光源的某些特性,可以尝试修改观察变化。
可以设置多个光源,环境亮度会随着光源数量增加而增加,如图在对角一共设置了两个光源,亮度显著增加,并且可以观察到光源轮廓(似乎可以用于仿真路灯?):
directional类型为方向光源,默认的sun光源就是这个类型。该类型下环境光照情况与光源位置没有关系,如图:
pose在该类型下没有作用,diffuse和specular标签作用与point类型相同,见上文。direction标签可以改变光线角度,如图改变该标签的值,阴影的方向也会响应变化。attenuation标签在该类型下没有作用。设置多个光源也可以增加环境亮度。
spot类型光源可以模拟射光灯效果,如图所示,其中标签中Inner angle作用不明确,outer angle设置了照射范围的大小,range也是设置照射范围,但所作用不同,试验便知。
falloff设置了照射区域以外的亮度,设置为0时,其他区域完全为黑,如图:
pose标签设置了光源放置位置,对环境光照有影响,和direction标签一起可以控制光照区域的位置。diffuse、specular和attenuation标签作用同point,见上文。
相关知识
【单片机毕业设计】土壤湿度控制
固体照明光源
如何建设培养架光源气候室?了解它的特点,功能,优势,价格
基于LED光源优势的植物工厂光照策略探讨.pdf
仿形修剪装置及果园机械设备的制作方法
23
《照明设计——从传统光源到LED》书讯
基于Perlin噪声的花卉仿真算法研究
仿木护岸桩 仿木凳 仿木花箱 园林小品 园林绿化
诱导光源光照梯度对蝗虫趋光响应的影响
网址: Gazebo仿真中光源的设置 https://m.huajiangbk.com/newsview587158.html
上一篇: Unity中的部分环境光照设置以 |
下一篇: UE4场景基础、建模、光照设置 |