Gazebo仿真中光源的设置

2023-05-16

目录

    • 写在前面
    • 官方文档链接
    • point类型
    • directional类型
    • spot类型

写在前面

最近研究在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,见上文。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gazebo仿真中光源的设置 的相关文章

随机推荐

  • gazebo保存world时出现问题

    gazebo保存world时出现没反应 xff0c 以为卡死了 xff0c 可最小化的时候能看到保存界面弹出 可以每次最小化再放大 xff0c 以此刷新界面 xff0c 一步一步保存
  • Windows向日葵连接Ubuntu时“连接已断开”解决方案

    环境 控制端 xff1a Windows10 系统 xff0c 向日葵版本12 5 1 44969 被控端 xff1a Ubuntu20 04 系统 xff08 默认gdm3桌面 xff09 xff0c 向日葵版本11 0 0 36662
  • [调参神器]使用VOFA+上位机进行PID调参(附下位机代码)

    1 VOFA 43 是啥 简单地来说 xff0c VOFA 43 是一个超级串口助手 xff0c 除了可以实现一般串口助手的串口数据收发 xff0c 它还可以实现数据绘图 xff08 包括直方图 FFT图 xff09 xff0c 控件编辑
  • visual studio 2022 调试时如何1、打开监视窗口;2、监视窗口无法输入问题

    1 如何打开监视窗口 xff1a 注意要先点击调试 xff0c 不然没有这个窗口 2 如果窗口显灰色 xff0c 说明当前调试状态没有中断 xff0c 而只有中断的时候才可以输入或修改 3 点击调试里的 全部中断 后就可以输入了 xff01
  • 单片机学习——定时器/计数器

    单片机必学系列 单片机学习 中断系统 单片机学习 存储器详解 xff08 程序存储器 片内RAM 拓展RAM EEPROM xff09 单片机学习 定时器 计数器 单片机学习 A D转换 更新ing 单片机学习 定时器 计数器 单片机必学系
  • C++的动态多态性理解

    多态 xff1a 指允许不同类的对象对同一消息做出响应 即同一消息可以根据发送对象的不同而采用多种不同的行为方式 xff08 发送消息就是函数调用 xff09 像我们之前学的函数重载和符号重载都是多态现象 例 xff1a 使用运算符 43
  • Hadoop伪分布集群配置(我用的是VMwareWorkstation)

    1 虚拟机环境准备 xff1a 1 0 xff09 首先准备好一台已经安装好了的虚拟机 我这里用的是Centos 2 0 xff09 安装 vim 编辑器 使用 yum y install vim 也可以直接用vi 注意 xff1a 安装好
  • fork函数的用法

    1 头文件 include lt sys types h gt inlcude lt unistd h gt 2 函数原型 pid t fork void 函数参数 xff1a void 3 fork函数功能 fork xff08 xff0
  • gitee配置流水线实现自动打包vue

    1 任务编排 xff1a 第1步 xff1a 创建一个构建任务 xff0c 选择nodejs xff1b 第2步 xff1a 编写构建命令 设置NPM源 xff0c 提升安装速度 npm config set registry https
  • Linux操作系统:Firewalld防火墙

    Linux操作系统 xff1a Firewalld 防火墙 课堂引入 xff1a Linux防火墙是通过netfilter来处理的 xff0c 它是内核级别的框架 iptables被作为netfilter的用户态抽象层 xff0c ipta
  • 全景图拼接

    目录 一 图像拼接基本流程 二 RANSAC 随机一致性采样 2 1 RANSAC基本思想 xff1a 数据中包含正确的点和噪声点 xff0c 合理的模型应该能够在描述正确数据点的同时摒弃噪声点 2 2 RANSAC基本流程 xff1a 2
  • 11. JS操作节点续(2) + DOM 重点核心

    关于dom操作 xff0c 我们主要针对于元素的操作 主要有创建 增 删 改 查 属性操作 事件操作 DOM xff1a 我们获取过来的DOM元素是一个对象 xff08 object xff09 xff0c 所以称为 文档对象模型 创建 d
  • Docker-使用篇

    文章目录 一 Docker镜像和容器 镜像命令镜像下载 xff08 pull xff09 查看镜像 xff08 images xff09 镜像搜索 xff08 search xff09 删除镜像 xff08 rmi xff09 容器命令新建
  • Rviz上发布的点位信息机器人不执行(网络配置原因)已解决

    在调试机器人时发现Rviz上发布的点位信息机器人没有执行 xff0c 经检查是由于网络配置原因 xff0c 本文记录解决方法 使用ssh将笔记本与实物机器人连接 xff0c 机器人中控使用的工控机 xff0c 机器人作为显示器和键盘输入 p
  • gazebo小车自主路径规划导航仿真

    gazebo小车自主路径规划仿真 在之前的文章中完成了对地图的构建 xff0c 接下来使用 Ros navgition完成机器人自主导航 首先是Ros navigation的下载安装 ros功能包 xff1a Navigation ros
  • 关于结构体对齐

    首先我们先了解一下各数据类型所占的字节数 x64系统 xff08 64位 xff09 x86系统 xff08 32位 xff09 在这里有一个很有意思的点 xff0c 我使用VS在x86与x64系统下运行出来的long类型所占据的空间都是4
  • 安装docker报出的错误及解决方案

    1 错误一 xff1a 解决方案 xff1a yum erase podman buildan yum install y docker ce allowerasing 重启服务 systemtl restart docker yum源的安
  • make、makefile的使用解释(Linux项目自动化构建工具)

    本文所使用系统为Linux centos 7 makefile是一个文件 里面包含了 xff1a 1 文件与文件的依赖关系 2 文件与文件的依赖方法 为什么需要包含文件与文件的依赖方法和依赖方法呢 xff1f 一个工程中的源文件不计数 xf
  • elementUI中neditor第一次加载无法正常赋值的解决方法

    1 lt neditor v if 61 34 neditorLoad 34 v model 61 34 formFields content 34 class 61 34 wd editor 34 gt 加上v if 61 34 nedi
  • Gazebo仿真中光源的设置

    目录 写在前面官方文档链接point类型directional类型spot类型 写在前面 最近研究在Gazebo中仿真px4 xff0c 使用Apriltag ros包对Apriltag二维码检测的时候发现光源对检测影响非常大 xff0c